mac地址扫盲——初识MAC地址(2)
时间:2013-11-19 17:44来源:panpan.org 作者:红领巾 点击:次
IP地址和MAC地址是同时使用的,在数据传送过程中,一个完整的TCP/IP包需要由以太网进行数据封装,数据分帧,最后再通过物理层传输到目标计算机。在以
IP地址和MAC地址是同时使用的,在数据传送过程中,一个完整的TCP/IP包需要由以太网进行数据封装,数据分帧,最后再通过物理层传输到目标计算机。在以太网封装上层的TCP/IP包的时候,它需要知道源MAC地址和目的MAC地址,但是我们只能给出一个对方的IP地址,这个时候就需要一个协议来支持IP到MAC的转换,这就是ARP,Address Resolution Protocol. ARP协议是介乎于网络层和数据链路层的一个协议。第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:"谁是xxx.xxx.xxx.xxx这个IP地址的主人?"因为是广播包,所有这个局域网的主机都收到了这个ARP请求。
收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包。这个IP地址的主机收到这个ARP请求包后回复的ARP响应里说到:"我是这个IP地址的主人"。这个包里面就包括了他的MAC地址。以后的给这个IP地址的帧的目标MAC地址就被确定了。其它的协议如IPX/SPX也有相应的协议完成这些操作。
IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表,由驱动程序和操作系统完成。在Microsoft的系统里面可以用 arp -a 的命令查看ARP表。收到数据帧的时候也是一样,做完CRC以后,如果没有CRC效验错误,就把帧头去掉,把数据包拿出来通过标准的借口传递给驱动和上层的协议客栈,最终正确的达到我们的应用程序。还有一些控制帧,例如流控帧也需要MAC直接识别并执行相应的行为。
------分隔线----------------------------