计网第四章网络层
网络层的主要任务是实现网络互连,进而实现数据包在个网络之间的传输
一。重要概念
1.提供的两种服务
网络层要设计得尽量简单,向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务(IP数据报/IP分组)
IP数据报 = IP分组
1)虚电路服务
通信时,需要先建立连接(分组交换中是建立一条虚电路)。
然后双方沿着建立的虚电路发送分组。
通信结束后要释放建立的虚电路
2)数据报服务
每个分组独立发送,与前后的分组无关。
应用层、传输层提供可靠传输
对比 | 虚电路 | 数据报 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信由用户主机来保证 |
连接的建立 | 必须建立连接 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址(IP地址) |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立查找转发表进行转发 |
当节点出现故障时 | 所有通过出故障的节点的虚电路均不能工作 | 出故障的节点可能丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序达到终点 | 到达终点的顺序不一定按发送的顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可由用户主机负责 | 由用户主机负责 |
成本 | 成本高 | 成本低 |
是否可靠 | 可靠传输 | 不可靠传输 |
2.两个层面
不同网络的两个主机之间通信,要经过若干个路由表转发分组完成,分组查找路由表中的转发表,根据转发表中指明转发到下一个路由器。
:star:转发表是由路由表导出的,路由表又是互联网中许多路由器,按共同选定的路由选择协议,通过许多次的相互交换路由信息产生的。
路由器之间传送的信息
- 转发源主机和目的主机之间所传送的数据
- 传送路由信息
1.数据层面
- 每个路由器根据路由器生成的转发表,把收到的分组,按查找到的对应接口转发。
- 使用硬件进行转发。速度快
2.控制层面
- 路由选择算法使用软件,速度慢
软件定义网络SDN
将控制层面的工作几种在远程控制器上执行
计算出最佳的路由,在每个路由器中生成其正确的转发表
二。网际协议IP(Internet Protocol)
与协议IP配套使用的三个协议
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际管理协议IGMP
1、IP地址
1.表示方法
IPV4 32位二进制 IPV6 128位
同一局域网的主机或路由器的IP地址的网络前缀必须时同样的
IP地址由网络号和主机号组成
2.分类的IP地址
1)单播地址
A类: 网络号n = 8
- 网络号首位为固定为0,只有7位网络号可用
- 网络号全0表示本网络
- 01111111表示本地环回地址(127)
- 可指派网络号为126个(2^7 - 1 = 126个)
- 全0和全1的主机号一般不指派
- 全0主机号表示本主机
- 全1主机号表示所有的
- 最大主机数2^24 -2 = 16777214
B类: 网络号n = 16
- 可指派网络数 2^14
- 128开始
- 最大主机数2^16 - 2
C类: 网络号n = 24
- 可指派网络数 2^21
- 192开始
- 最大主机数 2^8 - 2
2)多播地址
D类: 网络号n = 4
3)保留地址
E类: 网络号 n = 4 保留之后使用
一般不指派的特殊IP地址
2、无分类编址CIDR
把IP地址分为网络前缀和主机号
网络前缀的位数n不固定
表示方法
- 128.14.35.7/20
- 前20位位网络前缀
地址块
- 把网络前缀相同的所有连续IP地址组成一个CIDR地址块
地址掩码(子网掩码)
计算机看不见斜线记法,使用二进制来进行各种计算时必须使用32位地址掩码能够从IP地址算出网络地址
组成
- 由一连串1或者0组成
- 1的个数就是网络前缀的程度
/20地址块的地址掩码就是 20个连续的1和12个连续的0组成
IP地址与子网掩码进行 按位与运算 就能得到网络地址
- A类网络: 地址掩码255.0.0.0或者255.0.0.0/8
- B类网络: 地址掩码255.255.0.0或者255.255.0.0/16
- C类网络: 地址掩码255.255.255.0或者255.255.255.0/24
路由聚合
用一个较大的CIDR的地址块代替许多较小的地址块
看习题4-22
1 |
|
3.IP地址的特点
IP地址是网络层和以上各层使用的地址,是一种逻辑地址(用软件实现)
MAC地址是数据链路层使用的地址
1)每个IP地址都由网络前缀和主机号两部分注册
2)IP地址是标志一台主机和一条链路的接口
3)一个网络是指具有相同网络前缀的主机的集合
- 用转发器或交换机连接起来的若干个局域网仍为一个网络
4)IP地址中,所有分配到的网络前缀的网络都是平等的。
- 互联网平等对待每一个IP地址
- 路由器总具有两个或两个以上的IP地址。每个接口的IP地址的网络前缀都不同
4.IP地址与MAC地址
转发过程中源IP地址和目的IP地址没有改变
- IP层抽象的互联网上只能看到IP数据报
- 路由器只根据目的站的IP地址进行转发
- 在局域网的链路层,只能看到MAC帧
5.IP数据报的格式
1)首部长度:
占4位
IP首部的固定部分是20字节
- IP数据报必须具有的部分
2)总长度
- 总长度指首部和数据之和的长度
- 16位
数据帧的数据字段的最大长度称为MTU(最大传送单元),如果数据报长度超过MTU,就必须把过长的数据报进行分片处理
数据报的最大程度为 2^16 -1 = 65535字节。而MTU一般为1500字节
3)标志
- 标志字段中的最低位为MF。
- MF = 1 表示后面还有分片
- MF = 0 表示这是若干数据报片中的最后一个
- 标志字段中间一位为DF
- 代表不能分片
- DF = 0 时候才能分片
4)片偏移
- 较长的分组在分片后,某片在原分组中的相对位置
- 片偏移以8个字节为偏移单位
- 除了最后一个数据报片外,其他每个分片的长度一定是8字节的整数倍
5)生存时间
- 占8位
- 生存时间的英文TTL,表名是数据报在网络中的寿命
现在已经把TTL改为了跳数限制
每经过一个路由器时,TTL就会就会减去1.
TTL为0时,就丢弃这个数据报
三。ICMP
网际控制报文协议ICMP
IP数据报首部的检验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错
目的
更有效转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP
报文分类
ICMP报文被封装在IP数据报中发送
1)ICMP差错报告报文
终点不可达
- 路由器或主机不能交付数据报是发送
时间超过
- TTL = 0
参数问题
- 路由器或者目的主机收到的数据报的首部中有的字段值不正确,应该丢弃
改变路由(重定向)
- 路由器把改变路由报文发给主机,让主机知道下次应将数据报发给另外的路由器
2)ICMP询问报文
1.回送(Echo)请求或回送回答
用于测试目的站是否可达以及了解其有关状态(Ping/tracert)
- 由主机或路由器向一个特定的目的主机发出的询问
- 收到此报文的主机必须向源主机或路由器发送ICMP回送回答报文
2.时间戳(Timestamp)请求或时间戳回答
- 时间戳请求报文发出后,就能够收到对方响应的ICMP时间戳回答报文
- 计算出当前网络的往返时延
不发送ICMP差错报告报文的情况
:star:四。路由选择协议
路由选择协议是网络层控制层面的内容
分类
1。静态路由选择策略
非自适应路由选择。
- 简单和开销小
- 不能及时适应网络状态的变化
- 适用于简单的小网络
2。动态路由选择策略
自适应路由选择
- 能较好适应网络状态变化
- 实现起来较为复杂,开销也大
采用的主要还是自适应的、分布式路由选择协议(动态路由选择)
分层次的路由选择协议
互联网划分成许多较小的自治系统,即为AS
AS是单一技术管理下的许多网络、IP地址以及路由器
内部网关协议IGP
一个自治系统内部使用的路由选择协议
- RIP
- OSPF
外部网关协议EGP
源主机和目的主机不在同一个AS中,就需要使用EGP
- BGP-4
路由信息协议RIP
定义
一种分布式的、基于距离向量的路由选择协议
- 是内部网关协议IGP最先得到广泛使用的协议
距离(跳数)
最佳路由 = 距离最短的路由
- 路由器到直接连接的网络的距离 = 1
- 路由器到非直接连接的网络的距离 = 所经过的路由器数 + 1
- 每经过一个路由器,跳数就加1
一条路径最多包含15个路由器
距离(跳数) = 16 表示不可达
特点
1)仅和相邻路由器交换信息
2)路由器交换的信息就是当前本路由器所知道的全部信息,即自己现在的路由表
3)按固定的时间间隔交换路由信息(更新路由表)
开始工作的时候,路由表是空的
- 只知道自己到直连网络的距离都为1
- 与相邻路由器周期交换更新路由信息
- 若干次交换和更新后,收敛(每个路由器都知道到达本AS内各个网络的最短距离和下一跳地址)
距离向量算法
- 发现新的目的网络,更新
- 到达目的网络,相同下一跳。最新消息,更新
- 到达目的网络,不同下一跳,相同距离,等价负载均衡,更新
- 到达目的网络,不同下一跳,距离远,不更新
坏消息传播得慢
好消息传播的快,而坏消息传播得慢
出现路由环路问题
解决方法
- 限制最大路径距离15
- 当路由表发送变化时就立即发送更新报文,不是周期性发送
- 让路由器记录收到特定路由信息得接口,而不让同一路由信息再通过此接口反方向传送
开放最短路径优先OSPF
克服RIP缺点提出
使用了最短路径算法SPF
基于链路状态协议,不像RIP基于距离向量
- 采用SPF算法计算路由,不会产生路由环路
- 不限制网络规模,更新效率高,收敛速度块
链路状态是指路由器都和哪些路由器相近,以及相应链路的代价(cost)
- 代价:费用、距离、时延、带宽
优点
链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
:star:OSPF更新过程收敛速度快
三个特点
1)采用洪泛法,向本自治系统中所有路由器发送消息
2)发送的消息是与本路由器相邻的所有路由器的链路状态,但这只是路由器知道的部分信息
- 链路状态:本路由器都和哪些路由器相邻,以及该链路的度量(metric)
- 度量:费用、距离、时延、代价、带宽等
3)当链路状态发生变化或每隔一段时间,路由器用洪泛法向所有路由器发送此消息
划分区域
为了使OSPF能用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,称为区域
好处
- 利用洪泛法交换链路状态信息的范围局限于每个区域而不是整个自治系统,减少了整个网络上的通信量
- 再一个区域内部的录取只知道本区域的网站网络拓扑,不知道其他区域的网络托盘情况
五种分组内容
1。问候(Hello)分组
- 用于发现和维持邻站的可达性
每10交换一次问候分组,如果40秒没有收到某个相邻路由器发送的问候分组,则可认为相邻路由器不可达
2。数据库描述分组
- 向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
3。链路状态请求分组
- 向对方请求发送给某些链路状态项目的详细信息
4。链路状态更新分组
- 用洪泛法对全网更新链路状态。
- 是OSPF协议的最核心部分
5。链路状态确认分组
- 对链路更新分组的确认
工作过程
1.确认邻站可达
每10交换一次问候分组,如果40秒没有收到某个相邻路由器发送的问候分组,则可认为相邻路由器不可达
2.同步链路状态数据库
同步:不同路由器的链路状态数据库的内容是一样的
完全邻接路由器:两个同步的路由器
3.更新链路状态
OSPF链路状态只涉及相邻路由器,与整个互联网的规模无直接关系
- 只要链路状态发生变化,路由器就用链路状态更新分组,用可靠的洪泛法向全网更新链路状态
可靠的洪泛法
- 再收到更新分组后要发送确认。
五、路由器的构成
1.路由器的结构
路由器是一种具有多个输入端口和多个输出端口的专用计算机,任务是转发分组
1)路由选择部分(控制层面)
- 核心构件是路由选择处理机
- 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表。并定期和相邻路由器交换路由信息更新和维护路由表
2)分组转发部分(数据层面)
1.交换结构
作用是根据转发表来对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去
2.一组输入端口
3.一组输出端口(端口是硬件接口)
习题
1.网络层向上提供的服务有娜两种,比较优缺点
对比 | 虚电路 | 数据报 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信由用户主机来保证 |
连接的建立 | 必须建立连接 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址(IP地址) |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立查找转发表进行转发 |
当节点出现故障时 | 所有通过出故障的节点的虚电路均不能工作 | 出故障的节点可能丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序达到终点 | 到达终点的顺序不一定按发送的顺序 |
端到端的差错处理和流量控制 | 可以由网络复制,也可由用户主机负责 | 由用户主机负责 |
成本 | 成本高 | 成本低 |
是否可靠 | 可靠传输 | 不可靠传输 |
虚电路服务
优点
- 虚电路服务是面向连接的,网络能够保证分组总是按照发送顺序到达日的站,且不丢失、不重复,提供可靠的端到端数据传输
- 目的站地址仅在连接建立阶段使用,每个分组使用短的虚电路号,使分组的控制信息部分的比特数减少,减少了额外开销
- 端到端的差错处理和流量控制可以由分组交换网负责,也可以由用户机负责
- 虚电路服务适用于通信信息量大、速率要求高、传输可靠性要求高的场合
缺点
- 虚电路服务必须建立连接;
- 属于同一条虚电路的分组总是按照同一路由进行转发;
- 当结节发生故障时,所有通过出故障的节点的虚电路均不能工作。
数据报服务
优点
- 数据报服务不需要建立连接;
- 每个分组独立选择路由进行转发,当某个节点发生故障时,后续的分组可以另选路由,因而提高了通信的可靠性。
- 数据报服务的灵活性好。适用于传输可靠性要求不高、通信子网负载不均衡、需要选择最佳路径的场合。
缺点
- 数据报服务是面向无连接的,到达目的站时不一定按发送顺序,传输中的分组可能丢失和重复,提供面向无连接的、不可靠的数据传输;
- 每个分组都要有目的站的全地址;
- 当网络发生故障时,出故障的节点可能会丢失数据,一些路由可能会发生变化;
- 端到端的差错处理和流量控制只由主机负责。
2.中间设备、转发器、网桥、路由器和网关的区别
物理层使用的中间设备叫做转发器
数据链路层使用的中间设备叫做网桥或者桥接器,以及交换机
- 根据MAC地址转发
网络层使用的中间设备叫做路由器
- 根据路由表转发
网络层以上使用的中间设备叫做网关。网关连接两个不兼容的系统需要在高层进行协议的转换
3.简单说明IP、ARP和ICMP协议的作用
IP:
IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
网络层最核心的协议就是IP协议。
IP协议根据数据包的目的IP地址来决定如何传输。
IP协议根据「IP地址」将数据传输到指定的目标主机
如果数据包不能直接发送到目标主机,那么IP协议就会为它寻找下一个合适的路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或由于发送失败而被丢弃。
IP协议使用跳转的方式确定通信路径。
ARP:
知道IP地址,需要找到其对应的MAC地址
在主机 ARP 高速缓存中存放一个从 IP 地址到硬件地址的映射表,并且这个映射表经常动态更新。每一台主机都设有一个 ARP 高速缓存(ARP Cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表(并且每一个映射地址都设置有生存时间)。
ICMP:
- 更有效地转发IP数据报和提高交付成功的机会。
- 检测网络通信故障和实现链路追踪
- 提供差错ICMP差错报告报文和ICMP询问报文
4.简述RIP OSPF BGP路由选择协议的主要特点
RIP | OSPF | BPG |
---|---|---|
1)仅和相邻路由器交换信息 | 1)采用洪泛法,向本自治系统中所有路由器发送消息 | 1)基于路径向量的路由选择协议 |
2)路由器交换的信息就是当前本路由器所知道的全部信息,即自己现在的路由表 | 2)发送的消息是与本路由器相邻的所有路由器的链路状态,但这只是路由器知道的部分信息 | 2)对不同的自治系统的路由器之间发送交换 |
3)按固定的时间间隔交换路由信息(更新路由表) | 3)当链路状态发送变化或每隔一段时间,路由器用洪泛法向所有路由器发送此消息 | 3)寻找较好的而非最佳路径 |
使用UDP | 使用IP | 使用TCP |