我是靠谱客的博主 尊敬路灯,最近开发中收集的这篇文章主要介绍TCP报文结构的简单介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

TCP 面向字节流,传送的数据单元却时报文段。

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报文结构的简单介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部