网络层协议与应用(二)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 网络层协议与应用(二)

2.2 ARP协议的介绍

下面来学习ARP协议的相关知识。

1.ARP概述

       在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的P地址解析成MAC地址,以便在交换机上通过MAC 地址进行通信。

       如图所示,假设PC1发送数据给PC2需要知道PC2的MAC地址,可是PC1是如何知道 PC2的MAC地址呢?它不可能把全世界的MAC地址全部记录下来,所以当PC1访问PC2之前就要询问PC2的P地址所对应的MAC地址是什么,这时就需要通过ARP请求广播实现。

       (1)如图所示,主机PC1想发送数据给主机PC2,它检查自己的ARP 缓存表,ARP缓存表是主机存储在内存中的一个IP地址和MAC地址一一对应的表。在Windows操作系统中可以使用arp-a命令来显示ARP缓存表。

       Windows10系统中ARP缓存表的格式如下。

       如果要查找的MAC地址不在表中,ARP会发送一个广播,从而找到目的地的MAC 地址。

       经查看PC1的ARP缓存表中没有PC2的MAC地址,这时PC1会初始化ARP请求过程(发送一

个ARP请求广播)用于发现目的地的MAC 地址。

       (2)主机PC1发送ARP请求信息,ARP请求是目的地址为MAC广播地址(FFFF-FF-FF-FF-FF)

的MAC地址广播帧,从而保证所有的设备都能够接收到该请求,在ARP请求信息中包括PC1的P

地址和 MAC 地址。

       (3)交换机收到广播地址后,发现为MAC地址广播,所以将数据帧从除了接收口之外的所有接

口转发出去。各主机接收到数据帧后,进行IP地址的比较,如果目标P地址与自己的IP地址不同,

则会丢弃这个数据包,而只有PC2这台主机会在自己的ARP表中缓存PC1的IP地址和MAC 地址的

对应关系,同时发送一个ARP应答,来告诉PC1自己的MAC地址(这个数据帧是单播)。

       (4)PC1在接收到这个回应的数据帧后,在自己的ARP表中添加PC2的IP地址和MAC 地址的对

应关系。在这个过程中,交换机已经学习到了PC1和PC2的MAC地址,之后传输数据时,PC1和PC2之间使用单播方式。

       其实,路由器像其他网络设备一样收发数据,也保存着一张将P地址映射到MAC 地址的ARP

缓存表。路由器连接不同的网络,而通常的网络只具有本网络内部的IP地址到MAC地址的映射信息,对于其他网络的信息知之甚少。在路由器上会建立与之相连接的所有网络的ARP表,显示将不同网络上的IP地址映射为MAC地址的对应情况。

2.Windows10操作系统主机ARP命令的使用

1)清除ARP缓存

       使用arp-a命令可以查看ARP缓存表,而要清除ARP缓存需要使用arp-d命令,具体操作如

下所示。

       在清除ARP缓存后,再显示ARP缓存会提示没有ARP条目。

2)ARP 绑定

       有些ARP病毒会自动向外发布ARP应答信息,而ARP应答中的IP地址是其他主机的IP地址,MAC地址是假的。当其他主机收到ARP应答后更新ARP表,最终导致网络中主机无法正常通信。

ARP绑定是将IP地址和相应主机的MAC地址进行绑定,是防止ARP攻击的有效方法,进行 ARP

绑定后,主机将不会处理收到的已绑定IP地址的ARP应答。

       使用arp-sip-addressmac-address命令对P地址和MAC地址进行绑定,该操作为临时性的,

重启系统后,绑定失效。

       在Windows10客户端主机上运行arp-s,若提示错误信息“ARP 项添加失败:拒绝访问”,如图所示,可以通过以下方法解决,

       首先运行命令netsh interface ipv4 show neighbors 查看网卡接口序号,如图所示。

        然后运行命令netsh interface ipv4 set neighbors 510.0.0.17824-e9-b3-10-e5-41绑定IP-MAC,其中的“5”是网卡接口序号,该操作可实现永久性绑定。当再次运行arp-a,发现类型已经是“静态”,如图所示。

       静态绑定的ARP条目默认将一直存在,即使系统重启也会存在,但可以使用命令“arp-d”清除;动态学习到的ARP条目有老化时间(默认为120s),在老化时间规定的时间内,没有收到任何该MAC地址主机的数据时就删除该条目。

       可以使用命令arp-d来删除所有ARP映射关系(包括静态绑定的ARP条目),也可以用arp-d[IP]来删除特定条目。

3.Cisco设备的ARP命令

1)查看ARP缓存表

       使用showarp命令显示ARP缓存表,具体操作如下所示。

       其中,Age表示ARP条目存在的时间,“-”表示始终存在。

2)清除ARP 表

       使用cleararp-cache命令清除ARP缓存表。

3) ARP 绑定

       使用arpip-addressmac-addressarpa命令绑定ARP条目,具体操作如下所示。

4.ARP 原理演示

       如图所示,这是一个对等网的环境,PC1和PC2第一次通信,因此在通信双方的ARP缓存中不会有彼此的IP-MAC地址的映射。

具体实验步骤如下。

       (1)用arp-a命令查看PC1和PC2的ARP缓存,具体操作如下所示,

       (2)在PC1上pingPC2的P地址,之后用arp-命令查看ARP缓存信息,具体操作如下所示。

       在PC1的ARP缓存中显示了PC2的IP-MAC地址的对应关系,这是由于在ping命令发送数据之前,PC1先通过ARP请求获得了PC2的MAC地址。

3. ICMP 协议

       作为网络管理员,必须知道网络设备之间的连接状况,因此就需要有一种机制来侦测或通知网络设备之间可能发生的各种各样的情况,这就是ICMP协议的作用。ICMP协议(Internet Control MessageProtocol)的全称是“Internet控制消息协议”,主要用于在IP网络中发送控制消息,提供可能发生在通信环境中的各种问题的反馈。通过这些反馈信息管理员就可以对所发生的问题做出判断,然后采取适当的措施去解决。

3.1 ICMP的主要功能介绍

       ICMP 是一个“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息,其目的是使管理员能够掌握网络的连通状况,例如,在图中,当路由器收到一个不能被送到最终目的

地的数据包时,路由器会向源主机发送一个ICMP主机不可达的消息。

       ICMP协议属于网络层协议(也有高于网络层协议的说法),因为传输ICMP信息时,要先封装网

络层的IP报头,再交给数据链路层,即ICMP报文对应IP层的数据,如图所示。

3.2 ICMP的基本使用

       在网络中。ICMP协议的使用是靠各种命令来实现的。下面以ping命令为例,介绍ping命令的使用及返回的信息。

       ping命令的基本格式如下所示。

       其中的[]中的参数为可选参数。

1.ping命令的返回信息

       在检查网络连通性时,ping命令是用得最多的。当我们ping一台主机时,本地计算机发出的就

是一个典型的ICMP数据包,用来测试两台主机是否能够顺利连通。ping命令能够检测两台设备间

的双向连通性,即数据包能够到达对端,并能够返回,如图所示。

1)连通的应答

       如图所示,从返回的信息可知,从源主机向目标主机共发送了4个32字节的包,而目标主机回应了4个32字节的包,包没有丢失,源主机和目标主机之间的连接正常,除此以外,可以根据“时间”来判断当前的联机速度,数值越低,速度越快,在最后两行还有一个总结,如果发现丢包很严重,则可能是线路不好造成的丢包,那就要检查线路或更换网线了;最后一行是“往返行程”时间的最小值,平均值、最大值,它们的单位都是ms(毫秒)。

2)不能建立连接的应答

       如果两台主机之间不能建立连接,那么ICMP也会返回相应的信息,如图所示。

        如图所示,ICMP返回信息为“无法访问目标主机”,说明两台主机之间无法建立连接,可能

是因为没有正确配置网关等参数。由于找不到去往目标主机的“路”,因此显示“无法访问目标主机”。

3)应答为未知主机名

       由于网络中可能存在的问题很多,因此返回的ICMP信息也很多。如图所示,ICMP返回信息为“找不到主机”说明DNS无法进行解析。

4)连接超时的应答

       如图所示,返回信息为“请求超时”,说明在规定的时间内没有收到返回的应答消息。

        如果目标计算机启用了防火墙的相关设置,即使网络正常可能也会返回“请求超时”信息。关于防火墙的知识将在后续课程中介绍。

       在路由器上也广泛使用ICMP协议来检查设备之间的连接及运行情况。如果没有ICMP 协议,那看到的就只是一些单纯的设备的堆叠,至于它们的工作情况则一无所知。所以ICMP协议对于管理网络设备,监控网络状态等都有着非常重要的作用。

2.ping 命令的常用参数

       在Windows操作系统中,默认情况下发送4个ping包,如果在ping命令后面加上参数“一t”,如图所示,系统将会一直不停地ping下去。

-a

       在Windows系统上,在ping命令中加入“-a”参数,可以返回对方主机的主机名,如图所示。

-l

       一般情况下,ping包的大小为32字节,有时为了检测大数据包的通过情况,可以使用参数改变ping包的大小,如图所示,ping包的大小为10000字节。

相关文章
|
2天前
|
开发者 Python
Python Socket编程:不只是基础,更有进阶秘籍,让你的网络应用飞起来!
在数字时代,网络应用成为连接世界的桥梁。Python凭借简洁的语法和丰富的库支持,成为开发高效网络应用的首选。本文通过实时聊天室案例,介绍Python Socket编程的基础与进阶技巧。基础篇涵盖服务器和客户端的建立与数据交换;进阶篇则探讨多线程与异步IO优化方案,助力提升应用性能。通过本案例,你将掌握Socket编程的核心技能,推动网络应用飞得更高、更远。
17 1
|
18天前
|
安全 Java 网络安全
当网络安全成为数字生活的守护者:Spring Security,为您的应用筑起坚不可摧的防线
【9月更文挑战第2天】在数字化时代,网络安全至关重要。本文通过在线银行应用案例,详细介绍了Spring Security这一Java核心安全框架的核心功能及其配置方法。从身份验证、授权控制到防御常见攻击,Spring Security提供了全面的解决方案,确保应用安全。通过示例代码展示了如何配置`WebSecurityConfigurerAdapter`及`HttpSecurity`,帮助开发者有效保护应用免受安全威胁。
40 4
|
1天前
|
自动驾驶 物联网 5G
毫米波技术及其在5G网络中的应用详解
毫米波技术及其在5G网络中的应用详解
13 3
|
1天前
|
自动驾驶 物联网 5G
深入探索5G网络中的网络切片技术及其应用场景
深入探索5G网络中的网络切片技术及其应用场景
15 3
|
2天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
17 3
|
7天前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
36 8
|
3天前
|
机器学习/深度学习 算法 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第16天】本文将深入浅出地介绍卷积神经网络(CNN)的基本概念、结构和工作原理,同时通过一个实际的代码示例来展示如何在Python中使用Keras库构建一个简单的CNN模型进行图像识别。我们将看到,即使是初学者也能够通过简单的步骤实现深度学习的强大功能,进而探索其在复杂数据集上的应用潜力。
|
5天前
|
网络协议 安全 物联网
探索未来网络:IPv6的演进与应用
本文深入探讨了互联网协议第六版(IPv6)的发展历程、技术特点以及在现代网络中的应用。通过分析IPv4的局限性和IPv6的优势,阐述了IPv6对网络扩展性、安全性和性能提升的重要性。同时,文章还探讨了IPv6在实际部署中面临的挑战和解决方案,为读者提供了全面而深入的理解。
|
6天前
|
网络协议
UDP协议在网络通信中的独特应用与优势
UDP(用户数据报协议)作为关键的传输层协议,在网络通信中展现出独特优势。本文探讨UDP的无连接性及低开销特性,使其在实时性要求高的场景如视频流、在线游戏中表现优异;其不保证可靠交付的特性赋予应用程序自定义传输策略的灵活性;面向报文的高效处理能力及短小的包头设计进一步提升了数据传输效率。总之,UDP适用于高速、实时性强且对可靠性要求不高的应用场景,为网络通信提供了多样化的选择。
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度剖析深度神经网络(DNN):原理、实现与应用
本文详细介绍了深度神经网络(DNN)的基本原理、核心算法及其具体操作步骤。DNN作为一种重要的人工智能工具,通过多层次的特征学习和权重调节,实现了复杂任务的高效解决。文章通过理论讲解与代码演示相结合的方式,帮助读者理解DNN的工作机制及实际应用。