计算机网络 - 网络层

网络层


概述

因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简灵活的、无连接的、尽最大可能交付的数据报服务。
使用ip协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。
在这里插入图片描述
与ip协议配套的协议还有以下:

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

一、IP 数据报格式

在这里插入图片描述
版本:IPv4和IPV6两个值
首部长度:占4位,因此最大值为15。值为1表示的是1个32位字的长度,也就是4字节。因为因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
区分服务:用来获取更好的服务,一般情况下不使用
总长度:包括首部长度和数据部分长度
生存时间:TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈。以路由器调数为单位,当TTL为0时就丢掉数据报。
协议:指出携带的数据应该交给哪个协议进行处理、例如ICMP、TCP、UDP等
首部校验和:因为数据报每经过一个路由器,都要重新计算校验和,因此校验和不包含数据部分可以减少计算的工作量
标识:在数据报过长从而发生分片的情况下。相同数据报的不同分片具有相同的标识
片偏移:和标识符一起,勇于发生分片的情况。片偏移的单位为8字节

在这里插入图片描述

二、IP 地址编址方式

IP地址编址方式经历了三个历史阶段:

  1. 分类
  2. 子网划分
  3. 无分类

2.1分类

由两部分组成,网络号和主机号,其中不同分类具有不同网络号长度,并且是固定的。
在这里插入图片描述

2.2子网划分

通过在主机号字段中拿一部分作为子网号,把两级ip地址划分为三级ip地址。IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >},要使用子网,必须使用子网掩码。一个B类地址的默认子网掩码为255.255.0.0,如果B类地址的子网掩码占两个比特,那么子网掩码为11111111 11111111 11000000 00000000,也就是 255.255.192.0。

2.3无分类

无分类编址CIDR消除了传统A类、B类和C类地址以及划分子网的概念,使用网络前缀和主机号来对IP地址进行编码,网络前缀的长度可以根据需要变化。
IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
CIRD的计法上采用在ip地址后面加上网络前缀长度的方法,例如:128.14.35.7/20 表示前 20 位为网络前缀。
CIDR的地址块中有很多地址,一个CIRD表示的网络就可以表示原来很多的网络,并且在路由表中只需要一个路由器就可以代表原来多个路由,减少了路由表现的数量。把这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为构成超网
在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个

三 地址解析协议 ARP

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

四 网际控制报文协议 ICMP

ICMP是为了更有效地转发ip数据报和提高交付成功的机会。它封装在IP数据报中,但是不属于高层协议
在这里插入图片描述
ICMP报文分为差错报告报文和询问报文
在这里插入图片描述

4.1Ping

ping是ICMP的一个重要应用,主要用来测试两台主机之间的连通性。
ping原理是通过向目的主机发送ICMP Echo请求报文,目的主机收到之后会发送Echo回到报文。PING会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

4.2 Traceroute

Traceroute是ICMP的另一个应用,用来跟踪一个分组从源点到终点的路径。
Traceroute发送的ip数据报封装的是无法交付的DUP用户数据报文,并由发送终点不可达差错报文。

  1. 源主机向目的主机发送一连串的ip数据报。**第一个数据报P1的生存时间TTL设置为1,**当P1到达路径上的第一个路由器R1时,R1收下并把TTL减1,此时TTL=0,R1就把P1丢弃,并向源主机发送一个ICMP时间超过差错报告报文。
  2. 源主机接着发送第二个数据报P2,并把TTL设置为2。P2先到达P1,R1收到后把TTL减1再转发给R2,R2收下后也把TTL减1,由此时TTL等于0,R2就丢弃P2,并向源主机发送一个ICMP时间差错报文。
  3. 不断执行这样的步骤,直到最后一个数据报刚到达目的主机,主机不转发数据包,也不把TTL值减1,但是因为数据报封装的是无法交付的UDP,因此目的主机要向源主机发送ICMP终点不可达差错报告报文。
  4. 之后源主机知道了到达目的主机所经过的路由器IP地址以及到达每个路由器的往返时间。

五 虚拟专用网 VPN

由于IP地址的紧缺,一个机构能申请到的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
VPN 使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网。

下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。
process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQ05Kb21pbg==,size_20,color_FFFFFF,t_70,g_se,x_16)

六 网络地址转换 NAT

专用网内部的主机使用后本地IP地址又想和互联网上的主机通信时,可以使用nat来将本地IP地址转换成全球IP。
在以前,NAT将本地IP地址和全球IP地址一一对应,这种方式下拥有n个全球IP地址专用网内最多只可以同时有n台主机接入到互联网。为了更有效利用全球IP地址,现在常用的nat转换表把传输的端口号也用上了,使得多个专用网内部的主机共用一个全球IP地址。使用端口号的NAT也叫做网络地址与端口转换NAPT。
在这里插入图片描述

七 路由器的结构

路由器从功能上可以划分为:路由选择和分组转发
分组转发有三个结构组成:交换结构、一组输入端口和一组输出端口
在这里插入图片描述

八 路由器分组转发流程

  1. 数据报的首部提取目的主机的IP地址D,得到目的网络地址N
  2. 若N就是与此路由器直接相连的某个网络地址,则直接进行交付
  3. 路由表中有目的地址为D的特定主机路由,则把数据报传送所指明的下一跳路由
  4. 路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器
  6. 报告转发分组错误
    在这里插入图片描述

九 路由选择协议

路由选择协议都是自适应的,能随着网络通信量拓扑结构的变化而自适应地进行调节
互联网可以划分许多较小的自治系统AS,一个AS可以使用一种和别地AS不同的路由选择协议。
可以把路由选择协议分为两大类:

  1. 自治系统内部的路由选择RIP和OSPF
  2. 自治系统间的路由选择:BGP

9.1 内部网关协议 RIP

RIP是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为1。跳数最多为15,超过15表示不可达。

RIP按固定的时间间隔相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一个路由器地址
距离向量算法:

  1. 对地址X的相邻路由器发来的RIP报文,先修改报文中的所有项目,把下一跳字段中的地址改为X,并把所有的距离字段 加1
  2. 对修改后的 RIP 报文中的每一个项目,进行以下步骤:
    1. 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。
    2. 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。
    3. 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。、

RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。

9.2 内部网关协议 OSPF

开放最短路径优先OSPF,是为了克服RIP的缺点而开发出来的。
开放表示OSPF不受某一家厂商控制,而是公开发表的;最短路径优先使用了Dijkstra 提出的最短路径算法 SPF。
OSPF具有以下的特点:

  1. 向本自治系统中的所有路由器发送信息,这种方法就是洪泛法。
  2. 发送的信息就是相邻的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
  3. 只有链路发生变化时,路由器才会发送消息。
    所有路由器dou’ju’you全网的拓扑结构图,并且都是一致的。相比于RIP,OSPF 的更新过程收敛的很快。

9.3 外部网关协议 BGP

BGP,边界网关协议
AS之间的路由选择很困难,主要由于是:

  1. 互联网规模大
  2. 各个AS使用不同的路由使用协议,无法准确定义路径的度量
  3. AS之间的路由必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。
  4. BGP只能寻找一条比较好的路由,而不是最佳路由
  5. 每个AS都必须设置BGP发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值