【摘要】:uIP 协议栈主要做以下三种操作:处理来自通信设备驱动程序的数据分组;处理来自应用程序的请求;执行定期处理。图10-2uIP协议运行原理当uIP 协议调用应用程序并且仅当应用程序已经生成要求uIP 协议栈发送的数据时,启动uIP协议输出处理模块,输出处理模块代码在将要发送的数据分组上添加协议首部,然后将数据分组发送给要发送分组的通信设备。
uIP 协议栈的实现很简单,如图10-2 所示。uIP 协议栈主要做以下三种操作:处理来自通信设备驱动程序的数据分组;处理来自应用程序的请求;执行定期处理。uIP协议转发模块负责向其他节点中继通信流量,转发模块查询路由协议模块,找到应该转发数据分组的位置。
当通信设备驱动程序接收到数据分组时,启动输入处理模块,设备驱动程序调用uIP协议的输入处理函数,该函数解析接收到的数据分组的首部,并判断该数据分组是否包含应用数据。如果包含应用数据,就将该数据发送给相应的应用程序,应用程序会对接收到的数据生成应答分组,然后由uIP协议的输出处理模块处理。
图10-2 uIP协议运行原理(www.xing528.com)
当uIP 协议调用应用程序并且仅当应用程序已经生成要求uIP 协议栈发送的数据时,启动uIP协议输出处理模块,输出处理模块代码在将要发送的数据分组上添加协议首部,然后将数据分组发送给要发送分组的通信设备。
执行定期处理的目的是为了执行基于定时器的操作,例如重传。uIP协议的定期处理机制非常简单,为了检查是否存在任何需要重传的分组,需要有规律的激活uIP 协议定期处理函数。当存在需要重传的数据分组时,uIP 协议定期处理函数生成重传数据分组,并且将它传递到发送该分组的通信设备驱动程序。
与IP 协议相同,转发和路由分开处理,转发是将接收到的数据分组重新发送给邻居的过程,而路由是决定将分组应该转发给哪个邻居的过程。uIP协议转发模块维护了一张关于目的节点和下跳邻居节点地址的转发表,在UDP或TCP协议之上实现的路由协议基于从该路由协议收到的数据维护转发表。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。