TCP和UDP协议
TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供网络服务。
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次握手才能建立起来,而断开连接需要进行四次握手。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。
相关应用:
当数据传输必须保证数据的完整性、可控性和可靠性时,TCP协议是最好的选择。如:ATM和帧中继是面向连接的协议,但它们工作在数据链路层,而不是在传输层。普通的音频电话也是面向连接的。
在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。
腾讯QQ中,TCP和UDP都有使用,但是以UDP为主,因为UDP传输速度快,在中国,网络环境复杂,不容易建立TCP连接,当登录QQ,发消息聊天都是UDP的,只有对方不在线或者隐身时,所发送的消息是TCP的。当双方在线时,直接对话,传送UDP,UDP协议头中包含对方的IP地址,这也是有些功能版QQ能显示对方IP的原因。而TCP协议,如果对方隐身,你通过TCP建立和腾讯服务器的连接,把消息存在服务器上,再由服务器选择合适时机传送给对方。