概述
文章目录
- 路由
- 基本概念
- 路由算法
- 静态路由算法(非自适应路由算法)
- 动态路由算法(自适应路由算法)
- 路由协议
- IPv4协议
- IPv4分组格式
- IPv4地址
- 分类的IP地址
- 特殊的IP地址
- NAT 网络地址转换
- 子网划分
- CIDR 无分类编址方法
- IPv6协议
- IPv6数据报格式
- 服务于网络层的相关协议
- ARP 地址解析协议
- DHCP 动态主机配置协议
- ICMP 网际控制报文协议
- IGMP 因特网组管理协议
- RARP
- IP组播
- 移动IP
- 通信过程
- 网络层设备
- 路由器
- 一点探究
- 为什么B类地址是从128.1开始,而不是128.0开始?
路由
基本概念
路由
- 从某一网络设备出发去往某个目的地的路径
路由表
-
若干条路由信息的一个集合体
路由表则是若干条路由信息的一个集合体。在路由表中,一条路由信息也被称为一个路由项或一个路由条目。路由表只存在于终端计算机和路由器(和三层交换机)中,二层交换机中时不存在路由表的,以太网交换机和网桥中的是转发表。
路由回路
- 也叫路由环路,数据包不断在网络中传输,始终到达不了目的地,导致掉线或者网络瘫痪
- RIP 协议慢收敛的过程可能导致路由回路
路由聚合
- 将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
- (也叫汇总)是让路由选择协议能够用一个地址通告众多网络,旨在缩小路由器中路由选择表的规模,以节省内存,并缩短IP对路由选择表进行分析以找出前往远程网络的路径所需的时间。
数据报交付
-
直接交付
- 源主机和目的主机处于相同的物理网络上时
-
间接交付
- 源主机和目的主机分别处于不同的物理网络上时
- 间接交付涉及直接交付,反之不涉及
路由算法
静态路由算法(非自适应路由算法)
-
基本概念
- 管理员手工配置略由信息。
- 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络
- 路由更新慢,不适用大型网络。
动态路由算法(自适应路由算法)
-
基本概念
- 路由器间彼此交换信息,按照路由算法优化出路由表项。
- 路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
- 算法复杂,增加网络负担。
距离向量路由算法
-
特点
-
每个结点只知道到其它目标网络的下一条结点,不知道网络的整体拓扑信息
-
每个结点只与它相邻的结点交谈,交谈的内容是从自己到网络中所有其他结点的最低费用估计(它交换的是完整路由表)
-
可能导致路由回路(慢收敛导致)
-
相对于OSPF适用于比较小的网络
-
-
更新情况
- 定时更新
-
实际应用
- RIP算法,域内路由
链路状态路由算法
-
特点
-
每个结点都具有完整的网络拓扑信息
-
通过泛洪法与所有其他结点交谈,交谈的内容是本路由器与哪些路由器相邻及该链路的“费用”(不是路由表,是路由表的一部分)
-
具有快速收敛的优点
-
相对于RIP适用于比较大的网络
-
-
更新情况
- 只有当链路状态发生变化时,路由器才向所有路由器发送此消息。
-
实际应用
- OSPF算法,域内路由
路径向量路由算法
-
实际应用
- BGP算法,域间路由
路由协议
域内路由 内部网关协议 IGP
-
RIP( 路由选择信息协议)
-
基本性质
-
知道什么?
- 到每个目标网络的最短跳数和下一条结点,不知道全网拓扑结构
-
和谁交换?
- 仅和相邻路由器交换信息
-
交换什么?
- 路由器交换的信息是自己的路由表
-
多久交换?
- 默认每30秒交换一次路由信息
- 也可以主动向某台路由器通告,但只能定时更新
-
用啥交换?
- RIP是应用层协议,使用UDP传送数据
-
-
特点
-
能够较快收敛(OSPF是快速收敛)
-
RIP允许一条路由最多只能包含15个路由器,距离为16表示不可达
- RIP协议只适用于小型网络
-
一个RIP报文最多可包括25个路由,如超过,必须再用一个RIP报文传送。
-
RIP协议网络出现故障时,会出现慢收敛现象,俗称“好消息传得快,坏消息传得慢”
- RIP协议 慢收敛示意.mp4
-
若超过180秒没收到邻居路由器的通告,则判定邻居没了,把该邻居路由器距离设置为16
-
-
-
OSPF (开放最短路径优先协议)
-
基本性质
-
知道什么?
-
到每个目标网络的最短跳数和下一条结点,全网完整的网络拓扑信息
OSPF的路由表就是通过了解的"全网完整的网络拓扑信息"来构造的,而RIP虽然每个路由器不知道“全网完整的网络拓扑信息”,但可以通过相邻结点的互相告知,最终达到收敛
-
-
和谁交换?
- 向自治系统内所有其它路由器发送信息
-
交换什么?
- 与本路由器相邻的所有路由器的链路状态
-
多久交换?
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息
-
用啥交换?
- OSPF是网络层协议,使用IP数据报传送
-
-
特点
- 每隔30min,要刷新一次数据库中的链路状态
- OSPF不存在坏消息传的慢的问题,它的收敛速度很快
- 如果到一个目的网络有多条最优路径,则可以实现负载均衡
-
域间路由 外部网关协议 EGP
-
BGP 边界网关协议
-
基本概念
-
BGP 发言人
- 发言人负责与其它AS中的发言人交换路由信息
- 每个AS的管理员都要选择至少一个路由器作为该AS的“BGP发言人”
- 每个BGP发言人除必须运行BGP外,还必须运行该AS所用的内部网关协议
-
BGP 边界路由器
- 该AS与外界相连的路由器
-
和谁交换?
- 与其他AS的邻站BGP发言人交换信息
-
交换什么?
-
交换的网络可达性的信息,即要到达某个网络的完整路径(一系列AS)
-
首次
- 整个路由表
-
非首次
- 变化的部分
-
-
多久交换?
- 发生变化时更新有变化的部分。
-
用啥交换?
-
BGP是应用层协议,借助TCP传送
- 因携带的路由信息较多,且可能跨不同网络传送路由信息,为保证可靠性,需使用TCP协议,可兼顾容量和可靠性
-
-
-
特点
- 并不要求最佳路由,较好即可
-
IPv4协议
IPv4分组格式
首部由固定部分(20B)和可变部分(0~40B)组成
重要字段
-
首部长度,单位 4B
-
总长度,单位 1B
-
标识
- 同一数据报的分片使用同一标识
-
标志,占3位,最高位不用(最左边的)
-
DF( Don’t Fragment)中间位
- DF=1,禁止分片
- DF=0,允许分片
-
MF( More Fragment)最低位
- MF=1,后面“还有分片”
- MF=0,代表最后一片/没分片
-
-
片偏移
- 分片在原始报文中的相对位置,以8B为偏移单位
-
生存时间(TTL)
- 标识分组在网络中的寿命,以确保分组不会永远在网络中循环(路由回路)
- 若把TTL设置为1,则表示这个数据报只能在本局域网中传送
-
协议
- 此分组携带的数据使用何种协议,如TCP、UDP等。其中值为6(很溜)表示TCP,值为17(容易丢包,“遗弃”)表示UDP
-
首部校验和
- IP数据报的首部校验和只校验分组的首部,不校验数据部分
- 将首部划分成多个4B序列,进行反码加法,结果写入检验和字段
- 每经过一个路由器,都要进行首部校验,如果出错就丢弃改分组
-
填充
- 全0,把首部补成4B的整数倍。
IP数据报分片
- 每个分片的数据长度一定是8B的整数倍(除了最后一个)
- 一般源主机进行分片,目的主机进行组装
- 中间路由器也可以进行分片,因为链路层协议不一定相同,MTU也就不一定相同
IPv4地址
IPv4地址是全世界唯一的32位/4字节标识符,唯一地标识路由器/主机
严格来说是一个IP地址对应一个主机/路由器的一个端口,所以一个路由器至少具有两个不同网段的IP地址
我们感受不到是因为现在的家庭路由器都配备了NAT技术,局域网地址一般都是192.168开头的私有地址,再配一个WAN地址即可。但MAC地址确实(至少)有两个
分类的IP地址
特殊的IP地址
NAT 网络地址转换
NAT 是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。
私有IP地址只用于LAN,必须通过NAT把私有IP地址转换为合法的全球IP地址,允许私有IP地址被LAN重复使用,有效地解决了IP地址不足的问题。私有IP地址网段如下:
专用网络地址如下,
- NAT路由器在转发IP数据报时,会更换其IP地址,普通路由器不会
- 普通路由器只工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号
子网划分
分类的IP地址的弱点
- IP地址空间的利用率有时很低
- 两级IP地址不够灵活
所以在IP地址中又增加了一个“子网号字段”,使两级IP地址变成了三级IP地址,IP地址={<网络号>,<子网号>,<主机号>}
划分子网的特点
- 主机号全0/全1不能用,主机号至少两位
- 子网号全0/全1不能用,CIDR可以用
- 各子网之间的通信需要走路由器
- 进行了子网划分,路由表的表项需要添加子网掩码
CIDR 无分类编址方法
构成超网
- 将路由表中多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
最长前缀匹配
- 当路由表中有多个匹配项时,选择网络前缀最长的匹配项
子网号全0/全1可以用,主机号同样至少两位
IPv6协议
为什么有IPv6?
- 从根本上解决地址耗尽问题
- 改进首部格式,快速处理/转发数据报
- 支持QoS,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
IPv6数据报格式
服务于网络层的相关协议
ARP 地址解析协议
处于数据链路层和网络层之间,属于TCP/IP协议栈,工作在链路层(工作时不使用IP的包头),服务于网络层(最终目的是把IP分组发过去)
为什么用?
- 由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址
- 完成主机或路由器IP地址到MAC地址的映射
工作过程
- 封装MAC帧,填写目的MAC地址时,根据目的IP地址,检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为48位全1的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)
注意点
- ARP请求分组是广播发送的,ARP响应分组是单播
DHCP 动态主机配置协议
基本概念
- 应用层协议,但是服务于网络层,局域网内的主机通过网络中的DHCP服务器动态获得IP地址
工作过程
-
主机广播"DHCP发现报文"
- 试图找到网络中的DHCP服务器,从服务器那儿获得一个IP地址
- 报文,源ip 0.0.0.0,目标ip 255.255.255.255
-
DHCP服务器广播"DHCP提供报文"
- DHCP服务器从IP地址池中取一个地址分配给该计算机。(拟分配)
-
主机广播"DHCP请求报文"
- DHCP允许网络上配置多台DHCP服务器,当DHCP客户机发出DHCP请求时,有可能收到多个应答消息。这时,DHCP客户机只会挑选其中的一个,通常挑选最先到达的。
- 广播的目的是为了告诉未被选择的DHCP服务器,收回刚才的预分配
-
DHCP服务器广播"DHCP确认报文"
- 正式将IP地址分配给主机。
特点
- 客户/服务器方式(应用层协议特有的两种工作方式,另一种P2P方式)
- 采用UDP传输
ICMP 网际控制报文协议
基本概念
- 为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议 ICMP 来让主机或路由器报告差错和异常情况
- ICMP消息封装在IP数据报中
ICMP 差错报告报文
-
五种类型
-
终点不可达
- 无法交付数据报
-
源点抑制
- 由于拥塞而丢弃数据报时
-
时间超过
- 收到 TTL=0 的数据报时
- 终点未在规定时间收到全部分片时
-
参数问题
- 数据报的首部中有的字段的值不正确时
-
改变路由(重定向)
- 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(更好的路由)
-
-
不发送ICMP差错报文的情况
-
ICMP差错报告报文
ICMP报文是IP数据报的一部分,所以有可能产生差错
-
第一个出错分片的后续出错分片
-
具有组播地址的数据报
-
具有特殊地址(环回测试地址)的数据报
-
ICMP 询问报文
-
四种类型
-
回送请求和回答报文
主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
-
时间戳请求和回答
请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
-
掩码地址请求和回答报文
-
路由器询问和通告报文
-
ICMP的应用
-
PING 分组网间探测
- 用来测试两台主机之间的连通性。PNG使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP
- ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等
-
traceroute(windows下tracert)
- Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报(使用非法的端口号)。第一个数据报P1的生存时间TTL设置为1。当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减1。由于TTL等于0了,R1就把P1丢弃了,并向源主机发送一个ICMP时间超过差错报告报文。源主机接着发送第二个数据报P2,并把TTL设置为2。P2先到达路由器R1,R1收下后把TTL减1再转发给路由器R2。R2收到P2时TTL为1,但减1后TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去。当最后个数据报刚刚到达目的主机时,数据报的TTL是1。主机不转发数据报,也不把TTL值减1。但因IP数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错报告报文。这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP报文正好给出了源主机想知道的路由信息一一到达目的主机所经过的路由器的IP地址,以及到达其中的每一个路由器的往返时间。
IGMP 因特网组管理协议
IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
- 主机通过IGMP通知路由器希望接收或离开某个特定组播组的信息
- 路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护
工作过程
-
某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
-
本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是某个组播组的成员。只要有一个主机对某个组响应,那么组播路由器就认为在本局域网中这个组仍然是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,就不再把这组的成员关系发给其他的组播路由器。
- 组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员
组播路由选择协议
-
找出以源主机为根节点的组播转发树,构造树可以避免路由回路
-
三种路由算法
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(稀疏/密集)
RARP
是和ARP协议配合使用的。但现在已被淘汰不使用了
IP组播
当进程要把一个分组发送给多个目的主机(网络直播),让源主机把分组发送给一个组播地址,该组播地址标识一组主机
一台主机可以同时属于多个组
当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是种点对多点传输方式。
IP组播地址
每个组都有一个特别分配的地址,要给该组发送的计算机将使用这个地址作为分组的目标地址
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组
注意点
-
只能用作分组的目标地址。源地址总是为单播地址
-
并非所有D类地址都可以作为组播地址(有一些地址已经被永久分配了)
-
尽最大努力交付,基于UDP
- TCP是面向连接的协议,它意味着服务器与所有的这些主机都要建立连接,这是不可能的
-
对组播数据报不产生ICMP差错报文
两种组播
-
硬件组播
- 组播分为两种,一种只在本局域网上进行硬件组播;另一种则在因特网的范围内进行组播,第二种组播最后一步还是要进行硬件组播【直接交付和间接交付】
- 由于多播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
-
因特网组播
- 靠组播路由器实现
移动IP
设计缘由:为了让移动设备用户,从一个互联网接入点移动到另一个互联网接入点时设备的IP地址保持不变
移动站
- 移动IP结点
移动代理
-
外部代理
- 外部网络中的代理
-
归属代理
- 本地代理,归属网络中的代理
网络
-
被访网络
- 当移动站到达另一个地点,它所接入的网络称为被访网络
-
归属网络
- 移动站原始连接到的网络,永久“居所”
- 永久地址和归属网络的关联是不会改变的
移动IP地址
移动IP节点拥有两个IP地址
-
归属地址
- 永久地址,移动站与归属网连接时使用的地址
-
转交地址
- 外部代理为移动站创建的一个临时地址
- 第一,转交地址是供移动站、归属代理以及外地代理使用的,各种应用程序都不使用这种转交地址;
- 第二,转交地址在互联网中并不具有唯一性。这就是说,外地代理可以给好几个移动站指派同样的转交地址,甚至把自己的IP地址指派为移动站的转交地址。这样做并不会引起混乱。这是因为当外地代理要向连接在被访网络上的移动站发送数据报时,并不会像通常那样使用地址解析协议ARP,而是直接使用这个移动站的MAC地址 〈当移动站首次和外地代理通信时,外地代理就记录下这个移动站的 MAC地址〉
通信过程
网络层设备
路由器
- 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。 从路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络〉,把该分组从路由器的某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组, 直到该分组到达终点为止。路由器的转发分组正是网络层的主要工作
- 路由器有多个端口,每个端口都有一个IP地址,连接本局域网的端口会占据本局域网内的一个私有地址,我们可以认为这个地址就是默认网关
路由器的功能
-
划分广播域,抑制广播风暴
-
连接异构网络
如果一个存储转发设备实现了某个层次的功能,那么它就可以互联两个在该层次上使用不同协议的网段(网络)。如果网桥实现了物理层和数据链路层,那么网桥可以互联两个物理层和数据链路层不同的网段;但中继器实现了物理层后,却不能互联两个物理层不同的网段,这是因为中继器不是存储转发设备,它属于直通式设备。
-
转发基于目的IP地址的数据包
-
通过路由选择算法决定最优路径
-
支持多种网络层协议,提供不同协议之间的分组转发
路由器的构成
-
路由选择(控制部分)
- 路由选择处理机
- 路由选择协议
- 路由表
-
分组转发
- 交换结构
- 输入端口
- 输出端口
路由表与转发表
”转发“是指路由器根据转发表把收到的IP数据报从路由器合适的端口转发出去,仅涉及到一个路由器
”路由“,即“路由选择”,涉及到很多路由器,路由表是许多路由器按照复杂的路由算法协同工作的结果
转发表
- 转发表是从路由表得出的
- 转发表的结构应使查找过程最优
- 转发表则可用特殊的硬件来实现
- 表项
- 目的IP地址
- 下一跳地址(MAC地址)
路由表
-
路由表总是用软件实现的
-
路由表需对网络拓扑变化的计算最优化
-
表项
- 目的网络IP地址
- 子网掩码
- 下一跳IP地址
- 接口
一点探究
为什么B类地址是从128.1开始,而不是128.0开始?
查阅 RFC 3330 https://tools.ietf.org/html/rfc3330
最开始设计时IANA就把它地址所保留了。但现在由于CIDR的出现,128.0开始的地址也已经被指派了
最后
以上就是甜美寒风为你收集整理的计算机网络(四)网络层路由IPv4协议IPv6协议服务于网络层的相关协议IP组播移动IP网络层设备一点探究的全部内容,希望文章能够帮你解决计算机网络(四)网络层路由IPv4协议IPv6协议服务于网络层的相关协议IP组播移动IP网络层设备一点探究所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复