udp 协议


 CSDN  lidp 专栏 http://blog.csdn.net/perfectpdl

我们知道,ip协议提供了在主机之间交互数据的机制,udp协议则提供应用程序之间传输数据报的基本机制,也就是说udp协议能够区分在同一台机器上运行的多个程序或进程。udp协议通过在ip协议上添加端口来实现此目的,这样,使用udp的软件能够把报文送到正确的接受进程,而接受进程也能回送应答报文,
udp协议使用底层的ip协议在各机器之间传输报文,提供和ip一样的不可靠,无连接数据报交互服务,他没有使用确认来确保报文到达,没有对报文排序,也不提供反馈信息来控制机器之间信息流动的速度,因此udp可能存在丢失,乱序,重复到达的现象。使用udp的应用程序要承担可靠性方面的全部工作,包括处理报文丢失,重复,延时,乱序及连接失效等问题,我所知道的sip协议通过事务及定时器来达到可靠性。
我们在编写基于udp 的socket应用程序时,应用程序访问udp层,然后使用ip层来收发数据报,将udp层放到ip层之上意味着一个包括udp首部和数据的完整udp报文,在互联网中传输时要封装到ip数据报中。
udp给用户要发送的数据加上一个首部,然后再交给ip层,ip层又给udp层接收到的数据加上一个首部。最后,网络接口层把数据报封装到一个帧里,在进行机器之间的发送,帧的结构根据底层网络技术来确定。
在接收端,最底层的网络软件接收到一个分组后把他提交给上一层模块,每一层都在向上提交数据之前剥离去本层的首部,因此当最高层协议软件把数据发送到相应的接受进程的时候,所有附加的首部都被剥离去了,也就是说,最外层的首部都对应的是最底层协议,而最内层的首部对应的是最高层的协议,比如我们用socket系统调用read数据包时实际上是ip层去掉ip首部后传到udp层,udp协议层把udp首部去掉后的数据。


一句话:ip层只负责在互联网上的一对主机之间进行数据传输,而udp层只负责区分一台主机上多个源端口或目的端口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值