2条回答 默认 最新
- devmiao 2016-08-04 07:54关注
http://blog.sina.com.cn/s/blog_85998e380100yee8.html
在以太网中数据包是如何发送的?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是否与自己的匹配就行。也就是说无需提交到网络层,节省运算时间和资源)。
解决 无用评论 打赏 举报
悬赏问题
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题
- ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
- ¥50 C++五子棋AI程序编写
- ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
- ¥15 SQL Server analysis services 服务安装失败