跳转到内容

通信网络/IP协议和ICMP

来自Wikibooks,开放世界中的开放书籍

互联网协议

[编辑 | 编辑源代码]

互联网协议 (IP) 是互联网层协议,包含OSI模型网络层中用于路由数据包的地址信息。

到目前为止,我们已经讨论了TDM(时分多路复用)技术,并且我们还讨论了给定网络中不同的数据包如何包含地址信息,这将帮助路由器沿途将数据移动到其目的地。此页面将讨论互联网最重要的部分之一:IP协议。

IP作为TCP/IP的组成部分,用于寻址和路由数据包。它提供了跨大型网络传输数据报的机制。更详细地说,IP的主要目的是处理与路由相关的所有功能,并为上层协议(例如传输层的TCP)提供网络接口。应用程序在该层使用此单个协议来执行任何需要网络访问的操作。

什么是IP?

[编辑 | 编辑源代码]

互联网协议本质上是使互联网区别于其他数字网络(例如ARPANET)的原因。IP协议为网络中的每台计算机分配一个唯一的地址,称为“IP地址”,这些IP地址用于将信息数据包从源路由到目的地。IP协议要求网络中的每个设备尽最大努力传输数据,但IP不保证数据将到达。如果您需要保证,则必须实现更高级别的协议(例如TCP)。

从OSI模型来看,IP协议是网络层协议。

IP地址与计算机内部也存在的“MAC地址”不同。IP地址是32位值,在给定本地网络中的计算机之间是唯一的。MAC地址是一个更大的数字,在全世界范围内是唯一的。但是,根据MAC地址路由数据包非常困难。

IP还指定了数据包在互联网上传输时必须具有的标头。此标头称为IP标头,将在下一章中讨论。

IP协议还规定每个IP数据包必须在数据包末尾附加一个错误检查代码。此错误检查代码称为“循环冗余校验”或CRC校验和,能够帮助接收计算机确定数据包在传输过程中是否存在任何位错误。CRC代码在检测错误方面比单个奇偶校验位强大得多,但CRC的计算可能很耗时。

IP地址是一组数字,用于识别在互联网的IP网络上从发送方到接收方发送的任何数据包。它是一个与接口关联的软件地址,32位信息作为分层地址结构来处理大量地址,分配给每台机器作为接口,用于设计在不同网络中的主机之间进行通信。点分十进制表示法通常用于易于理解的目的。

IP地址由两部分组成:网络地址和主机地址。网络地址用于识别每个网络,主机地址用于识别单个机器。

示例

文件:IP地址.jpg

人们可能会想知道连接到网络的当前机器的IP地址信息,我们可以使用ipconfig命令来找出

文件:IPconfig.jpg

图6 ipconfig命令获取地址信息

事实证明,当前机器的IP地址为192.168.1.4。下图将显示与IP地址相对应的物理接口表示,并注意前16位表示网络地址,在自己的网络内将保持不变

文件:IP连接.jpg

图7 网络连接

根据网络大小,存在不同类别的网络,如下所示

文件:IP地址类别.jpg

图8 IP地址类别识别

请注意,每类设置开头的位由地址方案定义,不会使用。因此,每类的网络地址范围如下

文件:网络地址范围.jpg

但是,由于地址需求和短缺,存在保留用于特殊目的和私有网络集的IP地址。

文件:保留IP.jpg

文件:私有IP.jpg

IP数据包格式

[编辑 | 编辑源代码]

IP首部是附加到数据包开头的大量信息字段。IP首部包含大量有关数据包的信息,包括源IP地址和目标IP地址。此外,IP首部(IPv6及更高版本)还包含有关源和目标终端的本地网络的信息。

每个IP标头包含与从上层发送的数据相关的信息,用于识别目标,如下所示

文件:IP数据包.jpg

图4:IP数据包

文件:IP数据包字段.jpg

这是在Ethereal上捕获的IP数据包的快照

文件:IP数据包Ethereal.jpg

图5:从Ethereal捕获的IP数据包

请注意上面捕获的协议字段中,它指示TCP。由于标头没有任何下一层的协议信息,因此它只是指示IP将段传递给传输层的TCP。所有其他字段都对应于上面的描述。

CRC校验和

[编辑 | 编辑源代码]

CRC校验和是附加到互联网IP数据包末尾的16位数据项。CRC包含一个数字,接收方通过特定的算法运行该数字,然后可以确定数据包是否正确或是否存在错误。

模2运算

[编辑 | 编辑源代码]

本节将简要介绍模2运算

计算CRC

[编辑 | 编辑源代码]

使用CRC查找错误

[编辑 | 编辑源代码]

IPv4和IPv6

[编辑 | 编辑源代码]

互联网控制报文协议 (ICMP)

[编辑 | 编辑源代码]

互联网控制报文协议用于在网络层之间主机、路由器和网关之间传递与网络操作相关的信息。

主要有以下四个功能:

  • 当网络不可达时,发出网络错误通知。
  • 当路由器由于过多的数据包传输而缓冲区溢出时,发出网络拥塞通知。
  • 辅助故障排除,当数据包通过网络发送时,计算丢失率和往返时间。
  • 当IP数据包的TTL下降到零时发出超时通知,此时数据包将被丢弃。

请注意,ICMP数据包是在IP层构建的,因此不保证交付。

ICMP,即**互联网控制报文协议**,是IP协议的对应协议,允许在网络上发送控制消息。

分类地址方案

[编辑 | 编辑源代码]

子网用于将具有相同网络地址的IP地址的同一网络中的计算机分组。子网是解决地址短缺和帮助利用网络中地址分配的解决方案之一。引入子网掩码是为了将网络划分为子网,以便提供分层路由架构。

示例

子网:180.28.30.1-128

子网掩码:255.255.255.128

引入斜线表示法来标识打开的位数。当互联网服务提供商(ISP)向用户分配地址时,这些地址将采用斜线表示法。

示例

文件:Subnet.jpg

除了分组计算机的优点外,子网还有一些好处:

  • 减少网络流量
  • 提高网络性能
  • 简化管理

无类别域间路由 (CIDR),也称为超级网,是解决地址短缺的另一种方案。基本思想与子网相同。唯一不同的是主机地址占据网络地址的位,这有助于避免地址浪费。

示例

文件:Supernet.jpg

子网掩码

[编辑 | 编辑源代码]

无类别域间路由 (CIDR)

[编辑 | 编辑源代码]

互联网协议 (IP) 负责在7层OSI模型的网络层(第3层)中对数据包进行寻址和路由。消息在此层中逐跳传输,并且每个节点的接口都有一个唯一的IP地址,用于在网络中进行识别。它允许数据报跨越大型网络传输。

互联网控制报文协议 (ICMP) 是一种在网络中发送错误消息或执行网络诊断的方法。利用ICMP的两个最常见的工具是Traceroute和Ping。

问题

  1. C类私有IP地址空间是什么?
  2. IP地址为172.16.170.0/22的主机的子网号是多少?
  3. IP地址为192.168.111.88/26的主机的子网号是多少?
  4. 192.16.0.0/19的网络地址提供多少个子网和主机?
  5. 您有一个B类网络ID,每个子网需要大约450个IP地址。此网络的最佳掩码是什么?
  6. 您的路由器在以太网上具有以下IP地址:172.16.112.1/20。以太网段上可以容纳多少个主机?
  7. 如果一家公司因其网络故障而寻求技术支持,执行IP地址故障排除的四个基本步骤是什么?
  8. 如果路由器上的以太网端口分配的IP地址为172.16.112.1/25,则此主机的有效子网地址是什么?
  9. (T/F)ICMP消息封装在IP数据报中。
  10. (T/F)Ping程序使用“TTL”字段检测目标主机是否存活。

答案

  1. 192.168.0.0 – 192.168.255.255
  2. 172.16.168.0
  3. 192.168.111.64
  4. 8个子网,每个子网8190个主机
  5. 255.255.254.0
  6. 4094
  7. (a)Ping 127.0.0.1。(b)Ping本地主机IP地址。(c)Ping默认网关。(d)Ping远程服务器。
  8. 172.16.112.0
  9. 正确
  10. 错误 - Ping等待目标发送“回显响应”数据包。

进一步阅读

[编辑 | 编辑源代码]
华夏公益教科书