计算机网络(自顶向下方法)笔记-网络层02

本文详细解析了互联网网络层的IP协议、路由选择、数据报格式,包括分片机制、IPV4编址方法,以及DHCP协议和网络地址转换(NAT)的应用。讲解了IP数据报的关键字段、IP地址分配和子网划分,以及动态获取IP地址的过程。

网际协议:因特网中的转发和编址

​ 因特网的网络层有三个主要组件:

  • IP协议
  • 路由选择部分
  • 报告数据报中的差错和对某些网络层信息请求进行响应的设施

​ 下图是因特网网络层的内部视图:

在这里插入图片描述

1.1 数据报格式

​ 网络层分组被称为数据报,IPV4数据报格式如下图:

在这里插入图片描述

​ 其中的关键字段如下:

  • 版本号:4个比特。通过查看版本号,路由器可以确定如何解释IP数据报的剩余部分,因为不同IP版本使用不同数据报格式。
  • 首部长度:4个比特。确定IP数据报数据部分实际从哪里开始。
  • 服务类型:使不同类型的IP数据报(如要求时延低的数据报)能相互区别开。
  • 数据报长度:16个比特,IP数据报的总长度(首部+数据),以字节计算。IP数据报的理论长度为65535字节,但实际很少超过1500字节。
  • 标识,标志,片偏移:与IP分片有关。IPV6不允许路由器对分组分片。
  • 寿命(TTL):该字段确保数据报不会永远在网络中循环。数据报每过一个路由器,TTL减1,减到0就丢弃。
  • 协议:仅在达到目的地才有用。指示IP数据报的数据部分交给哪个运输层协议,比如6表示交给TCP,17交给UDP。协议号是将网络层与运输层绑定到一起的粘合剂,端口号则用于运输层和应用层的绑定。
  • 首部校验和:帮助路由器检测收到的IP数据报的比特错误。TCP/IP在运输层与网络层都执行差错检测。
  • 源和目的IP地址:通过源主机通过DNS查找来决定目的地址。
  • 选项:该字段允许IP首部被扩展。很少使用,所以数据报首部不包括该字段的信息
  • 数据:该字段除了包含TCP和UDP外,也可重载其他类型的数据,如ICMP报文。

​ IP数据报的首部有20字节(假设无选项)。如果数据报承载一个TCP报文段,每个数据报共承载40字节的首部(有20字节的TCP首部)

1.1.1 IP数据报分片

​ 并不是所有链路层协议都能承载相同长度的网络层分组,不同协议承载数据量不同。一个链路层帧能承载的最大数据量叫做最大传送单元(MTU),MTU对IP数据报长度具有严格限制,且每段链路可能使用不同链路层协议,MTU也就不一样。要将较大的IP分组压缩进链路层的有效载荷字段,需要将IP数据报分成小的数据报,这些数据报称为片。

​ 片到目的地运输层前要重新组装,为保持网络简单的原则,IPV4将数据报重新组装的工作放在端系统,而不是在路由器中。标识,标志,片偏移字段就是为了让目的主机执行组装任务的。下面为三个字段的作用:

1. 生成一个数据报时,发送主机为该报设置源和目的地址的同时加上标识号。每当路由器需要对一个数据报分片时,形成的片有初始数据的源和目的地址以及标识号。当目的主机收到一系列数据报时,就能检查标识号以确定哪些数据报是一起的。
2. 由于IP是不可靠的服务,有些片可能永远到不了目的地,所以为了让目的主机相信它已收到了初始数据报的最后一个片,最后一个片的标志比特被设为0,其他标志比特为1。
3. 为了让目的主机确定是否丢失了片,并且能按正确顺序装片,使用偏移字段指定该片在初始IP数据报的位置。

​ 下图为一个4000字节的IP数据报(20字节的首部,3980字节的有效载荷)到达路由器,且必须被转发到一条MTU为1500字节的链路上,所以要被分为三个片。

在这里插入图片描述

​ 假定初始数据报贴身标识号为777,三个片的特点如下表,其中除了最后一片,有效载荷数是8字节的倍数,偏移值也是以8字节为单位的。存在片没有到达目的地,数据报就会丢弃。

在这里插入图片描述

1.2 IPV4编址

​ 路由器和它的任意一条链路间的边界叫接口,所以一台路由器有多个接口。因为每台主机和路由器都能发送和接受IP数据报,IP要求每台主机和路由器接口有自己的IP地址。IP地址技术上是与一个接口想关联的,不是与包括该接口的主机和路由器相关联的。

​ 下图是一个路由器用于互联7台主机:

在这里插入图片描述

​ 观察左上侧主机和它们连接的路由器接口,IP地址前24比特是相同的,互联这3台主机接口和1个路由器的网络形成一个子网。IP编址为这个子网分配一个地址:223.1.1.0/24,后面的/24记法也称子网掩码,指示32比特中前24比特定义了子网地址。图中存在3个IP子网。

​ 子网的IP定义并不局限于多台主机到路由器接口的以太网段,也可以是路由器间的接口。下图中,每两个路由器接口间也是一个子网。

在这里插入图片描述

​ 因特网的地址分配策略被称为无类别域间路由选择(CIDR)。它将子网寻址一般化,32比特的地址被分为两个部分,形如a.b.c.d/x,其中x指示了地址的第一部分中的比特数。这大大减少了路由器中转发表的长度,因为这种形式足以将数据报转发到组织内的任何目的地。剩余的32-x比特可以认为是用于区分组织内部设备的,其中所有设备具有相同的网络前缀。

​ 在CIDR被使用前,具有不同比特位数的子网地址被分类编址为A,B,C类网络。一个B类子网可支持65534台主机,C类可支持256台主机。一个有2000台主机的组织被分了个B类地址,就会导致剩下的63000个地址无法被其他组织使用。

​ 还有一种类型的IP地址:255.255.255.255,即广播地址。当一台主机发出一个目的地址为该地址的数据报时,该报文会交付同一个网络的所有主机。

​ 主机或子网要得到它们的地址,需要看一个组织如何获得一个地址块,再看一个设备如何从该组织的地址块中分配到一个地址。

  1. 获取一块地址

    为了获取一块IP地址用于一个组织的子网,网络管理员会与它的ISP联系,ISP会将自己被分配的地址块中一块分配给该组织。

    在这里插入图片描述

  2. 获取主机地址:动态主机配置协议

    主机地址可以由管理员手动配置,但是通常还是使用动态主机配置协议(DHCP),该协议允许主机自动获取一个IP地址,且还可以让主机知道子网掩码,第一条路由器地址(默认网关)和它本地DNS服务器地址。DHCP是一个即插即用协议,当主机加入/离开时,DHCP服务器要更新其可用的IP地址表。DHCP协议是4个步骤的过程,如下图所示:

    在这里插入图片描述

    ​ 其中,yiaddr表示你的因特网地址。

    1. DHCP服务器发现:新到的主机首要任务是发现一个与其交互的DHCP服务器。可以通过使用一个DHCP发现报文实现,客户在UDP分组中向端口67发送该发现报文。但是主机不知道服务器地址。所以该主机生成包含DHCP发现报文的IP数据报,使用广播地址且使用本主机源地址0.0.0.0。
    2. DHCP服务器提供:DHCP服务器收到一个发现报文后,使用DHCP提供报文做出响应,仍然使用广播地址。客户主机可能会收到多台服务器的响应。
    3. DHCP请求:客户从中挑选一台DHCP服务器,并向该服务器提供一个DHCP请求报文进行响应,回显配置参数。
    4. DHCP ACK:服务器用DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。
  3. 网络地址转换(NAT):当一个ISP为一个组织分配了一段连续的IP地址,此时该组织需要更多的地址,该怎么办?图中是一台NAT使能路由器的运行情况:

    在这里插入图片描述

    右侧的4个接口具有相同的网络地址10.0.0/24。地址空间10.0.0.0/8是保留的3部分IP地址空间之一(还有172.16.0.0 - 172.31.255.255和192.168.0.0 - 192.168.255.255),这些地址用于图中家庭网络等专用网络或有专用地址的地域。具有专有地址的地域是指其地址仅对该网络中的设备有意义的网络。如果仅在给定网络中有意义,如何向全球因特网发送或接受分组?NAT可以解决。

    图中所有离开路由器的报文都有一个源IP地址138.76.29.7,且进入家庭的报文目的IP地址也是这个,NAT隐藏了家庭网络的细节。路由器和家庭网络空间的计算机的IP地址依旧是DHCP服务器提供的地址。

    到达NAT路由器的数据报的目的地址全部一样,如何将每个分组转发给相应的内部主机?使用NAT路由器的NAT转换表即可,表项中包含了端口号和IP地址。路由器使用目的IP地址与目的端口号从NAT转换表中检索出家庭网络使用的IP地址和端口号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值