<>UDP

UDP是一个简化的,没有多余的协议。
我们可以随便找一个UDP包进行分析:

其中有源端口号,目的端口号,长度,校验和(Checksum),这四个占用了32位,也就是说UDP的头部有32位
还有一个Pay Load 指的是该UDP携带的负载数据。

<>TCP

然后再分析一下 TCP 的具体内容:

如上是三次握手时的三次数据包。
仔细观察一下,sequence number和acknowledgment number的数字从 0,0—> 0,1 -------> 1,1 。
第一次:
Transmission Control Protocol, Src Port: 57361, Dst Port: 443, Seq: 0, Len: 0
Source Port:57361 Destination Port: 443 Sequence Number: 0 (relative sequence
number) Sequence Number (raw): 2840399127 Acknowledgment Number: 0
Acknowledgment number(raw): 0 1000 .... = Header Length: 32 bytes (8) Flags:
0x002(SYN) Window: 64240 Checksum: 0x64da [unverified] Urgent Pointer: 0
Options:(12 bytes), Maximum segment size, No-Operation (NOP), Window scale,
No-Operation(NOP), No-Operation (NOP), SACK permitted
第二次:
Transmission Control Protocol, Src Port: 443, Dst Port: 57360, Seq: 0, Ack: 1,
Len:0 Source Port: 443 Destination Port: 57360 Sequence Number: 0 Sequence
Number(raw): 3164801645 Acknowledgment Number: 1 Acknowledgment number (raw):
371797491 1000 .... = Header Length: 32 bytes (8) Flags: 0x012 (SYN, ACK)
Window:64240 Checksum: 0x22c8 Urgent Pointer: 0 Options: (12 bytes), Maximum
segment size, No-Operation(NOP), No-Operation (NOP), SACK permitted,
No-Operation(NOP), Window scale
第三次:
Transmission Control Protocol, Src Port: 57360, Dst Port: 443, Seq: 1, Ack: 1,
Len:0 Source Port: 57360 Destination Port: 443 Sequence Number: 1 Sequence
Number(raw): 371797491 Acknowledgment Number: 1 Acknowledgment number (raw):
3164801646 0101 .... = Header Length: 20 bytes (5) Flags: 0x010 (ACK) Window:
260 Checksum: 0x64ce Urgent Pointer: 0
TCP携带的头部信息有 源端口号(Source Port,16位),目的端口号(Destination Port,16位) ,序列号( Sequence
Number,32位),确认号(Acknowledgment Number,是指希望下次接收到的序列号值,32位),头部长度(Header
Length,4位,5字节为单位),标志位(Flags,6位),窗口大小(Window,16位),校验和(Checksum,16位),紧急指针(Urgent
Pointer,16位),选项(Options,最大40字节)

注意这里的序列号和确认号都是相对的,因为实际的序号和确认号都是随机产生的,后面带 (raw)的才是实际传输的序号值

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信