图2.8 在以太网上使用的ARP请求或回答的格式
AT91RM9200的MAC地址设为0x00,0x80,0x48,0x12,0x34,0x56,IP地址为192.168.0.100。PC机的MAC地址为0x00,0x1F,0xD0,0x12,0xE8,0x76,IP地址为192.168.0.145。本系统中,主机为PC机,因此当PC机和AT91RM9200建立网络连接时,PC机会向AT91RM9200广播ARP请求。因此,对AT91RM9200来说,只需要回复PC机ARP请求即可,同时AT91RM9200保存PC机的MAC地址和IP地址,PC机也会建立相应的ARP缓存表。
当AT91RM9200收到PC机ARP请求时,AT91RM9200从ARP请求包中提取出PC机的MAC地址和IP地址,分别作为ARP回复的以太网目的地址、目标硬件地址和目标IP地址,同时填充上自己的以太网目的地址、发送者硬件地址和发送者IP地址,将ARP操作数改为2。最后将此包作为以太网数据帧发给PC机。
(2)IP协议
IP协议(Internet Protocol)即网络之间互连的协议, 也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。IP地址是用来唯一标识互联网上计算机的逻辑地址。每台连网计算机都依靠IP地址来标识自己。
Ethernet帧头 IP头部 UDP头部 应用数据 FCS
图2.9 TCP/IP报文封装
IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送,如图2.10所示。
版本(4b) 报头长度(4b) 服务类型(8b) 总长度(16b)
标识(16b) 标志位(3b) 段偏移量(13b)
生存期(8b) 协议(8b) 头部校验和(16b)
源IP地址(32b)
目标IP地址(32b)
可选项(32b)
数据
图2.10 IP头部格式
IP头部格式如图2.8所示。IP封装的子程序就是根据IP头部格式要求,在UDP包的前面添加IP头部。在本设计中,IP头部的具体设置为:IP协议版本为IPv4,报头长度为20字节,服务类型为一般服务,无分段,上层使用UDP协议,生存期为32,头部校验和为对头部中每个16比特进行二进制反码求和的结果。IP解包的子程序先对IP头部计算校验和,如果校验和正确则再根据IP头部的信息提取出UDP包。
(3)ICMP协议
Internet控制报文协议(ICMP)允许主机或路由器报告差错的情况和有关异常的情况。ICMP只是报告差错,并不能纠正差错,ICMP使用源IP地址将差错报文发送给分组的源站。ICMP报文分为差错报文和查询报文两类。
ICMP处理字程序主要是针对一般的“ping”命令的。当AT91RM9200收到“ping”命令的ICMP报文时,判断报文类型,如果是查询报文的回送请求,则按照ICMP报文格式组建一个应答ICMP报文,并发送出去。
ICMP报文格式如图2.11所示,包括8B的首部和可变长度的数据。
类型(8b) 代码(8b) 校验和(16b)
首部其余部分
数据
图2.11 ICMP报文格式
2.4.3 传输层和应用层
UDP协议(User Datagram Protocol),即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
- 上一篇:ARM嵌入式系统的数据采集传输系统研究+源程序
- 下一篇:有限元方法在波导计算的应用仿真
-
-
-
-
-
-
-
java+mysql车辆管理系统的设计+源代码
电站锅炉暖风器设计任务书
大众媒体对公共政策制定的影响
中考体育项目与体育教学合理结合的研究
十二层带中心支撑钢结构...
河岸冲刷和泥沙淤积的监测国内外研究现状
杂拟谷盗体内共生菌沃尔...
当代大学生慈善意识研究+文献综述
乳业同业并购式全产业链...
酸性水汽提装置总汽提塔设计+CAD图纸