TCP数据段的首部格式

TCP数据段的首部格式,第1张

概述TCP数据段的首部格式 在了解TCP首部各个字段的意义后,我们就能更清楚的了解TCP协议的。TCP首部字节有20个字节是固定了,后面还有可选选项。TCP是以32位(4字节)对齐的。

源端口和目的端口:TCP是通过通口号来进行应用进程间的通信的。

序号:占32位,序号的范围是0~(2^32-1),当序号变为2^32-1后,下一个序号就要重新从0开始了。假如一个报文段的序号为1001,它的长度为100字节,那么下一个报文段的序号就是1101。

确认号:占32位。确认号是对收到的分组进行确认的。假如A向B发送了一个报文段,A的序号为101,报文段长度为100字节,那么B收到该报文段后,就需要对A发送确认报文段,这个确认报文段里的确认号为201。有以下公式:

如果确认号为N+1,那么表示到序号n位置的所有数据均已收到。

数据偏移:该字段即表示tcp首部的长度,该字段占4位,单位为4字节。所以,一个TCP的首部最大为60字节。

六个控制位:每个控制位都只占一位。

UGR:紧急字段,当该值为1时,表示此报文段含有紧急数据,应优先发送。该字段需要和后面会说到的紧急指针配合使用。

ACK:确认字段。该字段在建立连接和断开连接时会用到,传送数据阶段一律为1。

PSH:推送字段。为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。

RST:重置连接字段志。用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。

SYN:同步字段。用于建立连接时使用。

FIN:终止字段。用于释放连接时使用。

窗口:占16位。窗口值是的范围是【0,2^16-1】之间的整数。注意,它表示的是接受窗口,表示允许接受的字节数。比如,B的向A发送了一个确认报文段,该报文段的确认号为101,窗口值为1000.那么表示B下一个接受的报文段序号应该是101,且报文段长度不能超过1000字节。

校验和:占16位。用来检验报文段有没有错误。

紧急指针:占16位。只有当URG字段为1时,该字段才有意思。它表示紧急数据的长度

相关推荐:《linux视频教程》 总结

以上是内存溢出为你收集整理的TCP数据段的首部格式全部内容,希望文章能够帮你解决TCP数据段的首部格式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1010868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存