1.2【基本路由原理】(三层转发原理)2

三层转发原理:

 
IPV4 头部:
长度(20B~60B)
 
##【头部结构】:
 
第一行(32bit):版本 (4bit) 首部长度(4bit) TOS(8bit)总长度(16bit)
第二行(32bit):标识(16bit) 标志(3bit)偏移地址(13bit)
第三行(32bit):TTL(8bit)协议标识(8bit)校验和(16bit)
第四行(32bit):源IP
第五行(32bit):目的IP
//标准的头部是包含前5行,每一行4个字节,共20个字节
1.2【基本路由原理】(三层转发原理)2_第1张图片
第六行(32bit):填充字段 (40B)  填充时需要按照4的倍数填充
 
 
***************************************************************
如果把首部长度全部填充为1的话,
是15,表示15行,IP头部长度是15*4=60B;
一般情况下是5,标准头部,表示5行,IP头部长度是5*4=20B;
1.2【基本路由原理】(三层转发原理)2_第2张图片
填充选项:
  1.2【基本路由原理】(三层转发原理)2_第3张图片
 ****************************************************************************
TOS:服务质量:给IP包打标签,通过这个字段给IP包进行分级,
通过不同的分级,可以标识IP包的优先性,针对不同的级别执行优先转发。
**************************************************************************
偏移地址:分片
************************************************************************
TTL:生存时间:1.防止三层的环路问题,(不是路由的环路是ip包的 环路)        2.可以限制IP包的转发距离
 
二层为什么会有广播风暴会有环?
因为在二层的帧头里面是没有防环机制的,需要加协议,比如生成树来防止环路。
TTL值是8个比特,25 5环,减到0,IP包会被丢掉
 
TTL值减到0,IP包会被丢掉,对还是不对?不对
TRACE的原理:
可以做一个追踪,首先将TTL设为1,然后设为2,设为3,这样把网络上经过转发的所有设备的IP地址拿过来。
 
*PC1->1:(类比快递)
1.发送TTL=1报文,校验IP包的完整性checksum,TTL-1=0;
2.TTL=0,需要判断一下目标IP地址是不是本地的IP?;
3.如果不是本地的IP,需要说明 这个IP包是需要转发的,但是TTL=0,需要被丢弃;
4.丢弃以后会告诉发送源什么原因造成丢包的,会回送ICMP超时应答,丢弃的原因:TTL超时应答。
通过应答, 可以获取到这台设备的IP地址
1.2【基本路由原理】(三层转发原理)2_第4张图片
 
//trace/ping 这两个是工具,不是协议
 
PING-ICMP
TRACE:
tracert(ICMP)
traceroute(UDP)
 
可以 通过tracert可以把其他设备的IP给捞过来:通过TTL值。
//看书:6-ICMP
TTL超时 代码:110
 
*PC1->2
TTL=2
 
*PC1->3
TTL=3,IP包不需要转发,接收。
 
3可能会给源PC1回送ICMP端口不可达的报文-tracerout(IP的上层 封装的是UDP的协议,UDP端口号大于30000,UDP进程下没有开这个 端口号,会回送端口不可达的报文)代码:33
 
3可能会给源PC1回送reply信息-tracert;代码:00
  1.2【基本路由原理】(三层转发原理)2_第5张图片
 
ping返回TTL值:靠ICMP的Reply:看对端的TTL值信息。
ping网关:255
ping百度:55
时间:有一个定时器
 
*****************************************************************************
协议标识
是为了标识上层的协议:[1=icmp 6=tcp 17=udp 88=eigrp 89=ospf
47=GRE]
*****************************************************************************
校验和
只针对包头做校验,而不包括所传递的数据
*****************************************************************************
分片
为什么会有分片?
要传递的数据大于MTU值最大传输单元1500B;
MTU标识接口一次发送的IP数据包 的长度可以到达多少个字节;
IP 3000,按MTU的大小值来进行分片;
 
标识字段-用来标识同一个IP包,到目的可以进行重组;
 
标志位(3bit)
DF = 0:IP包可以被分片; 1:IP包不能被分片;默认是0
1.2【基本路由原理】(三层转发原理)2_第6张图片
MF = 3745
 
************************************************************************
## 实验???
关于DF分片的实验
1.实验现象
Packet sent with the DF bit set
MMMMMM
 
ping 3.3.3.3 size 1500 df-bit re100
 
df-bit不能被分片 
 
2.实验过程:
 
3.实验分析:
R2收到以后需要转发,IP包的长度需要大于出接口的MTU值,需要分片。但是IP包里面IP包置位了
(ping 3.3.3.3 255.255.255.255 siza 1500 df-bit),说明IP包不能被分片,丢包。
 
这时,丢弃者就会像发送源回送一个ICMP差错应答,原因就是IP包不能被分片,同时回送的IP包里面还包括这台设备出接口的MTU值 代码:34
 
是否分片只看出接口的MTU值,和入接口是没有关系的,入方向收包是不检查MTU的,只在出方向转发的时候才会检查MTU,
所以,R3回复的时候,fa0/0没有改变MTU,3返回的包没有问题。
 
4.实验结论:不能被分片造成丢包的
 
5.抓包分析:
在R2的f0/0上抓包分析
 
1.2【基本路由原理】(三层转发原理)2_第7张图片
 看Request里面,DF位,置1
 看回送的数据包,DF位,置0
1.2【基本路由原理】(三层转发原理)2_第8张图片
 
1.2【基本路由原理】(三层转发原理)2_第9张图片

 注意:在校园网里面就,保证MTU的一致性
实际上,在IPv4里面
PPPOE   MTU值改成1492,为什么?
标准的IP头【IP+上层协议+数据】,因为后续需要增加一些头部,PPPOE需要增加PPOE的头部和PP的头部,占了8个字节,如果按1500来添的话就会造成分片。
MPLS往里插标签,IPsec里添加ESP 都会造成分片;
丢了一片就会造成不通或者时通时不通,所以要保证整个网络MTU的一致性。
 
MTU一致性的测试方法:PMTUD(Path MTU Discovery,路径MTU发现)
方法:发个1500B或2000B报文,将DF比特位置位,经过一台设备如果出接口MTU值小于1500B会丢包;
丢包会回送一个ICMP的差错应答,告诉你因为什么原因丢包,同时这个报文里面会携带丢弃者的MTU值,可以通过这种方法获得整个转发路径上面的最小设备的MTU值。
  1.2【基本路由原理】(三层转发原理)2_第10张图片
1->2
获取1300,用1300发
1->3
获取1000,用1000发
1->4
获取最小MTU,用最小MTU去封装数据报文
1.2【基本路由原理】(三层转发原理)2_第11张图片
 
 

 
这也是校园网的一种排查思路。
 

************************************************************************
偏移地址:用来标识分片的起始位置,通过起始位置知道哪片是第一片,哪片是第二片,然后做一个重组
 
//看书:分片-在UDP章,TCP不会被分片,因为TCP有MSS,可以自动分段,避免分片
如果用UDP封装数据的话,很多时候会限制填充的数据长度,这个数据长度是512B
 
rip 里的response报文可以传送多少条路由?
 
 跳数的话:最大15跳,16不可达;
 
25条路由:rip每条路由的长度是20个字节,20*25=500B
rip通过UDP承载的,UDP头部长度:8B  rip头部长度:4B
500+8=4=512B;
 
为什么rip的每个response报文最多只能传送25条路由?
是因为它已经限定了UDP报文的长度,用UDP传送数据的话,很多协议会将最大填充数值固定在512B,不能太大,太大就会造成IP分片;为了避免分片
***************************************************************************
ARP:地址解析协议
用于解析MAC地址,实际上,在LAN网中才有ARP,在WAN中是没有ARP的,因为不需要,WAN网中没有MAC
1.ARP的报文类型
两种:request     reply
2.ARP的报文长度:
28B
3.ARP的报文结构:
 硬件类型
 协议类型
 硬件长度
 协议长度
  OP字段[1=request  2=reply]
  发送方 MAC
  发送方IP
  目的方MAC
  目的方IP
4.ARP是靠什么协议来承载的?
ARP算是2.5层协议,不算2层,也不算3层(ARP没有IP头部)
5.ARP报文长度是28B,它满足最小MTU值吗?
  最小MTU是46B,ARP需要填充0来满足最小MTU的长度
6.ARP和RARP有什么区别?
   ARP:将IP解析成MAC
   RARP:将MAC解析成IP(无盘工作站:只有服务器才有硬盘,PC没有硬盘,使用网卡启动加载系统:网卡会发送一个RARP广播报文,通告自己的MAC地址,服务器收到后会给你回送一个IP,PC获取IP后可以从服务器加载系统,对服务器,网络性能要求比较高)
所有的request报文都是广播;
           reply报文都是单播;
7.ARP的类型:
普通ARP(获取MAC地址)、
代理ARP、
免费ARP(1.IP地址冲突检查 2.通告MAC地址)
(自己发自己一个ARP请求,如果收到一个ARP应答,表示网络 中有跟我一样的IP地址,就会报错;
免费ARP也会去刷新MAC地址);
 
8.收到一个ARP请求后,在本地会 生成ARP的映射表
show arp
arp -a  看到绑定关系
 
在思科路由器里面ARP表项的老化时间是多长?
4个小时
 
【实验验证】接收到下面哪个报文会刷新ARP的4个小时的老化时间?
1、ARP request ?
2、免费ARP ?
只有免费ARP才会刷新ARP的time out这个定时器
1.2【基本路由原理】(三层转发原理)2_第12张图片
 
 
1.2【基本路由原理】(三层转发原理)2_第13张图片
 
 
 
1.2【基本路由原理】(三层转发原理)2_第14张图片
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 



来自为知笔记(Wiz)



转载于:https://www.cnblogs.com/xuxaut-558/p/11105436.html

你可能感兴趣的:(1.2【基本路由原理】(三层转发原理)2)