计网四、网络层
2021-06-14 09:48:08 星期一
。。。差点忘了今天是端午节不用上课!!! |
一、网络层功能概述
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,网络层传输单位是数据报。
- 功能一:路由选择与分组转发 最佳路径
- 功能二:异构网络互联
- 功能三:拥塞控制
若所有节点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。- Way fst:开环控制——静态
- Way snd:闭环控制——动态
二、电路交换、报文交换与分组交换
为什么要数据交换
数据交换方式之电路交换
电路交换如:电话网络
- 阶段:建立连接(呼叫/电路建立)—— 通信 —— 释放连接(拆除电路)
- 特点:独占资源
- 优点:
- 通信时延小
- 有序传输
- 没有冲突
- 实时性强
- 缺点:
- 建立连接时间长
- 线路独占,使用效率低
- 灵活性差
- 没有差错控制能力
数据交换方式之报文交换
报文:源应用发送的信息整体。(应用层的数据单元)
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 多目标服务(一个报文可同时发往多个目标地址)
缺点:
- 有存储转发时延
- 报文大小不定,需要网络节点有较大缓存空间。
数据交换方式之分组交换
分组:把大的数据块分割成小的数据块
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对于报文交换,存储管理更容易
缺点:
- 有存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时,要对分组排序重组
报文交换&分组交换
计算题中要注意的几点:
- 单位换算:b/B,Mbps,kbps
- 是否考虑传播延迟
- 时间至少是多少——选择最少跳数
- 起始时间(从发送开始到接收完毕为止/从发送开始到发送完毕)
- 是否有分组头部大小的开销
- 报文交换时延更长,分组交换时延可能不是整数
三种数据交换方式比较总结
- 报文交换和分组交换都采用存储转发
- 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
- 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小。
三、数据报方式与虚电路方式
数据报方式为网络层提供无连接服务。
虚电路方式为网络层提供连接服务。
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
几种传输单元名词辨析
数据报(因特网在用)
- 无连接
- 每个分组携带源和目的地址
- 路由器根据分组的目的地址转发分组:
基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。
虚电路
虚电路将数据报方式和电路交换方式结合,以发挥两者优点。
虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有节点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。
建立连接(虚电路建立)—— 数据传输(全双工通信)—— 释放连接(虚电路释放)
每个分组携带虚电路号,而非目的地址。
源主机发送“呼叫请求”分组并收到“呼叫应答”分组后才算建立连接。
源主机发送“释放请求”分组以拆除虚电路。
数据报&虚电路
四、路由算法与路由协议概述
路由算法的分类
-
静态路由算法(非自适应路由算法) 管理员手工配置路由信息。
优点:简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
缺点:路由更新慢,不适用大型网络。 -
动态路由算法(自适应路由算法)路由器间彼此交换信息,按照路由算法优化出路由表项。
优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。
缺点:算法复杂,增加网络负担。
动态路由算法又分为:
-
全局性
链路状态路由算法OSPF:所有路由器掌握完整的网络拓扑和链路费用信息。 -
分散性
距离向量路由算法RIP:路由器只掌握物理相连的邻居及链路费用。
分层次的路由选择协议
- 因特网规模很大
- 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网。
自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
路由选择协议分为:
-
内部网关协议IGP
一个AS内使用的 RIP、OSPF (动态路由算法) -
外部网关协议EGP
AS之间使用的 BGP
五、RIP协议与距离向量算法
RIP协议
RIP协议是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
RIP协议只适用于小互联网
RIP协议和谁交换?多久交换一次?交换什么?
- 仅和相邻路由器交换信息
- 路由器交换的信息是自己的路由表
- 每30S交换一次路由信息,然后路由器根据新信息更新路由表。若超过180S没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1)
接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
那么问题来了....路由表是怎么更新的???
距离向量算法
RIP报文:包含的信息为路由表的全部信息,路由器之间交换信息时交换的是RIP报文。
-
修改相邻路由器发来的RIP报文中所有表项
对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把下一跳字段中的地址改为X,并把所有的“距离”字段+1。 -
对修改后的RIP报文中的每一个项目,进行以下步骤:
- R1路由表中若没有Net3,则把该项目填入R1路由器
- 若有Net3,则查看下一跳路由器地址:
- 若下一跳是X,则用收到的项目替换源路由表中的项目。
- 若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理。
-
若180S还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16.
-
返回
距离向量算法练习
这是一道傻瓜式题目,直接根据步骤即可。不过,,,
容易出错的是:步骤二中的第二种情况,既有相同的目的网络,又有相同的下一跳路由器,则不管距离如何直接替换掉(以新的信息为标准)。
下面来一道乍一看无从下手的题目....
hhhhh....知道这题是啥意思么???
首先,题干中来自B、D、E的向量中都有一个数字为0,而路由器到本身的距离便为0,所以来自B的向量为(5,0,8,12,6,2)的意思是路由器B到达路由器A、B、C、D、E、F的距离分别为5,0,8,12,6,2。另外两个向量同理。
然后,C到B、D和E的延迟分别为6,3和5。所以,,,
C通过B到A、B、C、D、E、F的路径为(11,6,14,18,12,8)
C通过D到A、B、C、D、E、F的路径为(19,15,9,3,12,13)
C通过E到A、B、C、D、E、F的路径为(12,11,8,14,5,9)
最后,就知道答案要选哪个了。
RIP协议的报文格式
RIP协议好消息传得快,坏消息传得慢
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。
六、OSPF协议与链路状态算法
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议。
OSPF的特点:
-
和谁交换?
使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播 -
交换什么?
发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等)。 -
多久交换?
只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
链路状态路由算法
- 每个路由器发现它的邻居结点 【HELLO问候分组】 ,并了解邻居结点的网络地址。
- 设置到它的每个邻居的成本度量metric。
- 构造 【DD数据库描述分组】 ,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
- 如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送 【LSR链路状态请求分组】 请求自己没有的和比自己更新的信息。
- 收到邻站的LSR分组后,发送 【LSU链路状态更新分组】 进行更新。
- 更新完毕后,邻站返回一个 【LSAck链路状态确认分组】 进行确认。
只要一个路由器的链路状态发生变化: - 泛洪发送 【LSU链路状态更新分组】 进行更新。
- 更新完毕后,其他站返回一个 【LSAck链路状态确认分组】 进行确认。
- 使用Dijkstra根据自己的链路状态数据库构造到其他结点间的最短路径。
OSPF的区域
OSPF分组
OSPF其他特点
- 每隔30min,要刷新一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
- OSPF不存在坏消息传得慢的问题,他的收敛速度很快。
七、BGP协议
BGP发言人
要解决的三个问题:
-
和谁交换?
与其他AS的邻站BGP发言人交换信息。 -
交换什么?
交换的网络可达性的信息,即要到达某个网络索要经过的一系列AS。 -
多久交换?
发生变化时更新有变化的部分。
BGP协议交换信息的过程
BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。
BGP协议报文格式
BGP协议特点
BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
在BGP刚刚运行时,BGP的邻站时交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理开销都有好处。
BGP-4的四种报文
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。
- UPDATE(更新)报文:通告新路径或撤销原路径。
- KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。
- NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。
三种路由协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
2021-06-14 20:27:07 星期一
Let's learn this knowledge first today. I didn't realize how important it is to be healthy until I can't bear stomachache. |
2021-06-15 19:15:53 星期二
There will be a physical examination tomorrow. |
八、IP数据报格式
TCP/IP协议栈
IP数据报格式
最大传送单元MTU
链路层数据帧可封装数据的上限。
以太网的MTU是1500字节
如果所传送的数据报长度超过某链路的MTU值,便要分片
- 总长度单位是1B
- 片偏移单位是8B
- 首部长度单位是4B
九、IPv4地址
IP编址的历史阶段
- 分类的IP地址
- 子网的划分
- 构成超网(无分类编址方法)
分类的IP地址
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。
IP地址::={<网络号>,<主机号>}
互联网中的IP地址
上图有6个逻辑上的网络
A类网络最大可用网络数-2是排除网络全0和127.
特殊IP地址
0.0.0.0:如果一台主机在发送数据报的时候,不清楚自己的源IP地址,便默认全0。
网络号全0:默认要发送数据报的目的主机和自己是在一个网络内的。(指的是本网范围内的主机)
主机号全1:代表广播分组
127.x.x.x:该数据报是永远不会进入到网络中,永远不会离开主机的。
私有IP地址
网络地址转换NAT
路由器对目的地址是私有IP地址的数据报一律不进行转发。
网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件。安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址
十、子网划分与子网掩码
子网划分
分类IP地址的弱点:
- IP地址空间的利用率有时很低。
- 两级IP地址不够灵活。
子网掩码
上题。。。
直接IP地址与子网掩码相与可得出网络地址
首先,发送广播分组,说明目的地址的主机号为全1。
然后,,,,知道选什么了吧~
2021-06-15 21:33:29 星期二
Quiet when I'm coming home, I'm on my own |
2021-06-16 10:40:39 星期三
The table tennis exam was barely passed.... |
使用子网时分组的转发
如何判断是否直接交付?
路由表中的目的地址与三个子网的子网掩码分别进行相与的操作,相与的结果如果与自己的子网当中的其中一个对应上了即可直接交付。
如何检测路由表中有无路径?
目的IP地址与路由表中每一行的子网掩码都进行相与的操作,如果有一个子网掩码与目的地址相与的结果刚好是一个目的网络,即可按照那一行所规定的下一跳地址往下走。如果没有则进入第五步默认路由。
十一、无分类编址CIDR
构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
方法:将网络前缀缩短。
最长前缀匹配
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
上题。。。
根据题干的目的地址可得
/8:132.0.0.0 —— 匹配
/11:132.0.0.0 —— 匹配
/22:132.19.236.0 —— 不匹配
所以,选....什么?
再来一道。。
先转换:248——11111000
So,a fool already knows the right answer.
十二、ARP协议
发送数据的过程
每台主机或者路由器都有对应的ARP高速缓存,存储这个局域网络内的IP地址与MAC地址的映射,当找不到MAC地址时则要进行广播ARP请求分组。
如果要发送信息的主机与自己不在一个网段内:
在目的主机的MAC地址查询中,一号主机会先用自己的子网掩码与目的地址即IP5进行相与,判断目的主机是否在自己的网段内,如果不在,则查询默认网关(即与外界沟通的路由器,每个主机都清楚自己的默认网关是谁)的MAC地址
ARP协议
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。所以产生了ARP协议
ARP协议:完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪的问题
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。
ARP协议的四种典型情况:
- 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址。
- 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址。
- 路由器发给本网络的主机A:用ARP找到主机A的硬件地址。
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
ARP协议自动进行
2021-06-16 12:40:30 星期三
干饭了干饭了。。。虽然这食堂在某些时刻让我以为自己得了厌食症。 |
2021-06-16 19:36:52 星期三
今晚就把网络层肝完吧、、、 |
十三、DHCP协议
主机如何获得IP地址
-
静态配置
IP地址、子网掩码、默认网关 -
动态配置
DHCP协议
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址复用,支持移动用户加入网络,支持在用地址续租。
- 主机广播DHCP发现报文:试图找到网络中的服务器,服务器获得一个IP地址。
- DHCP服务器广播DHCP提供报文:服务器拟分配给主机一个IP地址及相关配置,先到先得。
- 主机广播DHCP请求报文:主机向服务器请求提供IP地址
- DHCP服务器广播DHCP确认报文:正式将IP地址分配给主机
第三步中主机已经找到了DHCP服务器为什么还要用广播的方式请求报文?
告知其他的DHCP服务器收回刚才拟分配的地址,将其分配给其他新来的主机
十四、ICMP协议
为了更有效地转发IP数据报和提高交付成功的机会。
网际控制报文协议ICMP
ICMP差错报告报文
-
终点不可达
当路由器或主机不饿能交付数据报时就向源点发送终点不可达报文。 无法交付 -
源点抑制
当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。 拥塞丢数据 -
时间超过
当路由器收到生存时间TTL=0的数据报时,除丢弃数据报外,还要向源点发送时间超过报文。
当终点在预先规定的时间内不能收到一个数据报的全部数据时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。 TTL=0 -
参数问题
当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。 首部字段有问题 -
改变路由(重定向)
路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。 值得更好的路由
ICMP差错报告报文数据字段
不应发送ICMP差错报文的情况
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文。
- 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
ICMP询问报文
-
回送请求和回答报文
主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
测试目的站是否可达以及了解其相关状态 -
时间戳请求和回答报文
请某个主机或路由器回答当前的日期和时间。
用来进行时钟同步和测量时间 -
掩码地址请求和回答报文
-
路由器询问和通告报文
ICMP的应用
-
PING
测试两个主机之间的连通性,使用了ICMP回送请求和回答报文 -
Traceroute
跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
十五、IPv6
为什么要有IPv6
32位IPv4地址空间已分配殆尽...
而CIDR、NAT 治标不治本
IPv6是从根本上解决地址耗尽问题
假如我在北京买了一套房,这个房子非常小,为了使这个空间能够得到合理的利用,更够放更多的东西,我就会在墙上放一些小格子或小柜子,然后往柜子里填满东西。这就相当于CIDR和NAT技术的办法,在原来的地址长度基础之上,对地址进行了再一步的划分;而IPv6则是直接换一个更大的房子。
也是为了改进首部格式,达到快速处理/转发数据报的目的
同时支持QoS(即服务质量,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术)
IPv6数据报格式
IPv6和IPv4
IPv6地址表示形式
IPv6基本地址类型
IPv6向IPv4过度的策略
十六、IP组播
IP数据报的三种传输方式
-
单播
单播用于发送数据报到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
-
广播
广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。 -
组播(多播)
当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的结点后才开始复制和分发,是一种点对多点传输方式。
问题:在发送的时候如何找到主机呢?
组播数据报的目的IP地址肯定不能为目的主机的IP地址,因为如果这样的话就只会发给这个目的主机,其他属于同一个组播组的主机收不到数据报。
IP组播地址
IP组播地址让源设备能够将分组发送给一组设备,属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组,只能用作分组的目标地址,源地址总是单播地址
- 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP
- 对组播数据报不产生ICMP差错报文
- 并非所有D类地址都可以作为组播地址。
硬件组播
IGMP协议与组播路由选择协议(因特网范围内的多播)
网际组管理协议IGMP
IGMP工作的两个阶段
组播路由选择协议
组播路由选择协议目的是找出以源主机为根节点的组播转发树。
构造树可以避免在路由器之间兜圈子。
对不同的多播组对应于不同的多播转发树:同一个多播组,对不同的源点也会有不同的多播转发树。
组播路由选择协议常使用的三种算法:
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(稀疏/密集)
十七、移动IP
移动IP相关术语
移动IP通信过程
十八、网络层设备
路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
三层设备的区别
- 路由器 可以互联两个不同网络层协议的网段
- 网桥 可以互联两个物理层和链路层不同的网段
- 集线器 不能互联两个物理层不同的网段。
路由表与路由转发
十九、网络层总结
2021-06-16 22:39:10 星期三
Over!!! |