计算机网络——第四章 网络层

本文最后更新于:2019年11月16日 晚上

概览:计算机网络中网络层的基本概念以及应用.

参照书籍:

《计算机网络(第七版)》——谢希仁编著

《图解TCP/IP》第五版

网络层的服务

网络层向上(如传输层或调用IP协议的协议)只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

网络在发送分组时不需要事先建立连接。每一个分组(即 IP 数据报)均独立发送,与其前后的分组无关。

网络层不提供服务质量的承诺。即所传送的分组可能会出现出错、丢失、重复和失序(不按序到达终点)等问题,同时也不保证分组传送的时限。

尽最大努力交付的好处?

由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉

如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。

采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用

虚拟互连网络

存在着各种各样的性能各异的异构的物理网络。

但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。

使用 IP 协议的虚拟互连网络可简称为 IP 网。

使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节

只从网络层考虑问题,那么IP数据报就可以想象是在网络层中传送。

IP地址

我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一32 位的标识符。

这是IPv4的地址,一共有32位。

IP 地址的编址方法 (有三类)

  • 分类的IP地址
  • 子网的划分
  • 构成超网

IPv4地址的表示方法

采用点分十进制

每八位二进制位转换成一个十进制数,使用点分隔开。

分类的IP地址

IP 地址 ::= { <网络号>, <主机号>}

网络号:标志主机(或路由器)连接到的网络

主机号:标志该主机或者路由器

分类IP地址的好处

  1. IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
  2. 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间

IP地址与硬件地址

在具体的物理链路层中,IP数据报被封装成了MAC帧,看不见IP地址,传播是通过MAC地址进行的。

故IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信 。

地址解析协议 ARP —— IP地址如何转换为MAC地址

不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。

每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。如没有, 则广播查询。

为什么不直接使用硬件地址进行通信?

由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。

连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。

IPv4数据报格式

  • 版本: 4位,指明IP协议的版本。
  • 首部长度:4位,单位为4B(字节),指明整个IP数据报的首部的长度。
    • 首部长度 * 4B = IP数据报的首部的长度。
    • 故IP数据报的首部的长度一定是4B的整数倍,不足要使用填充字段。
    • 这里首部长度的最小值为5,因为IP数据报首部的固定部分的长度为20字节
  • 区分服务:8位,一般不使用。
  • 总长度:16位,单位为1B,只整个IP数据报的长度(首部+数据部分)
    • 总长度不能超过数据链路层的MTU(以太网的MTU是1500字节)
  • 标识:16位,同一数据报的分片使用同一个标识。
  • 标志:3位,目前只有后两位有意义。
    • DF :0允许分片,1禁止分片
    • MF :1代表后面还有分片,0代表分片的
  • 片偏移:13位,单位为8B,表明较长的分组在分片后某片在原分组中的相对位置
    • 说明除了最后一个分片外,其余分片长度一定是8B的整数倍。
  • 生存时间:8位,TTL,IP分组在网络中的寿命,防止数据报无限制的在网络之中传播,消耗资源
  • 协议:8位,指明数据部分使用的协议,协议字段指出应将数据部分交给哪一个进程
  • 首部检验和:16位,只检验数据报的首部,不检验数据部分。
  • 选项字段:1~40字节,用来支持排错、测量以及安全等措施,但很少被使用。