UDP协议(User Data Protocol)

2016-10-16  本文已影响0人  A_Coder

特点:
1.面向无连接的协议;
2.UDP报头只有8字节。


简介:
1.传输数据前源端和终端不需要连接,当它传送数据时简单地去抓取来自应用程序的数据,并尽可能快的把它。换句话说就是,客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。
2.在发送端,UDP传送数据的速度仅仅受程序生成数据的速度、计算机能力和传输带宽的限制。
3.在接收端,UDP把每个消息放到队列中,应用程序每次从队列中读取一个消息段。
4.由于传输数据不需要建立连接,因此也就不用维护连接状态,包括收发状态等,因此一台服务器可以同时向多个客户机传输相同的消息。
5.UDP包的标题很短,只有8个字节,相对于TCP的20个字节信息包额外的开销小很多。
6.吞吐量不受拥挤算法的调节,只受应用程序生成数据的速度、传输带宽、源端和终端性能的限制。
7.UDP使用尽最大努力交付,即不保证可靠交付,所以主机不需要维护复杂的连接状态表。
8.UDP是面向报文的。发送方的UDP对应用程序交下来的报文,添加了首部后直接交给下层的IP层,既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。


优点:
1.传输速率快,不需要像TCP一样建立连接,传送数据时没有确认、重传、拥塞控制等机制。
2.较安全,由于没有TCP的一些机制,被攻击的漏洞少。

缺点:
1.不可靠,不稳定,由于没有TCP的机制,在传送数据时,如果网络不好,容易出现丢包的情况。


用UDP协议通讯时怎样得知目标机是否获得了数据包?
        伪造TCP的做法,每发一个UDP包时,都在里面加入一个seq序号,接收方接收到包后,将seq回复给发送方。如果在发送方指定的时间内没有收到回应,说明丢包了。


TCP与UDP的区别

TCP UDP
TCP面向有连接的通信服务 UDP非面向连接的通信服务
TCP提供可靠的通信传输 UDP提供不可靠的通信传输,会丢包
TCP保证数据顺序 UDP不保证
TCP数据无边界 UDP有边界
TCP速度慢 UDP速度快
TCP面向字节流 UDP面向报文
TCP一对一 UDP可以一对一,可一对多
TCP报文头至少20个字节 UDP报文头8个字节
TCP有流量控制、拥塞控制 UDP没有

问题:


参考:TCP与UDP

上一篇 下一篇

猜你喜欢

热点阅读