数据报转发(多网络路由)

来源:互联网 发布:insize 相机软件 编辑:程序博客网 时间:2024/06/06 08:48
 

先说一下数据的封装:
 数据从应用层开始向下传,当传到网络层时,添加一个IP数据报,IP数据报中标志有数据的源地址、目的地址
 这个源地址和目的地址是数据从开始的源地址到最终的目的地址
 网络层封装了IP数据报,再到下面是链路将上面数据层封装成帧,帧里面标志有Src、Desc,注意,这里面的Src、Desc
 也是地址,只不过其指的是Mac物理地址,数据发送都是以帧的格式发送的,所以帧里面封装的Src、Desc
 才是数据传输的真实路径,但是这个路径并不一定是从一开始 的源IP到最终的目的IP,因为这要关系到多个网络
 数据的转发。
 所以总体来说:IP数据报里面封装的源IP、目的IP是数据传输的起始、与目的地,其并不一定能到达,
 而帧里面封装的Src、Desc是要到达目的IP要走的当前路线,到了这个Desc不一定会到达目的地,可能
 还要经过无数个转发才能到达

 


下面说一下数据在多个网络中的转发

案例:   
  Lan1  
 Pc1  IP:192.168.1.2 Mac:000B.BE06.4AC1

  Router1
 接口1: IP:192.168.1.1 Mac:000B.BE36.8D86(连接局域网Lan1)
 接口2: IP:192.168.12.1      (连接Lan2)

  Lan2
 PC2 IP:192.168.3.2 Mac:0001.C934.E830
  
  Router2
 接口1: IP:192.168.3.1 Mac:00E0.8FD1.1957(连接局域网Lan2)
 接口2: IP:192.168.12.2     (连接Lan1)


上面是两个局域网通过两个路由器Router1 、 Router2 连接起来的,下面我们看一看Lan1中的Pc1向Lan2的Pc2发送数据的过程

 1、PC1在网络层形成IP数据报,里面封装了起始地址:192.168.1.2,终点地址:192.168.3.1
 2、IP数据在到链路层被封装成数据帧,帧里面标志Src:000B.BE06.4AC1(PC1 mac)     DeSc:000B.BE36.8D86(Router1 接口1Mac)
  因为IP数据报中的源地址与目的地址不是在同一个网络,所以不能直接将目的地址封装到帧中,要经过Router1路由器的转换到
  相应网络,所以就要把数据先发送到路由器,因为数据发送是按照数据帧里面的地址线路进行发送的,所以Desc 为路由器连接
  局域网的Mac 地址
 3、路由器收到数据,根据IP数据报中的目的地址IP 查询路由器路由表,如果找到与目的地址IP在同一个网络中的目的网络,那么就将数据
  发送到其下一跳网络,走到下一跳网络的路由器,再接着查找路径表,再继续转发
    。。。。。。。。。。。

 4、终于找到最后一个了、192.168.3.0,该目的地址所在的网络,那么再接着修改数据帧,因为现在的数据是从Router2的路由器开始发送的
  了,所以数据帧的Src 为:00E0.8FD1.1957,而目的地址是谁呢????
  我们来想想哈。现在已经到了一个局域网内了。接下来要做的就是在这个局域网内把IP地址为192.168.3.2 的主机找出来,然后把数据
  发送过去,因为是靠帧来进行数据传输的,我们要知道目的主机的 Mac地址,而我们怎么才能知道其Mac呢?嘿嘿。。想起来了吧。
  这不是我们学的 ARP(地址解析协议么),在Router2首先发送ARP,找到Mac,将Mac封装成帧,然后发送数据
 5、接收数据成功,返回接收消息


这就是一个简单的数据在多个网络中发达的模型,
 IP数据报只是在报头中记录了源地址IP与目的地址IP,并没有中间路由的IP地址,当路由器收到一个待转发的分组时,从路由表中查找出下
 一跳路由器的IP地址后,不是将下一跳路由器的IP地址填入IP数据报中,而是将其送给下层的网络接口软件,网络接口软件负责将下一跳
 路由器的IP地址换成硬件地址(使用ARP协议),并将此硬件地址放在连接层的Mac帧首部,然后根据这个硬件地址找到下一跳路由


记住:只要源IP地址与目的IP地址不在同一个网络,就得先把数据发送到路由器,直接将路由器Mac封装到Desc中,然后根据路由表转发,
如果路由表中没有找到与地址IP在同一个网络的记录,那么就按照默认路由指定的下一跳发达,默认路由为0.0.0.0,其掩
码为0.0.0.0,而默认路由的下一跳可以任意指定
如果找到的相匹配的网络中没有下一跳地址,那么数据会返回原来的网络

原创粉丝点击