`
Erwinchan
  • 浏览: 4185 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

TCP报文结构

阅读更多

一、TCP报文结构如下:

 固定首部长度为20字节,可变部分0~40字节,各字段解释:

  1. source port number:源端口,16bits,范围0~65525。
  2. target port number:目的端口,16bits,范围同上。
  3. sequence number:数据序号,32bits,TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
  4. acknoledgement number:确认号,32bits,期望收到对方的下一个报文段的数据的第一个字节的序号。
  5. header length:数据偏移,4bits,单位为4字节,它指出报文数据距TCP 报头的起始处有多远(TCP报文头长度?)。
  6. reserved:保留字段(图中,包含CWR,ECE),6bits,保留今后使用,目前置0处理。
  7. URG:紧急比特,1bit,当 URG=1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
  8. ACK:确认比特,1bit,只有当 ACK=1 时确认号字段才有效。当 ACK=0 时,确认号无效。
  9. PSH:推送比特,1bit,接收方 TCP 收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。
  10. RST:复位比特,1bit,当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
  11. SYN:同步比特,1bit,同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。
  12. FIN:终止比特,1bit,用来释放一个连接。当FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
  13. window size:窗口大小,16bits,窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
  14. checksum:检验和,16bits,检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
  15. urgent pointer:紧急指针字段,16bits,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
  16. options:选项字段,长度可变。TCP 首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。

二、抓取TCP报文,如下图:


 

  • 大小: 40.9 KB
分享到:
评论

相关推荐

    su-Pro#spy-blog#简述一下TCP报文结构1

    序列号TCP 是面向字节流的协议,通过 TCP 传输的字节流的每个字节都分配了序列号,序列号(Sequence number)指的是本报文段第一个字节的序列号。

    TCP报文段发送接收模拟

    在TCP/IP协议栈中,TCP...在Java中,通过Socket和ServerSocket类,我们可以实现这一过程,并结合TCP报文段的结构和特性,确保数据的可靠传输。这样的课题设计有助于深入理解TCP协议的工作原理,并提升网络编程能力。

    udp、tcp报文组织发送测试软件

    TCP报文结构复杂,包含更多字段: 1. 源端口号和目标端口号:与UDP相同。 2. 序列号:确保数据按序接收,避免乱序。 3. 确认号:接收方回传给发送方,表明已接收的数据序列号。 4. 数据偏移:指示报头长度,用于确定...

    TCP包结构.

    TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。...综上所述,TCP报文结构和工作机制是保证数据传输可靠性的关键,而三次握手和拥塞控制机制确保了TCP连接的稳定和网络的有效利用。

    TCP报文分析--三次握手 四次挥手

    TCP 报文头部结构是 TCP 报文分析的基础,它包括源端口、目的端口、序列号、确认号、报头长度、保留、标记、窗口大小、校验和、紧急指针和可选项等字段。 * 源端口和目的端口:字段长度均为 16 位,它们标识了源和...

    tcp例子适合初学者

    1. TCP报文结构:包括源端口号、目的端口号、序号、确认号、数据偏移、保留、标志位(如SYN、FIN、ACK)、窗口大小、校验和、紧急指针等字段。 2. 三次握手的具体过程:客户端发送带有SYN的TCP报文到服务器,服务器...

    TCPIP协议数据报结构详解

    TCP/IP 协议中各层的数据报结构是一个复杂的系统,本文通过对 Sniffer 工具捕获的数据包的详细分析,总结归纳出 TCP/IP 协议中网络接口层、网络层、传输层的数据报文结构,为大家提供了一个深入理解 TCP/IP 协议的...

    tcp.zip_C++ TCP_tcp

    压缩包内的“tcp格).xls”文件可能是一个关于TCP报文结构的电子表格。TCP报文由多个字段组成,包括: 1. **源端口号和目的端口号**:标识发送方和服务端的端口,用于多路复用和多路分解。 2. **序号**:每个字节的...

    TCP抓包分析.doc

    一、TCP报文结构 TCP报文由头部和数据两部分组成。头部结构如下所示: * 源端口(Source Port):16位,标识数据发起者的端口号。 * 目的端口(Destination Port):16位,标识数据接收方的端口号。 * 序列号...

    TCP协议特点和TCP报文段1

    TCP协议特点和TCP报文段解析 TCP(Transmission Control Protocol)是一种可靠的、面向连接的传输层协议,它是Internet协议族中最...了解TCP协议和TCP报文段的结构对网络协议的理解非常重要,它们是网络通信的基础。

    TCP/IP报文发送工具

    下面将详细介绍TCP/IP协议、报文结构、工具的使用方法以及与Java编程语言的关联。 首先,TCP/IP(Transmission Control Protocol/Internet Protocol)是一组通信协议,是互联网的基础,它定义了电子设备如何在网络...

    modbus 报文解析说明.pdf

    TCP报文结构 TCP报文主要包括以下几个部分: 1. MBAP报文头(7字节):表示Modbus TCP报文的头部。 2. 从站地址(1字节):表示Modbus设备的地址。 3. 功能码(1字节):表示Modbus设备的功能,例如读保持寄存器、...

    modbustcp.rar_modbus TCP_modbusTCP_tcp modbus

    Modbus TCP报文结构** - **报文头**:TCP报文头包含了源和目标端口号(通常是502),用于标识通信的设备。 - **Modbus请求/响应帧**:在TCP数据段中,包含了一个标准的Modbus请求或响应帧,包括设备地址、功能码、...

    Tcp.rar_tcp

    2. TCP报文结构:讲解TCP头部的各个字段,如源端口号、目的端口号、序列号、确认号、数据偏移、标志位等,以及它们的作用。 3. TCP流量控制和拥塞控制:解释滑动窗口机制、慢启动、拥塞避免、快速重传和快速恢复等...

    TCP.rar_TCP/IP

    "TCP.doc"文档可能包含了关于TCP/IP的详细解释,包括TCP的工作原理、TCP报文结构、TCP标志位(如SYN、ACK、FIN等)、TCP连接的建立与关闭、TCP的拥塞窗口算法等。对于希望深入理解网络通信的人来说,这是一个很好的...

    TCP报头协议实验.docx

    TCP报文结构如图所示,包括多个组成部分,如源端口号、目的端口号、序号、确认号、数据偏移、保留字段、标志位(包含URG、ACK、PSH、RST、SYN、FIN等)、窗口大小、校验和以及紧急指针等。其中,SYN用于建立连接,...

    show_tcp.rar_show_tcp

    6. **TCP报文结构**:TCP报文头部包含源端口号、目的端口号、序号、确认号、数据偏移、保留、标志位(如SYN、ACK、FIN等)、窗口大小、校验和和紧急指针等字段。 7. **TCP选项**:TCP头部可以包含可选字段,如最大...

    modbus tcp协议解析

    它保持了原始Modbus的报文结构,但通过TCP/IP提供更可靠的数据传输。 2. **Modbus TCP结构**: - **功能码**:每个Modbus TCP请求或响应包含一个功能码,用于指示执行的操作,如读取寄存器、写入单个寄存器等。 -...

    以太帧_ip帧_udptcp帧_http报文结构.docx

    以太帧、IP 帧、UDP 帧、HTTP 报文结构 在计算机网络中,数据传输是通过协议栈来实现的。协议栈共有五层:应用层、传输层、网络层、链路层和物理层。每一层都有其特定的功能和协议。对于以太帧来说,它属于链路层,...

Global site tag (gtag.js) - Google Analytics