UDP与TCP的联系与区别:
1、联系
- 首先,这两个都是运输层协议;
- 都是建立在ip之上的 TCP叫做流式套接字,UDP是报文套接字
为什么要在 IP 之上?
2、区别
tcp基于连接、UDP无连接。
这里可以展开说连接与可靠是个什么意思:我的理解是,TCP通过一系列机制(确认号,重传等),尽管底层是不可靠的,但是不可靠发生的时候,TCP总可以纠正错误,保证用户不需要操心数据的到来是乱序的,或者数据丢失了,用户通过TCP建立连接之后,就可以放心的认为数据是对着的。 而TCP实现数据的可靠传输,是通过事先(三次握手)双发约定好的一些数据(序列号,确认号,窗口大小)来完成的,这个东西就叫做连接,所以必然是点对点的,不可能对多,也不可能中通换对象。
但是UDP就不管这么多,UDP完成的是最初的任务:原本的任务就是要解决IP无法将数据递交给用户期望的进程的问题的。所以UDP的结构相对简单,占用的资源少,通过ip+端口号,将数据发过去就好了,也不管数据丢失没有,接收方也不管数据有没有到达,有没有重复。所有这也工作都要交给上层应用完成,也就是所谓的 网络中的某个问题,在各层都可以解决,如果底层不解决就让上层解决。 既然UDP如此不方便,为什么还要用UDP?尤其是我们熟悉的DNS似乎就是用UDP实现的?A:UDP开销小,负载消耗小,在一些对精度要求不大,但是对速度要求大的场合,用UDP是合理的,即使一次失败,重试的损失也不大。就拿DNS来说,它的任务就是通过网址找到IP然后返回,一次不行就再来一次,开销很小,但是要尽量快,要降低服务器负载。 但是DNS服务器之间进行同步的时候用的就是TCP,这种场合要保证数据的正确。
最后总结一下:TCP是有连接的可靠的传输。
UDP是无连接的不可靠的传输。
标签:UDP,区别,TCP,可靠,DNS,数据,连接 From: https://www.cnblogs.com/leastl/p/16768592.html