目录
第四章:网络层
4.1 网络层的功能
4.1.1 网络层功能概述
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
功能:路由选择与分组转发;异构网络互联;拥塞控制。
拥塞控制:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。措施:开环控制(静)、闭环控制(动)。
4.1.2 数据交换方式
1、电路交换
阶段:建立连接(呼叫/电路建立)----> 通信---->释放连接(拆除电路)
特点:独占资源
优点:通信时延小;有序传输;没有冲突;实时性强
缺点:建立连接时间长;线路独占,使用效率低;灵活性差;无差错控制能力
2、报文交换
报文:源应用发送的信息整体
优点:无需建立连接;存储转发,动态分配线路;线路可靠性较高;线路利用率较高;多目标服务
缺点:有存储转发时延;报文大小不定,需要网络节点有较大缓存空间
3、分组交换
分组:把大的数据块分割成小的数据块
优点:无需建立连接;存储转发,动态分配线路;线路可靠性较高;线路利用率较高;相对于报文交换,存储管理更容易
缺点:有存储转发时延;需要传输额外的信息量;乱序到目的主机时,要对分组排序重组
4、报文交换&分组交换
报文交换:一共三段,每段都需要10000bit/1000bps=10s,三段就是3x10=30s
分组交换:可以分为两段,一个是第一个数据开始发到最后一个数据从源发出,一段是最后一个数据到达目的地。第一段总时间是10000bit/1000bps=10s,第二段总时间是(10/1000)*2=0.02s,所以总时间是10.02s。
计算题中要注意的几点:
1)单位换算:b/B,Mbps,kbps
2)是否考虑传播时延
3)时间至少是多少——选择最少跳数
4)起始时间(从发送开始到接收完为止/从发送开始到发送完毕)
5)是否有分组头部大小的开销
6)报文交换时延更长,分组交换时延可能不是整数
5、三种数据交换方式比较总结
1)报文交换和分组交换都采用存储转发
2)传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小
3)从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小
4.1.3 分组传输的两种传输方式
1、数据报方式:为网络层提供无连接服务
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
每个分组携带源和目的地址
路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。
2、虚电路方式:为网络层提供连接服务
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
虚电路将数据报方式和电路交换方式结合,以发挥两者优点。
虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路信息。
通信过程:1)建立连接(虚电路建立):每个分组携带虚电路号,而非目的地址。源主机发送“呼叫请求”分组并收到“呼叫应答”分组后才算建立连接。
2)数据传输:全双工通信
3)释放连接(虚电路释放):源主机发送“释放请求”分组以拆除虚电路。
4.2 路由算法与路由协议概述
路由算法就是让路由知道收到报文之后下一步怎么走
最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
1、路由算法的分类
1)静态路由算法(非自适应路由算法):管理员手工配制路由信息。
优点:简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和娇小的商业网络。
缺点:路由更新慢,不适用大型网络。
2)动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项。
优点:路由更新快,适用于大型网络,及时响应链路费用或网络拓扑变化。
缺点:算法复杂,增加网络负担。
a.全局性:链路状态路由算法 OSPF:所有路由器掌握完整的网络拓扑和链路费用信息
b.分散性:距离向量路由算法 RIP:路由器只掌握物理相连的邻居及链路费用
2.分层次的路由选择协议
1)因特网规模很大
2)许多单位不想让外界知道自己的路由选择协议,但还想连入因特网
自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
路由选择协议包括:
内部网关协议IGP 一个AS内使用的 RIP、OSPF
外部网关协议EGP AS之间使用的 BGP
4.3 路由协议
4.3.1 RIP协议与距离向量算法
1、RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中的每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1.特别的,从一路由器到直接连接的网络距离为1.RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
2、RIP协议信息交换
1)仅和相邻路由器交换信息
2)路由器交换的信息是自己的路由表
3)每30秒交换一次路由信息,然后路由器根据新信息更新路由表超过180秒没收到邻居路由器的通告,则判定邻居没了,并更新自己的路由表。
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
3、距离向量算法
1)修改相邻路由器发来的RIP报文中所有表项
对地址为x的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为x,并把所有的“距离”字段+1。
2)对修改后的RIP报文中的每一个项目,进行以下步骤:
R1路由表中若没有Net3,则把该项目填入R1路由表
R1路由表中若有Net3,则查看下一跳路由器地址:若下一跳是x,则用收到的项目替换源路由器表中的项目;若下一跳不是x,原来距离比从x走的距离更远则更新,否则不做处理。
3)若180秒还没有收到相邻路由器x的更新路由表,则把x记为不可达的路由器,即把距离设为16
4)返回
4、RIP协议的报文格式
5、RIP协议特点
好消息传得快,坏消息传的慢
当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。来回更新路由表,错误信息被覆盖,导致直至达到距离上限强制错误时才可以得知出错。
4.3.2 OSPF协议与链路状态算法
1、OSPF协议
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议。
OSPF的特点:
1)使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送消息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。最终整个区域内所有路由器都得到了这个信息的一个副本。
2)发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价--费用、距离、时延、带宽等)
3)只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此消息。
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
2、链路状态路由算法
1)每个路由器发现它的邻居结点[HELLO问候分组],并了解邻居节点的网络地址。
2)设置到它的每个邻居的成本度量metric
3)构造[DD数据库描述分组],向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
4)如果DD分组中的摘要自己都有,则邻站不做处理:如果有没有的或者是更新的,则发送[LSR链路状态请求分组]请求自己没有的和比自己更新的信息。
5)收到邻站的LSR分组后,发送[LSU链路状态更新分组]进行更新。
6)更新完毕后,邻站返回一个[LSAck链路状态确认分组]进行确认。
只要一个路由器的链路状态发生变化:
5)泛洪发送[LSU链路状态更新分组]进行更新。
6)更新完毕后,其他站返回一个[LSAck链路状态确认分组]进行确认。
7)使用Djkstra根据自己的链路状态数据库构造到其他节点间的最短路径。
3、OSPF的区域
4、 OSPF分组
5、 OSPF其他特点
1)每隔30min,要刷新一次数据库中的链路状态。
2)由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议RIP好得多。
3)OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
4.3.3 BGP协议
1、概述
与其他AS的邻站BGP发言人交换信息。
交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS.
发生变化时更新有变化的部分。
2、BGP协议交换信息的过程
BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。
BGP发言人交换路径向量:
自治系统AS2的BGP发言人通知主干网AS1的BGP发言人:“要到达网络N1、N2、N3和N4可经过AS2”
主干网还可发出通知:“要到达网络N5、N6和N7可沿路径(AS2,AS3)”
3、BGP协议的报文格式
一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。
BGP是应用层协议,借助TCP传送。
4、BGP协议特点
BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
5、BGP-4的四种报文
4.3.4 三种路由协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP。
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
4.4 IPv4
4.4.1 IP数据报格式
除了最后一个分片,每个分片长度一定是8B的整数倍。
总长度单位是1B,片偏移单位是8B,首部长度单位是4B
名称 | 简介 | 大小 |
版本 | IPv4或IPv6 | 4位 |
首部长度 | 此处数值再乘以4B才是真正大小,同时因为IP数据报固定长度为20字节,所以此处最小值为5,即二进制的0101 | 4位 |
区分服务 | 希望获得哪种服务,用的比较少 | 8位 |
总长度 | 首部+数据的长度,最大为2^16-1=65535 | 16位 |
标识 | 用来表示是哪一个数据报的分片,不同的分片标识各不相同 | 8位 |
标志 | 用来表示是否分片和分片是否结束 | 3位,实际只用后两位 |
片偏移 | 用来标记分片之后,该分片在原来的数据报的位置,以8B为单位 | 13位 |
生存时间 | 即TTL,没经过一个路由器TTL-1,0时自动放弃,根据系统不同默认的TTL不同 | 8位 |
协议 | 用来标记协议名的字段值,如TCP(6),UDP(17),ICMP等等 | 8位 |
首部检验和 | 检验首部的字段是否出错,出错就丢弃此数据报 | 16位 |
源地址 | 发送方ip地址 | 32位 |
目的地址 | 接收方ip地址 | 32位 |
可选字段 | 用来排错等安全检测 | 未知,可在0-40位之间 |
填充 | 将数据报对齐成4字节的整数倍,数值全部为0 | 未知,根据可选字段来定 |
4.4.2 IPv4地址
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。
IP地址::={<网络号>,<主机号>}
分类的IP地址:
最大主机数-2原因:除去全0和全1
A:网络号最开始第一位是0,一共八位,所以二进制表示位0xxxxxxx,最大就是2^7-1=127,但是因为127.xxx.xxx.xxx是特殊ip地址,所以将其去掉
B:网络号最开始第一位是10,一共八位,所以二进制表示位10xxxxxx,最大就是10111111=191,最小就是10000000=128,无特殊ip地址
C:网络号最开始第一位是110,一共八位,所以二进制表示位110xxxxx,最大就是11011111=223,最小就是10000000=192,无特殊ip地址
特殊IP地址:
私有IP地址:
路由器对目的地址是私有IP地址的数据报一律不进行转发。
4.4.3 网络地址转换NAT
网络地址转换NAT(network address translation):在专用网连接到因特网的路由器上安装NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
4.4.4 子网划分和子网掩码
1、子网划分
分类的IP地址的弱点:IP地址空间的利用率有时很低;两级IP地址不够灵活
子网划分原因:IP地址不够用,所以需要额外整个子网扩展IP
子网号能全0或者全1:因为CIDR编址
主机号不能全0或者全1:因为全0代表本网络,全1代表广播分组
2、子网掩码
3、使用子网时分组的转发
路由器转发分组算法:
1)提取目的IP地址 2)是否直接交付 3)特定主机路由 4)检测路由表中有无路径 5)默认路由 0.0.0.0 6)丢弃,报告转发分组出错
4.4.5 无分类编址CIDR(构成超网)
构成超网:将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
方法:将网络前缀缩短。
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
4.4.6 ARP协议
ARP协议自动进行
4.4.7 DHCP协议
4.4.8 ICMP协议
TCP/IP协议栈:
ICMP,IGMP处于网络层和传输层之间,为了更有效地转发IP数据报和提高交付成功的机会
1、网际控制报文协议ICMP
2、ICMP差错报告报文
1)五种ICMP差错报告报文(源点抑制已废弃不用)
2)数据字段
3)不应发送ICMP差错报告报文的情况
组播是指由一点到多点,但不是无脑发到所有点,无脑发到所有点的是广播,组播有筛选条件
3、ICMP询问报文
后两种已不再使用
4、ICMP的应用
1)PING 测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
2)Traceroute 跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
4.5 IPv6
IPv4地址用完了,从根本上增加ip地址数目,之前讲的NAT和CIDR也只是在IPv4的基础上扩展了IPv4地址数目,治标不治本。IPv6从根本上解决地址耗尽问题。
1、数据报格式
固定40B基本首部
名称 | 简介 | 位数 |
版本 | 知名协议版本,此处因为是IPv6所以总是6 | 4位 |
优先级 | 用来区分数据报的类型和优先级 | 8位 |
流标签 | 和IPv4标识某个数据报分片不同,这是对于一整个数据报流的标记 | 19位 |
有效载荷长度 | 指的是扩展首部+数据部分的大小,和IPv4的总长度和首部长度都不同,IPv6的首部长度是固定的40字节 | 16位 |
下一个首部 | 基本首部的下一个首部指的是有效载荷里标记的的扩展首部,有效载荷里的扩展首部再指向有效载荷里标记的的扩展首部,直至最后指向数据 | 8位 |
跳数限制 | 基本相当于IPv4当中的TTL,每到一个路由器-1.减到0时丢弃 | 7位 |
源地址 | 发送方IPv6地址 | 128位 |
目标地址 | 接收方IPv6地址 | 128位 |
2、与IPv4的区别
3、IPv6地址表示形式
4、IPv6基本地址类型
1)单播:一对一通信,可做源地址+目的地址
2)多播:一对多通信,可做目的地址
3)任播:一对多中的一个通信,可做目的地址
5、IPv6向IPv4过渡的策略
4.6 IP组播
1、IP数据报的三种传输方式
1)单播:用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
在发送者和每一接收者之间需要单独的数据信道。
2)广播:指发送数据包到同一广播域或子网内的所有设备的一种数据传播方式,是一种点对多点传输方式。
3)组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。
组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器(运行组播协议的路由器)的支持)。
2、IP组播地址
IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。
1)组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
2)对组播数据报不产生ICMP差错报文。
3)并非所有D类地址都可以作为组播地址。
分类:因特网范围内组播、硬件组播
3、硬件组播
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的
收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
4、IGMP协议
IGMP只能知道有没有组播组成员,对有几个组播组成员,成员在哪个地方都不知道
IGMP工作的两个阶段:
1)某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声称自己要称为该组的组员。本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
2)本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组相应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机相应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。
组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
5、组播路由选择协议
组播路由协议目的是找出以源主机为根节点的组播转发树。
构造树可以避免在路由器之间兜圈子。
对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树
组播路由选择协议常使用的三种算法:基于链路状态的路由选择;基于距离-向量的路由选择;协议无关的组播(稀疏/密集)
4.7 移动IP
移动IP不等于动态IP(DHCP获得的)
移动IP的可以让用户因为地理原因等等,即使不在内网也可以访问内网
1、移动IP相关术语
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点 具有永久IP地址的移动设备。
归属代理(本地代理) 一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
外部代理(外地代理) 在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
永久地址(归属地址/主地址) 移动站点在归属网络中的原始地址。
转交地址(辅地址) 移动站点在外部网络使用的临时地址。
2、移动IP通信过程
4.8 网络层设备
1、路由器
是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
2、三层设备的区别
路由器:可以互联两个不同网络层协议的网段。
网桥:可以互联两个物理层和链路层不同的网段。
集线器:不能互联两个物理层不同的网段。
3、路由表与路由转发
路由表根据路由选择算法得出,主要用途是路由选择,总用软件来实现。
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件实现。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。
4.9 总结
参考资料:王道考研