uIP 协议的输出处理比输入处理简单,当uIP 协议调用应用程序时输出处理开始执行。当uIP 协议调用应用程序时,应用程序可以选择生成分组,uIP协议添加必要的分组首部并将数据分组和首部一起传递给传输分组的通信设备驱动程序,uIP输出处理的结构如图10-4所示。
图10-4 uIP 协议输出处理
对于TCP连接,应用程序不能发送未经请求的数据,而且必须等待uIP协议调用该应用程序。不仅当该连接上有新数据到达时uIP 协议调用应用程序,而且uIP协议也把调用应用程序作为定期处理的一部分,这使得即使在该连接上没有新数据到达时,也给应用程序发送数据的机会,使用UDP 的应用程序可以选择在任何时间发送数据而不需要等待uIP调用。(www.xing528.com)
当作为输入处理的一部分或者是在定期处理中调用应用程序时TCP 输出处理将开始执行,如果是作为输入处理的一部分调用应用程序,那么uIP协议要么给应用程序传输分组要么通知应用程序连接打开或关闭。在这两种情况中,应用程序可能想要给远程主机发送数据,如果是这样,uIP协议会更新该TCP 的连接状态,给数据添加必要的首部信息,计算需要的校验和字段,然后发送数据分组。需要更新TCP 连接状态的原因是应用数据将增加该连接的TCP 序列号,该应用程序也可能想要关闭或者取消连接,uIP 协议将做出相应的响应。
UDP输出处理的执行可能是因为接收到数据后uIP协议调用应用程序,或因为应用程序直接调用了uIP 协议,这时uIP 协议在把分组发送给IP 层添加IP首部之前,会在应用数据上添加包括必要的UDP 端口号的UDP 首部,并计算UDP 校验和。IP 层添加IP 首部并计算IP 校验和,然后把数据分组发送给通信设备驱动程序处理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。