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:
|
Returns:
|
||||||
bytes: 构造的UDP报文。
|
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
|
return udp_header
|
||||||
|
|
||||||
# 构造 TCP 报文(SYN)
|
# 构造 TCP 报文(SYN)
|
||||||
@ -123,15 +124,17 @@ def construct_tcp(src_port, dest_port):
|
|||||||
Returns:
|
Returns:
|
||||||
bytes: 构造的TCP报文。
|
bytes: 构造的TCP报文。
|
||||||
"""
|
"""
|
||||||
seq = 0
|
# 初始化TCP标头字段
|
||||||
ack_seq = 0
|
seq = 0 # 初始序列号
|
||||||
offset = 5
|
ack_seq = 0 # 确认序列号
|
||||||
reserved = 0
|
offset = 5 # TCP头部的长度,单位是32位字(5 * 4 = 20字节)
|
||||||
flags = 0b000010 # SYN flag
|
reserved = 0 # 保留字段,默认为0
|
||||||
window = socket.htons(5840)
|
flags = 0b000010 # SYN标志位设置为1,其他标志为0
|
||||||
checksum = 0
|
window = socket.htons(5840) # 窗口大小,使用network字节序
|
||||||
urgent_ptr = 0
|
checksum = 0 # 校验和,暂时为0
|
||||||
|
urgent_ptr = 0 # 紧急指针,默认为0
|
||||||
|
|
||||||
|
# 打包TCP报文头部
|
||||||
tcp_header = struct.pack('!HHLLBBHHH',
|
tcp_header = struct.pack('!HHLLBBHHH',
|
||||||
src_port, dest_port, seq, ack_seq,
|
src_port, dest_port, seq, ack_seq,
|
||||||
(offset << 4) + reserved, flags, window,
|
(offset << 4) + reserved, flags, window,
|
||||||
|
Loading…
Reference in New Issue
Block a user