Problem with port 0

Chuck Swiger cswiger at mac.com
Tue Jan 16 18:58:56 UTC 2007


On Jan 16, 2007, at 10:40 AM, Randall Stewart wrote:
>> "reserved" means one "SHOULD NOT" use that port, where the phrase  
>> in caps is defined in RFC-2119 (http://www.ietf.org/rfc/rfc2119.txt).
[ ...format-flowed quoting trimmed... ]
> So let me see if I understand the statements above..
>
> We are using the SHOULD NOT.. which is YOU REALLY REALLY REALLY
> REALLY REALLY REALLY should not do this unless you have some
> very dramatic demonstrative need to do so and know the FULL
> consequences of the action.

Pretty much.  :-)  If you have a choice about solving the problem in  
a way that avoids doing something described as "SHOULD NOT", then one  
really ought to prefer that choice.

> The bit from wikipedia, while not authoritative in my mind, says you
> can send FROM the port, but don't expect an answer back.. which  
> implies
> you cannot bind it and/or cannot read from it if your source
> port is 0... Of course in TCP this is totally useless since you
> have to get something back in order to setup the handshake.

I don't consider wikipedia to be authoritative either, but it can be  
a useful reference or guideline in conjunction with other sources.   
Note that there are some uncommonly used TCP variants (T/TCP comes to  
mind) where you can short-circuit the 3-way handshake and put actual  
data in the initial SYN packet.

I would agree that one SHOULD NOT listen on port 0.

> In UDP I guess one could get a packet if the other O/S did not
> have any bind restrictions.. or one were to use a raw socket.

Sure, or use BPF/PCAP to generate the packets directly.

> But why all this for something you SHOULD NOT DO.. one of the
> consequences in my mind of this is that not all O/S's may be
> able to read your data .. nor respond to it.
>
> Seems to me a lot of hassle when one can just use a different
> port :-0

Well, yes-- there are another 65500+ ports available.

-- 
-Chuck



More information about the freebsd-net mailing list