如何仅通过MAC实现通信?

DarkBlue5 2006-04-28 10:46:24
小弟做一项目,有一难题,请各位前辈指点,

完成MS win与2.4 Linux的通信,并且在此过程中只能通过MAC地址实现?
请问可否实现?
在两端的接口分别是什么?
...全文
494 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gniqoug 2006-05-09
  • 打赏
  • 举报
回复
windows下socket不能做到,除非用rarp协议得到IP地址(嘿嘿不是zhuan()说得arp),然后用socket发送。socket机制只是传输层,不能到达链路层。RAW SOCKET可以操作到IP数据桢级。
还有一种方法,使用libnet,它可以构造链路层的数据直接发送。
你还幸运了,用rarp就好了,我才郁闷呢,只知道一个主机的mac地址,它的IP为全零,没有ip。然后设计协议给它弄个ip。只能用libnet,要不就老广播浪费资源。麻烦的很。
MrPotter 2006-05-09
  • 打赏
  • 举报
回复
楼上正解,只有链路层是MAC地址通信的。
fierygnu 2006-04-29
  • 打赏
  • 举报
回复
直接发以太帧。收就收到了,丢就丢了:)
zhuan 2006-04-28
  • 打赏
  • 举报
回复
MS win与2.4 Linux的通信,两台机器在一个网段内吗?如果不在,从理论上是走不通的,MAC地址是不可以跨网段的,否则IP地址也就没有存在的必要了。

如果在一个网段内,你可以使用ARP协议,找出MAC地址对应的IP地址,然后使用Socket来处理,这样实现起来最简单。

如果必须使用链路层协议来处理,MS win可能必须写中间层驱动程序来写了,Linux也要改网卡的驱动甚至内核的源代码来实现,呵呵,比较复杂。
RunningYang 2006-04-28
  • 打赏
  • 举报
回复
刚看了相关的书
WIN是如上所述
但是UNIX似乎可以直接操作以太数据桢的
WIN只能通过RAW SOCKET操作到IP数据桢级,UNIX通过另外一个机制可以更进一步,操作以太桢

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧