打印

ARP协议在STC51实验板上的实现

[复制链接]
2224|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不爱说话|  楼主 | 2009-8-25 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自从完成51实验板的焊接,本来想直接移植uIP到板子上的,我也把自己写的DM9000A驱动替换到uIP的webserver例程里了,但是结果板子上电后没有数据包输出,在IE里输入板子的地址也没有页面出來,一时无从下手,不知道应该从哪方面debug。感觉TCP/IP这方面还有很多要看的知识,与其在那里瞎调程序,不如看一些专业书籍有用。因此,这段时间主要看了TCP/IP协议 第一卷,学习一些基本的知识。知道了以太网和802.3的关系,以太网数据包的组成,什么是IP,TCP协议等。今天,从最基本的开始,先来说一说ARP(地址解析协议)在我的板子上的实现。
        ARP协议是一个网络层的协议,实现的功能是网络设备的MAC地址到IP地址的映射。在以太网中每个网络设备都有一个唯一的48位(6字节)MAC地址,数据报都是按照MAC地址发送的,其地址范围是由相关组织按照不同设备制造商统一分配的,这样保证了网络上设备地址不会冲突。但是TCP/IP协议是以32位(4字节)IP地址作为通讯地址的,怎样使MAC地址和IP地址对应上呢,这里就用到了ARP协议。


        ARP的工作过程大致是这样的:比如网络中的一台主机想要知道MAC地址为01:02:03:04:05:06的机器的IP地址,于是它就向网上发送一个ARP查询数据报(目的MAC全为FF的广播报文),网络上的所有机器收到这个广播后将查询的MAC与自己的MAC比对,如果不一致,则不回应该报文。若一致则向该主机发出ARP回复数据报(这时就是只针对发送方的单播报文了),告诉主机自己的IP(比如192.168.0.9)。这样主机就会在ARP映射表中记录这一项192.168.0.9-----〉01:02:03:04:05:06。以后,发往这个IP地址的IP/TCP/UDP等数据报就会对应到它的MAC地址。
        我在我的网络实验板上按照这个协议,实现了ARP响应(有ARP查询时,回复自己的IP),并且与PC连接后调试通过。从命令提示符窗口输入arp -a查询ARP表项可以看到,PC已经识别了我的板子,并且正确建立了MAC-〉IP的映射。这样就为后面的高层协议实现打下了基础。

相关帖子

沙发
不爱说话|  楼主 | 2009-8-25 20:39 | 只看该作者
这里的人气太不旺了,自己顶一下。

使用特权

评论回复
板凳
jerkoh| | 2009-8-25 21:32 | 只看该作者
搞单片机TCP/IP 要旺  就只有进我群了 哈哈

使用特权

评论回复
地板
iam兴航| | 2009-8-25 21:44 | 只看该作者
强人啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

885

帖子

34

粉丝