IP三层转发详解

1.网络层的定义

  网络层(network layer ):它位于OSI模型中的第三层,介于运输层与数据链路层之间,提供发信端到目标端之间的信息传输服务。网络层的数据以IP数据报的形式传输。

2.IP协议

  IP提供了不可靠,无连接的数据报传送服务。它定义了在互联网上传输数据的具体格式。IP实现两个基本功能:寻址及分片。
IP地址由网络号和主机号两部分组成,网络号标识互联网中的一个特定网络,主机号标识在该网络中的一台特定主机,最常用的地址表示方法是点分十进制法。如:192.168.10.1关于IP协议的具体讲解见《TCP/IP 基础学习》

3.ARP

  ARP,即地址解析协议,实现通过IP地址到物理地址的映射。
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址,而在TCP/IP协议栈中网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。

4.基本转发的概念

  在数据通信网络中,设备之间的通信基本上是根据TCP/IP协议,在IP网络中运行的特定功能的设备,都可以称之为端系统,PC是一种最常见的端系统,网络中路由器、交换机就是用来互联不同的端系统,让它们进行透明的通信。

三层转发基本原理
  二层转发是一种基于OSI中的数据链路层的数据帧的存储转发技术,二层交换是依靠MAC地址和VID号来确定转发方向的。那么,三层转发和二层转发有什么区别呢?

  1. 数据转发依靠的关键字不同,二层转发主要依靠MAC地址,而三层转发主要依靠IP地址。
  2. 数据交换的范围不同,二层交换指在同一网段内的通信,三层交换指跨网段的通信。
  3. 在三层转发的过程中,还要进行二层的封装。也就是说,在转发过程中二层帧头中的(源、目的)MAC地址是要改变的。但是IP数据报中的源IP和目的IP地址是不会改变的

5.IP路由表

路由是IP层转发的依据,如下图

  1. 直连路由–本地接口IP网段对应的路由,优先级最高
  2. 静态路由-手工配置的路由,优先级较高
  3. 动态路由-各种路由协议产生的路由优先级有高有低由匹配

路由的匹配原则是最长路径匹配原则,详见另一片文章《IP发展史》

6.三层转发举例

PC1准备向PC2发送数据包

  1. PC1检查报文的目的IP地址,发现和自己不在同一网段,则需要进行三层转发,通过网关转发报文信息
  2. PC1检查自己的ARP表,发现网关的MAC地址不在自己的ARP表里;PC1向Router发起arp请求
  3. PC1—>Router(网关)发出ARP请求报文
  4. Router将PC1的MAC地址学习到自己的ARP表
  5. Router(网关)—>PC1发出ARP应答报文
  6. PC1学习到Router(网关)的mac地址,发出报文,此时源ip、目的ip不变,目的mac为Router(网关)的mac
  7. PC1—> Router(网关)发出报文
  8. Router(网关)收到报文,会将数据提交给上层IP协议栈
  9. Router(网关)检查自己的路由表,发现目的IP在自己的直连网段
  10. Router检查自己的arp表,如果发现有与目的ip对应的mac地址则直接封装报文(目的ip、源ip不变,目的mac为查arp表所得mac)发送给PC2
  11. 如果查ARP表没有得到与目的ip对应MAC,则重复(3)发arp请求
  12. PC2收到ARP广播报文,发现目的IP是自己的IP,于是给Router发送ARP应答报文。报文中会附上自己的mac地址。
  13. Router收到应答报文后,目的mac改为PC2的mac,然后向PC2发送数据帧。
  14. PC2向Router发送报文
  15. Router收到报文后,向PC1转发报文

 

posted on 2022-02-24 13:46  sudochen  阅读(866)  评论(0编辑  收藏  举报

导航