图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嵌入式系统的数据采集传输系统研究+源程序
- 下一篇:有限元方法在波导计算的应用仿真
-
-
-
-
-
-
-
g-C3N4光催化剂的制备和光催化性能研究
现代简约美式风格在室内家装中的运用
C++最短路径算法研究和程序设计
高警觉工作人群的元情绪...
浅析中国古代宗法制度
巴金《激流三部曲》高觉新的悲剧命运
中国传统元素在游戏角色...
江苏省某高中学生体质现状的调查研究
NFC协议物理层的软件实现+文献综述
上市公司股权结构对经营绩效的影响研究