每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报;控制平面的主要作用是协调这些本地的每路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。
注意:路由器没有网络层以上的部分:因为路由器不运行应用层、运输层协议!
※:
转发是在数据平面中实现的唯一功能! 路由选择在网络层的控制平面中实现!
转发发生的时间尺度很短,因此用硬件来实现,
路由选择发生的时间尺度长的多,因此选用软件来实现。
在每台路由器中都包含转发和路由选择两种功能。
控制平面:传统的方法:路由器中物理上存在的所有转发表的内容是由人类网络操作员直接配置的!
控制平面:SDN方法:远程控制器计算和分发转发表以供每台路由器所使用!、SDN:软件定义网络
相关术语:
网络服务模型:定义了分组在发送与接收端系统之间的端到端运输特性!
路由器工作原理:
说明:
在每台路由器中都包含转发和路由选择两种功能。
路由选择处理器: 执行控制平面功能
说明:
1、路由器的输入端口、输出端口和交换结构几乎总是用硬件实现!
2、控制平面的功能通常用软件实现,并在路由选择处理器(通常是一种传统的CPU)上执行!
分组调度:FIFO、优先权排队(抢占、非抢占)、循环排队规则
说明:
1、UDP就是基于IP实现的!
2、网络层分组被称为数据报!
说明:
数据也被称为“有效载荷”!
寿命:TTL(Time-To-Live)
说明:
其中标志又分为:MF 和 DF:
MF(More Fragment)=1表示后面还有分片,MF=0表示最后一个分片。
DF(Don’t Fragment)=0时才允许分片。
IPv4数据报分片:
并不是所有链路层协议都能承载相同长度的网络层分组。
(例如:以太网帧能够承载不超过 1500字节的数据,而某些广域网链路的帧可承载不超过576字节的数据。一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit, MTU) 。因为每个IP数据报封装在链路层帧中从一台路由器传输到下一台路由器,故链路层协议的MTU严格地限制着IP数据报的长度。对IP数据报长度具有严格限制并不是主要问题。问题在于在发送方与目的地路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的MTU。)
决该问题的方法:将IP数据报中的数据分片成两个或更多个较小的IP数据报,用单独的链路层帧封装这些较小的IP数据报,然后通过输出链路发送这些帧。每个这些较小的数据报都称为片 (fragment)。
片在其到达目的地运输层以前需要重新组装。TCP与UDP的确都希望从网络层收到完整的、未分片的报文。
IPv4的设计者决定将数据报的重新组装工作放到端系统中,而不是放到网络路由器中!
所以IPv4的设计者将标识、标志和片偏移字段放在IP数据报首部中,让目的主机执行这些重新组装的任务。
说明:
当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标识号。发送主机通常将它发送的每个数据报的标识号加1。当某路由器需要对一个数据报分片时,形成的每个数据报(即片)具有初始数据报的源地址、目的地址与标识号。当目的地从同一发送主机收到一系列数据报时,它能够检查数据报的标识号以确定哪些数据报实 际上是同一较大数据报的片。由于IP是一种不可靠的服务,一个或多个片可能永远到达不了目的地。因为这种原因,为了让目的主机绝对地相信它已收到了初始数据报的最后一个片,最后一个片的标志比特被设为0,而所有其他片的标志比特被设为1。另外,为了让目的主机确定是否丢失了一个片(且能按正确的顺序重新组装片),使用偏移字段指定该片应放在初始IP数据报的哪个位置。
相同的数据报分片之后的片具有相同的标识号!
考点:如何分片!
片偏移:在分片后某片在原分组中的相对位置,片偏移以8个字节为一个偏移单位,即:每个分片的长度一定是8字节的整数倍!
所以!分片的时候要用起始序号/8(字节),如果是比特要转成字节(1字节=8比特)
第一个片的起始序号从0开始。
例一:
片偏移值:
片1:起始序号(0)/ 8(字节)= 0 ,所以片位移值:0
片2:起始序号(800)/ 8 (字节)= 100, 所以片位移值:100
片3:起始序号(1600)/ 8 (字节)= 200,所以片位移值=200
注意:
265:代表数据报、片的标识,同一个数据报分出去的片的标识相同!
820、820、620:片的总长度=首部长度(最少为20字节)+数据长度;
0、100、200:片偏移值。片偏移值 :使用去除了首部长度的纯数据长度部分进行计算!
数据报也有首部长度,所以原始数据报总长度=2000+20,数据编码号为:0—2199(2000个字节)
例二:
说明:
分片的时候不要去管首部长度,直接对数据长度部分进行处理,处理完了之后,再在头部加上20字节。(800+20)
接收端最后也可以不用取反,全部为1也可以判断。
说明:
1、主机与物理链路之间的边界叫作 接口 (interface)
一台主机通常只有一条链路连接到网络,主机中的IP想发送一个数据报时,它就在该链路上发送
2、路由器与它的任意一条链路之间的边界也叫作 接口
一台路由器因此有多个接口,每个接口有其链路
3、IP要求每台主机和路由器接口拥有自己的IP地址,从技术上讲,一个IP地址与一个接口相关联,而不是与主机或者路由器
说明:每个IP地址长度为32比特(等价于4字节),因此总共有2^32个可能的IP地址。
考点:IP地址的转换(本质:二进制到十进制的相互转换)
说明:
A类IP地址:网络地址8位(一位必须为0,还剩7位),有两位特殊的不能用,所以网络地址范围:1.0.0.0 到 126.0.0.0,主机地址同理。
1)直接广播地址
图中即为C类的直接广播地址:主机号全为1!
2)受限广播地址
3)“这个网络上的特定主机”地址
说明:即将分组发给本网络中指定的那台主机!
4)回送地址
说明:
同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的,路由器也要分配主机号(错误!)不是路由器、主机分配主机号,是接口接口接口,一台主机一般只有一个接口,而一台路由器可以有多个接口。
说明:一种特殊的网络:即是子网,用于连接R1与R3的接口 或 R1与R2
说明:下一跳地址,即是下一个路由器的(入)接口
x即是网络前缀,组织内部的设备的IP地址将共享共同的前缀,即是确定的!
说明:前缀表示法:/18 (8+8+2),即:255.255.192.0/18:即为该子网地址
注意:子网掩码采用的是CIDR!不再是IP分类,所以不需要按照ABC类进行划分,但ABC类IP地址也有它们对应的子网掩码!
1)
2)
3)/26
这里出现了几个子网呢?
3个子网:223.1.1.0/24、223.1. 2. 0/24和223. 1.3.0/ 24
只有这些吗???
注意到在本例中还有其他3个子网: 一个子网是223.1.9. 0/24,用于连接路由器R1与R2的接口;另外一个子网是223. 1.8. 0/24,用于连接路由器R2与R3的接口;第三个子网是223. 1.7.0/24,用于连接路由器R3与R1 的接口。
说明:CIDR中没有分类的概念,网络号全0、全1都可以用!!!!
说明:/20代表网络前缀,都是一样的,只有后面剩下的12位不同,所以还有2^12个地址!
说明:路由表中只存网络地址(就是绝对跟主机是不相关的,是存的某个网络(子网)的网络地址。
路由聚合:
说明:DHCP具有将主机连接进一个网络的网络相关方面的自动能力,故它又被称为即插即用协议或零配置协议。适用于主机频繁地加入和离开网络。
例如:一个学生带着便携机从宿舍到图书馆再到教室,可能在每个位置学生连接到一个个新的子网,因此在每个位置都需要一个新的IP地址。
DHCP是一个客户-服务器协议(应用层协议)。
说明:DHCP协议(是应用层协议!),是利用UDP协议进行实现的
说明:外出IP数据报的源IP地址一样,但是属于NAT的不同端口,在局域网中的私有IP地址不同
WAN:广域网
LAN:局域网