`
hz_chenwenbiao
  • 浏览: 994883 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

TCP报文格式详解(转)

阅读更多

转自:http://blog.csdn.net/LYG105504/archive/2010/11/14/6008725.aspx

TCP协议只定义了一种报文格式

     建立、拆除连接、传输数据使用同样的报文


 TCP报文格式

TCP报文段首部(20个字节)

 源端口和目的端口:各占2个字节,16比特的端口号加上32比特的IP地址,共同构成相当于传输层服务访问点的地址,即“插口”;

 这些端口可用来将若干高层协议向下复用;

序号字段和确认序号字段:

 序号:占4个字节,是本报文段所发送的数据部分第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。例如,一报文段的序号为300,而起数据供100字节,则下一个报文段的序号就是400;

 确认序号:占4字节,是期望收到对方下次发送的数据的第一个字节的序号,也就是期望收到的下一个报文段的首部中的序号;

 由于序号字段有32比特长,可以对4GB的数据进行编号,这样就可保证当序号重复使用时,旧序号的数据早已在网络中消失了;

数据偏移字段

 数据偏移:占4比特,表示数据开始的地方离TCP报文段的起始处有多远。这实际上就是TCP报文段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。

 保留字段: 6比特,供今后使用,目前置为0。

6个比特的控制字段

 紧急比特URGent:当URG=1时,表明此报文应尽快传送,而不要按原来的排队顺序来传送。与“紧急指针”字段配合使用,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号,使接收方可以知道紧急数据共有多长;

 确认比特ACK:只有当ACK=1时,确认序号字段才有意义;

 急迫比特PSH:当PSH=1时,表明请求远地TCP将本报文段立即传送给其应用层,而不要等到整个缓存都填满了之后再向上交付。

 复位比特ReSeT:当RST=1时,表明出现严重差错,必须释放连接,然后再重建传输连接。复位比特还用来拒绝一个非法的报文段或拒绝打开一个连接;

 同步比特SYN:在建立连接时使用,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,在发回的报文段中使SYN=1和ACK=1。因此,SYN=1表示这是一个连接请求或连接接受报文,而ACK的值用来区分是哪一种报文;

 终止比特FINal:用来释放一个连接,当FIN=1时,表明欲发送的字节串已经发完,并要求释放传输连接;

窗口字段

 窗口Window:占2字节,表示报文段发送方的接收窗口,单位为字节。此窗口告诉对方,“在未收到我的确认时,你能够发送的数据的字节数至多是此窗口的大小。”

 通知窗口advertised window:接收端根据其接收能力许诺的窗口值,是来自接收端的流量控制。接收端将通知窗口的值放在TCP报文的首部中,传送给对方。

 拥塞窗口congestion window:是发送端根据网络拥塞情况得出的窗口值,是来自发送端的流量控制。

 检验和覆盖了整个的TCP报文段:TCP首部和TCP数据。这是一个强制性的字段,由发端计算和存储,由收端进行验证。

选项字段允许每台主机设定能够接受的最大TCP载荷能力(缺省536字节) 。


TCP分节的封装

 TCP的数据编号与确认

数据流、报文段和序号

 TCP通信的动作

     切割:根据适合传输的大小对数据流进行切割

         最大报文段长度<64Kbytes

         通常:MTU-(IP头+TCP头)

     复原:用报文段恢复原始数据流的字节顺序

     序号:排序、查错及数据流复原


 TCP数据流的切割与复原

报文序号

 依据数据流中的字节序号(流序号)

 报文序号为报文段中第一字节的流序号

    如:流序号=x,长度=L的报文段,则:

          报文的序号为x,下一报文序号为x+L

 序号特点

   报文的顺序关系

   数据流的位置,更便于流的复原

   需较大的序号空间(32bit,4Gbyte)

 例如:在一个报文中,序号为300,而报文中数据有100字节。

下一个报文符,其序号为400;


报文序号

分享到:
评论

相关推荐

    以太网协议报文格式归纳详解

    一系列以太网协议报文格式归纳详解,包括ip tcp udp等协议!

    TCP/IP协议详解卷二:实现

    《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...

    Detailed-TCP.rar_报文格式

    详解TCP数据报和三次握手过程,图文解释TCP报文格式和参数作用

    TCP/IP详解 卷1完整版

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    MODBUSTCP详解.zip_modbus_modbus 报文格式_modbusTCP_readitt_tcp

    MODBUSTCP协议的详细报文格式说明,为使用人员提供标准modbus协议说明。

    86-TCP报文格式.mp4

    Web协议详解与抓包实战

    TCP-IP详解卷1:协议

    《TCP/IP详解,卷1:协议》(共3卷,其他卷请到我的空间下载)是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获...

    TCP/IP详解 卷1:协议--源代码

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 ...

    TCPIP详解--共三卷

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    TCP/IP详解卷1:协议

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    TCP/IP详解卷 pdf格式

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    (TCP-IP详解卷1:协议.pdf

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    IP tcp UDP协议详解

    IP协议 tcp协议 UDP协议详细报文格式,用于FPGA开发网卡传输层协议,谢谢

    TCP/IP详解(卷一)

     《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间...

    TCP-IP详解试题

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    TCP_IP详解卷1

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

    TCP-IP详解卷1.rar

    14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...

    TCP/IP详解

    12.1.1 RIP报文格式 109 12.1.2 RIP路由表 111 12.2 操作机制 112 12.2.1 计算距离向量 113 12.2.2 更新路由表 116 12.2.3 寻址问题 118 12.3 拓扑变化 120 12.3.1 收敛 120 12.3.2 计值到无穷 122 12.4 RIP的限制 ...

Global site tag (gtag.js) - Google Analytics