子网掩码,网关与ARP协议的作用

----通过简单的实验深入透析子网掩码,网关与ARP协议的作用
刘郁恒 中山大学电子与通信工程系博士,中山大学思科网络技术学院资深讲师

子网掩码,网关与ARP协议的概念和工作原理是学习网络知识的初学者首先遇到的几个重要的知识点,其中子网掩码与ARP协议的作用和基本工作原理更是思科网络技术学院教程Semester 1中的重点与难点,初学者

往往难以一下子掌握这些抽象复杂的机理。因此很有必要通过实验来帮助学员更加深入直观地了解子网掩码,网关与ARP协议的基本概念与工作原理。
在对实验进行讲解之前,首先对子网掩码,网关与ARP协议的基本知识进行概述。

子网掩码(Subnet Mask)
子网掩码的主要功能是告知网络设备,一个特定的IP地址的哪一部分是包含网络地址与子网地址,哪一部分是主机地址。网络的路由设备只要识别出目的地址的网络号与子网号即可作出路由寻址决策,IP地址的主机部分不参与路由器的路由寻址操作,只用于在网段中唯一标识一个网络设备的接口。本来,如果网络系统中只使用A、B、C这三种主类地址,而不对这三种主类地址作子网划分或者进行主类地址的汇总,则网络设备根据IP地址的第一个字节的数值范围即可判断它属于A、B、C中的哪一个主类网,进而可确定该IP地址的网络部分和主机部分,不需要子网掩码的辅助。

但为了使系统在对A、B、C这三种主类网进行了子网的划分,或者采用无类别的域间选路技术(Classless Inter-Domain Routing,CIDR)对网段进行汇总的情况下,也能对IP地址的网络及子网部分与主机部分作正确的区分,就必须依赖于子网掩码的帮助。

子网掩码使用与IP相同的编址格式,子网掩码为1的部分对应于IP地址的网络与子网部分,子网掩码为0的部分对应于IP地址的主机部分。将子网掩码和IP地址作“与”操作后,IP地址的主机部分将被丢弃,剩余的是网络地址和子网地址。例如,一个IP分组的目的IP地址为:10.2.2.1,若子网掩码为:255.255.255.0,与之作“与”运算得:10.2.2.0,则网络设备认为该IP地址的网络号与子网号为:10.2.2.0。

网关(Gateway)
在Internet中的网关一般是指用于连接两个或者两个以上网段的网络设备,通常使用路由器(Router)作为网关。在TCP/IP网络体系中,网关的基本作用是根据目的IP地址的网络号与子网号,选择最佳的出口对IP分组进行转发,实现跨网段的数据通信。在Semester 1中只需要对网关的基本作用有所了解,在Semester 2中还将对路由器的工作机理和配置过程作详细的论述。

ARP协议(Address Resolution Protocol)
在以太网(Ethernet)中,一个网络设备要和另一个网络设备进行直接通信,除了知道目标设备的网络层逻辑地址(如IP地址)外,还要知道目标设备的第二层物理地址(MAC地址)。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

当一个网络设备需要和另一个网络设备通信时,它首先把目标设备的IP地址与自己的子网掩码进行“与”操作,以判断目标设备与自己是否位于同一网段内。如果目标设备在同一网段内,并且源设备没有获得与目标IP地址相对应的MAC地址信息,则源设备以第二层广播的形式(目标MAC地址为全1)发送ARP请求报文,在ARP请求报文中包含了源设备与目标设备的IP地址。同一网段中的所有其他设备都可以收到并分析这个ARP请求报文,如果某设备发现报文中的目标IP地址与自己的IP地址相同,则它向源设备发回ARP响应报文,通过该报文使源设备获得目标设备的MAC地址信息。

如果目标设备与源设备不在同一网段,则源设备首先把IP分组发向自己的缺省网关(Default Gateway),由缺省网关对该分组进行转发。如果源设备没有关于缺省网关的MAC信息,则它同样通过ARP协议获取缺省网关的MAC地址信息。

为了减少广播量,网络设备通过ARP表在缓存中保存IP与MAC地址的映射信息。在一次ARP的请求与响应过程中,通信双方都把对方的MAC地址与IP地址的对应关系保存在各自的ARP表中,以在后续的通信中使用。ARP表使用老化机制,删除在一段时间内没有使用过的IP与MAC地址的映射关系。

实验设计
我们通过设计一个简单的实验来帮助学员更深入直观地理解上述三个知识点所涉及的基本概念与原理。在实验中,我们利用ping命令来检验主机间能否进行正常的双向通信。在“ping”的过程中,源主机向目标主机发送ICMP的Echo Request报文,目标主机收到后,向源主机发回ICMP的Echo Reply报文,从而可以验证源与目标主机能否进行正确的双向通信。

实验的拓扑结构:如图(1)所示。

A与B为实验用的PC机,使用Windows2000 Professional作操作系统。

实验方案:

步骤1:

设置两台主机的IP地址与子网掩码:
A: 10.2.2.2 255.255.254.0
B: 10.2.3.3 255.255.254.0
两台主机均不设置缺省网关。

用arp -d命令清除两台主机上的ARP表,然后在A与B上分别用ping命令与对方通信,在A与B上分别显示,
A: Reply from 10.2.3.3: bytes=32 time<10ms TTL=128
B: Reply from 10.2.2.2: bytes=32 time<10ms TTL=128
用arp -a命令可以在两台PC上分别看到对方的MAC地址。

分析:由于主机将各自通信目标的IP地址与自己的子网掩码相“与”后,发现目标主机与自己均位于同一网段(10.2.2.0),因此通过ARP协议获得对方的MAC地址,从而实现在同一网段内网络设备间的双向通信。

步骤2:

将A的子网掩码改为:255.255.255.0,其他设置保持不变。

操作1:用arp -d命令清除两台主机上的ARP表,然后在A上ping B,在A上显示结果为:Destination host unreachable

用arp -a命令在两台PC上均不能看到对方的MAC地址。

分析1:A将目标设备的IP地址(10.2.3.3)和自己的子网掩码(255.255.255.0)相“与”得10.2.3.0,和自己不在同一网段(A所在网段为:10.2.2.0),则A必须将该IP分组首先发向缺省网关。由于A的缺省网关没有配置,无法对分组进行正确发送,因此显示“目标主机不可到达”。

操作2:接着在B上ping A,在B上显示结果为:Request timed out
此时用arp -a命令可以在两台PC上分别看到对方的MAC地址。

分析2:B将目标设备的IP地址(10.2.2.2)和自己的子网掩码(255.255.254.0)相“与”,发现目标主机与自己均位于同一网段(10.2.2.0),因此,B通过ARP协议获得A的MAC地址,并可以正确地向A发送Echo Request报文。但由于A不能向B正确地发回Echo Reply报文(原因见分析1),故B上显示ping的结果为“请求超时”。在该实验操作中,通过观察A与B的ARP表的变化,可以验证:在一次ARP的请求与响应过程中,通信双方就可以获知对方的MAC地址与IP地址的对应关系,并保存在各自的ARP表中。

步骤3:
在前面实验的基础上,把A的缺省网关设为:10.2.2.1,网关的子网掩码为:255.255.0.0。
在A与B上分别用ping命令与对方通信,各自的显示结果为:
A: Reply from 10.2.3.3: bytes=32 time<10ms TTL=128
B: Reply from 10.2.2.2: bytes=32 time<10ms TTL=127

在A与B上分别用tracert命令追踪数据的传输路径,结果分别为:

A: tracert 10.2.3.3
Tracing route to 10.2.3.3 over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 10.2.2.1
2 <10 ms <10 ms <10 ms 10.2.3.3
Trace complete.

B: tracert 10.2.2.2
Tracing route to 10.2.2.2 over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 10.2.2.2
Trace complete.

分析:如步骤2中的分析,由于A认为B与其不在同一个网段,故从A发向B的报文需要经过网关转发;而B认为A与其在同一个网段,故B不需要经过网关直接向A发送报文,从而可以观察到A与B双向通信时传输路径的不对称性。由于ping命令结果显示的是从目标主机返回的Echo Reply报文的TTL的值,而B收到从A返回的Echo Reply报文经过了网关的转发,所以在B中显示该IP报文的TTL值降为了127(从A发出的IP分组的TTL的初始值为128,每经过一个网关,TTL值减1)。

步骤4:
用arp -d命令清除A中的ARP表,在A上ping一台外网段的主机,如中大的WWW Server(202.116.64.8),再用arp -a可观察到A的ARP表中只有缺省网关的MAC地址信息。

分析:当源主机要和外网段的主机进行通信时,它并不需要获取远程主机的MAC地址,而是把IP分组发向缺省网关,由网关IP分组的完成转发过程。如果源主机没有缺省网关MAC地址的缓存记录,则它会通过ARP协议获取网关的MAC地址,因此在A的ARP表中只观察到网关的MAC地址记录,而观察不到远程主机的MAC地址。 

时间: 2024-07-28 19:20:12

子网掩码,网关与ARP协议的作用的相关文章

在实践中深入理解ARP协议

0.说明         在同一个网络(无特别说明,均指以太网络)中进行通信的主机,必须要拥有目标主机的MAC地址才能够正确地将数据发送给目标主机,那么如何知道目标主机的MAC地址呢?可以通过ARP协议.ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系.可以用如下示意图来形象表示其作用:         可以看到上面的图示是把ARP协议划分到网络层,也既是认为它是一个网络层的协议,这是出于它为网络层的IP协议

ARP协议的基本IP地址解析

    对于网络的传输,IP地址也就是主机地址的解析是离不开ARP协议的使用的.但这方面也非常容易出现问题.我们现在就来简单谈谈ARP协议的一些基本地址解析的内容. 解释本地IP地址(要了解地址解析工作过程的朋友看好了)主机IP地址解析为硬件地址: (1)当一台主机要与别的主机通信时,初始化ARP请求.当该IP断定IP地址是本地时,源主机在ARP缓存中查找目标主机的硬件地址. (2)要是找不到映射的话,ARP协议建立一个请求,源主机IP地址和硬件地址会被包括在请求中,该请求通过广播,使所有本地主

《Linux高性能服务器编程》——1.5 ARP协议工作原理

1.5 ARP协议工作原理 ARP协议能实现任意网络层地址到任意物理地址的转换,不过本书仅讨论从IP地址到以太网地址(MAC地址)的转换.其工作原理是:主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址.此网络上的其他机器都将收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址. 1.5.1 以太网ARP请求/应答报文详解 以太网ARP请求/应答报文的格式如图1-9所示. 图1-9所示以太网ARP请求/应答报文各字段具体介绍如下. 由图1-9可知,A

ARP协议简述

关于ARP的简述 ARP:Address Resolution Protocol 地址解析协议. RARP:Reverse Address Resolution Protocol 逆向地址解析协议. 不同的网络,如以太网,令牌网...,在数据链路层都有不同的寻址机制. 在以太网的局域网中,一台主机和另外一台主机通信发包,是根据48bit的以太网地址来确定目的接口的,设备驱动程序从不检查IP数据报中的目的IP地址. 地址解析协议(ARP)为这两种不同的地址形式提供映射:32bit的IP地址和数据链

ARP协议总结

简介: ARP协议用于把IP地址解析成对应的物理MAC地址(以太网地址). ARP处于哪层,从ARP执行层面来看,ARP帧是处于数据链路层.从用处来看,是用于解析IP的,所以也有说法这是IP层的协议. 协议工作流程: 当一台计算机,主机A需要发送一条信息.信息已经打包到数据链路层.现在要封装成帧,发送给B主机.IP层下来的包包含了目标IP,现在需要用它解析出目的MAC地址. 首先,ARP协议查找本地缓存表. 如果IP不在缓存表中,ARP会发送一个ARP广播(ARP request),询问目的的B

Linux下禁用ARP协议的3种方法

ARP(地址解析协议) 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址:收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源.地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测

Linux系统VPS绑定网关防止ARP攻击

一般VPS的网关是不会变动的,且独服也适用. 一.查看当前网关 arp -a SSH执行以上命令,可查看到网关主机名.网关IP.网关MAC地址和对应的网卡,如下图 二.绑定网关MAC 1)绑定 echo "198.52.103.193 00:D0:2B:D1:58:80" > /etc/ethers#黄色部分请根据实情修改.格式:网关IP(空格)MAC地址 #www.111cn.net 2)激活使其生效 arp -f /etc/ethers SSH执行以上命令,使其生效. 三.检

静态ARP与arp协议图解第1/3页_组网教程

WIN2000的时候ARP -S命令设置的STATIC ARP ENTRY还是经常被人ARP SPOOFING,最近实验WIN2003的ARP -S终于可以锁定ARP项再也不怕网络执法官这些软件了.该病毒发作时候的特征为,中毒的机器会伪造某台电脑的MAC地址,如该伪造地址为网关服务器的地址,那么对整个网吧均会造成影响,用户表现为上网经常瞬断.  一.在任意客户机上进入命令提示符(或MS-DOS方式),用arp –a命令查看:  C:\WINNT\system32>arp -a  Interfac

华为面试题

1.static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.     2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问.它是一个本地的全局变量.     3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用.那就是,这个函数被限制在声明它的模块的本地范围内使用   2.引用与指针有什么区别?     1) 引用必须被初始化,指针不必.     2) 引用初