第四章
1.1网络层功能概述
主要任务是把分组从源端传递到目的端,为分组交换网上的各个主机提供通信服务,网络层传输单位是数据报
数据报与分组之间的关系:
分组是数据报切割后的一小部分
功能:
1): 路由选择与分组转发
路由选择是在许多路由之间寻找一个接近于最佳的路径。
分组转发是将数据报分为若干个分组进行在网络中转发与传递
2):异构网络的互联:
比如手机与电脑之间的互联
3):拥塞控制
若所有结点都来不及接收分组,而要丢弃大量的分组的话,网络就处于拥塞状态。因此要采取一定的措施,缓解这种拥塞
拥塞控制是一个全局性的问题(整个网络的问题)
解决拥塞的方法:
①开环控制:
是指没有反馈信息的系统控制方式。当操作者启动操作系统,使之处于运行的状态,操作系统将操作者得一系列指令都输向受控对象。
②闭环控制
是控制论的一种基本概念。指被控的输出端的输出一定方式返回到作为控制的输入端。以输出作为对输入端施加控制影响的一种控制关系。
闭环控制,简单说,就是输入端通过信息传递给输出端进行控制。而输入端同时也根据输出端的反馈信息来调整或者暂停输入。
1.2 电路交换,报文交换与分组交换
一 如何实现两台主机之间的互联(上网)
依靠的是路由器使得两个主机之间产生互联。数据交换技术是让数据通过路由器从源主机到目的主机。
二 为什么要数据交换:
假设主机与主机之间并不是通过路由器,网桥等进行通信的。是直接进行相互通信的。那么每增加一个主机,彼此之间需要增加的链路条数为
为了解决主机越多,链路条数越多的这个问题,于是有了二层的网桥,三层的路由器等交换设备
而上述也有一个问题,原因在于每台主机通过交换设备进行通信,主机多了,传递的数据也就多了,让这些数据在一个交换设备上进行传输,本身在技术层面就难以办到,其次主机越多,所需要的端口也就越多。另外,受制于链路长度的限制(链路越长,信号衰减的就越严重),主机之间实现远距离通信困难
解决方法:
优点:
- 每个交换设备不用具备很多的端口
- 有利于远距离的通信
三 数据交换的方式:
数据交换的方式分为电路交换,报文交换以及分组交换。
1)电路交换:
这里以电话网络作为典型举例
电路交换的阶段:
- 建立连接(呼叫/电路建立)
- 通信
- 释放连接(拆除电路)
优点
① 通信时延小:
通信之间是直达的过程,所以时延小
② 有序传输:
建立好的连接是独占资源,只需要将需要传递的数据,按序传输就好
③ 没有冲突:
因为独占资源的缘故
④ 实时性强:
链路一旦建立,就是可以随时通信的
缺点:
①建立链接时间长:
②线路独占,使用效率低
③灵活性差:
一旦建立连接中的某个交换设备宕机了,就会导致整个链路崩溃了
④无差错控制能力
对于是否传输的过程中产生差错,电路交换是不会去关心的
2)报文交换:
报文:
源应用发送的信息整体(比如一个PDF文件就是一个报文)
优点:
①无需建立链接
发送端与接收端无需建立连接,即可通信
②存储转发,动态分配线路
- 不用事先约好一个线路
- 先在某个交换设备上暂时的存储,等待某个线路空闲了,就进行转发
③线路可靠性高
如果其中一个交换设备出现了问题,可以从其他交换设备建立起线路进行数据传输
④线路利用率高
不是固定的占用一整条链路,而是在不同的时间里,需要进行数据传输的时候才会占用通信线路
⑤多目标服务
一个报文可以发往多个目的地址
缺点:
- 有存储转发时延
- 报文大小不定,需要网路节点有较大缓存空间
3)数据交换的方式:
数据交换的方式分为数据报方式的分组交换以及虚电路方式的分组交换两种
第一种方式:数据报方式的分组交换
特点:
①为网络层提供无连接服务
无连接服务:不实现为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能会有不同
②每一个分组携带数据源和目的地址
③路由器根据分组的目的地址转发分组
基于路由协议/算法构建转发表,检索转发表,每个分组独立选择传输的路径
第二种方式:虚电路方式的分组交换
特点:
①为网络层提供链接服务
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿着路径(连接)传输系列分组,系列分组的传输路径相同,传输结束后拆除连接
②将数据报方式和电路交换方式结合,以发挥两者的优点
③一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有节点都要维持这点虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息
数据报方式与虚电路方式之间的区别
分组交换的优点
①无需建立连接
②存储转发,动态分配线路
③线路可靠性高
分组较小,出错的可能也就小了
④线路利用率高
⑤相对于报文交换,存储管理更容易
对于交换设备的缓存要求低了
分组交换的缺点
①有存储转发时延
②需要传输额外的信息量
③乱序达到目的主机的时候,要对分组进行排序重组
报文交换与分组交换的区别
- 报文交换是串行传输的
- 分组交换是并行传输的
- 传输上最大的不同在于,报文交换的数据,需要全部达到某个交换设备上,才能继续往下一个传输设备上进行传输。而分组交换是以分组为传输单位,前面的分组是不需要等待后面的分组到达后才能继续往下传输
三种交换方式的总结:
几种传输单元的名词辨析以及关系
应用层所要传输的文件就称为报文,达到传输层的时候,传输层会根据报文的大小选择是否切割,这里会形成报文段。再向下传输,会对报文段加上目的主机的IP地址,形成IP数据报。如果此时IP数据报的大小大于了MTU最大传输单元,那么会进一步分割,最终向下传输的单位是分组。分组进行添头(FCS帧检验序列)加尾(MAC地址,物理地址)形成帧。最后由物理层将帧比特流的形式转换成信号,在链路上进行传输
2 路由算法
路由算法是根据转发表以及结合路由算法规划出一条最佳的路由路线
转发表
数据经由路由这个转发表就能知道下一步应该去往哪里
最佳路由:
最佳只能是相对于某一种特定要求下得出的较为合理的选择
路由算法:
路由算法分为静态路由算法以及动态路由算法
1)静态路由算法(非自适应路由算法)
管理员手工配置路由信息
静态路由的优点
简便,可靠。在负荷稳定,拓扑变化不大的网络中运行效果很好,被广泛的运用在高度安全性的军事网络和较小的商业网络
静态路由的缺点:
路由更新慢,不适用大型网络
2)动态路由算法(自适应路由算法)
路由器件彼此交互信息,按照路由算法优化出路由表项
动态路由优点:
路由更新快,适用大型网络,及时响应链路费用(路径代价)或网络拓扑变化
动态路由缺点
算法复杂,增加网络负担
分层次的路由选择协议
引入分层次的路由选择协议的原因是因为因特网规模很大,如果每个路由都知道网络都是怎么达到的话,那么每个路由器的路由表都会变得十分的庞大。另外许多单位不想让外界知道自己的路由选择协议,但还想接入因特网
解决方案:将整个网络分成不同的团体,这些小的团体就称为自治系统,这个自治系统中所使用的何种协议是外界不知道的
自治系统AS:
- 在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在AS内的路由,同时还使用一种AS之间的路由协议以确定这些AS之间的路由
- 一个AS内的所有网络都属于一个行政单位来管辖,一个自制系统的所有路由器在自治系统内都必须联通
路由选择协议的分类
①内部网关协议IGP
一个自治系统内使用的
②外部网关协议EGP
自治系统与自治系统之间使用的
网关在很早之前代表的是路由的意思
网关与路由器:
网关:网关是网络的出口和进口,定义着网络的边界
路由器:路由器使用一系列的路由算法确定网络间的最短路径
3.1 IP数据报格式
名词详解
版本
这里指的是IPv(version)4还是IPv6
首部长度:
单位是4B,最小为5个单位—4B换算成二进制就是0000~ 1111。可代表0~15个长度。最小为代表5,5*4B=20B。代表的是首部最小长度20B
区分服务:
指示期望获得哪种类型的服务
总长度:
首部的长度+数据部分的长度,单位是1B
标识
- 同一数据报的分片使用同一标识
- 到接收端的时候,同一标识的分片在组合起来,形成原来的数据报
标志
只有两位是有意义的
片偏移:
指出较长分组分片后,某片在原分组中的相对位置,以8B位为单位
生存时间(TTL)
- IP分组的保质期。经过一个路由器-1,变成0则丢弃
- 防止无法交付的数据报无限制的在网络中兜圈子
协议
数据部分所使用的协议
这里协议中不同的二进制数字代表的是不同的协议
首部检验和
首部校验和字段是IP首部计算的校验和码,但是不对后面的数据部分进行校验
源IP地址和目的IP地址:
都是固定的32位
可选字段
用来支持排错,测量以及安全等措施
填充
全0,把首部填充成4B的整数
3.2 IP数据报分片
最大传送单元MTU
- 链路层数据帧可封装数据的上限
- 以太网的MTU为1500字节
- 如果要传输的数据大于最大传送单元就需要对数据报进行分片
IP数据报分片例题
3.3 IPv4地址
一 IP的作用
通过某个网络中的某个主机名找到目的主机
二 IP编址的历史阶段
IP编制的历史阶段分为分类的IP地址,子网的划分以及构成超网三个阶段
1)分类的IP地址
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口(主机可以有很多个接口)
- IP地址分为网络号以及主机号,网络号确定主机在哪个网络区域,主机号确认在这个区域中的哪个主机(接口)
首部八位二进制位可以为网络号,后面的部分可以为主机号
早期IP地址的分类
通过网络号的位数以及首部的用于标识的比特位数可以进行划分不同类别的网络
特殊IP地址不能使用
私有IP地址
私有IP地址,就比如说学校的局域网内所独有的IP地址
不同类别的IP地址,可划分的网段格式也是不同的:
- 网段就是在说可以分配多少个网络号
- 路由器对于目的地址都是私有IP地址的数据报一路都不会进行转发
-
里面各自计算的最大数中减2是减去全0以及全1的情况,主要是为了避免使用特殊的IP地址
-
A类最大可用网络数减1,是减去全0的情况,以及127环回地址的情况。每个最大主机数减2,是减去全0(本网),以及全1的情况(广播地址)。B类与C类最大可用网络数减1,都是减去全0的情况。最大可用主机数都是跟A类一样
2)子网的划分
后面会讲到
3)构成超网(无分类编址方法)
后面会讲到
3.4网络地址转换NAT
网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址
当局域网中的某个主机想要给外界发送数据的时候,通过NAT路由器将数据报中私有IP地址替换成全球IP地址(通过NAT转换表),向外面发送。外部主机想往私有IP地址进行发送数据,需要向那个全球IP地址发送,然后经由NAT转换表将数据报中全球IP地址转换成对应的私有IP地址(根据端口号进行转换成对应私有IP地址,无论是发送出去的数据报还是接收的数据报,其中需要带有发送主机的IP号,目的主机的IP号,以及对应的端口号)
3.5子网划分与子网掩码
分类的IP地址的弱点
- A类网络可以分配的主机个数为上亿个,B类也有6万多个。但是网络中一般会对于链接在网络上的主机数目有一定的限制。这就造成了IP地址空间的利用率有时很低
- 两级IP地址不够灵活—比如公司需要在新的地方申请新的网络,就需要向因特网的提供商进行申请
子网划分:
某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分
子网掩码:
- 子网掩码就是将于网络号与子网号对应的位置上写上全1,主机号对应的位置上协商全0
- 求目的主机的网络地址,就是IP地址与子网掩码相与。同样为1则为1,其他情况全是0
例题
使用子网的时候分组的转发
每个路由表中都存放着目的网络地址,目的网络子网掩码,以及向下跳转的地址(下一个跳转哪个路由器或者哪个路由器的接口)
路由器转发分组的算法
- 首先提取数据报中的目的地址
- 然后看这个目的地址是否可以直接交付的(直接交付给与当前路由器连接的子网内,间接交付:当前路由器连接的网络中并不存在这个目的地址,所以需要转到下一个路由器去处理)。判断的依据,就是将目的地址与子网掩码逐个相与,看结果网络地址是否与当前路由器某个子网相同。不同的子网所拥有的子网掩码可以不同
- 在该目的地址不是直接可以交付的情况下,再看当前路由器中是否存在该目的地址的特定主机路由(在路由表中有一行叫做特定主机路由,特定路由的IP地址与目的地址相同, 就按照该行所要求的步骤向下进行)
- 如果不存在特定主机路由的情况下,检查路由表中有没有合适的路径(让目的地址与路由表中每一行的子网掩码进行逐位相与,看子网掩码与目的地址相与的结果,是否某一目的网络一致),如果有,就按照那一行所规定的下一跳地址向下进行
- 如果路由表啊中没有合适的路径,就走默认路由0.0.0.0(有些路由器并没有默认路由),发给这个路由就,就会被转发到另一个路由器,再来循环上面的步骤,如果在某个步骤找到了,就发给对应的主机。如果没有就又会发给默认路由,然后由默认路由发给另外一个路由,重复上述步骤
- 如果在数据报中的生存时间为0后,就会被丢弃,然后报告转发分组出错
3.6无分类编址CIDR
也称无分类域间路由选择CIDR
- 消除了传统的A类,B类和C类地址以及划分子网的概念
- 融合子网地址与子网掩码,方便子网划分(CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块”)
构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
构成超网方法:将网络前缀的位数缩短
最前缀匹配
使用CIDR时,查找路由表可能得到几个匹配的结果,应该选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体
3.7ARP协议
1)互联网发送数据的过程
①:假如此时应用层要发送一个报文,应用层向下传输给传输层,传输层会将报文分割成报文段。网络层将报文段添加上源数据的IP地址,以及根据DNS得到的目的IP地址。接着网络将报文段向下进行传输给数据链路层,数据链路层给报文段添加上源数据的MAC地址以及目的主机的MAC地址(通过ARP协议获得目的主机的的MAC地址),再加上ECS帧检验序列。最后交由物理层进行传输
②对于每一个主机或者路由都有一个ARP高速缓存(IP地址与MAC地址的映射)
③如果高速缓存中并没有目的IP地址与MAC地址的映射,此时就需要通过ARP协议广播一个ARP请求分组。
ARP请求分组:
- 这个全F也是全1,也就是具有广播效用的帧
- 这个广播的帧的意思是:我这里已具有了源主机和目的主机的IP以及自己的MAC地址,那目的主机的MAC地址是多少呢
这个需要广播的帧将目的主机的IP地址与子网掩码相与,判断目的地址是否在同一个网段中。如果不在,那就需要经由路由器将数据向外发送。通过路由器转发出去后,对应的目的主机接收到了后,就会知道这是发送给自己的,然后返回一个单播(点对点,不会发给其他主机)ARP响应分组。这个分组主要包括两个部分:1:目的主机的IP地址。2:目的主机的MAC地址。如果需要经过多个路由器,那就按照ARP协议,每经过一个路由器就询问下一个路由器的MAC地址,拿到下一跳的MAC地址后,继续向下跳,直至询问到目的主机的MAC地址,然后将数据报传送给目的主机
2)ARP协议的特点
①在实际网络的链路上传送数据时,最终必须使用MAC地址
因为最终数据需要到达一个局域网内部,局域网内部只能看得懂MAC地址
②ARP协议使用过程
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的的MAC地址FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-29min更新一次)
③ARP四种典型情况
3.8DHCP协议
主机获取IP地址的方式
方式分为静态配置与动态配置
①静态配置
配置的内容为IP地址,子网掩码以及默认网关(与外界交流的一个网关,通常指的是路由器的一个接口的IP地址)
②动态配置
- 比如一个移动的通信设备,每到一个网段中,都需要通过DHCP服务器配置一个动态的IP
- 动态主机配置的协议DHCP是应用层协议,使用客户/服务器的方式,客户端与服务端通过广播的方式进行交互,基于UDP
DHCP提供即插即用联网的机制,主机可以从服务器动态的获取IP地址,子网掩码,默认网关,DNS服务器名称与IP地址,允许地址重用支持移动用户加入网络,支持在用地址续租(IP是租用有时限的不是无限期使用的,)
DHCP的工作流程
①主机广播DHCP发现报文
试图找到网络中的服务器,服务器获得一个IP地址
②DHCP服务器广播DHCP提供报文
服务器分配给主机一个IP地址以及相关的配置
③主机广播DHCP请求报文
主机向服务器请求提供IP地址
④DHCP服务器广播一个DHCP确认报文
正式将IP分配给主机
3.9ICMP协议(网际控制报文协议)
ICMP协议支持主机或路由器的功能
- 差错(异常)报告
- 网络探询
ICMP协议的构成
ICMP类型
1)ICMP差错报文
什么时候应该发送ICMP差错报文:
①终点不可达
当路由器或主机不能交付数据报时就向源点发送终点不可达报文
②时间超过
当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预定规定时间内不能收到一个数据报的全部数据报片时,就把已经收到的数据报片都丢弃,并向源点发送时间超过报文
③参数问题
当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃高数据报,并向源点发送参数问题报文
④改变路由(重定向)
路由器把改变路由报文发送给主机,让主机知道下次应将数据发送给其他路由器(可通过更好的路由)
- 从IP数据报中取出8个字节以及前面加上ICMP的前8字节生成ICMP差错报告报文
不应发送ICMP差错报文的情况
①对ICMP差错报文不在发送ICMP差错报文
②对第一个分片的数据切片的所有后续数据报片都不再发送ICMP差错报文
③对具有组播地址的数据报都不在发送ICMP差错报告报文
④对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
2)ICMP询问报文
①回送请求和回答报文
主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文
②时间戳请求和请回答报文
请某个主机或路由器回答当前的日期和时间
③掩码地址请求和回答报文
④路由器询问和通告报文
ICMP的应用
1)PING 测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
2)Traceroute
跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
4.1IPv6
1)引入IPv6的原因
- IPv4将面临地址耗尽的情况
- 改进首部格式。较少首部格式的种类,加快数据传输的速率
- 支持Qo5
Qo5指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术
2)IPv6数据报格式
一些可能不重要的部分,如果需要,就可以放在扩展首部之中
版本
指明了协议版本,总是6
优先级:
区分数据报的类别和优先级
流标签:
“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的标签
有效载荷长度
指的是扩展首部+数据的长度
下一个首部
- 标识下一个扩展首部或上层协议首部
- 在首部中的标识的是扩展首部中的扩展首部1,扩展首部1中的这个字段指向的是扩展首部2,扩展首部2中这个字段指向的是扩展首部3,扩展首部3指向的是数据部分
跳数限制
相当于IPv4中的TTL(生存次数)
3)IPv6与IPv4
①IPv6将地址从32位(4B)扩展到了(16B),更大的地址空间
②IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间
③IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为了灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率
④IPv6支持即插即用(即自动配置IP地址),不需要DHCP协议
⑤IPv6首部长度必须是8B的整数倍,IPv4必须是4B的整数倍
⑥IPv6只能在主机处分片,IPv4可以在主机处和路由器处分片
⑦ICMIPv6:附加报文类型:分组过大
⑧IPv6支持资源的预分配,支持实时视像要求,保证一定的带宽和时延的应用
⑨IPv6取消了协议字段,改成下一个首部字段
⑩IPv6取消了总长度字段以及服务类型字段,改为了有效载荷长度字段
4)IPv6的地址表示形式
5)IPv6的基本地址类型
基本地址类型根据作用可分为单播,多播以及任播
①单播(一对一通信)
可做源地址和目的地址
②多播( 一对多通信)
可做目的地址(能够取代IPv4的广播形式)
③任播(一对多中的一个通信)
可做目的地址
6)IPv6向Ipv4过度的策略
5.1RIP协议与距离向量算法
RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离),即从当前路由器到目的网络的条数最少的那个路径
每个路由器的路由表都记录着到目的网络还剩多少距离(多少跳),以及下一跳的路由器是哪个
距离:
通常指的是“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1,特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达
- RIP协议中路由器的路由表的表项需要自己生成,生成的过程需要与其他路由器交换信息
RIP协议和谁交换,多久交换一次,交换什么
- 仅和相邻路由器交换信息
- 路由器交换的是自己的的路由表
- 每30秒钟交换一次路由信息,然后路由器根据信息更新路由表。若超过180秒没收到相邻路由器的通告,就可以判断相邻路由器没了,并更新自己的路由表
路由器刚开始工作的时候,指知道直接相连的网络的距离(距离为1),接着每个路由器也只和数目非常有限的相邻路由器交换并更新路由信息 - 经过若干次更新后,所有路由最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址,即“收敛”
距离向量算法
第一步:修改相邻路由器发来的RIP报文中所有表项
对地址为X的相邻路由器发来的RIP报文,修改此报文·中的所有项目:把“下一跳”字段中的地址改为X,并把所有距离字段+1
第二步:对修改后的RIP报文中的每一个项目,进行一下几个步骤
- R1路由表中若没有Net3,则把该项目填入R1路由表
- R1路由表中若已经有了Net3,则查看下一跳路由器的地址
①若下一跳是X,则用收到的项目同替换路由表中的项目
②若下一跳不是X,原来距离比从X走的距离远则更新,否则就不做处理
第三步若180s还没有收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16
第四步:返回
RIP协议的报文格式
RIP的特点
当网络出现故障的时候,要经过较长时间(例如几分钟)才能将此信息传送到所有的路由器,“慢收敛”
5.2OSPF协议
开放最短路径优先OSPF协议:“开放”标明OSPF不受某一厂家控制,而是公开发表的,“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF
OSPF最重要的特征就是使用分布式的链路状态协议
OSPF的特点:
-
使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相连的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器(类似于广播的方式)
-
发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价–费用,距离,时延,带宽等)
-
只有当链路状态发生变化的时候,路由器才向所有路由器洪范发送此信息
-
最后,所有的路由器都能建立一个链路状态数据库,即全网拓扑图
链路状态路由算法:
第一步:每个路由器给它的邻居结点发送【HELLO问候分组】,并了解邻居节点的网络地址
第二步:设置到它的每个邻居的成本度量metric
第三步:构造【DD数据库分组】,向邻居站点发送自己的链路状态数据库中的所有链路状态项目的摘要信息
第四步:如果DD分组中的摘要自己都有,则不会做任何的更新,如果没有的或者更新的,则发送【LSR链路状态请求分组】请求自己没有的和比自己更新的信息
第五步:收到邻站的LSR分组后,洪泛发送【LSU链路状态更新分组】进行更新
第六步:更新完毕后,邻站(其他站)返回一个【LSAck链路状态确认分组】进行确认
第七步:根据Dijkstra根据自己的链路状态数据库构造到其他节点间最短的路径
OSPF的区域:
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统划分为若干个更小的范围,叫做区域。每一个区域都有一个32位的区域标识符(用点分十进制表示)
区域也不能太大,在一个区域内的路由器最好不超过200个
OSPF分组
ODPF直接用IP数据报发送
OSPF的其他·特点
- 每隔30min,要刷新一次数据库中的链路状态
- 由于一个路由器的链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模没有直接关系。因此互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
- OSPF不存在坏消息传得比较慢得问题,它的收敛速度很快
RIP协议算法需要将收到的路由表信息与自己的路由表信息进行对照,而OSPF协议是省去了这一步的,是将收到的都放在链路状态数据库当中,然后根据Dijkstra算法计算出一个最短的路径
5.3BGP协议
- 每个自治系统的管理员都会选择一个路由器来作为这个自治系统的BGP发言人
- 两个BGP都是通过一个共享的网络连接在一起的,而这个BGP往往也会边界路由器
BGP协议
- 与其他AS的邻站BGP发言人交换信息
- 交换的是网络可达性的信息,即要到达某个网络索要经过是的一系列AS
- 发生变化时更新有变化的部分
BGP协议报文的格式
一个BGP发言人要与其他自治系统BGP发言人交换信息,就要先建立TCP连接,即通过TCP传送,然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息
BGP协议特点:
- BGP协议支持CIDR,因此BGO的路由表也就应该包括目的网络前缀,下一条路由器,以及要到达该目的网络索要经过的各个自治系统序列
- 在BGP刚刚运行的时候,BGP的邻站时交换的是整个路由表信息。但以后只需要在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的开销都有好处
BGP-4的四种报文
OPEN报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方
UPDATE(更新)报文:通告新路径或撤原路径
KEEPALIVE(保活)报文:在无UPDATE的时候,周期性证实邻站的连通性,也作为OPENG的确认
NOTIFICATION(通知)报文:报告先前报文的差错,也被用于关闭连接
三种协议的比较
-
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息
-
OSPF是一个内部网关协议,要交换的信息量比较大,应使报文的长度 尽量的短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP
-
BGP是一个外部网关协议,在不同的自制系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP
6 IP组播
IP数据报的三种传输方式
第一种:单播
单播用于发送数据报到单个目的地,且每发送一分单播报文都使用一个单播IP地址作为目的地址,是一种点对点的形式
第二种:广播
广播是指发送数据报到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点的传输方式
第三种:组播
当网络中某些用户需要特定的数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点的传输方式
组播提高了数据传输的效率,较少了主干网中出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)
- 组播路由器是运行组播协议的路由器
IP组播地址
IP组播地址让源设备能够分组发送给一组设备。属于多播组的设备将会被分配一个组播组的IP地址(一群共同需求主机的相同标识)
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址,不能用作单播地址。源地址是为单播地址
- 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP
- 对组播数据不产生ICMP差错报文
- 并非所有D类地址都可以作为组播地址
根据IP将组播分为两类
第一类:因特网范围内组播
还没有进入到局域网内的组播
第二类:硬件组播
- 在本局域网内进行的组播
- 同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以16进制的01-00-5E打头,余下的6个二进制位是根据IP组播组地址的最后23位转换得到的
- 收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃掉。这主要是预防多个主机之间D类IP地址有5位不使用的比特位不一样,但是后面23位一样的问题(本不是自己要接收的数据,却自己接收了)
7 IGMP协议与组播路由选择协议
IGMP协议:
在一个路由器内,通过IGMP协议就可以知道当前连接的局域网中,还有没有可以接收数据的主机了
网际组管理协议IGMP
TCP/IP协议:
- ICMP与IGMP都使用IP数据报传递报文
IGMP工作的两个阶段:
第一阶段
- 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要成为该组的成员
- 本地组播路由器接收到IGMP报文后,要利用组播路由选择协议把这组成员关系发送到因特网上的其他组播路由器
第二阶段
- 本地组播路由器会周期性的探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员
- 只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的,如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上没有此组播组的主机,因此不会把这组成员的关系发送给其他的组播路由器
- 组播路由器的成员关系知识所连接的局域网中有无组播组的成员
组播路由选择协议
特点:
①:解决的是路由器之间的路径选择的问题
②:组播路由协议的目的在于找出源主机为根节点的组播转发树
③:构造树可以避免在路由器之间兜圈子
④:对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树
⑤:组播路由选择协议常用的三种算法
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(稀疏/密集)(如果比较分散就使用稀疏型的,如果都在一个局域网内就用密集型的)
8 移动IP
在不同的地点,IP是不变的
移动IP技术是移动节点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了网络IP在网络权限过程中不发生任何改变(比如说手持通信设备,到另外一个城市去,但是与外界联系的时候,网络中依然可以采取原来通信设备的IP进行对外联系)
实现移动IP的组成部分
①移动节点:
具有永久IP地址的移动设备
②归属代理(本地代理):
一个移动节点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体就叫做归属代理
③外部归属(外地代理):
在移动网络中帮助移动节点完成移动管理功能的实体称为外部代理
④永久地址(归属地址/主地址):
移动站点在归属网络中的原始地址
⑤转交地址(辅地址):
移动站点在外部网络中使用的临时地址
移动IP的通信过程
A刚进入外部网络:
- 在外部代理登记获得一个转交地址,离开时注销
- 外地代理向本地代理登记转交地址
B给A发送数据报:
- 本地代理截获数据报
- 本地代理再封装数据报,新的数据报目的地址是转交地址,发给外部代理
- 外部代理拆封数据报并通过MAC地址(外部代理首次与A通信的时候就会记录下A的MAC地址)发给A
A给B发送数据报:
- A用自己的主地址作为数据报源地址,用B的IP地址作为数据报的目的地址
A移动到了下一个网络:
- 在新外部代理登记注册一个转交地址
- 新外部代理给本地代理发送新的转交地址(覆盖旧的)
- 通信
A回到了归属网络:
- A向本地代理注销转交地址
- 按照原始方式通信
9 网络层设备
路由器是一种具有多个输出端口和多个输出端口的专用计算机,其任务是转发分组
-
路由选择处理机根据所选定的路由选择协议构造出路由表,同时经常或定期的和相邻路由器交换路由信息而不断的更新和维护路由表
-
交换结构(根据转发表(路由表得来)对分组进行转发)
-
需要注意的是转发与路由选择的区别
① 转发是叫数据报从输入端口输入,然后从某个输出端口传输出去
② 路由选择是一个宏观的概念,是数据报在路由器之间按照什么样的路径进行传输 -
若收到RIP/OSPF分组等,则把分组送往路由选择处理机,若收到数据分组,则查找转发表并输出
输入端口对线路上收到的分组的处理:
输入端口中的查找和转发功能在路由器的交换功能中是最重要的
输出端口将交换结构传送来的分组发送到线路:
- 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到领,这就使后面再进入队列的分组有没有存储空间只能被丢弃
- 路由器中的输入输出队列产生溢出是造成分组丢失的重要原因
三层设备的区别:
路由器:可以互联两个不同网络层协议的网段
网桥:可以互联两个物理层和链路层不同的网段
集线器:不能互联两个物理层不同的网段
路由表与路由转发:
- 路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现
-
所有找不到路由的分组都会进入到默认路由里
-
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能所必须的信息,在转发表的每一行必须包含从要到达目的网络到输出端口和某些MAC地址信息(可以是下一跳的以太网的MAC地址)的映射