您的位置:首页 > 其它

以太网数据包如何发送

2013-10-12 17:23 155 查看
在以太网中数据包是如何发送的?ip和MAC有什么关系呢?下面所讲的数据传送只设计网络层和数据链路层。在linux下。

在局域网内,一台主机H1(192.168.1.110)想发送数据给主机H2(192.168.1.111)时。数据是怎样过去的呢?

首先H1会查看自己的route table(命令route查看):

Destination
Gateway
Genmask
Flags Metric
Ref Use
Iface

192.168.1.0
*
255.255.255.0
U
0
0
0 eth0

default
192.168.1.1
0.0.0.0
UG
0
0
0 eth0

确定H2在同一局域网内,将数据包直接从网卡eth0发出。再查看arp table,获取H2的MAC地址(命令arp查看):

Address
HWtype
HWaddress
Flags
Mask
Iface

192.168.1.1
ether
00:1d:0f:3e:95:46
C
eth0

当arp中没有H2的IP到MAC映射时,H1需要广播一个frame,包含下面的几个值:

H1MAC ||
广播MAC || H1IP
|| H2IP

局域网内所有主机都接受这个frame,因为是广播MAC(广播MAC为:FF-FF-FF-FF-FF-FF),所以都需解析它的数据内容,获得其中的目标IP。与自己的IP不匹配的主机直接忽略frame。匹配的主机发回一个frame,包含:

本机IP || 本机MAC
|| H1IP ||
H1MAC

这样H1就获得了H2的IP与MAC映射了。接着就进行frame的之间传输了(其他的主机无需解析出frame的IP,只要查看它的MAC是否与自己的匹配就行。也就是说无需提交到网络层,节省运算时间和资源)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: