概述
TCP 面向字节流,传送的数据单元却时报文段。
TCP报文结构
源端口和目的端口
各占2个字节,分别写入源端口和目的端口。告诉主机该报文段从哪里来以及传送到哪去(端口)。
序列号
占4个字节,使用mod运算,在一个TCP连接中按照传送的字节流的每一个字节进行顺序编号。
确认序号
占4个字节,确认收到对方下一个发送报文段的第一个数据字节的序号。例如:若确认序号 = N +1,表示截止到N的所有数据都已经正常收到。
TCP的可靠性是建在每个数据报文都需要确认收到的基础之上的。
数据偏移
占4位,表示TCP报文段的首部长度。指出TCP报文的起始位置与TCP报文段的数据起始位置之间的距离。
保留
占6位,保留为今后使用,当前置为0.
紧急URG
当URG = 1,表示紧急指针字段有效。此时发送方TCP就将紧急数据插入到本报文的数据的最前面,后面顺序不变,保证将紧急需要发送的最先发送。与最后的紧急指针配合使用。
确认ACK
当ACK = 1时,确认字段有效,当ACK = 0时,确认字段无效。TCP规定,在连接创建后所有传送的报文段须将ACK置为1
推送PSH
接受方TCP接收到PSH = 1,表示该报文段高于优先级,需要尽快地交付给接受应用程序,不需要等到整个TCP缓存都填满了后在交付。
复位RST
当RST = 1时,表示TCP连接发生严重错误,必须马上释放连接,重新建立新连接。
同步SYN
若SYN = 1,则表示这是请求建立连接。
终止FIN
释放连接。当FIN = 1时,表示此报文段的发送方需要发送的数据已经全部发送完毕,请求断开连接。
窗口
占2个字节,该字段表明明确指出现在允许对方发送的数据量,它告诉对方本端的TCP接收缓存区还能容纳多少字节的数据,这样发送方就能控制发送数据的速度。
检验和
占2个字节,有发送端填充,接受端对TCP报文段执行CRC算法,以检验TCP报文段在传输过程中是否损坏。如果损坏则丢弃,检验和检验首部和数据两部分,这也是TCP可靠传输的一个重要保障。在计算检验和时,在报文段前需要加12字节的伪首部。
紧急指针
占2字节。当URG = 1时,紧急指针才有意义,指出本报文段中的紧急数据的字节数。
最后
以上就是尊敬路灯为你收集整理的TCP报文结构的简单介绍的全部内容,希望文章能够帮你解决TCP报文结构的简单介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复