refactor(main): 优化 UDP 和 TCP 报文构造函数的代码可读性
- 在 UDP构造函数中添加注释,解释 UDP 头部的格式- 在 TCP 构造函数中添加初始化 TCP 标头字段的注释 - 优化 TCP构造函数的打包过程,增加注释说明各字段含义
This commit is contained in:
parent
d8b3158747
commit
1e7ce614d4
21
main.py
21
main.py
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user