

- ip的信息包含在了网络层的IP首部中,每个TCP报文段都包含源端口号和目的端口号,用来寻找和发送和接受端的进程,端口号加IP数据报中源IP地址和目的IP地址,唯一确定一个TCP连接。


在wireshark的抓包中,可以看到这个数据帧的长度为56bytes, TCP报文段的长度为44bytes, 其中options长度为24bytes, 没有额外的数据。
序号用来标示从tcp发送端到接收端的数据字节流,标识在当前字节流中的第一个字节,当建立一个连接时,序列号字段包含当前主机选择的连接初始序号(ISN), 每建立一个连接的标志为SYN=1, 消耗了一个序号,所以此时,序列号加1
每次接收端接收完一次数据,接收方需要回复确认序号(ACK), 这个回复序号也是接收端希望下一次发送方发送的数据的开始序号。这个序号一般是上一次接收成功的数据字节序加1
在TCP首部中有6个标志比特:
- URG, 紧急指针,没有使用过
- ACK 确认序号有效
- PSH 接收方应该尽快将这个报文段交给应用层
- RST 重建连接
- SYN 同步序号用来发起一个连接
- FIN 发送端完成发送任务
- tcp的流量控制是由报文段中声明的窗口大小控制的,大小为16bit, 因此最大为65535字节,窗口的大小正是接收端期接受的字节大小(窗口大小我们可以后面再看看具体是怎么执行的)
- 校验和是覆盖整个TCP报文段的,包括头部和数据段,是强制性的字段。由发送方计算和存储,在接收方进行校验。如果出错了,则丢弃该报文段
参考: TCP 首部详解
