计算机网络之网络层


网络层的主要功能有: 路由、存储转发、拥塞控制

概述

网络层是因特网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。网络层的任务是选择合适的网间路由和交换结点,确保数据及时传送。网络层还可以实现拥塞控制、网际互连等功能。
网络在发送分组时不需要先建立连接,每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。
网络层传送的分组可能出错、丢失、重复和失序,也不保证分组传送的时限。

网际协议IP

使用IP协议,可把异构的物理网络连接起来,使得在网络层看起来是一个统一的网络。与IP协议配套使用的还有三个协议:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

在这里插入图片描述

IP 地址编址方式

IP地址的编址方式经历了三个历史阶段:分类、子网划分、无分类

  1. 分类
    由网络号和主机号组成,网络号标识所连接到的网络,主机号标识主机。
    IP 地址 ::= {< 网络号 >, < 主机号 >}
    IP地址中的网络号字段和主机号字段
    私有网络:
    10.0.0.0 ~ 10.255.255.255
    172.16.0.0 ~ 172.31.255.255
    192.168.0.0 ~ 192.168.255.255

  2. 子网划分
    通过在主机号字段中拿一部分作为子网号,把两级IP地址划分为三级IP地址,这种做法叫做划分子网。划分子网是在一个单位内部的事情,单位对外仍然表现为没有划分子网的网络。
    IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}

  3. 子网掩码
    仅根据IP数据报首部无法判断网络是否进行了子网划分,可以利用子网掩码找出IP地址中的子网部分。
    在这里插入图片描述
    IP地址 = 网络地址 + 主机地址
    网络地址 = IP地址 & 子网掩码(按位与)
    主机地址 = IP地址 - 网络地址
    在这里插入图片描述
    通过子网掩码,可判断两个IP是否在一个局域网内部。若网络地址相同说明IP处于同一个局域网,由主机号区分。子网掩码可看出有多少位是网络号,有多少位是主机号。
    若主机号有5位,则这个地址中,最多只能有25−2=30个主机。因其中全0作为网络地址,全1作为广播地址。

  4. 无分类编址CIDR
    CIDR消除了A、B和C类地址以及划分子网的概念,使用网络前缀和主机号来对IP地址进行编码,网络前缀的长度可以根据需要变化。
    IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
    CIDR使用斜线记法,在IP地址后面加上一个斜线"/",然后写上网络前缀所占位数,数值对应三级编址中子网掩码中1的个数。如128.14.32.0/20表示的地址块共有212个地址(因斜线后面的20是网络前缀位数,这个地址的主机号是12位)。
    CIDR把网络前缀都相同的连续的IP地址组成“CIDR 地址块”。一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一条记录可以表示很多个原来传统分类地址的路由,路由聚合也称为构成超网。

IP数据报格式

一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
在这里插入图片描述
首部长度:占4位,最大值为15。首部长度为1时表示1个32位字的长度,也就是4字节。由于固定部分长度为20字节,因此该值最小为5。如果可选字段的长度不是4字节的整数倍,就用尾部的填充部分来填充。
总长度:包括首部长度和数据部分长度。2字节,理论最大65535字节。实际传输长度需要根据MTU最大传输单元来确定。
标识:在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
片偏移:和标识符一起,用于发生分片的情况。单位是8字节。
IP 数据报分片
生存时间(TTL):为防止数据报在网络中兜圈子,以路由器跳数为单位,当TTL减为0时就丢弃该数据报。

ARP地址解析协议

网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信,但链路层并不认识IP地址,所以ARP的职责是把IP地址转换成数据链路层认识的MAC地址。因此在通信过程中,IP数据报的源地址和目的地址始终不变,而MAC地址随着链路的改变而改变。
在这里插入图片描述
每个主机都有一个ARP高速缓存,里面有本局域网内各主机和路由器的IP地址到MAC地址的映射表。如果主机A知道主机B的IP地址,但A的ARP高速缓存中没有该IP地址到MAC地址的映射,主机A通过广播发送ARP请求分组,主机B收到该请求后会发送ARP响应分组给主机A告知其MAC地址,随后主机A向其高速缓存中写入主机B的IP地址到MAC地址的映射。
广播发送ARP请求,单播发送ARP响应。

ICMP网际控制报文协议

为了提高IP数据报交付成功的机会,使用了ICMP。ICMP用来报告主机和路由器之间的错误和控制信息。ICMP报文作为IP数据报的数据部分,不属于高层协议。处理在路由器和主机之间流通的错误和控制信息。
在这里插入图片描述
在这里插入图片描述
ICMP报文分为差错报告报文询问报文

在这里插入图片描述
源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送抑制报文,使源站知道应当将数据报的发送速率放慢。
参数问题:路由器或目的主机收到的报文首部中的字段值不正确时,丢弃报文并向源站发送参数问题报文。
我们常用的ping命令就是“回显请求和回显应答”。ping是通过向目的主机发送ICMP回送请求报文,目的主机收到后会发送回答报文,来测试两个主机之间的连通性。
另一个命令traceroute可以实现跟踪一个分组从源点到终点的路径,traceroute发送的IP数据报中封装了无法交付的UDP用户数据报,并由目的主机发送终点不可达差错报告报文。

IGMP网际组管理协议

IGMP用来在接收主机和与其直接相邻的组播路由器之间建立和维护组播组成员关系。

网络地址转换NAT

允许一个机构以一个公用IP出现在Internet上,NAT转换后,一个本地IP地址对应一个全局IP地址。NAT转换表用上传输层的端口号,使得多个专用网内部的主机共用一个全球IP地址。使用端口号的NAT也叫做网络地址与端口转换NAPT。

路由器的结构

路由器是具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。路由器结构可以分为:路由选择部分和分组转发部分。
在这里插入图片描述

名词解释

路由(名词):数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。
路由(动词):某个路由节点为数据报选择投递方向的选路过程。
路由节点:一个具有路由能力的主机或路由器,它维护一张路由表,通过查询路由表来决定向哪个接口发送数据包。
接口:路由节点与某个网络相连的网卡接口。
路由表:由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接口发送,其中最后一条是缺省路由条目。
路由条目:路由表中的一行,每个条目主要由目的网络地址、子网掩码、下一跳地址、发送接口四部分组成,如果要发送的数据包目的网络地址匹配路由表中的某一行,就按规定的接口发送到下一跳地址。
缺省路由条目:路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

路由选择协议

  1. 概述
    因特网采用分层次的路由选择协议,可以分为两大类:
  • 内部网关协议IGP(Interior Gateway Protocol)在一个自治系统内部使用的路由选择协议,用的最为广泛,有RIP、OSPF协议。
  • 外部网关协议EGP(External Gateway Protocol):源主机和目的主机在不同的自治系统中,需要一种协议将路由选择信息在不同的自治系统间传递。最常用的是BGP-4。
    因特网将划分了多个小的自治系统(Autonomous System,简称AS),自治系统之间的路由选择叫做域间路由选择,在自治系统内部的路由选择叫域内路由选择。
    在这里插入图片描述
  1. 内部网关协议RIP
    RIP是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为1。跳数最多为15,超过15表示不可达(只适用于小型网络)。网络中的每一个路由器要维护从它自己到其它每一个目的网络的距离记录。路由器在刚开始工作时,只知道到直接连接的网络的距离(此距离为1)。RIP中,仅在相邻的路由器之间按照固定时间间隔交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。
    RIP协议实现简单,开销小。但RIP能使用的最大距离为15,限制了网络的规模。且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器(好消息传的快,而坏消息传的慢)。
  2. 内部网关协议OSPF
    开放最短路径优先OSPF(Open Shortest Path First)是为了克服RIP的缺点开发出来的。使用了Dijkstra提出的最短路径算法,是一种分布式的链路状态协议。
    OSPF协议中,自治系统内的任意一台路由器都会向本自治系统中所有的路由器发送信息,使用了“洪泛法”。发送的信息是与其自身相邻的所有路由器的链路状态。只有当链路状态发生变化时,才用洪泛法向所有路由器发送此信息。
    由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。OSPF的链路状态数据库能较快更新,使各路由器能及时更新其路由表。
  3. 边界网关协议BGP
    BGP是不同自治系统的路由器之间交换路由信息的协议。BGP只能寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而不是最佳路由。
    每个AS都必须配置BGP发言人。一般,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人通常是BGP边界路由器。BGP发言人之间通过建立TCP连接,在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。

路由器分组转发流程

  1. 从数据报的首部提取目的主机的IP地址D,得到目的网络地址N;
  2. 若N就是与此路由器直接相连的某个网络地址,则进行直接交付;
  3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给表中所指明的特定主机路由器;若无转4;
  4. 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;

常见问题

OSPF没有固定的路由更新周期。RIP协议中,默认的路由更新周期是30秒。
OSPF是一种分层的路由协议,自治系统被划分为多个区域,每个区域运行路由选择算法的一个实例,连接多个区域的路由器运行路由选择算法的多个实例。
OSPF是一种链路状态协议,链路状态协议与距离矢量协议发布路由信息的方式不同,链路状态协议是在网络拓扑发生变化时才发布路由信息,而距离矢量协议是周期性地发布路由信息,所以链路状态协议没有固定的路由更新周期,而距离矢量协议具有设定的路由更新周期,如RIP路由更新周期为30s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值