问问题描述
答精选答案

1、源端口和目的端口:各占两个字节,分别写服务相对应的源端口和目的端口。
2、序号:在4个字节,它的范围在0-2^32-1,序号随着通信的进行不断的递增,当达到最大值的时候重新回到0在开始递增。TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按照顺序编号。整个要传送的字节流的起始号必须在连接建立时设置。首部中的序列号字段指的是本报文段所发送的数据的第一个字节的序号。例如,一个报文序号是301,而携带的数据共有100字节。则表示本次报文中的序号是301,下一个报文的序号是401.重复一下,每一个报文的序号是该报文包含的字节中第一个字节的编号。
3、确认号:占4个字节,确认号,是对下一个想要接受的字节的期望,这里隐式确认了对上一个数据包的成功接收。如上例,在成功接收了序号为301的数据包,想要接收下一个数据包因为上个数据包包含100字节,所以此时的确认号应该是401,表示希望接收下一个序号是401的数据包。
4、数据偏移:占4位,该字段指出TCP报头从起始端到TCP报文数据端的距离,简单来说次字段描述了TCP报头的长度。由于option字段的存在,所以TCP报头的长度往往是不确定的,因此该字段很有存在的必要了。需要注意的是“数据偏移”计算的单位是32位字(即4个字节为一个计算单位)。因此“数据偏移”有4个位所以能够表达的最大的十进制为15,也就说TCP报头的最大长度为60字节。
5、保留:占6个位,保留为今后使用,目前该字段为全0.
6、URG:占1位,当该位为1是表示紧急指针字段有效。它告诉系统此报文中有紧急数据,一概尽快的被发送出去(相当于优先级高的数据),而不是安装原来的队列顺序来进行发送,通俗的说法则是当该为设置为1的时候,则该报文在发送队列允许插队最先发送。
7、ACK:前面讲述的确认号只有在该位设置为1的时候才生效,当该位为0是表示确认号无效。TCP规定,在TCP连接建立后所有传送的数据报文段ACK都必须设置为1.
8、PSH:如果说URG是为了让数据包最先发送出去,那么PSH标志位就是让对方更快的接收该数据包,我们都知道在接收端,必须在接收缓冲满了以后再向上层提交数据的,如果具有该位设置为1的数据包则不用等待接收缓冲填满可以直接提交给上层。
9、RST:当RS
本文来自作者[shanxicaijingdaxuehuashan]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/jingxuan/3447268.html
评论列表(4条)
我是公众科技网的签约作者“shanxicaijingdaxuehuashan”!
希望本篇文章《tcp报头字节怎么算》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:1、源端口和目的端口:各占两个字节,分别写服务相对应的源端口和目的端口。2、序号:在4个字节,它的范围在0-2^32-1,序号随着通信的进行不断的递增,当达到最大值的时候重新回到0在开始递增。TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按照顺序编号。整个要传送的字节流的起始号必须在连接建立时设置。首部中的序列号字段指的是本报文段所发送的数据的第一个字节的序号。例如,一个报文序号是301,而携带的数据共有100字节。则表示本次报文中的序号是301,下一个报文的序号是401.重复一下,