[Ilugc] packets and TCP
- From: 0@xxxxxxxxxxx (0)
- Date: Wed, 20 Jun 2012 22:41:00 +0530
A packet on the network looks like a train.
The engine is the packet header. Then the different layers are like
the compartments and the Ethernet trailer
is like the guard compartment.
Obviously without the engine the train is useless.
I like this analogy. Easy to remember and simple.
In the case of packets on the Internet WAN path, packets are small.
Normally 256 bytes
or something to account for the MTUs of the physical links.
Atleast in ADSL, the MTU on an Internet path is quite close to the MTU
on a local ethernet. One can use traceroute to find it,
$ traceroute --mtu 8.8.8.8 | cut -d" " -f1-2,6-
....
1 1.411 ms F=1500 1.425 ms 1.319 ms
2 2.403 ms 2.253 ms 2.256 ms
3 3.380 ms 3.262 ms 3.276 ms
4 35.600 ms F=1460 36.049 ms 35.662 ms
5 35.964 ms 36.442 ms 36.002 ms
6 36.333 ms 35.301 ms 35.725 ms
7 61.767 ms 61.721 ms 62.017 ms
8 65.059 ms 61.646 ms 62.070 ms
9 36.790 ms 37.032 ms 37.538 ms
10 39.013 ms 41.111 ms 38.754 ms
In the above case "F=1460" indicates an MTU of 1460 on the internet hop.
And every TCP connection involves 3 packet exchanges before the first
byte of payload
is sent.
Syn, ACK and ACK ACK or something.
I have seen with netcat that whenever there is a port forwarding, NAT
or some other
issue, the handshake fails.
I am not sure if I understand. It will help if you can elaborate on what
you have noticed which leads to the failure in TCP handshake.
An interesting article. Thanks.
--
0
Other related posts: