网络层

网络层

网络层提供的两种服务

  • 在计算机领域,网络层应该向运输层提供提供怎样的服务(面向连接 还是 无连接),曾引起了长期的争论;
  • 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络,还是端系统

面向连接类似打电话,可靠交付依赖的是网络(中间系统);

  • 计算机网络应模仿电信网络的成功经验,使用面向连接的通信方式,通信之前先建立虚电路,以保证双方通信所需的一切网络资源,再使用可靠传输的网络协议,就可使分组无差错按序到达终点,不丢失、不重复
  • H1发送给H2的所有分组都沿着同一条虚电路传送
  • 虚电路表示这只是一条逻辑上的连接,并不是真正建立了一条物理连接

无连接则类似写信,可靠交付依赖的是端系统,由端系统来询问消息是否到达。

  • 网络层向上只提供简单灵活的、无连接的尽最大努力交付的数据报服务
  • 网络层在发送分组时不需要先建立连接。每一个分组(IP数据报)独立发送,与其前后的分组无关(不进行编号)
  • 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序,当然也不保证分组传送的时限

尽最大努力交付

  • 由于传输网络不提供端到端的可靠传输服务,这就使得网络中的路由器可以做得比较简单;
  • 如果主机(端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制)
  • 互联网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

数据报服务

H1发送给H2的分组可能沿着不同的路径传送。

虚电路服务和数据报服务的对比

对比的方面虚电路服务数据报服务
思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证
连接的建立必须有不需要
终点地址仅在连接建立时使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发
当节点出现故障时所有通过故障节点的虚电路都不能工作出故障的节点可能丢失分组,一些路由可能会发生变化
分组的顺序总是按发送顺序到达终点到达终点时不一定按照发送顺序
端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责

网际协议IP

网际协议IP(Internet Protocol)是TCP/IP体系中两个最主要的协议之一。

与IP协议配套使用的还有三个协议:

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

网络层的IP协议和配套协议:

在这里插入图片描述

分组在互联网中的传送

在这里插入图片描述

IP地址

在TCP/IP体系中,IP地址是一个最基本的概念。

IP地址就是给每个连接在互联网上的主机/路由器分配一个在全世界范围内是唯一的32位标识符。

IP地址的编址方案

  • 分类的IP地址,这是最基本的编址方案
  • 子网的划分是对最基本的编址方案的改进
  • 构成超网,这是比较新的无分类编址方法

分类的IP地址

  • 将IP地址划分为若干个固定的类;
  • 每一类地址都是由两个固定长度的字段组成,其中一个字段是网络号,它标志主机/路由器所连接到的网络;而另一个字段则是主机号,它标志该主机/路由器;
  • 主机号在它前面的网络号所指明的网络范围内必须是唯一的;
  • 由此可见,一个IP地址在整个互联网范围内都是唯一的

在这里插入图片描述

点分十进制记法

在这里插入图片描述

由32位二进制代码的前两位是10可得,这是一个B类地址。

IP地址的指派范围

网络类别最大可指派的网络数第一个可指派的网络号最后一个可指派的网络号每个网络中的最大主机数
A2^7 - 200000001(1)01111110(126)2^24 - 2
B2^14 - 1100000000.00000001(128.1)10111111.11111111(191.255)2^16 - 2
C2^21 - 111000000.00000000.00000001(192.0.1)11011111.11111111.11111111(223.255.255)2^8 - 2

A类:

  • 全为0的IP地址不可分配;(A类的00000000网络号不可分配)
  • 全为1的网络号127.x.x.x(A类的011111111.x.x.x被设置为保留地址,不能分配)
  • 全为0和全为1的主机号不可分配

B类:

  • 网络号总共为16位,前两位固定为10,除前两位外,后面全为0的网络号不可用;
  • 2^7 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 128 + 32 + 16 + 8 + 4 + 2 + 1 = 191
  • 全为0和全为1的主机号不可分配

C类:

  • 网络号为24位,前三位固定为110,除前三位外,后面全为0的网络号不可用;
  • 2^7 + 2^6 = 128 + 64 = 192
  • 2^7 + 2^6 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 128 + 64 + 16 + 8 + 4 + 2 + 1 = 223
  • 全为0和全为1的主机号不可分配

IP地址的重要特点

  • IP地址是一种分等级的地址结构
    • IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配;
    • 路由器仅根据目的主机所连接的网络号来转发分组(不考虑主机号),这样就可以使得路由表中的项目数大幅减少,从而减少了路由表所占的存储空间;
  • 实际上,IP地址是标志一个主机/路由器和一条链路的接口
    • 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的,这种主机称为多归属主机;
    • 由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址
  • 用转发器或者网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号;
  • 所有分配到网络号的网络,无论是范围很小的局域网,还是可能覆盖更大地理范围的广域网,都是平等的。

互联网中的IP地址

在这里插入图片描述

IP地址与硬件地址

  • IP地址与硬件地址是不同的地址;
  • 从层次的角度看
    • 硬件地址(或物理地址)是数据链路层和物理层使用的地址;
    • IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)

在这里插入图片描述

从虚拟的IP层看IP数据报的流动

在这里插入图片描述

在这里插入图片描述

ARP协议

已经知道了一个机器(主机或者路由器)的IP地址,如何找出其相应的MAC地址(硬件地址)?

地址解析协议ARP就是用来解决这样的问题的。

在这里插入图片描述

  • 无论网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址
  • 每一个主机都设有一个ARP高速缓存(ARP Cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表;
  • IP address; MAC address; TTL
  • TTL(Time To Live):地址映射有效时间;

地址解析协议要点

  • 当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址
    • 如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址;
    • 如没有,ARP进程在本局域网上广播发送一个ARP请求分组。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存;
  • ARP请求分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址(未知时填0)/目标方IP地址
  • 本地广播ARP请求,路由器不转发ARP请求
  • ARP响应分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址/目标方IP地址
  • ARP分组封装在物理网络的帧中传输

在这里插入图片描述

ARP高速缓存的作用

  • 存放最近获得的IP地址到MAC地址的绑定,以减少ARP广播的数量;
  • 为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组;
  • 当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。这对主机B以后向A发送数据报时就更方便了。

查看本机ARP缓存列表的命令:arp -a

应当注意的问题

  • ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题;
  • 如果所要找的主机和源主机不在同一个局域网上 ,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就交给下一个网络来做;
  • 从IP地址到硬件地址的解析是自动进行的,主机的用户对于这种地址解析过程是不知道的

使用ARP的四种典型情况

在这里插入图片描述

在这里插入图片描述

IP数据报的格式

  • 一个IP数据报由首部数据两部分组成;
  • 首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的;
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的

在这里插入图片描述

IP数据报首部的固定部分中的各字段

  • 版本:占4位,指IP协议的版本,目前的IP协议版本号为4(即IPv4);

  • 首部长度:占4位,可表示的最大数值是15个单位(一个单位为4个字节),因此IP的首部长度的最大值是60字节;

  • 区分服务:也被称为服务类型,占 8 位,用来获得更好的服务;

  • 总长度:占16位,指首部和数据的长度,单位为字节,因此IP数据报的最大长度为2^16 - 1 = 65535字节,总长度必须不超过最大传送单元MTU

  • 标识:占16位,它是一个计数器,用来产生IP数据报的标识;

  • 标志:占3位,第一位未使用,其值为 0。第二位称为 DF(不分片),表示是否允许分片。取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片。第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片;

  • 片偏移:占 13 位。当报文被分片后,该字段标记该分片在原报文中的相对位置。片偏移以 8 个字节为偏移单位。所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍;

  • 生存时间TTL(Time Ti Live): 表示IP数据报在网络中的寿命,占 8 位。该字段由发出数据报的源主机设置,其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源。

    路由器在转发数据报之前,先把 TTL 值减 1。若 TTL 值减少到 0,则丢弃这个数据报,不再转发。因此,TTL 指明数据报在网络中最多可经过多少个路由器。TTL 的最大数值为 255。若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送;

  • 协议: 表示该数据报文所携带的数据所使用的协议类型,占 8 位。该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。

    例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。

  • 首部校验和:用于校验数据报的首部,占 16 位。数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值;

  • 源地址:表示数据报的源 IP 地址,占 32 位;

  • 目的地址:表示数据报的目的 IP 地址,占 32 位。该字段用于校验发送是否正确;

  • 可选字段:该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的;

  • 填充:由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍;

  • 数据部分:表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据。数据部分的长度不固定。

在这里插入图片描述

片偏移、MF、DF等字段。

第一个分片[0, 1399]第二个分片[1400,2799]第三个分片[2800,3799]
片偏移0/8 = 01400/8 = 1752800/8 = 350
MF110
DF000

标识位不变,表示是一个数据报。

在路由表中,对每一条路由,最重要的是(目的网络地址,下一跳地址)。

在这里插入图片描述

路由表

查找路由表

根据目的网络地址就能确定下一跳路由器,这样做的结果是:

  • IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付);
  • 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

特定主机路由

虽然互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即为特定的目的主机指明一个路由。

默认路由

路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。

在这里插入图片描述

需要注意的点

  • IP数据报的首部中是没有地方用来指明"下一跳路由器的IP地址";
  • 当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是交送下层的网络接口软件;
  • 网络接口软件使用ARP负责将下一跳路由器的IP地址转换为硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。

路由器分组转发算法

在这里插入图片描述

关于路由表

在这里插入图片描述

划分子网和构造超网

划分子网

从两级IP地址到三级IP地址;

划分子网的基本思路

在这里插入图片描述

在这里插入图片描述

子网掩码

  • 从一个IP数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网划分;
  • 使用子网掩码可以找出IP地址中的子网部分;

规则:

  • 子网掩码长度:32位;
  • 某位为1:IP地址中的对应位为网络号和子网号;
  • 某位为0:IP地址中的对应位为主机号;

IP地址 & 子网掩码 = 网络地址

在这里插入图片描述

以前路由表记录网络号,现在记录网络号+子网号=子网的网络地址。

默认子网掩码

在这里插入图片描述

子网划分后的分组转发

在这里插入图片描述

在ABC类划分子网时,子网号不能全0或全1。主机号同样也是不能全0或全1。

由于子网号不能全0或者全1,那么就会浪费掉2^主机号长度 的IP地址。

无分类编址CIDR和构造超网

  • CIDR消除了传统的A类、B类、C类地址以及划分子网的概念;
  • CIDR使用各种长度的"网络前缀"来代替分类地址中的网络号和子网号;
  • IP地址从三级编址(使用子网掩码)又回到了两级编址。

在这里插入图片描述

CIDR地址块

在这里插入图片描述

构成超网

在这里插入图片描述

最长前缀匹配

在这里插入图片描述

网际控制报文协议ICMP

  • 为了更有效地转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP;
  • ICMP是互联网的标准协议;
  • ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
  • 但ICMP不是高层协议(虽然ICMP报文是装在IP数据报中,作为其中的数据部分),而是IP层的协议;

ICMP报文的格式

在这里插入图片描述

ICMP报文的种类

  • ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文;
  • ICMP报文的前四个字节是统一的格式,共有三个字段,即类型、代码、检验和,接着的四个字节的内容与ICMP的类型有关;

PING(Packet Internet Grouper):测试两个主机之间的连通性;

如要向目标主机发送数据包,首先需要确保目标主机是启用的;ICMP协议可以用来探测主机,以判断主机是否启用。

ping 命令就是借助 ICMP 传输协议,发出要求回应的 Echo(ping)request 消息。若远端主机的网络功能没有问题,就会回应 Echo(ping)reply 信息,因而得知该主机运作正常。因此用户可以通过 ping 命令来判断目标主机是否启用。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Traceroute命令

  • 在Windows操作系统中,这个命令时tracert;
  • 用来跟踪一个分组从源点到终点的路径;

在这里插入图片描述

互联网的路由选择协议

内部网关协议RIP

工作原理

  • 路由信息协议(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议;
  • RIP是一种分布式的、基于距离向量的路由选择协议;
  • RIP协议要求网络中每一个路由器都要维护从它自己到其他每一个目的网络的距离记录;
  • RIP允许一条路径最多只能包含15个路由器;
  • 距离的最大值为16时,即相当于不可达,可见RIP只适用于小型网络;
  • RIP认为一个好的路由就是它通过的路由器的数目少,即距离短;

RIP协议的特点

  • 仅和相邻路由器交换信息;
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表;

在这里插入图片描述

内部网关协议OSPF

  • 开放最短路径优先OSPF是为克服RIP的缺点在1989年开发出来的;
  • 最短路径优先是因为使用了最短路径算法SPF;
  • 采用分布式的链路状态协议;

外部网关协议BGP

  • BGP是不同自治系统的路由器之间交换路由信息的协议。

路由器的结构

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组,也就是说将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器;

典型的路由器结构

在这里插入图片描述

网络地址转换NAT

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

另外,这种通过使用少量的公有IP地址代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。

要真正了解NAT就必须先了解现在IP地址的使用情况,私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,如下:

A 类:10.0.0.0~10.255.255.255

B 类:172.16.0.0~172.31.255.255

C 类:192.168.0.0~192.168.255.255

上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。

网络地址转换的过程

在这里插入图片描述

虚拟专用网络VPN

Virtual Private Network

一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。它利用隧道协议(Tunneling Protocol)来达到发送端认证、消息保密与准确性等功能。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值