<>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)的才是实际传输的序号值

技术
©2019-2020 Toolsou All rights reserved,
程序员的520,送给女友的几行漂亮的代码(python版)基于stm32控制四轮小车电机驱动(一)linux查看磁盘空间命令实验四 自动化测试工具-软件测试axios拦截器封装与使用C语言——qsort函数opencv-python傅里叶变换以及逆变换在算法研究过程中如何进行算法创新nc的安装和简单操作C语言做一个简易的登陆验证(功能)界面