25.2 TCP与UDP

25.2 TCP与UDP - 图1

图 25.1 网络通信示意图

TCP(Transmission Control Protocol)就是传输控制协议,其和IP协议一起使用。一般会将两者合在一起,称TCP/IP。TCP协议负责数据或文件的分组与重组,而IP协议负责发送和接收数据包。数据或文件在网络上传输的时候,会被分成许多块,称之为包。

TCP是可靠的、面向连接的协议,也就是说,只有连接可靠了才能相互进行通信。为什么它会连接可靠呢?因为它的连接是经过3次握手的过程。3次握手就是告知消息发一次,对方确认了并回一次包,再开始发一次包,所以称之为3次握手。它一般适合于可靠性比较高的场合。

UDP(User Datagram Protocol)就是数据包协议,它也跟IP协议一起使用。与TCP协议相比较有很多类似的地方。但是,它不对连接状态与数据丢失做检查,只是保证数据发出去了,例如,平时上网所使用的电子邮件或者聊天时的QQ、MSN等。它们都可以非在线发消息,而这一点与TCP不同。TCP需要对对方是否收到以及数据的完整性做检查。

Java对TCP和UDP协议提供了强有力的支持,分别引入了Sokcet类和DatagramSocket类,来解决这两个不同协议的网络编程。

TCP就好比上网时使用的视频聊天工具,而UDP就好比上网时使用的电子邮件。视频聊天是必须双方都在线,并且双方都监控着自己的数据是否已经发送给对方。而电子邮件则只要把邮件发出去就可以了,至于对方是否收到,就不关心了。