TCP 与 UDP,皆为网络协议中传输层之要角,其性其用,各有千秋,今试析之。
连接之有无
TCP 者,乃面向连接之协议。凡传输数据,必先经三次握手,建其连接,如遣使通好,礼备而后行。UDP 则不然,无连接之设,若飞鸟传信,不拘形式,更适用于消息多播,自一点而传于众点,便捷迅速。
可靠与否
TCP 以可靠著称,传输途中若有数据丢失,必重发之,务使数据全达,如信使护信,虽千山万水,必至其地。UDP 则反是,不可靠也,不担保数据必达,犹如风中飘絮,去留无定,网游、视频中常见之丢包现象,即由此生。
序之有无
TCP 可保消息有序,即便数据抵达客户端之时先后无序,亦能重排之,使各归其位,若良匠理丝,虽乱必整。UDP 则无此能,不保证消息之序,恰似群雁南飞,或有参差。
数据边界之辨
TCP 不存数据边界,数据如长河之水,先聚于缓冲区,待适当时机,方传于接收端,以尽网络带宽之利。UDP 则严守数据边界,数据包各自发送,抵达后再行整合,每包皆有明界,犹如竹节,节节分明,消息既发,接收端一读便得完整之讯。
速度与消耗之异
论速度,TCP 缓而 UDP 疾。TCP 之谨严,使其传输耗时,如辎重之师,稳重而行。UDP 之简捷,令其迅捷无比,常用于在线视频、电视广播、多人游戏等需快速传输之处,若轻骑突进,瞬息千里。
论发送消耗,TCP 为重量级,其协议复杂,所需资源甚多,头部大小达二十字节,含序列号、ACK 号等诸多信息,如大车重载,行进迟缓。UDP 为轻量级,无连接、无保序之赘,头部仅八字节,含长度、端口号、校验和等,如小舟轻泛,自在洒脱。
拥塞控制之别
TCP 设流量与拥塞控制之法,建连需三握其手,传输间权衡利弊,遇拥塞则缓行,如良御驾车,审时度势。UDP 无此机制,传输不察拥塞,如野马脱缰,纵意驰骋。
应用之不同
TCP 因其可靠、有序,多用于需高可靠而时延次之之场景,金融领域常见之 FIX 协议,即基于 TCP。UDP 以其快速、高效,适用于对传输速度要求严苛之应用,游戏、娱乐之处,多赖其力。且 UDP 无状态之性,于服务器应答大量客户端少量请求之务,尤为得力。
上层协议之依
Telnet、FTP、SMTP 诸协议,皆依 TCP 而行,取其稳也;DHCP、DNS、SNMP、TFTP、BOOTP 等,则赖 UDP 以成,用其速也。
TCP 与 UDP,一稳一疾,一繁一简,如阴阳相生,各适其用,共筑网络传输之基,使信息往来,各得其所。