3.1.5 以太网与TCP/IP关系
以太网和TCP/IP两者的关系可以说几乎是密不可分的。以太网几乎统治了所有的局域网结构,在OSI开放互联模型中,提供物理层和数据链路层的服务。而因特网采用TCP/IP,其网络接口层并没有具体定义,正好由以太网来配合。以太网工作在网络接口层,TCP/IP工作在上层。IP协议使用32位的IP地址,而以太网使用48位的MAC地址,两者间使用ARP和RARP协议进行相互转换。
3.2 ARP协议概述
我们知道在网络互联设备中路由器、交换器、网卡都有自己全球唯一的MAC地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。而这个目标MAC地址是如何得到呢?如果它们直接以48位MAC地址来传输以太网数据包,可是它们却识别不了IP包中的32位IP地址。所以就需要在以太网中进行IP通信的时候用一个协议来建立IP地址与MAC地址的一一对应关系。把IP目的地址转换成以太网网目的地址。使IP数据包能够发送到一个确定的地方。这就是ARP地址解析(Address Resolution Protocol)。
ARP,全称Address Resolution Protocol,中文名是地址解析协议。它工作在OSI模型的数据链路层,属于链路层的其中一个协议。在本层和硬件接口联系。同时对上层提供服务。主要工作是将计算机的网络地址(IP地址)转化为物理地址(MAC地址)。也就是将主机IP地址映射为硬件地址的过程。同时ARP协议用于获得在同一物理网络中的主机的硬件地址。
3.2.1 ARP协议及其功能
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
假定局域网中上层采用TCP/IP协议,当A机器的一个应用程序要与B机器进行通信时,应用层的数据首先被封装成传输层中的TCP(或者UDP)数据报,该数据报再到网际层中被封装为IP数据报,然后送到网络接口层,也就是以太网的MAC层封装成MAC帧。在以太网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
数据链路如以太网或令牌环网都有自己的寻址机制(通常为48位地址),称为MAC(Media Access Control)地址。每一个网络接口均有一个唯一的硬件地址作为标识。而TCP/IP使用32位的IP地址,知道主机的IP地址并不能将一帧数据给直接发送主机。MAC物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址。
以太网数据帧是根据48位的MAC地址来确定同一局域网上的另一台主机,内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP地址解析协议将32位的IP地址映射为数据链路层使用的MAC地址。该映射是由系统动态地自动完成的,一般应用程序用户或系统管理员不必关心。
假定在一个以太网中,发送端主机A要和目的主机B通信,必须把B的32位的IP地址变换成48位的以太网地址。A将一份称作ARP请求的以太网数据帧广播发送给以太网上的每个主机。在ARP请求数据帧中包含目的主机B的IP地址,其意思是“如果你是这个IP地址的拥有者,请回答你的硬件地址。”
目的主机B的ARP层收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答给主机A。这个ARP应答包含IP地址及对应的硬件地址。
收到ARP应答后,使ARP进行请求-应答交换的IP数据报现在就可以传送了。A发送IP数据报到目的主机B。 基于FPGA的以太网通信数据传输的设计与实现(7):http://www.youerw.com/tongxin/lunwen_6604.html