TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
在服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时。等待期间,这些,半连接,都保存在一个空间有限,的缓存队列中。如果大量的SYN包,发到服务器端后没有应答,就会使服务器端的TCP资源迅速耗尽。
导致正常的连接不能进入,甚至会导致服务器的系统崩溃。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
TCP的可靠保证,是它的三次握手机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的,不用我说什么,自己体验一下就能发现区别了。再有就是UDP和TCP的目的端口不一样(这句话好象是多余的),而且两个协议不在同一层,TCP在三层,UDP不是在四层就是七层。
在服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时。等待期间,这些,半连接,都保存在一个空间有限,的缓存队列中。如果大量的SYN包,发到服务器端后没有应答,就会使服务器端的TCP资源迅速耗尽。
导致正常的连接不能进入,甚至会导致服务器的系统崩溃。