没有合适的资源?快使用搜索试试~ 我知道了~
UDP协议的全称是用户数据包协议,在网络中它与TCP协议一样用于处理,数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。 由于嵌入式系统的软硬件资源都较为有限,大多数嵌入式系
资源推荐
资源详情
资源评论
通信与网络中的浅谈通信与网络中的浅谈uIP中中UDP协议改进方案协议改进方案
UDP协议的全称是用户数据包协议,在网络中它与TCP协议一样用于处理,数据包。在OSI模型中,在第四层
——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是
说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网
络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问
世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不
失为一项非常实用和可行的网络传输层协议。 由于嵌入式系统的软硬件资源都较为有限,大多数嵌入式系
UDP协议的全称是用户数据包协议,在网络中它与TCP协议一样用于处理,数据包。在OSI模型中,在第四层——传输
层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,
是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内
的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已
经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
由于嵌入式系统的软硬件资源都较为有限,大多数嵌入式系统中运行的TCP/IP协议栈均根据嵌入式系统的特点进行了相
应的裁剪。目前应用比较广泛的嵌入式TCP/IP协议栈有:ucTCP-IP、LWIP、uIP、Linux TCP/IP等。其中uIP是专为8 bit和16
bit的嵌入式微控制器设计的微型TCP/IP协议栈,运行时需要的内存很少,实现了常用的TCP/IP协议;代码注释详尽,可以用
于商业或非商业用途。由于具有上述特点,uIP被广泛应用在嵌入式系统的网络互联中。
1 uIP协议栈的体系结构协议栈的体系结构
uIP协议栈往掉了完整的TCP/IP中不常用的功能,简化了通讯流程,但保存了网络通讯必须使用的协议,设计重点放在了
IP/TCP/ICMP/UDP/ARP这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。
由于uIP协议栈专门为嵌进式系统而设计,因此还具有如下优越功能:
(1) 代码非常少,其协议栈代码不到6K,很方便阅读和移植。
(2) 占用的内存数非常少,RAM占用仅几百字节。
(3) 其硬件处理层、协议栈层和应用层共用一个全局缓存区,不存在数据的拷贝,且发送和接收都是依靠这个缓存
区,极大的节省空间和时间。
(4) 支持多个主动连接和被动连接并发。
(5) 其源代码中提供一套实例程序:web服务器,web客户端,电子邮件发送程序(SMTP客户端),Telnet服务器,
DNS主机名解析程序等。通用性强,移植起来基本不用修改就可以通过。
(6) 对数据的处理采用轮循机制,不需要操纵系统的支持。
由于uIP对资源的需求少和移植轻易,大部分的8位微控制器都使用过uIP协议栈, 而且很多的着名的嵌进式产品和项目
(如卫星,Cisco路由器,无线传感器网络)中都在使用uIP协议栈。
在使用uIP的嵌入式系统的软件体系结构中,uIP协议栈相当于一个代码库,它通过一系列的函数实现与底层硬件和上层应
用程序的通信。uIP协议栈与系统底层和上层应用之间的关系如图1所示。
从图1可以看出,uIP协议栈主要提供了uip_input()和uip_periodic()2个函数供系统底层调用。uIP协议栈与应用程序
的主要接口是UIP_APPCALL()和UIP_UDP_APPCALL()。
uIP初始化时调用uip_init()函数,它的主要功能是初始化协议栈的监听端口,并把所有连接设置为关闭状态。然后uIP
的主控部分调用uip_input()函数,该函数将会根据数据包首部的协议标识处理这个包,并在需要时调用上层应用程序。当
uip_input()返回时,一个输出数据包被放在同一个全局缓冲区uip_buf中,其大小赋给uip_len。如果uip_len是0,则说明没
有包要发送,否则主控部分调用底层系统的发包函数将数据包发送到网络上[3]。
资源评论
weixin_38694355
- 粉丝: 3
- 资源: 964
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功