The net mask is not part of the ip packet. It is a local config in the router.

> On May 2, 2019, at 7:20 AM, Louki Sumirniy <louki.sumirniy.stal...@gmail.com> 
> wrote:
> 
> Upon review one thing occurred to me also - Netmasks are specifically a fast 
> way to decide at the router which direction a packet should go. The interface 
> netmask is part of the IP part of the header and allows the router to quickly 
> determine whether a packet should go to the external rather than internal 
> interface.
> 
> When you use the expression 'should x exist in todays internet', an unspoken 
> aspect of this has to do with IPv6, which does not have a formal NAT 
> specification, and 'local address' range that is as big as the whole IPv4 is 
> now. This serves a similar purpose for routing as a netmask in IPv4, but IPv6 
> specifically aims to solve the problem of allowing inbound routing to any 
> node. The address shortage that was resolved by CIDR and NAT is not relevant 
> to IPv6, and I believe, in general, applications are written to generate 
> valid addresses proactively and only change it in the rare case it randomly 
> selects an address already in use. This is an optimistic algorithm that can 
> save a lot of latency for a highly dynamic server application running on many 
> worker node machines.
> 
> Yes, it's long past due that we abandon IPv4 and NAT, peer to peer 
> applications and dynamic cloud applications are becoming the dominant form 
> for applications and the complexity of arranging peer to peer connections in 
> this environment is quite high compared to IPv6. IPv6 does not need masks as 
> they are built into the 128 bit address coding system.
> 
>> On Thursday, 2 May 2019 14:09:09 UTC+2, Louki Sumirniy wrote:
>> The function has a very specific purpose that I have encountered in several 
>> applications, that being to automatically set the netmask based on the IP 
>> being one of the several defined ones, 192, 10, and i forget which others. 
>> 
>> Incorrect netmask can result in not recognising a LAN address that is 
>> incorrect. A 192.168 network has 255 available addresses. You can't just 
>> presume to make a new 192.168.X... address with a /16, as no other correctly 
>> configured node in the LAN will be able to route to it due to it being a 
>> /16. 
>> 
>> If you consider the example of an elastic cloud type network environment, it 
>> is important that all nodes agree on netmask or they will become (partially) 
>> disconnected from each other. An app can be spun up for a few seconds and 
>> grab a new address from the range, this could be done with a broker (eg 
>> dhcp), but especially with cloud, one could use a /8 address range and 
>> randomly select out of the 16 million possible, a big enough space that 
>> random generally won't cause a collision - which is a cheaper allocation 
>> procedure than a list managing broker, and would be more suited to the 
>> dynamic cloud environment.
>> 
>> This function allows this type of client-side decisionmaking that a broker 
>> bottlenecks into a service, creating an extra startup latency cost. A 
>> randomly generated IP address takes far less time than sending a request to 
>> a centralised broker and receiving it.
>> 
>> That's just one example I can think of where a pre-made list of netmasks is 
>> useful, I'm sure more experienced network programmers can rattle off a 
>> laundry list.
>> 
>>> On Monday, 11 March 2019 20:45:32 UTC+1, John Dreystadt wrote:
>>> Yes, I was mistaken on this point. I got confused over someone's discussion 
>>> of RFC 1918 with what the standard actually said. I should have checked 
>>> closer before I posted that point. But I still don't see the reason for 
>>> this function. In today's networking, the actual value you should use for a 
>>> mask on an interface on the public Internet is decided by a combination of 
>>> the address range you have and how it is divided by your local networking 
>>> people. On the private networks, it is entirely up to the local networking 
>>> people. The value returned by this function is only a guess, and I think it 
>>> is more likely to mislead than to inform.
>>> 
>>>> On Friday, March 8, 2019 at 12:51:41 PM UTC-5, Tristan Colgate wrote:
>>>> Just on a point of clarity. DefaultMask is returning the mask associates 
>>>> with the network class. RFC1918 specifies a bunch of class A,B and C 
>>>> networks for private use. E.g. 192.168/16 is a set of 256 class C 
>>>> networks. The correct netmask for one of those class Cs is 255.255.255.0 
>>>> (/24). So the function returns the correct thing by the RFC.
>>>>   
>>>> 
>>>>> 
>>>>> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to