TCP和UDP的区别
TCP(Transmission Control Protocol)
TCP(又叫传输控制协议),是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP连接包括三个状态:连接创建、数据传送和连接终止。
三次握手:
1.第一次握手:客户端通过向服务端发送一个SYN来创建一个主动打开,作为三次握手的一部分。简单的说,就是客户端询问服务端,我可以向你发送数据么?
2.第二次握手:服务端应当为一个合法的SYN回送一个SYN/ACK。简单的说就是,服务端回复客户端说,你可以发,你什么时候发?
3.第三次握手:客户端在发送一个ACK。就是客户端告诉服务端,我现在就发,你接着吧。这样就完成了三次握手,并进入了链接创建状态。如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对于的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错,在发送和接受时都要计算校验和。
流量控制盒堵塞管理
UDP(User Datagram Protocol)
UDP(又叫用户数据协议),是一个简单的面向数据报的传输层协议。
面向非连接
正式通信前,不必与对方先建立连接。并且不管对方状态,即使你没准备好接受,就直接发送。不过,因为他不需要连接,所以他块,通信效率高。
不可靠
UDP只提供数据的不可靠传递,他一旦把应用程序发给网络层的数据发送出去,就不保留数据备份。他在IP数据报的头部仅仅加入了复用和数据校验(字段)。
由于他缺乏可靠性且属于非连接导向协定,UDP应用一般允许一定量的的丢包、出错和复制贴上。
缺乏拥塞控制
由于缺乏拥塞控制,需要基于网络的机制来减少因失控和高速的UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以使用包队列和丢弃技术的路由器这样的网络基本设备就成为降低UDP过大通信量的有效工具。
他们的共同点:
他们都是传输层的协议。
他们的不同点: