快来看看!!!你经常忽略的TCP/IP知识点

网络 网络管理
在网络中,并非条条道路通罗马,而是条条道路通IP,因特网层以及上层的所有协议都使用IP ,千万不要忘记这一点。在DoD模型中,所有路径都穿越IP。

因特网层协议

在DoD模型中,因特网层的作用有两个:路由选择以及提供单个到上层的网络接口。其他层的协议都没有提供与路由选择相关的功能,这个复杂而重要的任务完全由因特网层完成。因特网层的第二项职责是提供单个到上层协议的网络接口。如果没有这一层,应用程序开发人员将需要在每个应用程序中编写到各种网络接人协议的“钩子”。这不仅麻烦,还将使应用程序需要有多个版本一以太网版本、 无线版本等。为避免这个问题,IP提供了单个到上层协议的网络接口。这样,IP将和各种网络接人协议协同工作。

在网络中,并非条条道路通罗马,而是条条道路通IP,因特网层以及上层的所有协议都使用IP ,千万不要忘记这一点。在DoD模型中,所有路径都穿越IP。接下来的几节将介绍因特网层协议:

  • 因特网协议(IP );
  • 因特网控制消息协议( ICMP );
  • 地址解析协议( ARP );
  • 逆向地址解析协议( RARP );
  • 代理ARP;
  • 免费ARP。

1. IP

IP ( Internet Protocol, 因特网协议)就相当于因特网层,该层的其他协议都只是为它提供支持。IP掌控全局,可以说“-切尽收它眼底”,从这种意义上说,它了解所有互联的网络。它之所以能够这样,是因为网络中的所有机器都有-一个软件(逻辑)地址,这种地址称为IP地址。

IP查看每个分组的地址,然后使用路由选择表判断接下来应将分组发送到哪里,从而选择最佳路径。在DoD模型底部的网络接人层协议不像IP那样胸怀整个网络,它们只处理物理链路(本地网络)。

要标识网络中的设备,需要回答两个问题:设备位于哪个网络中?它在该网络中的ID是多少?

对于第一个问题,答案是软件(逻辑)地址(正确的街道);对于第二个问题,答案是硬件地址(正确的邮箱)。网络中的所有主机都有一个逻辑ID,称为IP地址,它属于软件(逻辑)地址,包含宝贵的编码信息,极大地简化了路由选择这种复杂的任务。( RFC 791讨论了IP。)

IP接收来自主机到主机层的数据段,并在必要时将其划分成数据报(分组)。在接收端,IP 将数据报重组成数据段。每个数据报都包含发送方和接收方的IP地址,路由器(第3层设备)收到数据报后,将根据分组的目标IP地址做出路由选择决策。

图3-7显示了IP报头,这可让你对如下方面有大概认识:每当上层发送用户数据时,IP 协议都将如何做,为将数据发送到远程网络做好准备。

IP报头包含如下字段:

  • 版本IP版本号。
  • 报头长度报头的长度, 单位为32位字。
  • 优先级和服务类型服 务类型指出应如何处理数据报。前3位为优先级位,当前称为区分服务位。
  • 总长度整个分组的长度,包括报头和数据。
  • 标识唯一的IP分组值,用于区分不同的数据报。
  • 标志指出是否进行了分段。
  • 分段偏移在分组太大,无法放人一个帧中时,提供了分段和重组功能。它还使得因特网上可有不同的MTU ( Maximum Transmission Unit,最大传输单元)。
  • 存活时间生成分组时给 它指定的存活时间。如果分组到达目的地之前TTL就已到期,分组将被丟弃。这可避免IP分组因寻找目的地不断在网络中传输。
  • 协议上层协议的端口( TCP为端口6, UDP为端口7 )。还支持网络层协议,如ARP和ICMP (在有些分析器中,该字段称为类型字段)。稍后我们将更详细地讨论该字段。
  • 报头校验和对报 头执行CRC的结果。
  • 源IP地址发送方的32位IP地址。
  • 目标IP地址接收方的32位IP地址。
  • 选项用于网络测试、 调试、安全等。
  • 数据位于选项字段后, 为上层数据。

下面是网络分析器捕获的一个P分组。注意,其中包含前面讨论的所有报头信息。

类型(Type)字段很重要,该字段通常为协议字段,但这个分析器将其视为IP Type字段。如果报头没有包含有关下一层的协议信息,IP 将不知道如何处理分组中的数据。在前面的示例中,类型字段告诉IP将数据段交给TCP。

图3-8说明了在网络层需要将分组交给上层协议时,它如何获悉传输层使用的协议。

在这个示例中,协议字段告诉IP将数据发送到TCP端口6或UDP端口17。然而,如果数据是发送给上层服务或应用程序的,将要么是UDP,要么是TCP。数据也可能是发送给因特网控制消息协议( ICMP )地址解析协议( ARP )或其他类型的网络层协议的。

表3-3列出了其他一些可能在协议字段中指定的常见协议。

注意:有关协议字段可包含的协议号完整列表,请参阅www.iana.org/assignments/protocol-numbers。

2. ICMP

ICMP ( Internet Control Message Protocol,因特网控制消息协议)运行在网络层,IP 使用它来获得多服务。ICMP是一种管理协议,为IP提供消息收发服务,其消息是以IP数据报的形式传输的。RFC 1256是一个ICMP附件,给主机提供了发现前往网关的路由的功能。

ICMP分组具有如下特征:

  • 可向主机提供有关网络故障的信息;
  • 封装在IP数据报中。

下面是一些与ICMP相关的常见事件和消息。

▶ 目标不可达如果路由器不能再向前转发IP 数据报,它将使用ICMP向发送方发送一条消息,以通告这种情况。例如,如图3-9所示,其中路由器Lab_B 的接口E0出现了故障。

主机A将分组发送给主机B时,Lab_B 路由器将向主机A发回一条ICMP目标不可达消息。

▶ 缓冲区已满如果用于接收数据报 的路由器内存缓冲区已满,路由器将使用ICMP发送这种消息,直到拥塞解除。

▶ 超过跳数/时间对于每个IP 数据报,都指定了它可穿越的最大路由器数量(跳数)。如果数据报还未达到目的地就达到了该上限,最后一台收到该数据报的路由器将把它删除。然后,该路由器将使用ICMP发送一条讣告, 让发送方知道其数据报已被删除。

▶ Ping Packet Intermet Groper ( Ping)使用ICMP回应请求和应答消息,以检查互联网络中机器的物理连接性和逻辑连接性。

▶ Traceroute Traceroute 使用ICMP超时来发现分组在互联网络中传输时经过的路径。

注意:Ping和Traceroute (也叫Trace, Microsoft Windows称之为tracert)都让你能够验证互联网络的地址配置。

下面是网络分析器捕获的一个ICMP回应请求

注意,其中有什么异常的地方了吗?虽然ICMP运行在因特网(网络)层,它仍使用IP 来发出Ping请求,你注意到这一点了吗?在P报头中,类型字段的值为0x01,这表明数据报中的数据属于ICMP协议。别忘了,条条道路通罗马,同样,所有数据段或数据都必须通过IP传送。

注意:在分组的数据部分,程序Ping将字母用作有效负载,且有效负载通常默认为约100B。当然,如果从Windows主机执行Ping操作,它将认为字母表在W处结束,而不使用X、Y和Z,因此到达这种字母表末尾后,将从A重新开始。你可以验证这一点。

如果你阅读了第2章有关数据链路层和各种帧的内容,将能通过前面的输出获悉使用的是哪种以太网帧。其中只显示了字段目标硬件地址、源硬件地址和以太类型( Ether-Type),而只有Ethernet_ II帧使用以太网类型字段。

在深入介绍ARP协议前,我们来看看ICMP的另- -种用途。图3-10显示了一个互联网络(它包含一台路由器,因此是互联网络)。Serverl ( 10.1.2.2)在DOS提示符模式下远程登录到10.1.1.5, 你认为Server1将收到什么样的响应呢?由于Serverl将把Telnet数据发送到默认网关(这是一台路由器 ),后者将丢弃该分组,因为其路由选择表中没有网络10.1.1.0。因此,Server1 将收到ICMP目标不可达消息。

3. ARP

ARP ( Address Resolution Protocol, 地址解析协议)根据已知的IP地址查找主机的硬件地址,其工作原理如下: IP 需要发送数据报时,它必须将目标端的硬件地址告知网络接入层协议,如以太网或无线。(上层协议已经将目标端的IP地址告诉它。)如果IP在ARP缓存中没有找到目标主机的硬件地址,它将使用ARP获悉这种信息。

作为IP的侦探,ARP这样询问本地网络:发送广播,要求有特定IP地址的机器使用其硬件地址进行应答。因此,ARP基本上是将软件(IP )地址转换为硬件地址,如目标主机的以太网网卡地址,然后通过广播获悉该地址在LAN中的位置。图3-11显示了本地网络中的ARP。

!注意:ARP将IP地址解析为以太网(MAC)地址。

下面的输出表示一个ARP广播。注意,由于不知道目标硬件地址,因此将其十六进制表示设置为全F (二进制表示全为1),这是一个硬件地址广播:

4. RARP

如果IP主机为无盘计算机,一开始它不知道自己的IP地址,但知道自己的MAC地址。无盘机器可使用如图3-12所示的RARP ( Reverse Address Resolution Protocol,逆向地址解析协议)来获悉其IP地址,这是通过发送一个分组实现的,该分组包含无盘计算机的MAC地址和一个请求(请求提供分配给该MAC地址的IP地址)。名叫RARP服务器的专用机器将对此作出响应,从而解决身份危机。RARP使用它知道的信息( 即机器的MAC地址)来获悉机器的IP地址,从而完成身份标识。

注意:RARP将以太网(MAC)地址解析为IP地址。

5. 代理ARP

在网络中,我们不能给主机配置多个默认网关。请想-想,如果默认网关(路由器)发生故障,结果将如何呢?主机不能自动将数据发送给另一台路由器,而你必须重新配置主机。但代理ARP可帮助主机前往远程子网,而无需配置路由选择甚至默认网关。

使用代理ARP的优点之一是,我们可在网络中的- -台路由器上启用它,而不影响网络中其他路由器的路由选择表。然而,使用代理ARP也存在一个严重的缺陷:使用代理ARP将增加网段中的流量,而为处理所有的IP地址到MAC地址的映射,主机的ARP表比通常情况下大。默认情况下,所有思科路由器都配置了代理ARP,如果你认为自己不会使用它,应将其禁用。

有关代理ARP的最后一点是,代理ARP并非一种独立的协议,而是路由器代表其他设备(通常是PC)运行的一种服务,路由器禁止这些设备查询远程设备,虽然在这些设备看来,它们与远程设备位于同一个子网中。

这让路由器能够在响应ARP查询时提供自己的MAC地址,从而将远程IP地址解析为有效的MAC地址。

 

责任编辑:赵宁宁 来源: 思科CCIE俱乐部
相关推荐

2019-10-17 15:10:33

PHP程序员Linux

2018-05-02 15:41:27

JavaScript人脸检测图像识别

2020-08-06 00:41:17

TCPIP网络协议

2012-04-23 15:49:04

2021-04-19 09:23:26

数字化

2018-03-06 09:54:48

数据库备份恢复

2014-12-02 10:56:47

TCPIP交互数据流

2018-01-30 17:54:37

数据库MySQLSQL Server

2018-03-12 10:35:01

LinuxBash快捷键

2020-11-04 08:40:23

C++多元组Tuple

2017-11-24 08:00:55

前端JSCSS

2019-12-11 16:36:09

编程语言排行榜Python

2018-04-02 10:54:31

Linux应用程序

2020-04-16 09:35:53

数据科学机器学习数据分析

2018-04-18 17:08:45

2019-11-25 21:46:12

数据湖云计算数据仓库

2022-02-23 14:18:53

If-Else入参接口

2022-03-02 08:01:31

面试前端开发

2022-01-21 08:21:02

Web 安全前端程序员

2020-08-13 07:24:27

IP地址网络协议网络
点赞
收藏

51CTO技术栈公众号