---------------------
TCP报文格式
解析TCP头部数据20字节固定首部:ec 61 8f 50 06 5c b7 11 00 00 00 00 80 02 ff ff b8 81 8f 50
TCP 报文 =以太网头部(14字节)+IP 头部(20个字节)+TCP 头部(20字节)+TCP数据部分
源端口占2个字节:ec 61;0xec61转化为十进制为60513 ;发送tcp包的进程端口为60513
目的端口占2个字节: 8f 50; 0x8f50转化为十进制为36688 ;接受tcp包的进程端口为36688
序号字段占4个字节:06 5c b7 11
确认号字段占4个字节:00 00 00 00
数据偏移占4bit(位):0x80 转化为2进制为 1000 0000 数据偏移为1000 为8;数据偏移的单位为4字节;数据偏移=4*8=32字节
保留字段 占6位:0x80 0x02;0x80的低4位和0x02的高2位;1000 0000 0000 0010绿色的字段表示的保留字段
01 0010 这6位的数据解析:
第1位:URG(紧急比特)当 URG =1 时,表明紧急指针字段有效.它告诉系统此报文段中有紧急数
据,应尽快传送 (相当于高优先级的数据 )。
第2位:ACK(确认比特)只有当 ACK=1 时确认号字段才有效。当 ACK=0 时,确认号无效。
第4位:RST(复位比特) 当 RST =1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他
原因),必须释放连接,然后再重新建立运输连接。
第5位:SYN(同步比特)同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。
第6位: FIN (终止比特) 用来释放一个连接。 当 FIN=1 时,表明此报文段的发送端的数据已发送完毕,
并要求释放运输连接。
窗口字段占2个字节:0xff 0xff; 0xff转化十进制为 65535;窗口字段是用来控制对方发送的数据
量,单位字节,tcp 连接的一端根据设置的缓存空间大小确定自己的接收窗大小,
然后通知对方以确定对方发送窗口的上限。
检验和占2个字节:检验和字段检验的范围包括 首部 和数据 这两部分。在计算检验和时,要在 TCP报
文段的前面加上 12 字节的伪首部。0xb8 0x81
紧急指针字段: 占 2个字节 ,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
0x00,0x00.
选项字段 : 长度可变。 TCP 首部可以有多达 40 字节的可选信息,用于把附加信息传递给终点,或
用来对齐其它选项 , 此报文选项字段占12个字节; 02 04 05 b4 01 03 03 01 01
01 04 02
填充字段 : 这是为了使tcp整个首部长度是 4 字节的整数倍
IP头部信息的分析
IP数据包格式
45 00 00 34 29 23 40 00 40 06 00 00 c0 a8 c7 f0 b7 e8 77 d9
版本字段:占4位。0x45;版本字段=4 说明当前的IP协议的版本为4,通常称为IPV4,下一个版本为6,
通常称为IPv6;
首部长度:占4位。0x45; IP报文的首部长度=5 单位为4个字节;IP首部字节数=5*4=20个字节;IP首
部长度都是4的整数倍
服务类型:占 8 位,服务类型
0 1 2 3 4 5 6 7
优先级:占3位,用于表示数据报文的重要程度,优先级取值0(普通优先级)~7(网络控制高优先级)
D、T 和 R 位表示本数据报希望的传输类型。
D 表示低时延( Delay)需求
T 表示高吞吐量( Throughput )要求
R 代表高可靠性( Reliability )要求
总长度字段:占2个字节,因此数据报文的最大长度为2 ^16 -1=65535 字节; 0x00 0x34 表示总长度
(首部与数据之和长度)=0x0034=52字节=IP 首部(20个字节)+TCP首部(20个字
节)+TCP(选项长度12个字节)
片偏移:0x40,0x00(0100 0000 0000 0000)占13位,片偏移表示的是:较长的分组在分片后,某片
在原分组中的相对位置。 也就是说, 相对用户数据字段的起点,该片从何处开始。片偏移以
8 个字节为偏移单位。这就是说,每 个分片的长度一定是 8 字节( 64 位)的整数倍。
寿命(生存时间): 占 8 位 ,0x3d,生存时间字段常用的的英文缩写是 TTL(Time To Live) ,表明是数据报在网络中的寿命。 由发出数据报的源点设置这个字段。 其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为 TTL 的单位。每经过一个路由器时,就把 TTL 减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于 1 秒,就把 TTL 值减 1。当 TTL 值为 0 时,就丢弃这个数据报。
协议 :占 8 位,0x06;协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的 IP层知
道应将数据部分上交给哪个处理过程。
首部检验和:占2个字节,0x56,0x72;这个字段只检验数据报的首部,但不包括数据部分。这是因为数
据报每经 一个路由器, 路由器都要重新计算一下首部检验和 (一些字段, 如生存时
间、 标志、片 偏移等都可能发生变化) 。不检验数据部分可减少计算的工作量。
源地址: 占 32 位。 c0 a8 c7 f0 =192.168. 199.240
目的地址:占 32 位。 b7 e8 77 d9 =183.232.119.217
udp报文格式
Tcp协议的连接管理
主机192.168.199.2向主机183.232.119.2发起连接请求
主机183.232.119.2向主机192.168.199.2应答
主机192.168.199.2向183.232.119.2应答
第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
第三次握手的数据包
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
就这样通过了TCP三次握手,建立了连接。
Ip报文格式
类型和首部长度各四位 IP总长度,以太网帧长度92-以太网帧头部14=
Icmp报文格式
数据链路层的帧格式
原文地址:https://www.cnblogs.com/djh123/p/9980758.html