TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、可靠的、基于字节流的传输层协议
TCP报文格式:
源端口号(2字节):
d5 df(54751)
目的端口号(2字节):
22 b8(8888)
TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接
序号(4字节):
37 59 56 75
用来标识TCP发端向TCP收端发送的数据字节流
确认序号(4字节):
由于该报文为SYN报文,ACK标志为0,故没有确认序号(ACK标志为1时确认序号才有效)
一旦连接建立,该值将始终发送(同ACK标志)
首部长度(4位):报文头长度(单位:位)/32
1000(转化为10进制为8,8*32/8 = 32,该报文报头长度为32个字节)
存在该字段是因为TCP报头中任选字段长度可变
报头不包含任何任选字段则长度为20字节;4位所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节
标志位(12位):
0000 00010010
Reserved:
000~ ~~~~~~~~
ECN(Explicit Congetsion Notification):
~~~0 ~~~~~~~~ = N / NS / Nonce Sum:有效排除潜在的ECN滥用,RFC 3540
~~~~ 0~~~~~~~ = C / CWR(Congestion Window Reduced):拥塞窗口减少标志
~~~~ ~0~~~~~~ = E / ECE / ECN-Echo:ECE / ECN标志
Control Bits:
~~~~ ~~0~~~~~ = U / Urgent:紧急指针有效性标志
~~~~ ~~~1~~~~ = A / Acknowledgment:确认序号有效性标志,一旦一个连接建立起来,该标志总被置为1,即除了请求建立连接报文(仅设置Syn标志位为1),其它所有报文的该标志总为1
~~~~ ~~~~0~~~ = P / Push:Push标志(接收方应尽快将报文段提交至应用层)
~~~~ ~~~~~0~~ = R / Reset:重置连接标志
~~~~ ~~~~~~1~ = S / Syn:同步序号标志
~~~~ ~~~~~~~0 = F / Fin:传输数据结束标志
窗口大小(2字节):TCP流量控制通过连接的每一端声明窗口大小进行控制(接收缓冲区大小)
20 00(00100000 00000000)= 8192
由于2字节能够表示的最大正整数为65535,故窗口最大值为65535
检验和(2字节):检验和覆盖整个TCP报文段;强制字段,由发送端计算存储,由接收端进行验证
2e 2f
紧急指针(2字节):当Urgent标志置1时,紧急指针才有效
00 00
任选字段(0 - 40字节):
每个选项格式如下:
选项类型 |
选项总长度 |
选项内容 |
说明如下:
说明 |
占用字节数 |
值 |
选项类型 |
1 |
0-255 |
选项总长度 |
1 |
length |
选项内容 |
length - 2 |
|
可选选项如下:
Kind |
Length |
Description |
References |
0 |
1 |
End of option list. |
RFC 793 |
1 |
1 |
No operation. |
RFC 793 |
2 |
4 |
MSS, Maximum Segment Size. |
RFC 793 |
3 |
3 |
WSOPT, Window scale factor. |
RFC 1323 |
4 |
2 |
SACK permitted. |
RFC 2018 |
5 |
Variable. |
SACK. |
RFC 2018, RFC 2883 |
6 |
6 |
Echo. (obsolete). |
RFC 1072 |
7 |
6 |
Echo reply. (obsolete). |
RFC 1072 |
8 |
10 |
TSOPT, Timestamp. |
RFC 1323 |
9 |
2 |
Partial Order Connection permitted. |
RFC 1693 |
10 |
3 |
Partial Order service profile. |
RFC 1693 |
11 |
6 |
CC, Connection Count. |
RFC 1644 |
12 |
6 |
CC.NEW |
RFC 1644 |
13 |
6 |
CC.ECHO |
RFC 1644 |
14 |
3 |
Alternate checksum request. |
RFC 1146 |
15 |
Variable. |
Alternate checksum data. |
RFC 1146 |
16 |
|
Skeeter. |
|
17 |
|
Bubba. |
|
18 |
3 |
Trailer Checksum Option. |
|
19 |
18 |
MD5 signature. |
RFC 2385 |
20 |
|
SCPS Capabilities. |
|
21 |
|
Selective Negative Acknowledgements. |
|
22 |
|
Record Boundaries. |
|
23 |
|
Corruption experienced. |
|
24 |
|
SNAP. |
|
25 |
|
|
|
26 |
|
TCP Compression Filter. |
|
27 |
8 |
Quick-Start Response. |
RFC 4782 |
28 |
4 |
User Timeout. |
RFC 5482 |
29 |
|
TCP-AO, TCP Authentication Option. |
RFC 5925 |
30 |
|
MPTCP |
|
31 - 252 |
|
|
|
253 |
|
RFC3692-style Experiment 1. |
RFC 4727 |
254 |
|
RFC3692-style Experiment 2. |
RFC 4727 |
255 |
|
|
|
{02 04 05 b4} {01} {03 03 08} {01} {01} {04 02}
MSS + No operation + WSOPT + No operation + No operation + SACK permitted
参考资料:
www.networksorcery.com/enp/protocol/tcp.htm
http://blog.csdn.net/a19881029/article/details/29557837
相关推荐
【路由交换技术与TCP报文格式】 在计算机网络中,路由交换技术是网络通信的核心,它负责在网络设备之间转发数据包。路由是指网络中的设备(路由器)根据预先设定的路径选择最佳路线,将数据包从源地址传送到目标...
TCP/IP报文格式大全
传输层中,TCP报文格式是面向连接的传输层协议,它负责提供可靠的、面向流的通信传输。TCP报文包括源端口号、目的端口号、序列号、确认号、数据偏移、保留位、控制位、窗口大小、校验和、紧急指针和选项等。UDP报文...
TCP报文格式由头部和数据部分组成。头部长度固定为20字节,包括源端口号、目的端口号、序号、确认序号、数据偏移、保留字段、标志位、窗口大小、校验和、紧急指针等字段。 序号 序号是TCP报文中非常重要的一个字段...
三、TCP报文格式 TCP报文由头部和数据两部分组成,头部固定长度至少为20字节,可变最大为60字节(取决于选项字段的长度)。 - 源端口和目的端口:标识发送和接收应用程序的端口号。 - 序列号:标识发送端发送的数据...
Web协议详解与抓包实战
ModbusTCP协议报文详细分析是一种基于TCP/IP协议的Modbus协议实现,ModbusTCP协议报文格式与ModbusUDP协议报文格式相同,唯一的区别在于ModbusTCP协议使用TCP协议,而ModbusUDP协议使用UDP协议。ModbusTCP协议报文...
首先,TCP报文格式主要包括以下几个部分: 1. **源端口号** 和 **目的端口号**:这两个16位的字段标识发送和接收数据的进程。端口号是应用层与TCP交互的唯一标识。 2. **序列号**:32位的序列号用于标识TCP段中的...
《TCP协议的报文格式详解》 TCP(Transmission Control Protocol,传输控制协议)是计算机网络中传输层的重要协议,以其可靠性和流量...理解和掌握TCP报文格式对于深入理解TCP协议及其在网络通信中的作用至关重要。
TCP-IP协议报文格式大全(V1.0),学习CISCO、HUAWEI网络技术必备资料。
TCP报文段是TCP通信的基本单位,它包含了数据和控制信息,确保数据在网络中准确无误地传输。下面将详细讨论如何使用Java来模拟TCP报文段的发送和接收过程。 首先,模拟TCP报文段的发送和接收,我们需要理解TCP的...
原题是某著名大学的计算机网络的毕业作业TCP Traffic Analysis,实现了通过分析pcap日志来获得连接的详细信息。使用VS+visualGDB编写,当然也可以直接拿源码到linux上编译运行
三、TCP报文格式 TCP报文包含源端口号、目的端口号、序号、确认号、数据偏移、保留、标志位(如SYN、ACK、FIN等)、窗口大小、校验和、紧急指针等字段,这些字段共同确保了数据的可靠传输。 四、IP报文格式 IP...
TCP报文格式包括源端口号、目的端口号、序号、确认号、数据偏移、保留、标志位、窗口大小、检验和、紧急指针等字段,一般至少20个字节。 **2.1 TCP 连接的建立** TCP连接建立采用“三次握手”: 1. 第一次握手:...
TCP报文格式主要包括以下几个部分: 1. 源端口号和目的端口号:标识发送方和服务接收方的进程。 2. 序列号:用于确定每个数据段在发送方发送的数据流中的位置,确保数据的有序接收。 3. 确认号:接收方期望接收到的...
三菱FX5U系列ModBus TCP通信,可按此文档操作说明,能够实现FX5U PLC 通过modbus TCP与上位机PC通讯,上位机可以控制PLC运行
《网络协议报文格式大全》是一份详尽的参考资料,主要涵盖了互联网通信中涉及的各种协议报文的结构和格式。这份文档对理解网络通信的底层原理至关重要,是网络工程师、开发者以及网络安全专业人士不可或缺的工具书。...
对于TCP服务器的并发压力测试,需要添加一个TCP取样器作为请求类型,然后配置TCP服务器的名称或IP地址、端口号以及连接超时、响应超时等参数。如果需要对TCP服务器发送特定数据,比如用户名和密码,可以在TCP取样器...
《网络协议报文格式大全 v1.0》是由华为官方推出的文档,旨在为网络从业者提供一份详尽的网络协议报文格式参考。这份资源以CHM(Compiled HTML Help)格式呈现,便于用户离线查阅和快速检索。网络协议是互联网通信的...
基于 Java 的 Modbus TCP 通信 Modbus TCP 是一种基于以太网的工业现场总线协议标准,由 ...例如,假设现在需要读取保持寄存器的数值,已知设备的地址、寄存器地址和数量,对应上述的 TCP 报文格式进行询问报文编码。