网络层——点到点
文章目录
- 网络层——点到点
- 功能
- 路由算法
- IPV4
- NAT 网络地址转换
- 子网划分与子网掩码、CIDR
- 地址解析协议ARP:根据IP地址找到MAC地址
- 动态主机配置协议DHCP
- 网际控制报文协议ICMP
- IPV6
- 内部网关协议(IGP)
- 外部网关协议(EGP)
功能
- 异构虚拟网络
- 路由与转发
- 拥塞控制
路由算法
- 静态路由算法(又称非自适应路由算法)
- 指网络管理员手工配置的路由信息,当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。
- 它不能及时适应网络状态的变化,对于简单小型网络,可以采用静态路由。
- 动态路由算法(又称自适应路由算法)
- 指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。
- 这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
- 动态路由主要算法
- 距离-向量路由算法
- 所有结点都定期地将它们的整个路由选择表传送给所有与之真接相连的结点
- 这种路由选择表包含【每条路径的目的地(另一结点),路径的代价(也称距离)】
- 在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:
- 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由【增加】
- 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离【更新最优】
- 链路状态路由算法
- 要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务:
- 主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络
- 定期地将链路状态传播给所有其他结点(或称路由结点)
- 算法特征
- 向本自治系统中所有路由器发送信息,路由器通过所有端口向所有相邻的路由器发送信息。而每个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器)
- 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
- 所谓"链路状态",是指说明本路由器与哪些路由器相邻及该链路的**“度量”**
- 要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务:
- 层次路由
- 因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统中包含很多局域网),每个自治系统有权自主地决定本系统内应采用何种路由选择协议。【可以使用不同的路由选择路由】如果两个自治系统需要通信,那么就需要一种协议来屏蔽两个自治系统之间的差异
- 因特网把路由选择协议划分为两大类
- 一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP) 协议, 也称域内路由选择,具体的协议有RIP和OSPF等
- 自治系统之间所使用的路由选择协议称为外部网关协议(EGP), 也称路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径,具体的协议有BGP
- 距离-向量路由算法
IPV4
- 格式
- 总长度:总长度,占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535(2^16-1)B。以太网帧的最大传送单元(MTU) 为1500B,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的MTU值
- 标识:标识,每产生一个数据报就加1,当一个数据报的长度超过网络的MTU时,必须分片,此时每个数
据报片都复制一次标识号,以便能正确重装成原来的数据报 - 标志:占3位。标志字段的最低位为MF,MF=1表示后面还有分片;中间的一位是DF,只有当DF=0时才允许分片。
- 片偏移:它指较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B的整数倍。受到前面的有效数据大小的影响(除了最后一片,其他的所有片中的有效数据载荷都是8的倍数)
注:数据链路层数据报能承载的最大数据量称为最大传送单元(MTU),因为IP数据报被封装在数据链路层数据报中,因此数据链路层的MTU严格地限制着ip数据报的长度,而且在IP数据报的源与目的地路径上的各段链路可能使用不同的数据链路层协议,有不同的MTU
- IP数据报分片
- 网络层转发分组流程
- 从数据报的首部提取目的主机IP地址D,得出目的网络地址(MAC地址)N
- 若网络N与此路由器****直接相连,则把数据报直接交付给目的主机D,这称为路由器的直接交付;否则是间接交付(借助路由器),执行步骤3
- 若路由表中有目的地址为D的特定主机路由(对特定的目的主机指明一个特定的路由,通常是为了控制或测试网络,或出于安全考虑才采用的),则把数据报传送给路由表中所指明的下一跳路由器;否则,执行步骤4
- 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器:否则,执行步骤5
- 路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器。否则,执行步骤6
- 报告转发分组出错
- IP 的分类
- 主机号全为0表示该网络本身
- 主机号全为1表示本网络的广播地址,又称直接广播地址
- 127.0.0.0保留为环回自检(loopbacktest)地址,此地址表示任意主机本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上
- 32位全为0,即0.0.0.0表示网络上的本主机;
- 32位全为1,即255.255.255.255,表示整个TCP/IP网络的广播地址,又称受限广播地址。实际使用时,由于路由器对广播域的隔离,255.55255.255等效为本网络的广播地址
- 网络层转发分组流程
NAT 网络地址转换
- 网络地址转换(NAT)是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。私有IP地址网段如下:
a类:1个a类网段,即10.0.0.0-~10.255.255.255.
b类:16个b类网段,即172.16.0.0~172.31.255.255.
c类:256个c类网段,即192.168,0.0~192.168.255.255. - 用NAT时需要在专用网连接到因特网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球地址
- 使用本地地址的主机和外界通信时,NAT路由器使用NAT转换表将本地地址转换成全球地址,或将全球地址转换成本地地址
- NAT转换表中存放着 {本地IP地址:端口} 到 {全球IP地址:端口} 的映射,通过 {IP地址:端口} 这样的映射方式,可让多个私有IP地址映射到同一个全球IP地址
子网划分与子网掩码、CIDR
-
子网划分基本思路
- 子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络
- 从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特。
- 三级IP地址的结构如下:IP地址={<网络号>,<子网号>,<主机号>}
- 凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到IP数据报后,按目的网络号和子网号找到目的子网。最后把IP数据报直接交付给目的主机
-
子网掩码
- 子网掩码是一个与IP地址相对应的,长32bi的二进制串,它由一串1和跟随的一串0组成,其中,1对应于IP地址中的网络号及子网号,而0对应于主机号
- 计算机只需将IP地址和其对应的子网掩码逐位"与"(逻辑and运算),就可得出相应子网的网络地址
-
无分类域间路由选择:CIDR**【可以理解为以一种更便捷的网络地址记录方式,不需要子网掩码,用“/+数字”,数字为多少就表示前多少位是网络地址】**
- 消除了传统A,B,C类地址及划分子网的概念,因而可以更有效地分配IPV4的地址空间
- CIDR使用"网络前缀"的概念代替子网络的概念。因此,IP地址的无分类两级编址为IP={<网络前缀>,<主机号>}
- 使用CIDR时,路由表中的每个项目由"网络前缀"和下一跳地址"组成。在查找路由表时可能会得到不止一个匹配结果。此时,应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体
地址解析协议ARP:根据IP地址找到MAC地址
- IP 工作在网络层,其工作原理如下:主机A欲向本局域网上的某台主机B发送数据报时,先在其ARP高速缓存中查看有无主机B的IP地址
- 如有,就可查出其对应的硬件地址(MAC地址),再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址
- 如果没有,就通过使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,使同一个局域网里的所有主机收到ARP请求
- 主机B收到该ARP请求之后,向主机A发出响应ARP分组,分组中包含主机B的IP与MAC地址的映射关系,主机A在收到后将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧
动态主机配置协议DHCP
- 用于给主机动态地分配IP地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与
- DHCP是应用层协议,它是基于UDP的
- 协议工作流程
- DHCP**客户机广播"DHCP发现"**消息,试图找到网络中的DHCP服务器,以便从DHCP服务器获得一个IP地址
- DHCP服务器收到"DHCP发现"消息后,向网络中**广播"DHCP提供"**消息,其中包括提供DHCP客户机的IP地址和相关配置信息
- DHCP客户机收到"DHCP提供"消息,如果接收DHCP服务器所提供的相关参数,那么通过广播**“DHCP请求”**消息向DHCP服务器请求提供IP地址
- DHCP服务器广播**“DHCP确认”**消息,将IP地址分配给DHCP客户机
网际控制报文协议ICMP
- ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文
- ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况
- 差错和异常情况
- 终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文
- 源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文
- 时间超过。当路由器收到生存时间为零的数据报时,除丢弃该数据报外还要向源点发送时间超过报文
- 不发送ICMP差错报告报文的情况:
- 对ICMP差错报告报文不再发送ICMP差错报告报文(即:当ICMP报文自身发送出错时,不再发送ICMP差错报告报文)
- 第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文(即:第一个数据报片已经发送了ICMP差错报告报文,后续的报片就不再发送了)
- 具有组播地址的数据报都不发送ICMP差错报告报文
IPV6
- 特点
- 更大地址空间(IPV6将地址从IPV4的32位增大到了128位)
- 即插即用(自动配置)
- 只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片
- 首部长度是8B的整数倍,V4是4B的整数倍
- 从根本上解决了IP地址的耗尽问题
- 路由协议(前面提到过,内部网关协议(IGP)和外部网关协议(EGP)
内部网关协议(IGP)
- 路由信息协议RIP ——应用层协议,传输层使用UDP
- RIP规定:
- 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录
- 距离也称跳数(hop count),规定从一个路由器到直接连接网络的距离(跳数)为1,而每经过一个路由器,距离(跳数)加1
- RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径
- RIP允许一条路径最多只能包含15个路由器(即最多允许15跳),因此距离等于16时,它表示网络不可达
- RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表**(动态维护)**
- RIP特点
- 仅和相邻路由器交换信息
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
- 按固定的时间间隔(如每隔30秒)交换路由信息(即自己的路由表)
- 路由算法:距离向量算法
- 工作流程
- 当原来的路由表中没有目的网络N时,把该项目添加到路由表中
- 当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目
- 当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离D小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做
- 缺点
网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称**“坏消息传得慢”**,使更新过程的收敛时间长
- 工作流程
- RIP规定:
- 开放最短路径优先协议OSPF——网络层协议,不使用UDP或TCP,直接使用IP数据报传送
- 基本特点
- 向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法。
- 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并目更新过程收敛得快
- OSPF是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89);而RIP是应用层协议,它在传输层使用UDP
- 由于各路由器之间频繁地交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(称为链路状态数据库的同步)。然后,每个路由器根据这个全网拓扑结构图,使用Dijkstra最短路径算法计算从自己到各目的网络的最优路径,以此构造自己的路由表。
- 基本特点
外部网关协议(EGP)
- 边界网关协议BGP——应用层协议,基于TCP
- 不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网关之间。路由表包含已知路由器的列表,路由器能够达到的地址及到达每个路由器的路径的跳数
- BGP只能力求寻找一条能够到达目的网络比较好的路由(不能兜圈子),而非寻找一条最佳路由。采取的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大区别。
- 每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的BGP发言人,与另外的自治系统交涉。
- 三种路由协议的比较