重要的TCP头部格式来啦:
- 序列号:在建立连接时,由计算机生成的随机数作为初始值,通过SYN包传给接收方主机,每发送一次数据,就会累加一次这个数据字节数的大小,用来解决网络包乱序问题。
- 确认应答号:用来表示期盼下一次收到的数据的序列号,发送端收到这个确认应答后,可以认为这个序号以前的数据都被正常接收。用来解决丢包问题。
- 窗口大小: TCP要做流量控制,通信双方各声明一个窗口(缓存大小),标识自己目前能够的处理能力,别发送的太快,撑死我。也别发送的太慢,饿死我。
- 控制位:
1、ACK:该位为1时,确认应答序号有效,TCP规定除了最初建立连接时的SYN包之外,该位必须设置位1 。
2、RST:该位为1时,表示TCP连接中出现异常必须强制断开连接。
3、SYN:该位为1时,表示希望建立连接,并且设置好序列号的初始值。
4、FIN:该位为1时,表示今后不会有数据发送,希望断开连接,当通信结束希望断开连接时,通信双方的主机之间就可以相互交换FIN为1的TCP字段。
注:来自小林coding的图解网络摘录。