欢迎关注:1,欢迎关注本博客,你可点击右手边的【QQ邮件订阅】订阅本博客!2,本博客推出江湖救急计划,主要为工作中遇到疑难杂症的兄弟提供远程技术支持和分析,如有需要,请在江湖救急计划页面给我留言!

基于UDP的应用如何保证应用数据的可靠性

作者:易隐者 发布于:2012-8-28 22:58 Tuesday 分类:网络分析

       UDP的传输效率比TCP更高一些,其在网络中交互时具有更小的延时,因为其一,发送方只要把应用字段全部交给网络层处理就行了,接收方不需要确认发送方发送的数据,发送方也没有等待接收方确认报文这些过程;其二,TCP报头一般20个字节,UDP报头只有8字节,因此UDP跟TCP相比,在同长度的IP报文中能够承载更多的有效应用数据。

       很多应用设计者和开发者正是看中了UDP的这种特性,将他们的应用程序利用UDP来实现端对端的数据交互,但是UDP不可靠,它没有TCP的确认、重传、窗口、保活等机制,那么基于UDP的应用如何保证其应用数据在交互过程的可靠性呢?答案是由基于UDP的应用程序来完成

    为此我花费了点时间找了一些基于UDP 的应用报文解码,我们一起逐一来看看吧。 

TFTP(应用层确认):  

点击查看原图

某UDP应用(应用层保活):

点击查看原图

RTP(应用层排序): 

点击查看原图

DHCP:(应用层标识) 

点击查看原图

       上次有个网友问我QQ传大文件的时候,为什么没抓到分片包文?我的回答是:应用层做了分片。虽然我并不清楚QQ文件传输协议的具体工作机制,但是其实跟我上面分析讨论的一样,QQ利用UDP传输文件,抓包的时候也看到的确是UDP的连接,但是没看到分片报文,那么原因只能是QQ应用程序为了保障传输文件的可靠性,避免在网络层被分片,应用程序在将大的应用字段交付给UDP之前,针对大的应用字段做了分片处理,这个过程跟TCP的MSS协商后做分段处理有点类似。

       现实工作环境下常见的UDP应用主要有P2P下载、视频会议、在线视频、VOIP语音、在线游戏等,有兴趣的兄弟姐妹,可以找一些工作环境中的这些应用的报文,来验证或完善一下我上述所言,如果找到的话,记得给我留言,顺便把报文给我一份。

阅读全文>>

标签: UDP 基于UDP的应用 可靠性 DHCP RTP TFTP 保活

评论(0) 引用(0) 浏览(18552)

Powered by 易隐者 基于emlog 皖ICP备12002343号-1