计算机网络:网络层与IP协议(1)

一、网络层的服务

网络层应该提供什么服务,一直以来有两种观点:一种是由网络负责可靠通信的面向连接;另一种是由主机负责通信的无连接

1.面向连接(虚电路服务)

在面向连接的通信服务中,由电信网络负责提供可靠传输的服务。两台主机进行通信分为以下步骤:

  1. 建立连接:开始通信前,先建立一条虚电路,预留通信资源;
  2. 数据传输:双方计算机沿着虚电路发送分组,分组不需要携带目的地址等信息;
  3. 拆除连接:通信结束后,拆除虚电路,释放通信资源。

这种通信方式再使用可靠传输的协议,就可以保证发送分组无差错地按序到达目的主机。

2.无连接(数据报服务)

相比起电话机,主机具有更高的智能和处理能力。因此网络的先驱者设计了一种无连接的通信服务。
在无连接的通信服务中,网络层只提供简单灵活的、无连接的、尽最大努力交付数据报服务。
在这种服务中,主机发送分组前不需要事先建立连接。每个数据报(分组)独立发送,并与前后分组无关。网络层不提供服务质量的承诺,也即分组可能出错、丢失、重复或失序,也不保证传输的时限。所有通信的可靠服务由运输层提供。

数据报服务的优点是:路由器的结构简单、网络的成本低廉、运行方式灵活、能够适应多种应用。
如今互联网的发展也证明了这种设计的正确性。
两种服务对比

3.虚拟互连网络

将网络互相连接起来的中间设备有:物理层转发器数据链路层第二层交换机等。但这两类设备并不能解决网络不兼容的问题,只是将一个网络扩大,而非将网络互连
如果试图将全世界的计算机都连接到一个网络上,势必会遇到许多问题,其中最突出的问题是:全世界计算机使用的网络不同
显然,试图使用单一的网络解决以上问题是不可行的,因为不同的用户有不同的需求,而没有一种网络能符合所有人的需求。
为了解决网络互连的问题,我们需要使用工作在网络层路由器。它其实是一台在互联网中执行路由选择的专用计算机,
使用了路由器后,由于参加互连的计算机网络都使用相同的网际协议IP,这些网络可以忽视各网络的具体异构细节,在网络层相当于一个统一的网络,称为虚拟互联网络。这些使用IP协议的虚拟互联网络称为IP网IP网可以由多种异构网络互连而成。

二、IP地址

1.表示方法

IP地址是给所有连接在互联网上的主机路由器每一个接口分配的唯一32位标识符。现在由ICANN进行分配。
IP地址经历了三个阶段:

  1. 分类IP地址:最基本的编址方式。1981年通过标准协议。
  2. 划分子网:RFC-950标准于1985年通过。
  3. 构成超网:1993年提出。

分类IP地址中IP地址划分为若干个固定类,每一类由两个字段组成。第一个字段为网络号net-id,第二个字段为主机号host-id
主机号在同一个网络号范围内必须是唯一的
分类IP地址可分为以下5类,其中A、B、C类地址为单播地址,较为常用:

  1. A类:8位网络号+24位主机号,且网络号开头为0;
  2. B类:16位网络号+16位主机号,且网络号开头为10;
  3. C类:24位网络号+8位主机号,且网络号开头为110;
  4. D类:开头为1110,用作多播地址
  5. E类:开头为1111,保留今后使用。

由于IP地址写为二进制码不方便记忆和书写,通常采用点分十进制记法,将IP地址分为8位一组的4组二进制码,分别转换为十进制数后,在各组之间加点,转为点分十进制的形式。

2.常用IP地址类别

ABC类地址的主机号全为0时指代本主机地址;全为255时指代网络内所有主机,不可用于分配。

  1. A类地址
    A类地址的网络号0是保留地址,用于指代本网络;127是本地软件的环回测试
    因此A类地址可分配的网络号为1~126,可分配的主机号有224-2个。
    设三位主机号为x,y,z,A类地址在1.x.y.z~126.x.y.z的区间内,其中xyz不能全为0或全为255。
  2. B类地址
    B类地址的网络号128.0不可指派,可指派的最小网络号为128.1。
    因此B类地址可分配的网络号为128.1~191.255,可分配的主机号有216-2g个。
    设两位主机号为x,y,B类地址在128.1.x.y~191.255.x.y的区间内,其中xy不能全为0或255。
  3. C类地址
    C类地址的网络号192.0.0不可指派,可指派的最小网络号为192.0.1。
    因此C类地址可分配的网络号为192.0.1~223.255.255,可分配的主机号有28-2个。
    设一位主机号x,C类地址在192.0.1.x~223.255.255.x的区间内,其中x不能为0或255。
  4. 直接广播地址
    主机号为全1(255)的IP地址称为直接广播地址,用于将分组发送给目标网络上的所有主机。
  5. 受限广播地址
    IP地址全为1的IP地址(255.255.255.255)为受限广播地址,用于将分组发送给本网络所有主机。路由器将阻止该分组通过。

3.IP地址的特点

  1. IP地址是一种分等级的地址结构。
  2. IP地址实际上是主机和路由器中一条链路的接口
  3. 转发器或第二层交换机连接的局域网仍为一个网络,它们有相同的网络号。
  4. 所有分配到网络号的网络都是平等的。互联网同等对待每一个IP地址。

IP地址图示
● 同一局域网的主机和路由器的网络号相同。
● 路由器常有 多个 IP地址,每个接口的IP地址网络号都与连接的局域网网络号相同。
● 路由器之间直接相连的连线两端,接口可以选择是否分配IP地址。现常用不分配的方式,称为无编号网络无名网络

4.IP地址与硬件地址

IP地址是网络层使用的地址,而物理地址数据链路层物理层使用的地址。
IP地址放在IP数据报的首部,而物理地址放在MAC帧的首部。
IP地址与硬件地址
下面是一个简单的互联网中IP数据报的转发演示。

  1. 网络层中,H1将目的主机H2的IP地址写入IP数据报中国,并交给数据链路层
  2. 数据链路层中,H1确定分组转发的下一站硬件地址,并写入MAC帧中,开始转发
  3. 路由器R1接到MAC帧后,还原为IP数据报上交给网络层;R1的网络层再将数据报下放给数据链路层,确定新的硬件地址
  4. 最后,H2的网络层收到数据报与H1发送的数据报是一样的
    IP数据报转发

这个过程可以发现以下几点:
● 在IP层抽象的互联网只能看到IP数据报。
● 路由器只根据目的站的IP地址网络号进行路由选择。
● 局域网的数据链路层只能看到MAC帧
● IP抽象的局域网屏蔽了下层的复杂细节。只要在网络层上,就能使用统一的IP地址确定主机间与路由器间的通信。

5.地址解析协议ARP

在上面讲述的IP数据报转发过程中,最大的一个问题就是:如何根据IP地址找到下一跳的硬件地址?
地址解析协议ARP就是的作用就是从网络层的IP地址,解析出目的站所在的硬件地址。
每一个主机和路由器都有一个ARP高速缓存,存有本局域网各主机和路由器的IP地址和硬件地址的映射表。该表工作过程如下:

  1. 主机A试图向B发送IP数据报时,先在ARP高速缓存中查找是否有B的IP地址;
  2. 如果有,直接查出对应的物理地址;
  3. 如果没有,ARP进程广播一个ARP请求分组
  4. B收到并检查ARP请求分组后,发送一个ARP相应分组,同时将A的映射写入高速缓存
  5. A收到ARP响应分组后,将B的映射写入高速缓存
    ARP请求过程

ARP分组的四种典型情况:
● 发送方是主机,目标是本局域网内另一台主机:用ARP协议找到目的主机的硬件地址;
● 发送方是主机,目标是另一局域网的一台主机:用ARP协议找到一个路由器的硬件地址,剩余工作交给路由器完成;
● 发送方是路由器,目标是本局域网内另一台主机:用ARP协议找到目的主机的硬件地址;
● 发送方是路由器,目标是另一局域网的一台主机:用ARP协议找到另一个路由器的硬件地址,剩余工作交给另一路由器完成;

三、IP数据报与转发流程

1.IP数据报的格式

一个IP数据报由首部和数据两部分组成。首部的前一部分是固定部分,共20字节;后一部分是可变部分
IP数据报首部
下面是首部固定部分各字段的意义:
版本:占4位,指明IP协议的版本。通信双方使用的IP协议版本必须一致。目前讲到的IP协议内容均为IP v4协议
首部长度:占4位,最大表示数字为15,单位为32位(4字节)。
固定部分的长度为20字节,因此首部长度的最小值为5;可选部分的最长长度为40字节,总长最长为60字节。
另外,在TCP/IP协议体系中,数据格式以32位(4字节)为单位。若可选部分长度不为4字节的整数倍,就需要填充位。
区分服务:占8位,用于获取更好的服务。实际上一直没有被使用。只有在使用区分服务时才使用。
总长度:占16位。IP数据报的总长度,包括首部和数据部分,单位为字节。数据报最大长度216-1=65535字节。
网络层下面的数据链路层都规定了最大传送单元MTU。数据报封装成MAC帧时不能超过MTU值。有时需要切片
下面的三个字段就是切片时需要使用的字段。
标识:占16位,每一个完整的IP数据报的标识都是唯一的。切片后,标识相同的数据报属于原先的同一数据报。
标志:占3位,只有后两位有意义。
最低位MF称为片未完位,为1是最后一片;为0不是最后一片。
中间位DF称为不分片位,为1时不允许该片分片;为0时允许分片。
片偏移:占13位,指出该片在分片中的相对位置,以8字节为偏移单位
生存时间:共8位,是数据报在网络中的寿命。每跳转一次自减1,变为0时丢弃,防止无法交付的数据报在网络中无限跳转。
协议:占8位,指出携带的数据是何种协议,以便目的主机知道上交给哪个协议处理。
首部校验和:占16位,置为首部按16位一组字段之和的反码。若数据报送达时,首部16位字段和不为0,说明出现错误。
首部校验和
目的地址:占32位。
源地址:占32位。

2.IP分组的转发流程

在不同局域网之间转发IP分组时,路由器需要确定IP分组的下一条地址。路由表就用于确定下一跳地址。
如果路由表记录所有的IP地址,路由表会过于庞大。因此我们让路由表只记录网络号下一条地址的映射。
路由表
如图:
● 与路由器直接相连的目的地址,确定端口后转入直接交付
● 不与路由器直接相连的目的地址,根据网络号确定下一跳的路由器地址,并转发给该路由器。剩余工作由该路由器完成。

除了常规的路由表方式,还有如下两种路由方式:

  1. 特定主机路由
    特定主机路由对特定的目的主机指明一个特定的路由,该方式便于管理人员控制和测试网络,并适合某些安全问题下使用。
  2. 默认路由
    默认路由方式下,除了路由表中指定了下一跳的网络号分组,其它分组都发送到默认的路由器上。
    这种方式在对外连接很少的网络中十分有效。
    默认路由

综合以上方法,归纳出路由分组转发算法

  1. 得到目的地址N
  2. 判断是否为直接交付。若是,进行直接交付;
  3. 判断是否为特定主机路由。若是,按特定路由方式进行下一跳;
  4. 判断是否有网络号与目的地址N相同的路由。若有,按该路由进行下一跳;
  5. 判断是否有默认路由。若有,按默认路由进行下一跳;
  6. 没有路由能完成下一跳,报告转发分组出错。
发布了39 篇原创文章 · 获赞 4 · 访问量 2037

猜你喜欢

转载自blog.csdn.net/weixin_44712386/article/details/105229653