发现:在承载ICMP的IP的报文中的协议字段的值是0x01
作为ping命令的原理,自己通过ping同一宿舍的电脑但是失败的报文的场景:
ICMP询问报文中的回送请求或回答报文中的回送报文:
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
1 |
20 |
6a |
8a |
0e |
12 |
35 |
28 |
d2 |
44 |
c7 |
d2 |
62 |
08 |
00 |
45 |
00 |
2 |
00 |
3c |
66 |
8b |
00 |
00 |
40 |
01 |
68 |
f6 |
0a |
6c |
cb |
32 |
0a |
6c |
3 |
cb |
35 |
08 |
00 |
4d |
5a |
00 |
01 |
00 |
01 |
61 |
62 |
63 |
64 |
65 |
66 |
4 |
67 |
68 |
69 |
6a |
6b |
6c |
6d |
6e |
6f |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
5 |
77 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
|
直接分析ICMP报文部分:
首部8字节:3C~3J,
08 |
类型:1个字节,0x08:表示这个ICMP的回送请求报文
00 |
代码:0x00:不知道什么意思
4d |
5a |
检验和:不知道只是首部检验和还是整个ICMP报文的检验和
00 |
01 |
这个要分开说明,分别是identifierBE和Identifier LE,依然不知道是什么意思
00 |
01 |
这个也要分开说明,分别是:sequence number BE 和sequence number LE依然不知道什么意思,不过应该和这是第几个ping包有关
下面的从3K~5J共32B的数据:却是:
Abcdefghijklmnopqrstuvwabcdefghi
经自己查看发送的request和reply基本上都是这个ascii码序列,但是也有的不是这个序列
ICMP的询问报文中的回送请求或回答中的回答报文:
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
1 |
28 |
d2 |
44 |
c7 |
d2 |
62 |
b8 |
70 |
f4 |
31 |
a0 |
08 |
08 |
00 |
45 |
00 |
2 |
00 |
3c |
00 |
8b |
00 |
00 |
40 |
01 |
ce |
f4 |
0a |
6c |
cb |
37 |
0a |
6c |
3 |
cb |
32 |
00 |
00 |
55 |
47 |
00 |
01 |
00 |
14 |
61 |
62 |
63 |
64 |
65 |
66 |
4 |
67 |
68 |
69 |
6a |
6b |
6c |
6d |
6e |
6f |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
5 |
77 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
|
直接看ICMP报文部分:
首部8字节:3C~3J
00 |
类型:0x00,表示这个是ICMP回送请求或回答报文中的回答报文
00 |
代码:code,不知道什么意思
55 |
47 |
检验和:不知道只是首部检验和还是整个ICMP报文的检验和
00 |
01 |
这个要分开说明,分别是identifierBE和Identifier LE,依然不知道是什么意思
00 |
14 |
这个也要分开说明,分别是:sequence number BE 和sequence number LE依然不知道什么意思,不过应该和这是第几个ping包有关,用于标识这是回送的第几个请求包
下面的3K~5J的数据共32B,依然是:序列!abcdefg···
ICMP的差错报告报文中的终点不可达报文,
自己意外的捕获到了这种报文:
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
1 |
28 |
d2 |
44 |
c7 |
d2 |
62 |
14 |
14 |
4b |
1b |
53 |
a7 |
08 |
00 |
45 |
00 |
2 |
00 |
38 |
21 |
09 |
00 |
00 |
3e |
01 |
7a |
03 |
0a |
00 |
02 |
1b |
0a |
6c |
3 |
cb |
32 |
03 |
03 |
c6 |
61 |
00 |
00 |
00 |
00 |
45 |
00 |
00 |
99 |
70 |
13 |
4 |
00 |
00 |
01 |
11 |
83 |
a8 |
0a |
6c |
cb |
32 |
ef |
ff |
ff |
fa |
c9 |
52 |
5 |
07 |
6c |
00 |
85 |
65 |
57 |
|
直接分析ICMP的报文,
03 |
类型:0x03,标识这个是终点不可达报文
03 |
代码:code,根据wireshark上的提示,这个应该是表达这是端口号不可达的意思
c6 |
61 |
检验和:根据wireshark的提示这个检验和检验正确
00 |
00 |
00 |
00 |
这四个字节,wireshark上面好像把这个忘了,应该是直接填充为0吧?
下面是数据字段:3K~5F共28B字节数据,由所需要的报告的ip报文的首部和需要的报告的ip报文的数据的前8字节组成,这里就是有
45 |
00 |
00 |
99 |
70 |
13 |
| |||||||
00 |
00 |
01 |
11 |
83 |
a8 |
0a |
6c |
cb |
32 |
ef |
ff |
ff |
fa |
和
c9 |
52 |
07 |
6c |
00 |
85 |
65 |
57 |
组成!