请教各位,UDP协议和TCP协议都分别有什么优点和缺点?
如题,请分别详细说说,谢谢.
[解决办法]
udp只管扔数据包,不进行校验,速度快,容易丢数据包,
tcp则先要与服务器建立连接,让发送数据包,需要校验,速度相对要慢
[解决办法]
补充:udp无链接,除了会丢包外,包序也是不定的,先发不一定能先到。
tcp做了优化,对于小包会等待一起发送,所以tcp会出现粘包。一般来说接收端需要考虑粘包情况,根据自己定义的协议进行分包处理。
想真正详细看TCP/IP详解的书
[解决办法]
TCP协议提供了一种可靠的数据传输服务,它是一种面向连接的数据传输协议。在数据传输之前,通信节点之间必须建立起连接。为确保正确地接收数据,TCP协议要求在目标电脑成功收到数据时发回一个确认(即ACK)。如果在某个时限内未收到相应的ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收电脑可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。UDP协议是一种面向无连接的数据传输服务,它不能保证数据包以正确的顺序被接收。该协议不能保证数据准确无误地到达目的地。UDP在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用UDP协议。QQ、ICQ等聊天软件使用UDP协议发送消息。
tcp是基于连接的,速度慢,有校验等,所以传送相同的数据,要比UDP发送的包多很多
UDP无需建立虚拟连接和确认的连接开销,所以不安全,掉包是常事(取决于网络环境)
一般来说,对于局域网和要求快速传送少量数据时使用UDP,要求高安全性和网络条件较差使用TCP
[解决办法]
tcp做了优化,对于小包会等待一起发送
------------------
TCP 可的功能。不要
只是要接收一次性返回可能多的