1. 建立连接
又叫三次握手,老外叫three way handshake,很好记,分别发三个包,syn,syn+ack,ack
用tcpdump出来就是如下的形式:
|
|
2.断开连接
又叫4次挥手,多了一次是因为tcp是双向全双工的协议,要两边都关一下,然后确认。
但我用telnet测试的时候抓到的都是3个报文,并没有第二个的ack包。
|
|
3. tcp头部信息图
|
|
source port : 源端口, 1024~65535.
destination port : 目的端口,比如常见的80,22等。
sequence number: 序列号,用来将数据正确的顺序重新排序。
acknowledgment number: 确认号,tcp期望接下来收到的数据段。
rsvd: 用于建立和终止会话的控制功能。
window size: 窗口大小,发送方愿意接受窗口的大小。
tcp头部一共20个字节,相对udp还是复杂很多的,每次传数据之前要简历虚电路,就是上面的三次握手。