refactor(main): 优化 ICMP报文构造函数的注释- 增加了对 ICMP 报文构造过程的详细注释
- 解释了校验和的计算和填充步骤 - 完善了对报文数据部分的注释 - 优化了注释的表达,使其更加清晰和准确
This commit is contained in:
parent
55ab04e18c
commit
41d46dc492
7
main.py
7
main.py
@ -102,12 +102,15 @@ def construct_icmp():
|
||||
bytes: 构造的ICMP报文。
|
||||
"""
|
||||
# ICMP 报文头部: 类型(8), 代码(0), 校验和(0), 标识符(1), 序列号(1)
|
||||
# 一开始校验和设为0,因为之后需要先计算校验和
|
||||
icmp_header = struct.pack('!BBHHH', 8, 0, 0, 1, 1)
|
||||
# ICMP 报文的数据部分,这里简单地使用 'Ping' 作为示例数据
|
||||
data = b'Ping'
|
||||
# 计算校验和
|
||||
# 计算校验和,确保报文的完整性
|
||||
checksum = calculate_checksum(icmp_header + data)
|
||||
# 填充校验和字段
|
||||
# 填充校验和字段,完成报文头部的构造
|
||||
icmp_header = struct.pack('!BBHHH', 8, 0, checksum, 1, 1)
|
||||
# 返回完整的ICMP报文
|
||||
return icmp_header + data
|
||||
|
||||
# 构造 UDP 报文
|
||||
|
Loading…
Reference in New Issue
Block a user