【计算机网络】第四章 网络层

【计算机网络】第四章 网络层

网络层 :负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发,不负责丢失重传,不负责顺序。

1. 网络层提供的两种服务

(1)虚电路服务
在这里插入图片描述
(2)数据报服务
H1发送给H2的分组可能沿着不同路径传送。
在这里插入图片描述
网络层只向上提供简单灵活的、无连接的、尽最大努力交付的数据报(分组)服务。网络在发送分组时不需要先建立连接。每个分组(IP数据报)独立发送,与其前后无关。网络层不提供服务质量的承诺,也就是说,所传送的分组可能出错、丢失、重复和失序。

2. 网络层协议

(1)TCP/IP协议之间层次

在这里插入图片描述
ARP:地址解析协议 IP:网际协议 ICMP:网际控制报文协议 IGMP: 网际组管理协议

(2)虚拟互联网络

将互联网相连接起来需要中间设备:物理层——转发器,数据链路层——网桥(桥接器),网络层——路由器,网络层以上——网关
中间设备是转发器或网桥时,仅是把一个网络扩大了,从网络层的角度看,仍是一个网络
在这里插入图片描述
互连起来的各种物理网络的异构性本来是客观存在的,但是利用IP协议就可以使这些各异的网络在网络层上看起来好像是一个统一的网络。在IP网的上层使用TCP协议,就是现在的互联网(Internet)
在这里插入图片描述
互联网可以由多种异构网络互连组成。
只考虑网络层,IP数据报传输路径:H1——R1——R2——R3——R4——R5——H2

(3)网际协议IP

(1)IP地址的编址方法
1 分类的IP地址
将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成
IP地址 ::={<网络号>,<主机号>}
网络号:标志主机(或路由器)所连接到的网络
主机号:标志该主机(或路由器)
一个IP地址在整个互联网范围内是唯一的。
在这里插入图片描述
近年来广泛使用无分类IP地址进行路由选择
2 子网的划分,3 构成超网 (后面详细介绍)
(2)IP地址与硬件地址
从层次的角度看,物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
在这里插入图片描述
在这里插入图片描述1. 在IP层抽象的互联网上只能看到IP数据报
2. 虽然IP数据报首部有源站IP地址,路由器只根据目的站的IP地址的网络号进行路由选择
3. 在局域网的链路层,只能看见MAC帧
4. IP层抽象的互联网屏蔽了下层复杂的细节
在这里插入图片描述
(3)IP数据报的格式
在这里插入图片描述

  1. 版本:IP协议的版本
  2. 总长度: 首部和数据之和的长度,单位为字节。数据报的最大长度216-1=65535字节,实际中极少。
    IP层下的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,最大传送单元(MTU)数据报的总长度一定不能超过数据链路层规定的MTU,如以太网规定MTU值是1500字节,若传送数据报超过,把过长的数据报进行分片处理。
    进行分片时(片偏移字段),数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和。
  3. 标识: 分片时,标识字段的值被复制到所有的数据报片的标识字段中,相同的标识字段的值使分片后的各数据报片最后能正确地重装成原来的数据报
  4. 标志:MF: 1 还有分片,0 已是若干数据报片中的最后一个,DF:0 允许分片
  5. 片偏移:较长的分组在分片后,某片在原分组中的相对位置,8个字节为单位。
    例如:数据报的总长度为3820字节,其数据部分为3800字节(使用固定首部),需要分片为长度不超过1420字节的数据包片,固定首部长20字节,每个数据报片的数据部分长度不能超过1400字节,于是分为1400,1400,1000,3个数据报片,原始数据报首部被复制为个数据报片的首部,但必须修改有关字段。
    在这里插入图片描述
  6. 生存时间(TTL):现在把TTL字段的功能改为“跳数限制”,指明数据报在互联网中至多可经过多少个路由器,最大255。路由器在每次转发数据报之前就把TTL值减小1,若TTL为0,就丢弃数据报,不再转发。
  7. 首部检验和:这个字段只检验数据报的首部,不包括数据部分。数据报每经过一个路由器,路由器都要重新计算一下首部检验和
    在这里插入图片描述

(4)IP层转发分组的流程
可以把整个的网络拓扑简化,网络变为一条链路,但每个路由器旁边都注明其IP地址,这样的简化图强调了在互联网上转发分组时,是从一个路由器转发到下一个路由器
在路由表中,对每一条路由最主要的是一下两个信息:(目前网络地址,下一跳地址)
在这里插入图片描述
根据目的网络地址来确定下一跳路由器,可得出 1.IP数据报最终一定可以找到目的主机所在的目的网络上的路由器(可能要通过多次间接交付)2.只有到达最后一个路由器时,才是图向目的主机进行直接交付 3.路由器可采用默认路由以减小路由表所占用的空间和搜索路由表所用的时间。
分组转发算法如下:

  1. 从数据报的首部提取目的主机的IP地址D,得出目的主机的网络地址为N
  2. 若N就是与此路由器直接相连接的某个网络地址,则进行直接交付,不需要在经过其他路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,在发送此帧);否则就是间接交付,执行(3)
  3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)
  4. 若路由表中没有达到网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(5)
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
  6. 报文转发分组出错
(4)地址解析协议ARP

ARP协议的用途是为了从网络层使用的IP地址,解析出在数据链路层使用的硬件地址。
每台主机都设有ARP高速缓存,存放一个从IP地址到硬件地址的映射表,并且这个映射表经常动态更新。
ARP的4种典型情况
在这里插入图片描述

  1. 发送方是主机(H1),要把IP数据报发送到同一网络上的另一台主机(H2)。这时H1发送ARP请求分组(在网1上广播),找到目的主机H2的硬件地址
  2. 发送方是主机(H1),要把IP数据报发送到另一网络上的一台主机(H3/H4)。这时H1发送ARP请求分组(在网1上广播),找到网1上的一个路由器R1的硬件地址。剩下的工作由路由R1完成,R1要做的事情是下面的(3)或(4)。
  3. 发送方是路由器(R1),要把IP数据报转发到与R1连接在同一网络(网2)上的主机(H3),这时R1发送ARP请求分组(在网2上广播),找到目的主机H3的硬件地址。
  4. 发送方是路由器(R1),要把IP数据报转发到网3上的一台主机(H4)。H4与R1不是连接在同一个网络上。这时R1发送ARP请求分组(在网2上广播),找到连接在网2上的一个路由器R2的硬件地址。剩下的工作由路由器R2完成。

全世界存在各样的网络,使用不同的硬件地址。连接到互联网的主机只需要各自拥有一个唯一的IP地址,调用ARP的复杂过程都有计算机软件自动进行。

(5)网际控制报文协议ICMP

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用网际控制报文协议ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP报文有两种:差错报告报文(终点不可达、时间超过、参数问题、改变路由(重定向)),询问报文(回送请求和回答、时间戳请求和回答)
ICMP的应用:1.ping:测试两台主机间的连通性 2. tracert获得到目的主机的路由信息

3. 划分子网和构造超网

(1)划分子网

(1) 从两级IP地址到三级IP地址
IP地址缺点:1.IP地址空间的利用率有时低 2. 给每个物理网络分配一个网络号会使路由表变得太大因而是网络性能变坏 3.两级IP地址不够灵活
通过两级IP地址变为三级IP地址解决上述问题(划分子网)
划分子网的基本思路:

  1. 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。划分子网纯属单位内部事情。本单位以外的网络看不见这个网络是由多少子网组成,因为这个单位对外仍然表现为一个网络
  2. 划分子网的方法从网络主机号借用若干为作为子网号 IP地址::={<网络号>,<子网号>,<主机号>}
  3. 凡事从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机

在这里插入图片描述
划分子网只是把IP地址的主机号这部分进行再划分,而不改变IP地址原来的网络号
(2)子网掩码
假定有一个数据报(其目的地址145.13.3.10)已经达到路由器R1,那么这个路由器如何把它转发到子网145.13.3.0——使用子网掩码
在这里插入图片描述
R1把三级IP地址的子网掩码和收到的数据报的目的IP地址145.13.3.10诸位相与,得到所要找的子网的网络地址145.13.3.0
子网掩码是一个网络或一个子网的重要属性。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,还要给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码
例:已知IP地址141.14.72.24 ,子网掩码255.255.192.0,试求网络地址
在这里插入图片描述
(3)使用子网时分组的转发
使用子网划分后,路由表包含:目的网络地址、子网掩码、下一条地址
划分子网的情况下,路由器转发分组算法:

  1. 从收到的数据报的首部提取目的IP地址D
  2. 先判断是否为直接交付。对路由器直接连接的网络逐个进行检查:用各网络的子网掩码和D诸位相“与”,看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把D转换为物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)
  3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)
  4. 对路由表中的每一行(目的网路地址,子网掩码,下一跳地址),用其中的子网掩码和D诸位相“与”,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
  6. 报告转发分组出错

例:有3个子网,2个路由器,以及路由器R1中的部分路由表。现在源主机H1向目的主机H2发送分组。试讨论R1收到H1向H2发送的分组后查找路由表的过程。
在这里插入图片描述
源主机H1把本子网的“子网掩码255.255.255.128”与目的主机H2的“IP地址128.30.33.138”逐位相“与”,得出128.30.33.128,它不等于H1的网络地址(128.30.33.0)。这说明H2与H1不在同一个子网上。因此H1不能把分组直接交付H2,而必须交给子网上的默认路由器R1,由R1来转发。
路由器R1在收到一个分组后,就在其路由表中逐行寻找有无匹配的网络地址
先看R1路由表中的第一行。用这一行的“子网掩码255.255.255.128”和收到分组的“目的地址128.30.33.138”逐位相“与”,得出128.30.33.128.然后和这一行给出的目的网络地址128.30.33.0进行比较,但结果不一致。
用同样的方法继续往下找第二行,结果与第二行目的网络地址相匹配,说明这个网络(子网2)就是收到的分组所要寻找的目的网络。不需要在继续找下去,R1把分组从接口1直接交付主机H2(它们都在一个子网上)

(2)构造超网

(1)网络前缀
使用变长子网掩码VLSM可进一步提高IP地址资源的利用率。在VLSM的基础上进一步研究出无分类编址(无分类域间路由选择CIDR)
CIDR两个特点:

  1. 消除传统的A类B类和C类地址以及划分子网的概念,使用无分类两级编址
    IP地址::={<网络前缀>,<主机号>}
    在IP地址后加上“/”然后写上网络前缀所占的位数(CIDR记法)
    斜线记法中,斜线后面的数字就是地址掩码中1的个数
    斜线记法除了表示IP地址,还知道的这个地址块的最小地址和最大地址
  2. CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”

由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合(构成超网),它使得路由表中的一个项目可以表示原来传统分类地址的很多个路由
例:在这里插入图片描述
把4个系的路由聚合为大学的一个路由(即构成超网)是将网络前缀缩短。网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。
(2)最长前缀匹配
最长前缀匹配(最佳匹配):当查找路由表时可能得到不止一次匹配结果,应当从匹配结果中选择具有最长网络前缀的路由。因为网络前缀越长,地址块越小,路由就越具体。
(3)使用二叉线索查找路由表
二叉线索: IP地址中从左到右的比特值决定了从根节点逐层向下延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。

4. 互联网的路由选择协议

把整个互联网划分为许多较小的自治系统(一个大的ISP),就把路由协议分为两大类
(1)内部网关协议IGP:在一个自治系统内部使用的路由选择协议,与其他自治系统无关(RIP,OSPF协议)
(2)外部网关协议EGP:当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传送到另一个自治系统中(BGP协议)

(1)内部网关协议

(1)RIP
一种分布式的基于距离向量的路由选择协议,最大的优点是简单,但很少被使用
RIP协议特点:1 仅和相邻路由器交换信息 2 路由器交换信息是当前本路由器所知道的全部信息 3 按固定的时间间隔交换路由信息
RIP协议让一个自治系统中的所有路由器都和自己的相邻路由器定期交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的,即跳数最少。
(2)OSPF
OSPF使用分布式的链路状态协议,不是RIP的距离向量协议,OSPF与RIP有三点不同:1 向本自治系统中所有路由器发送信息 2 发送新机就是本路由器相邻的所有路由器的链接状态 3 只有当链路状态发生变化时,路由器才向所有路由器使用洪泛法发送此信息。

(2)外部网关协议BGP

边界网关协议BGP力求寻找一条能到达目标的网络且比较好的路由(不兜圈子)并非要寻找一条最佳路由,BGP采用了路径向量路由选择协议。

(3)路由器的构成

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
路由器结构分为两大部分:路由选择和分组转发
路由选择(控制部分):根据所选的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
分组转发:有三部分(交换结构、一组输入端口、一组输出端口)
交换结构作用是根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构本身就是一种网络,交换结构可看成“在路由器中的网络”

5. IPv6

IPv6数据报有两大部分组成:基本首部,有效载荷
在这里插入图片描述
流标号:“流”是互联网络上特定源点到特定终点(单播或多播)的一系列数据报,在这个“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。
IPv6 中,每个地址占128位,使用冒号十六进制记法
IPv4 向IPv6 的过渡:

  1. 双栈协议:双栈协议主机(或路由器)既能和IPv6 系统通信,也能和IPv4 系统通信。使用域名系统DNS查询,DNS返回IPv4,主机就是用IPv4地址。
  2. 隧道技术:在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4 数据报

ICMPv6:面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。ARP,IGMP都合并到ICMPv6中。

发布了11 篇原创文章 · 获赞 1 · 访问量 948

猜你喜欢

转载自blog.csdn.net/sinat_33438008/article/details/104210824
今日推荐