网络连接的设备:中继器、集线器、交换机、网桥、路由器和网关等。路由器 是网络层设备,集线器和中继器都是物理层设备。交换机和网桥是数据链路层设备,交换机就是多端口的网桥,是目前应用最广泛的数据链路层设备
一、网络层服务
网络层的任务:将数据从源主机送达到目的主机
网络层主要功能:
1、转发:当输入链路接收到一个分组后,路由器需要决策通过哪条输出链路将分组发送出去,并将分组从输入接口转移到输出接口。
2、路由选择:当分组从源主机流向目的主机时,必须通过某种方式决定分组经过的路由或路径。计算分组所经过的路径的算法被称为路由选择算法(或路由算法)
3、连接建立:网络层连接是从源主机到目的主机经过的一条路径,这条路径所经过的每个路由器 等网络设备都要参与网络层连接的建立
二、数据报网络与虚电路网络
数据报网络:无连接服务的分组交换网络,按照目的主机地址进行路由选择的网络;因特网的网络层是数据报网络;源主机每要发送一个分组,就为该分组加上目的主机地址,然后将该分组推 进网络。每个路由器使用分组的目的主机地址转发分组;在数据报网络中,发送的分组和接收的分组次序不一定相同,需要对分组重新进行排序,这个任务通常由传输层来完成
数据报网络特点:
- 在双方通信前,不需要先建立连接,因此称“无连接”。
- 数据报方式中每个分组被单独处理。
- 发送的分组和接收的分组次序不一定相同,每个分组被传送的路径也可能不一致。
- 分组在网络传输的过程中出现了丢失或者差错,数据报网络本身也不做处理
- 需要在转发表中维护转发信息,更新频率慢,通常 1~5min
虚电路网络:面向连接的分组交换网络;双方通信前先使用虚电路建立连接,通信结束后再拆除连接。
虚电路(virtual circuit,VC):源主机到目的主机的一条路径上建立的一 条网络层逻辑连接。
一条虚电路由3个要素构成:
- 1、从源主机到目的主机之间的一条路径(一系列的链路和分组交换机)。
- 2、路径上的每条链路各有一个虚电路标识(VCID)。
- 3、该路径上每台分组交换机的转发表中记录虚电路标识的接续关系
虚电路交换与数据报交换的主要差别表现为:是将顺序控制、差错控制和流量控制等功能交由网络来完成,
还是由端系统来完成。虚电路网络(如 ATM 网络)通常由网络完成这些功能,数据报网络(如 Internet)通
常由端系统来完成。
ATM网络:在信源交换之前必须建立虚拟连接
三、网络互连与网络连接设备
同构网络:两个异地以太网的互联,实现同构网络互联的典型技术是隧道技术
异构网络:主要是指两个网络的通信技术和运行协议的不同。 例如:wifi,网线等
异构网络互连的基本策略:协议转换和构建虚拟互联网
协议转换:采用一类支持异构网络之间协议转换的网络中间设备,来实现 异构网络之间数据分组的转换与转发。 例如:交换机或者是多协议路由器
构建虚拟互联网络:在异构网络基础上构建一个同构的虚拟互联网络,如 IP 网络;Internet 是利用 IP 网络实现的全球最大的互联网络,是典型的网络层实现的网络互连。Internet 采用同构的网络层协议(IP)与网络寻址(IP 地址), 引入网络互连设备(IP 路由器)。
路由器:最典型的网络层设备。具有多个输入端口和多个输出端口的专用计算 机,主要任务就是获取与维护路由信息以及转发分组,基本功能是转发和路由选择
路由器从功能体系结构角度:输入端口、交换结构、输出端口、路由处理器
输入端口:查找,转发,到达分组缓存排队功能
================交换结构============
交换结构:完成具体的转发工作,将输入端口的IP数据报交换到指定的输 出端口
主要包括:
- 基于内存交换:输入端口——>内存、路由处理器——>输出端口;性能最低,路由器价格最便宜
- 基于总线交换:输入端口和输出端口连接在一条数据总线上, 无须路由处理器介入即可实现交换功能, 总线是独占式
- 基于网络交换:使用一个复杂的互联网络来实现交换结构;克服单一、独占所带来的限制;并行交换传输。性能最高,路由器价格昂贵
====================输出端口====================
输出端口:缓存排队,从队列中取出分组进行数据链路层数据帧的封装,发送。输出端口通常对队列中的分组执行( FCFS )的调度策略。
===================路由处理器====================
1、执行命令
2、路由协议运行
3、路由计算以及路由表的更新和维护。
路由器的转发功能(流程):路由器在收到IP数据报时,会利用IP数据报的目的IP地址检索路由表,如果路由表中没有匹配成功的路由项,则通过默认路由对应的接口转发该IP数据报;如果除默认路由外,有一条路由项匹配成功,则选择该路由项对应的接口,转发该IP数据报;如果除默认路由外,有多条路由项匹配成功,则选择网络前缀匹配成功位数最长的路由项,通过该路由项指定的接口转发该IP数据报
四、网络拥塞
1、网络层拥塞:用户对网络资源(包括链路带宽、存储空间和处理器处理能力 等)的总需求超过了网络固有的容量; 网络负载在膝点附近时,吞吐量和分组平均延迟达到理想的平衡,网络 的使用效率最高;网络拥塞严重时会导致通信业务陷入停顿,称为死锁
发生拥塞的原因:
- 1)缓冲区容量有限
- 2)传输线路的带宽有限
- 3)网络结点的处理能力有限
- 4)网络中某些部分发生了故障
解决网络拥塞的两个方面:增加网络资源(拥塞预防)、减小网络负载(拥塞消除)
==================网络层常采用的拥塞控制措施=================
1、流量感知路由:属于拥塞预防
网络抽象为一张带权无向图,路由器抽象为图的结点,链路抽象为图的边。每一条链路有自己 的链路费用(例如:时延小,权值小)。
流量感知路由:权值根据网络负载动态调整,可以将网络流量引导到不同的链 路上,均衡网络负载
2、准入控制:属于拥塞预防,广泛应用于虚电路网络的拥塞预防技术。 基本思想:对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞, 那么网络拒绝建立该新虚电路。
3、流量调节:属于拥塞消除,在网络发生拥塞时,通过调整发送方发送数据的速率来消除拥塞。
路由器如何感知发生了拥塞:通过路由器输出端口的排队时延
路由器感知到拥塞时,如何通知其上游结点,并且使上游结点降低发送速 率?
- 抑制分组:感知到拥塞的路由器选择一个被拥塞的数据报,给该数据报的源主 机返回一个抑制分组
- 背压:抑制分组在从拥塞结点到源结点的路径上的每一跳,都发挥抑制作用
4、负载脱落:属于拥塞消除,有选择地主动丢弃一些数据报,来减轻网络负载,从而缓解或消除 拥塞;脱落原则是丢弃大的分组编号
拥塞控制与流量控制的区别:拥塞控制主要考虑端系统之间的网络环境,目的是使网络负载不超过网络的传送能力;而流量控制主要考虑接收端的数据接收与处理能力,目的是使发送端的发送速率不超过接收端的接收能力。另外,拥塞控制的任务是确保网络能够承载所达到的流量;而流量控制只与特定的发送方和特定的接收方之间的点到点流量有关
解决网络振荡现象的成功方法主要有两种:
- 一种是多路径路由,即两个区域间流量的传输分散到两条不同的链路上,从而使得其中任一链路上的负载都不会太大;
- 另一种是将负载过大的链路上的流量,缓慢地转移至另一条链路上,而不是一次性将全部流量从一条链路转移到另一条链路上
五、Internet 网络层
IP对输入数据报的处理分为两种:1、主机对数据报的处理 2、网关对数据报的处理
Internet网络层主要协议:网际协议(IP)[核心协议]、路由协议、互联网控制报文协议(ICMP)
Internet网络层最核心的协议 IP, 定义了如何封装上层协议(如UDP、TCP)的报文段; 定义了Internet网络层寻址(IP地址)以及如何转发IP数据报等内容; 两个版本:IPv4和IPv6
===============IP数据报格式==================
1、版本号:4位。IP的版本号。
2、首部长度:4位。IP数据报的首部长度:20B-60B (在题目没有指明的情况下默认使用20B),单位4字节
3、区分服务:8位。在旧标准种称为服务类型(Type Of Service,TOS)字段,用来指示期 望获得哪种类型的服务。
4、数据长度:16位。IP数据报的总字节数。数据长度=首部长度 + 数据长度
5、生存时间:8位。Time-To-Live ,TTL。表示IP数据报在网络中可以通过的路由器数(或跳步数)。
6、上层协议:8位,指示该IP数据报封装的是哪个上层协议。 TCP:6 UDP:17
7、首部校验和:16位,利用校验和实现对IP数据报首部的差错检测
8、源IP地址:32位。发出IP数据报的源主机的IP地址。
9、目的IP地址:32位。IP数据报的需要送达的主机的IP地址。
10、选项:长度可变。
11、数据:存放IP数据报所封装的传输层报文段
12、标识:16位。标识一个IP数据报。每产生一个IP数据报, IP协议的计数器加1。 该字段的重要用途:在IP数据报分片和重组过程中用于标识属于同一IP数据报。 该字段不可唯一标识一个IP数据报。
13、标志:3位。DF(Don't Fragment):禁止分片 DF=0,允许分片 DF=1,禁止分片 ;MF(More Fragment):更多分片 MF=0,未被分片或分片的最后一片 MF=1,是分片且不是最后一个
14、片偏移量(13位):以8B为单位。表示一个IP数据报分片与原IP数据报的数据的相对偏移量。 当该字段值为0时,且MF=1, 则表示这是一个IP分片,且是第一个分片。
2、IP数据报分片
网络层:以分组的方式接受传输层的数据,然后再对数据进行分片发送给数据链路层
最大传输单元(Maximum Transmission Unit , MTU):数据链路层帧能承载 的最大数据量 ,最大1500字节。
IP数据报分片的原则:尽可能少分片。 一个最大分片可封装的数据字节数最好是8的倍数
3、IPv4编址
IPv4地址的长度为32位,共有2 的32次方个不同的IP地址,约为43亿个
IPv4地址的三种标记方式
4、IP地址分配
1、前缀(Prefix):即网络部分(Net ID)。用于描述主机所归属的网络; 分类地址:定长前缀。 无类地址:前缀长度可变。
2、后缀(Postfix):即主机部分(Host ID)。用于表示主机在网络中的唯一地址
================分类地址================
分类寻址: A、B、C类地址可以用于标识网络中的主机或路由器 D类地址作为组广播地址 E类是地址保留
特殊地址:分类地址中一些特殊用途的地址
私有地址:一部分分类地址保留用于内部网络。这部分分类地址可以在内 网使用,但不能在公共互联网上使用
==================无类地址=================
无类地址中,网络前缀不再被设计为定长的8位、16位、24位,而变成可以是 0-32位的任意值。所以不存在分类地址中的网络类别。 网络地址书写形式:a.b.c.d/x。 例如:203.1.1.0/25 表示网络前缀占25位
5、子网划分
子网化:将一个较大的子网划分为多个较小子网的过程。(大变小)
超网化:将具有较长前缀的相对较小的子网合并为一个具有稍短前缀的相对 较大的子网。(小变大)
较大的子网:可以划分的子网数量多;较小的子网:可以划分的子网数量少 例如:A的网络前缀=24位 B的网络前缀=26位 则A就是较大的子网,B就是较小的子网
子网掩码:用来定义一个子网的网络前缀长度 占32位;子网掩码转为二进制后1的个数就是其子网的网络位数;例如255.255.255.0 ,他的子网前缀是24位。 书写形式:二进制,点分十进制。取值规则:对应前缀,全部为1,对应后缀,全部为0 ;
例题:已知某主机
直接广播地址是该子网的最后一个地址
子网地址:是该子网的第一个地址
子网掩码:表示该子网的前缀(网络位)占几位
已知某主机的地址和子网掩码,求子网地址、直接广播地址(子网广播地址)、IP地址总数、可分配的IP地址数量 主机的IP地址是203.123.1.135,子网掩码是255.255.255.192 1、子网地址:子网掩码和主机地址按位与运算;与运算:0&0=0; 0&1=0; 1&0=0; 1&1=1; 子网掩码:11111111 11111111 11111111 11000000 主机地址:11001011 01111011 00000001 10000111 按位与: 11001011 01111011 00000001 10000000 子网地址: 203.123.1.128/26 2、直接广播地址:子网掩码的反码与主机地址按位或运算。 反码:1变为0;0变为1;或运算:0||0 = 0; 1||0 = 1; 0||1 = 1; 1||1 = 1; 子网掩码:11111111 11111111 11111111 11000000 掩码反码:00000000 00000000 00000000 00111111 主机地址:11001011 01111011 00000001 10000111 按位或: 11001011 01111011 00000001 10111111 直接广播地址 203.123.1.191 3、IP地址总数: IPV4地址共32位,分为网络位+主机位;通过子网掩码可以确定网络位,则主机位为:32-网络位。IP地址总数:2的(32-网络位)次方个。 主机位:32-26=6, 2的6次方=64 4、可分配IP地址总数:64-2=62 在IP地址总数中提前子网地址占一个,广播地址占一个所以可分配IP地址总数:IP地址总数-2(子网地址占头,广播地址占尾) 5、可分配地址范围是多少 子网地址:203.123.1.128(占头) 广播地址:203.123.1.191(占尾) 可分配IP地址范围是: 203.123.1.129 ~ 203.123.1.190
6、路由聚合
路由聚合:减少路由表项数,提高路由效率,将可以将聚合在一起的子网聚 合成一个大的子网
7、动态主机配置协议
当组织分配到一个网络地址块后,就可以为该组织内的主机和路由器接口分配IP地址。
静态分配:手动配置。
动态分配:动态主机配置协议来分配。
动态主机配置协议(Dynamic Host Configuration Protocol ,DHCP): DHCP服务器端口号 67 ;DHCP客户端口号68
DHCP工作过程:
- 第一步:DHCP服务器发现:广播方式
- 第二步:DHCP服务器提供:广播方式
- 第三步:DHCP请求:广播方式
- 第四步:DHCP确认
8、网络地址转换(Network Address Translation ,NAT):使私有地址在公共Internet上正常通信
UPnP:NAT穿透技术就是在外网主机与内网主机发起通信之前,先在NAT转换表中建立好内外网的的映射关系,使内网运行的服务以NAT公网的合法身份暴露出去,通过动态配置NAT实现穿透的方法是内网主机主动发现NAT,并请求NAT完成穿透配置,比较典型的就是基于UPnP协议实现的NAT穿透配置
NAT工作原理:
- 从内网出去的IP数据报,将其IP地址替换为NAT服务器拥有的合法的 公共IP地址,并将替换关系记彔到NAT转换表中;
- 从公共互联网返回的IP数据报,依据其目的IP地址检索NAT转换表, 并利用检索到的内部私有IP地址替换目的IP地址,然后将IP数据报转发到内部网络
9、互联网控制报文协议(Internet Control Message Protocol ,ICMP):是 Internet 网络层主要协议之一,ICMP 的主要功能是进行主机或路由器间的网络层差错报告与网络探测
ICMP报文格式:
10、IPv6数据报格式
IPv6和IPv4数据报首部对比
IPv6删除了这些字段: 1、分片相关字段 2、首部校验和 3、选项字段不是IPv6的基本首部的字段。
IPv6地址:IPv6地址长度为128位
IPv6地址表示方法:
- 8组冒号分隔的十六进制数: 8000::4321:0501:AB96:56CD ;::只能出现一次
- 在IPv6地址中嵌入IPv4的点分十进制: 6700:89A1:0321:206.36.45.19
IPv6地址分类:
- 单播地址:唯一标识网络中的一个主机或路由器网络接口,可做源地址和目的地址
- 组播地址:标识网络中的一组主机,只能用作目的地址。(向一个组播地址发送 IP数据报,所有成员都会收到这个 IP 数据报副本)
- 任播地址:标识网络中的一组主机,只能用作目的地址。(向一个任播地址发送 IP数据报,只有某个成员会收到这个 IP 数据报)。
IPv4到IPv6的迁移:
方法一:双协议栈:网络结点同时具备发送IPv4、发IPv6数据报的能力。如图:路由器1同时具备IPV4,IPV6的处理能力,当他要把数据传送给路由器2之前,会通过DNS获取,路由器2所支持的协议,然后按照该协议给他发送信息
方法二:隧道:很好地解决IPv6通信中经过IPv4路由器的问题,同时也不会 出现信息丢失的问题。
六、路由算法与路由协议
带权无向图:将网络抽象为一个带权无向图G=(N,E),N表示结点集合,E是边的集合。 网络中的路由器抽象为图G的结点,连接两个路由器的网络链路抽象为G的边。 例如:X、Y 网络链路的费用(比如时延)抽象为G中的权值。 例如:10、100
如果两个结点间有边,例如从结点X到结点Y 则从结点X到结点Y耗费的费用记做C(X,Y)=10 如果两个结点间没有边,例如结点X到结点U 则从结点X到结点U耗费的费用记做C(X,U)=∞
===============链路状态路由选择算法(LS算法)==============
全局式路由选择算法:需要根据网络的完整信息来计算最短路径
链路状态路由选择算法是一种全局式路由选择算法,每个路由器在计算路 由时,需要构建出整个网络的拓扑图。
链路状态路由选择算法:利用Dijkstra算法求最短路径。
P(v):到本次迭代为止,在源结点到目的结点v的当前路径上,结点v的前序结点。 如果路径上只有两个结点,则该值就是最后一个结点。 例如:X→Y,P(y)就是y
例子:从X结点出发,分别求到达结点Y,U,V,W的最短距离。
=====================距离向量路由选择算法(DV)==================
距离向量路由选择算法:是一种分布式路由算法,基础是Bellman-Ford方程(简称B-F方程)。 令dx (y)表示结点x到结点y的路径的最低费用,根据B-F方程,有以下
路由转发表更新的步骤:
- 路由器分别维护自己的转发表(DV),并且收到邻居的通告。
- 收到通告会进行对比更新。
==================层次化路由选择==================
层次化路由选择:大规模网络路由选择最有效可行的解决方案
自治系统(autonomous system,AS):互联网按组织边界划分为多个 自治系统。每个自治系统由运行相同路由协议和路由选择算法的路由器组成。如图3个AS组成
网关路由器:每个自治系统存在至少一个与其他自治系统互连的路由器。例如AS3中的 3C、AS1中的1B和1A、AS2中的2C;
层次化路由选择原理: 大规模互联网的路由划分为两层:
- 1、自治系统内路由选择:计算到达自治系统内目的网络的路由。
- 2、自治系统间路由选择:负责其他自治系统网络的可达性信息
层次化路由选择:
- 内部网关协议(Interior Gateway Protocol->IGP):Internet自治系统内部路由选择协议。 1、 路由信息协议(Routing Information Protocol,RIP)、 2、开放最短路径优先协议(Open Shortest Path First,OSPF)
- 外部网关协议( Exterior Gateway Protocol->EGP):Internet自治系统间路由选择协议。1、 边界网关协议(Border Gateway Protocol,BGP)
=============RIP============
RIP:较小的AS。基于距离向量路由选择算法的IGP。
1、RIP报文:封装进UDP数据报。
2、RIP特性:
- 第一、RIP在度量路径时采用的是跳数。
- 第二、RIP的费用定义在源路由器和目的子网之间。
- 第三、RIP被限制的网络直径不超过15跳的自治系统内使用。
=================OSPF================
OSPF:较大规模的AS。基于链路状态路由选择算法的IGP;直接封装在IP数据报传输
OSPF的优点: 安全; 支持多条相同费用路径; 支持区别化费用度量; 支持单播路由与多播路由; 分层路由;
=================BGP==============
BGP:实现跨自治系统的路由信息交换。典型版本是BGP4。
BGP主要有4种报文:
- OPEN(打开)报文,用来不BGP对等方建立BGP会话
- UPDATE(更新)报文,用来通告某一路由可达性信息,或者撤销已有路由
- KEEPALIVE(保活)报文,用于对打开报文的确认,或周期性地证实会话的有效
- NOTIFICATION(通知)报文,用来通告差错