计网第二次试验
Posted Zero_Adam
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计网第二次试验相关的知识,希望对你有一定的参考价值。
目录:
一、观察分析IPv4分组各个字段
1. 捕获IPv4,观察各种值
命令:ping -l 47.98.148.7
版本号:ipv4的
首部长度字段: 20 个字节
最小值:20 ,固定有20的字节信息。
更大值:小于60就好吧。
最大值:60
验证总长度字段: 16进制的:5*16*16 + 13*16 + 12 == 1500
。然后datra是1480 , 1480 + 20 == 1500 。正确!
2. tracert
最多就跳到14跳。也是14跳的时候完成跟踪。
tracert工作原理:ttl从1开始一个一个递增;
第一次ttl为 1 ,然后 路径中的第一个 路由器接收到了这个数据报之后,ttl -1 ,变成了 0 。 但是此时没有到达想要的 目的IP,所以该第一条路由器,会发回来一个 超时的包,这个包的src ip。源地址,就是第一个路由器的ip地址,
一次类推,ttl递增,一直到 达到了目的ip时,tracert停止,
看看包的数量:总共79个。
29 * 2 + 13 == 71
…没对上号,
再重新跑一次
3. IPv4的协议字段:
ICMP是 1 . TCP是6 , UDP是 17
4. ping -f 看DF值
我往外发包的时候,不允许分片。 DF=1
它的返回包是 允许分片的。 DF=0
5. 观察标识字段:
是不一样的,见下图。
是为了 在主机拼接分片的时候 别拼接错了。标识字段相同的一些片, 组合在一起,
难点:tracert(教员上课讲的)
tracert的协议是icmp 协议。
端口不可达:
137端口: NetBios协议占据着这个137端口,
-ns 137 是名字解析服务。
一次发送三个包,
探测第一挑路由器的ip的时候,
发送三个ttl=1 的包,故意发送一个会ttl超时的包,所以到第一个路由器的时候就是0了,然后就会返回一个ttl超时报,就是黑色的包,
用意是获取到路由器的ip地址,那么就看,这个ttl超时报的 sorce的ip地址,也就是那个 路由器的ip地址。
然后 发送一个ttl为2 的包,
然后报到了第二挑路由器的时候,又超时了。然后又发送一个 ttl 超时报,然后就获得了 第二跳路由器的ip了。
假设没有 没有 tracter 来看路径
只有wireshark来找到 路径,
看黑色的超时包,看源ip,
到最后一跳是正常了,就是reply了,就不是 ttl 超时包了。
二、观察IPv4数据报分片与重组
1. ping 和 ping -l 的区别
确实,刚开始都请求超时,,,啊,好像是我自己的网络问题啊,,,看靠下的两个图片就好。
原因,不是很明白讲真的。。
因为 要分片吧,然后数据报就变多了。而且到了目的主机之后,还要组合什么的。就会慢了。去的时候花费的时间长,自然总时间也长了。
2. 看分片的一些东西:
命令:ping -l 3000 47.98.148.7
。和课堂上的数据一样。
- 3个分片;
- identification是相同的,同一个分组都是相同的,便于到了目的主机之后组装。
- MF more fragments 后面是否有分片了还, 所以前2个片的MF为1,最后一个的MF是0
- DF don’t fragment,当然是允许分片的啦,所以这3个的DF都是 0
- 数据
- 数据部分1480 ,总长度 1514 . 1480 + 20 + 14 == 1514
ip头的固定长度是 20 。 然后mac的头 14 .所以就这样了呀
-
第一个包的片偏移为 0 ,正常
-
第二个包的片偏移,,,可能是我的wireshark更新了??直接显示的是1480 ,当时在实验室好像是
1480/8 == 185
.。实验室的Fragment Offset
是 185 . -
然后第三个我是 2960, 同样,实验室的是 370 . 就是 370*8 = 2960 .
-
同样,根据下面的16进制数也能够验证我们的正确性。
3. ping分片后,数据变多。
分别为 1514 , 1514 , 82 .
1514 的由来: 1480 + 20 +14
1514 的由来: 1480 + 20 +14
82 的由来: 40 + 20 + 14 + 8
20
是ip头固定的20
个字节,14
是mac的数据
总体解释:
14
是 mac 头的长度,
本来mac是18
来着:6
字节的目的地址,6
字节的原地址,2
字节类型,然后是 IP数据报, 然后是4
字节的FCS 校验和,总共是18
个.。但是后四个字节的FCS校验完之后就去掉了,所以网络层中我们抓包都是没有FCS的,那啥,CRC校验,在数据链路层校验完了,校验正确后,才往网络层上发送,那时候FCS就去掉了。所以我们抓到的包中的mac部分是没有FCS的,所以不是18
,而是14
个字节
多了几个字节是因为,分片之后,每一个分片都要加上 IP头和MAC头的,
4. 分片中的载荷规律的寻找:
这个,,我回来之后做的实验和在实验室做的一样,三个分片的数据载荷并没有连接起来,都是从abc...
开始的。
按道理说是连接在一起的。但是,,这个ping给你填充的数据,就不给你按照顺序来,咱们也没有办法啊。。是不,
难点 : 分片与重组(教员上课讲的)
让他分片
ping -l 3000 *.*.*.*(目标)
分片分三片, 去三个,回来三个,
然后请求了4 次,
4 * 6 == 24
###??????
为什么前两个是ipv4 后一个是 icmp 啊????
总长度1514 。。 data部分是1480
多了两部分
ipv4 20个长度
以太网是 14个。 源mzc 6 目的mzc 9 type 2个字节,
然后分析分开的三个包的知识:
标识 : 三个片的标识 是一样的, 表示来源于同一个数据报, 分堆用的,就是标识,三个包的标识是相同的。
不同的来源的标识是不一样的。
标志是 三位:
第一位一般不用,
第二位: DF位。 Don’t fragment df都是 0 ,要允许分片
第三位:MF more fragment 前两个1 ,后一个 0 。
片偏移 0 185 370
然后 185 *8 == 1480
载荷:DATA字段
以上是关于计网第二次试验的主要内容,如果未能解决你的问题,请参考以下文章