计算机网络-网络层

网络层

概述

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
传输单位是数据报

功能:
1. 路由选择与分组转发
2. 异构网络互联
3. 拥塞控制
拥塞是所有节点都来不及接收分组而需要丢弃数据,是一种全局状态。
有两种解决方式: 开环控制(静态)、闭环控制(动态)

数据交换方式

电路交换
	建立连接(呼叫/电路建立) --  通信  -- 释放连接(拆除电路)
	特点: 建立连接后就要占用信道,哪怕不说话(即独占资源)

	优点:
		1. 通信时延小
		2. 有序传输
		3. 没有冲突
		4. 实时性强
	缺点:
		1. 建立连接时间长
		2. 线路独占,使用效率低
		3. 灵活性差(有一个交换设备错则整体崩溃)
		4. 无差错控制能力

报文交换
	不建立连接,利用交换设备(交换机)的存储转发功能,将报文(即信息整体)从源
	主机发送到目的主机。(报文传输过程路径不固定,动态随机)

	优点:
		1. 无需建立连接
		2. 存储转发,动态分配线路
		3. 线路可靠性较高
		4. 线路利用率高
		5. 多目标服务(一个报文可以有多个目的地址)
	缺点:
		1. 有存储转发时延
		2. 报文大小不定,需要网络节点有较大缓存空间


分组交换
	把大的数据块分割成小的数据块,在传输时依次发送每个分组(不必等上一个分组的确认就可以发下一个分组
		可以认为是连续发送分组)
	优点:
		1. 无需建立连接
		2. 存储转发,动态分配线路
		3. 线路可靠性高
		4. 线路利用率高
		5. 相对于报文交换,存储管理更容易(因此每个分组数量块小)
	缺点:
		1. 有存储抓发时延
		2. 需要传输额外的信息量(分组编号等信号)
		3. 乱序到目的主机时,要对分组配许重新组,需要一定时间

分组交换是并行传输,要比报文交换效率高,总体时延要小

总结:
	1. 报文交换和分组交换都采用存储转发
	2. 传送数据量大,且传送时间远大于呼叫时,采用==电路交换==。电路交换传输时延最小。
	3. 从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小。


分组交换又分为数据报方式和虚电路方式:
	- 数据报方式为网络层提供无连接服务
		不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径不同

		无连接、每个分组携带目的地址、路由器根据分组的目的地址转发分组,每个分组独立选路、不保证有序
			不可靠、网络故障适应性强

	- 虚电路方式为网络层提供连接服务
		首先为分组的传输确定传输路径(建立连接),然后沿该路径传输系列分组,系列分组传输路径相同,
		传输结束后拆除路径。

		有连接、仅在连接建立时使用目的地址之后使用虚电路号、同一虚电路的分组按同一路由转发、保证有序到达
			网络古装适应性差

几种传输单元名词辨析
	应用层	报文
	传输层	报文段(根据什么标准分割)
	网络层	IP数据报,分组
	链路层	帧
	物理层	比特流

路由算法

路由表/转发表
目的网络地址| 子网掩码 | 下一跳IP地址 | 接口
(路由算法会得到一个最佳路由,填到路由表中)

路由算法分为静态路由算法、动态路由算法
	- 静态路由算法(非自适应路由算法) 手工配置路由信息
	- 动态路由算法(自适应) 路由器直接彼此交换信息,优化出路由表项

动态路由算法又分为 全局性和分散性
	- 全局性,链路状态路由算法,如OSPF协议,所有路由器掌握完整的网络拓扑和链路费用信息
	- 分散性,距离向量路由算法,如RIP协议,路由器只掌握物理相连的邻居及链路费用


为了减少路由表项,对外隐藏本网的路由协议,则使用分层次的路由选择协议。
在单一的技术管理下的一路路由器,称为一个自治系统AS。
路由选择协议则可分为内部网关协议(AS内部使用,如RIP、OSPF协议)和外部网关协议(AS之间使用,如BGP协议)

路由选择协议

内部网关协议(RIP 基于距离向量算法,小网络, OSPF 基于链路状态,大网络)

RIP协议和距离向量算法

基于距离向量的的路由选择协议,最大优点是简单。
RIP协议要求每个路由器都维护一个**从它自己到每个目的网络的唯一最佳距离记录**,这里的距离为“跳数”,
	即从源端口到目的端口所经过的路由个数,最大值15,16表示不可达。

和谁交换?多久交换一次?交换什么?
1. 仅和**相邻路由器**交换信息
2. 交换的信息是**自己的路由表**
3. 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s还没收到相邻路由器的通告,
	则判定邻居没了,并更新自己路由表(将原来通过邻居的表项删除)。

	刚开始时路由器只知道自己直连的网络,经过若干次更新,所有路由器最终都会知道到达本自治系统
	任何一个网络的最短距离和吓一跳路由器的地址。


距离向量算法的主要思路
	1. 修改相邻路由器发来的RIP报文中的所有表项
		对地址为X的相邻路由表发来的RIP报文,把“下一跳”字段中的地址改为X,并把所有的距离字段+1

	2. 对修改后的RIP报文(格式: 网络Net3, 距离2+1, 下一跳X),进行筛选和比对
	 (1)R1路由表中没有Net3,则该项目填入路由表
	 (2)R1中有Net3,则查看下一跳路由器地址
	 		如果是X,则用收到的项目替换路由表中的项目
	 		如果不是X,如果收到的项目距离更短则更新,否则不作处理
	 3. 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16(路由表中下一条为X的记录都已经不可达了?)

RIP协议是应用层协议,使用UDP传送数据;最多可包括25条路由表项,超过时需要发送多次

RIP协议好消息传的快,快消息传的慢(即标记为16不可达的消息)

OSPF协议

基于链路状态路由算法,适用于大网络

和谁交换?交换什么?多久交换?
1. 使用泛洪法向自治系统内所有路由器发送信息,方法是向相邻路由器发送信息,而每一个相邻路由器再一次将此消息发送到它自身的相邻路由器
	(有点像广播?)
	最终整个区域内所有路由器都得到了这个信息的一个副本
2. 交换的信息是本路由器**相邻的所有路由器的链路状态(本路由器和哪些路由相邻,以及该链路的度量/代价--费用、距离、时延、带宽等)**
	ps:RIP协议交换的是路由表表项
3. 只有**链路状态发生变化时**, 路由器才向所有路由器泛洪发送此信息。
最终,所有路由器都能建立一个**链路状态数据库**,即全网拓扑图。

链路状态路由算法主要思路
	1. 每个路由器发现相邻节点【hello问候分组】,了解相邻节点的玩了过地址
	2. 设置到它的每个邻居的成本度量metric
	3. 构造【DD数据库描述分组】,向邻站给出自己链路状态数据库中所有项目的摘要信息
	4. 邻站收到后,对于其中的摘要,如果自己有则不做处理;如果没有,则发送【LSR链路状态请求分组】,请求自己没有的信息
	5. 收到LSR分组后,发送【LSU链路状态更新分组】
	6. 接收LSU并更新完成后,发送【LSAck链路状态确认分组】
	则每个路由器的链路状态发生变化时,直接泛洪发送更新分组,收到此分组的站点恢复确认分组进行确认
	7. 使用Djjkstra算法根据自己的链路状态数据库构造出 到每个站点的最短路径

OSPF使用IP数据报传送,属于网络层协议。

特点:
	1. 每隔30min,刷新数据库中的链路状态
	2. 互联网规模大是,OSPF协议比RIP协议要好
	3. 不存在坏消息传的慢问题,其收敛速度快

BGP协议

外部网关信息,用于AS之间交换信息

和谁交换?交换什么?多久交换?
与其他AS的BGP发言人交换信息;交换网络可达性的信息,即要到达某个网络所要经过的一系列AS;发生变化时才会更新有变化的部分

BGP报文项是各AS的路径向量,和RIP类似。
BGP是应用层协议,使用tcp传输。

三个协议的区别,见图表整理

在这里插入图片描述

IP数据报格式

在这里插入图片描述
在图中,网络层包含了四种协议:ARP、IP、ICMP、IGMP,由上下关系表明,ARP为IP协议服务,IP为ICMP和IGMP服务。

在这里插入图片描述

此处不区分数据报和分组的概念:当数据部分过长时,将数据部分拆分,形成分组,也就是网络层的传输单元。
首部分为固定部分和可变部分,常规下没有可变部分。

在这里插入图片描述

版本:4位,表示IPv4/IPv6
首部长度:4位,单位是4字节,因为首部最少是固定部分的20字节,因此首部长度最小为5
区分长度:8位,表示期望获得哪种类型的服务
总长度:16位,表示总长度(首部+数据部分),单位1字节,可表示的最大值为2的16次方-1=65535 。但真实的总长度达不到此值,因为过长就会被分片,用来满足数据链路层MTU的限制。
标识、标志、片偏移: IP数据报分片时使用
生存时间(TTL): 8位,表示IP分组的保质期。每经过一个路由器值-1,变为0时被丢弃。
协议:8位,表示数据部分(即上层传输层)的协议。大致有1(ICMP)、2(IGMP)、6(TCP)、8(EGP)、9(IGP)、17(UDP)、41(IPv6)、50(ESP)、89(OSPF)。
首部检验和:16位,只检验首部。
源地址、目的地址:32位。
可选字段:0-40字节,用来支持排错、测量以及安全等措施。
填充:全0,把首部补充为4字节的整数倍。

IP数据报分片

MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节。
在这里插入图片描述
网络层的IP分组封装上层数据(传输层)时,只增加了首部;链路层封装上层数据时,加头加尾。
整个IP分组构成了链路层的数据部分,当超过链路层MTU限制时,普遍采用分片的形式。当IP数据报要求不使用分片且长度超过MTU,则数据发送不出去,向上层返回一个ICMP差错报文。

在这里插入图片描述

标识:16位,同一数据报的分片使用同一标识。
标志:3位,只有两位有效,最高位保留不用。
中间位DF(don’t fragment):1,禁止分片;0,允许分片
最低为MF(more fragment):1,还有分片;0,最后一片/没有分片了
片偏移:13位,表示分片后某片在原分组中的相对位置,单位8B。可以看出,分得的片长度都是8B的整数倍(除了最后一片)。

分片过程

某个数据报首部20B、数据部分3800B,需要分片为长度不超过1420B的数据报片。
则可以分为三片,每片的首部长度和原始数据报相同。
在这里插入图片描述
分片后,是乱序到达吗?目的方如何再把片组装起来?

IP地址的分类

IP地址的历史阶段:
- 分类的IP地址
- 子网的划分
- 构成超网(无分类编址方法)

分类的IP地址

IP地址: 全世界唯一的32位/4字节标识符,标识路由器或主机的接口。主机或路由器有多个接口,就有可能有多个ip地址。
IP地址:{网络号,主机号}
在这里插入图片描述
网络号不为0,主机号为0标识某个网络。
LAN1:网络号222.1.3.0,网络内各主机的主机号不同
LAN2:网络号222.1.1.0
LAN3:网络号222.1.2.0,虽然内部有网桥,但它是链路层设备,不能隔离广播域,仍然是一个网络。
中间的三个路由器,每个路由器都有三个接口,每个接口都是一个网络。

在这里插入图片描述
可以看到4字节的IP地址,被分为A、B、C、D、E五类,每类能表示的数量是上类的一半。
每类中能表示的IP地址,有些是不可以用的。

在这里插入图片描述

网络号全0(表示本网络,肯定是A类地址),,当主机号:

  • 为全0,表示自己这台主机。可以作为源地址,不能作为目的地址
    ps: 当写tcp程序时,监听ip地址0.0.0.0,,与这个有关系吗
  • 不为全0,表示本网络内的某台主机,可以作为目的地址,不能作为源地址

网络号全1,主机号全1,即255.255.255.255,表示本网广播地址,不能作为源地址,只能作为目的地址,路由器收到目的地址为它的分组不转发,因为路由器可以隔离广播域。

网络号特定值,主机号全0,表示某个网络,不能作为目的地址和源地址。
网络号特定值,主机号全1,表示某个特定网络的广播地址,可以作为目的地址,不能作为源地址。
网络号127(A类地址),主机号非全0非全1,表示环回地址,可以作为源地址和目的地址。

总结:
网络号全为0,表示本网络的某台主机;
主机号全为0,表示某个网络。
主机号全为1,表示广播地址。

这些特殊的IP地址不能作为主机或路由器的接口地址。

在这里插入图片描述
私有IP地址,只能在本地网中使用,路由器对私有地址数据包一律不转发。

在这里插入图片描述
最大主机数,都是减去全0和全1,即2。
A类地址中,最大网络数减去全0(表示本网络)和全1(127,表示换回地址)
B类地址中,最大网络数减去全0(表示本网络)
C类地址中,最大网络数减去全0(表示本网络)

NAT网络地址转换

在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
NAT路由器有一个NAT转换表。
在数据往外发时,源地址是本地地址,替换为路由器的外网地址;在外部数据进来时,目的地址是路由器的外网地址,转换为本地地址。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值