refactor(main): 优化 UDP 和 TCP 报文构造函数的代码可读性

- 在 UDP构造函数中添加注释,解释 UDP 头部的格式- 在 TCP 构造函数中添加初始化 TCP 标头字段的注释
- 优化 TCP构造函数的打包过程,增加注释说明各字段含义
This commit is contained in:
fly6516 2025-01-06 15:31:44 +08:00
parent d8b3158747
commit 1e7ce614d4

21
main.py
View File

@ -108,7 +108,8 @@ def construct_udp(src_port, dest_port):
Returns:
bytes: 构造的UDP报文
"""
udp_header = struct.pack('!HHHH', src_port, dest_port, 8, 0)
# UDP头部格式: 源端口号 (2字节), 目标端口号 (2字节), 长度 (2字节), 校验和 (2字节)
udp_header = struct.pack('!HHHH', src_port, dest_port, 8, 0) # 长度固定为8校验和暂时为0
return udp_header
# 构造 TCP 报文SYN
@ -123,15 +124,17 @@ def construct_tcp(src_port, dest_port):
Returns:
bytes: 构造的TCP报文
"""
seq = 0
ack_seq = 0
offset = 5
reserved = 0
flags = 0b000010 # SYN flag
window = socket.htons(5840)
checksum = 0
urgent_ptr = 0
# 初始化TCP标头字段
seq = 0 # 初始序列号
ack_seq = 0 # 确认序列号
offset = 5 # TCP头部的长度单位是32位字5 * 4 = 20字节
reserved = 0 # 保留字段默认为0
flags = 0b000010 # SYN标志位设置为1其他标志为0
window = socket.htons(5840) # 窗口大小使用network字节序
checksum = 0 # 校验和暂时为0
urgent_ptr = 0 # 紧急指针默认为0
# 打包TCP报文头部
tcp_header = struct.pack('!HHLLBBHHH',
src_port, dest_port, seq, ack_seq,
(offset << 4) + reserved, flags, window,