IP 数据报的交付
  • 更新时间:2024-09-28 19:18:11
  • 网站建设
  • 发布时间:1年前
  • 538

网络层的出现也是网络发展的结果。当数据通信需要跨越网段并且有多个通信路径可供选择时,这就产生了如何连接任意两台主机进行远距离数据传输的问题。网络层的IP协议很好地解决了这个问题。这里需要先了解IP协议和IP数据单元的格式,然后再分析IP协议的工作原理。1. IP协议

IP协议(Internet Protocol,网际协议)是互联网互连协议。 IP 协议是一组应遵循的约定或规则,以使所有连接到Internet 的计算机能够相互通信。这套规则保证了跨网连接、跨网寻址、跨网数据转发等功能的实现。因此,它是网络层中最重要的协议。它与TCP 协议一起构成了TCP/IP 协议族的核心。 IP协议在网络层提供无连接、不可靠的数据传输服务。

什么是无连接、不可靠的数据传输?

在网络层传输IP数据包就像我们日常生活中在邮局发送的普通信件一样。每一封普通信件都有一个明确的目的地地址。普通信件在传输过程中的路径可能会有所不同。途中普通信件不保;寄件人和收件人之间没有直接的限制关系(理解为断开连接),如果平信在传输过程中丢失(理解为不可靠),邮局概不负责。也就是说,IP数据包在网络传输过程中,发送端网络层和接收端网络层之间不需要建立连接,发送端网络层也不需要建立连接。关心IP数据包是否发送到接收端的网络层。2. IP数据单元格式

IP协议的数据单元也很复杂,如图4-14所示。 IP协议头主要由12个字段组成,从传输层传下来的数据单元构成了网络层的IP数据报,也称为IP包。IP数据单元格式 IP协议头的组成,每行32位,各字段含义解释如下。版本(Version):是指IP协议版本号,目前是4,是指IPv4a头的长度(Internet Header Length,IH L):是指IF协议头的长度,有4个B为一个单位,最小值为5,即最小的IP协议头有20个字节(没有选项时)。

服务类型(TOS):由8位组成,不同位置的位设置可以代表不同的服务类型。有数据优先级(现在忽略)、低延迟、高吞吐量、高可靠性和最低费用等类型的服务,否则就是一般服务。

总长度(Total Length,TL):是指整个中频包的长度,在B中。利用协议头的长度和总长度,可以知道中频包中数据的起始位置和长度.

标识(Identification) : 标识主机发送的每个中频数据包的代码(ID),占16位。通常,每发送一个IP 数据包,其值都会增加1。

中频报文是网络层传输的数据单元,不同的网络类型在链路层具有最大传输单元(MTU)限制的特点。比如以太网的MTU是1500B,这个1500B就是网络层的IP协议数据单元。最大值。如果IP包的总长度超过MTU,网络层会对IF包进行分片,使每个包的长度小于等于MTU。此时,IF包被分片后,16位的标识符会被复制到每个分片中。在接收端,数据报分片重组的依据就是这个ID。

R: 保留未使用。

DF(Don't Fragment) : IP包未分片标志,占1位。值为1 表示网络层不会对IP 数据包进行分段。

MF(More Fragment) : 报纸标志。值为0 表示当前数据报是最后一块;值为1 表示它不是最后一块,以后还会有其他块。

分片偏移量(Fragment Offset,FO) : 分片偏移原始数据报开头的位置。偏移字节数是偏移值乘以8。

另外,当IP包被分片时,需要将每个分片的总长度值改为分片的长度值。接收端收到最后一个分片,根据其长度和分片偏移量计算出数据报的总长度,并与所有到达分片的长度之和进行比较,判断分片的完整性,然后重新组装。

Time To Live (TTL) : 设置了IP数据包最多可以通过的路由器数量(TTL的单位请参考第十一章问题4-5的解释)。 TTL的初始值由源主机设置,经过路由器后减1。当该字段的值为0时,IP包被路由器丢弃,并发送ICMP报文通知源主机。

协议(Protocol,PROT) : 表示上层的协议类型。具体指TCP或UDP的协议编码。

包头校验和(Header checksum) :是根据IP协议包头计算的“校验和”码。如果“校验和”错误,则丢弃IP 数据包,但不会生成错误消息。重传控制将由传输层控制,以检测丢弃的数据报并重传它们。

源IP地址: 每个Ip包必须包含发送方的

源IP地址,是一个32bit的值。

目的IP地址:每个IP包也都需要包含接收端的IP地址,也是一个32bit的值。

可选字段(Options):一个可变长的选项,用于安全、调试等,也为以后扩展或升级之用(该字段的应用请参见第11章问题4-6解释)。

填充(Padding):在必要时插人一定的填充字节,以确保IP协议头始终是32bit的整数倍。

数据:是传输层提交下来的协议数据单元。

从IP包的协议头可知,IP协议头的大小有两种:当没有“选项”这个域时,为160位即20个字节;当有“选项”域时,为192位即24个字节。

3. IP协议的工作原理

IP是怎样实现网络互联的?

早期各公司的网络系统不能互通,也不能互连。原因是它们在各自网络中所传送的数据基本单元(即数据帧)的格式不同。有了IP协议,不同的网络系统实现了互联。可以这样理解lip协议就是一套由程序构成的协议软件,它把各种不同的“数据帧”统一转换成“IP包”格式,实现在互联网上的传送。这种转换是Internet的一个最重要的特点,它使异种网络的计算机系统也能在Internet上实现相互通信,也使Internet具有了真正意义上的“开放性”特征。

那么,"IP包"是什么?

由IP数据单元格式的构成可见,IP包就是一个无连接的,并且是独立的数据传输单元,它携带了数据来自哪里,以及将要送到哪里等明确的标识(即IP地址)。这样,IP包在网络间传送时,就不需要一定先建立一条数据通道,而是每个IP包都可经由不同的传输路径独立地向目的地传送。

【举例】如图4-15所示,IP协议的基本工作原理分析。当通信两端(主机A和主机B)位于不同的网络时,数据的传送需要经由路由器跨网传递。发送端A只需将IP包(需要分片时先分片处理)交给第一路由器RI即可。路由器R1根据IP包携带的目的标识,进行路径选择并转发给下一路由器(R2或R3).下一路由器再转发到其下一路由器R4,路由器R4最后将IP包传送到目的主机。在目的主机B端,收到IP包后进行协议头校验和检验,将检验失败的IP包.直接丢弃(不会向发送端回送任何差错报文);将校验无误的IP包提取数据报数据直接交给上层传输层。
网络互联示意图
由此可见,在网络层IP包的传送不仅是无连接的,而且目的端IP包的到达是无序的,并且是不可靠的。

4.网络层其他协议

在网络层,除了非常重要的IP协议之外,还有两个比较重要的协议在此简单介绍如下。

1)ICMP协议

ICMP(Internet Control Message Protocollnternet,网际控制消息协议)是TCP/IP协议族的一个子协议,主要用于在主机、路由器之间传递控制信息。这些控制消息是指网络本身的消息,如网络是否通畅、主机是否可达、路由是否可用、IP包路由传送已超过“生存时间”等,还包括报告错误、交换受限等控制和状态信息.这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

在网络应用中,我们经常会得到ICMP提供的消息,只不过常常被忽略了而已。如某主机处于关闭或维护状态,不提供网络服务时,ICMP就可以对发起的TCP连接给出一个终止(Destination Unreachable)通告,告知主机不可达。又如我们在检查网络是否通畅时,常常使用ping命令,这个命令就是一项基于ICMP协议的应用,ping命令返回的信息均是由ICMP协议提供的报告。

2) ARP协议

ARP(Address Resolution Protocol,地址解析协议)用于通过主机的网络地址(即32位的IP地址)解析出该主机的物理地址(即48位的MAC地址)。

在Internet网中,网络层之下是网络访问层,其对应于局域网的数据链路层和物理层。在数据链路层中,数据通信是以“数据帧”为传输单位,而“数据帧”的寻址方式是依据通信两端点的MAC地址来实现的。因此,网络层的IP包进人网络访问层后,下一步的传输必须要知道下一链接点或目的节点的物理地址即MAC地址。如何找到下一链接点或目的节点的MAC地址,就是由ARP协议实现的。

我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!

本文章出于推来客官网,转载请表明原文地址:https://www.tlkjt.com/web/12639.html
推荐文章

在线客服

扫码联系客服

3985758

回到顶部