有这样一道神奇的题目,请简述TCP和UDP的区别?这可以说是一道计算机网络的基础题目,但是这道题目在我很多重要时刻都碰上了,这次我一定要来好好分析下这道题目。

最早接触这个题目是大学的计算机网络教师,他跟我们说,“如果以后答不出TCP和UDP的区别,不要说是我教你们的”。很快期末考试出了这道题目,我啥也不知道随便扯了一通。

第二次碰到这道题目是一次淘宝实习的电话面试,那个时候我还是没有重视这道题目,直接跟他说我不会。他反问我是不是没学过计算机网络,我说,学过,时间长了就忘记了。好在最后面试还是通过了。不过这次经历后,我开始去看这道题目,了解了下两者的区别和适用场景。

不久前我又碰到这个题目了,是国考的面试,其中的一道专业题就是TCP和UDP的区别,并举例说明。虽然我曾经知道,但毕竟也隔了两年了,我努力回忆了一些出来,但总觉得还是少了些什么,最后我认为答得不好不坏。

TCP和UDP

那么我们来看看两者的区别吧:

首先,TCP基于连接,比如你给别人打电话,要对方接听之后才能开始通话。而UDP不需要建立连接,就像你看电视,视频数据一直在从运营商那边传到你电视机上,他不管你电视机有没有开,只管把数据送过来。

数据可靠性,因为刚才说了TCP要先建立连接,所以数据传输是可靠的,比如打电话我们就能确保对方都能接收到通话数据,而UDP不建立连接,就像发短信,我发送出去之后,并不知道对方有没有收到,除非对方返回一条消息给我说他收到了短信。

传输速度,凡事鱼和熊掌不可兼得,TCP保证了数据的可靠,就会牺牲通讯的速率,不然既可靠又高速就不需要另一个协议了。因此,根据数据可靠性和传输速率的侧重点不同,两个协议也有不同的应用场景。点对点传输文件的时候,就需要用TCP协议。即时通讯,看视频听音乐,传输数据包小,又需要确保传输速度,就要使用UDP。

总结的说,首先知道两者是否基于连接,然后就可以推断出其他的区别,这样应该是非常好记的。