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协议要做的事情。(关于ARP的具体知识,见《TCP/IP 基础学习》)
4.基本转发的概念
在数据通信网络中,设备之间的通信基本上是根据TCP/IP协议,在IP网络中运行的特定功能的设备,都可以称之为端系统,PC是一种最常见的端系统,网络中路由器、交换机就是用来互联不同的端系统,让它们进行透明的通信。
三层转发基本原理
之前我们学习了二层转发,知道二层转发是一种基于OSI中的数据链路层的数据帧的存储转发技术,二层交换是依靠MAC地址和VID号来确定转发方向的。那么,三层转发和二层转发有什么区别呢?
1.数据转发依靠的关键字不同,二层转发主要依靠MAC地址,而三层转发主要依靠IP地址。
2.数据交换的范围不同,二层交换指在同一网段内的通信,三层交换指跨网段的通信。
3.在三层转发的过程中,还要进行二层的封装。也就是说,在转发过程中二层帧头中的(源、目的)MAC地址是要改变的。但是IP数据报中的源IP和目的IP地址是不会改变的
5.IP路由表
路由是IP层转发的依据,路由包括
•目的网络/前缀长度
•下一跳地址IP路由表
•出接口
•……
查看路由表的命令
•Show ip route
Show fib
路根据路由产生的方式分
1.直连路由–本地接口IP网段对应的路由,优先级最高
2.静态路由-手工配置的路由,优先级较高
3.动态路由-各种路由协议产生的路由优先级有高有低由匹配
匹配原则--最长路径匹配原则
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(网关)收到报文,发现是三层报文(原因是报文的目的mac是自己的mac)
(9) Router(网关)检查自己的路由表(FIB),发现目的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转发报文