TCP和UDP都是传输层的网络通信协议,其中TCP是面向连接的协议,UDP是面向不连接的协议,TCP的传输是可靠的安全的,UDP是不可靠的不安全的,TCP适合用来传输数据量大的数据,UDP适合数据量小的数据,TCP传输前必须经过三次握手完成连接,即主机A向主机B请求连接,主机B响应主机A的请求,主机A向主机B发送数据,确认连接,UDP使用场景:即时通讯,例如QQ。
为什么TCP建立连接需要三次握手?
防止服务器端因为接收了早已失效的连接请求报文从而一直等待客户端请求,从而浪费资源“已失效的连接请求报文段”的产生在这样一种情况下:Client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。这是一个早已失效的报文段。但Server收到此失效的连接请求报文段后,就误认为是Client再次发出的一个新的连接请求。于是就向Client发出确认报文段,同意建立连接。
假设不采用“三次握手”:只要Server发出确认,新的连接就建立了。由于现在Client并没有发出建立连接的请求,因此不会向Server发送数据。但Server却以为新的运输连接已经建立,并一直等待Client发来数据。>- 这样,Server的资源就白白浪费掉了。
采用“三次握手”的办法可以防止上述现象发生:
· Client不会向Server的确认发出确认
· Server由于收不到确认,就知道Client并没有要求建立连接
所以Server不会等待Client发送数据,资源就没有被浪费