一、概念
① TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。
TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
建立连接:三次握手 1.客户端发送建立连接请求,并进入SYN_SEND状态,等待服务器确认
2.服务端确认连接请求,向客户端发送允许连接应答,此时服务器进入SYN_RECV状态
3.客户端确认已经连接,向服务器发送确认,客户端和服务器进入通信状态,完成三次握手
断开连接:四次握手 1.客户端发送请求停止TCP连接请求
2.服务端收到请求后将这一个socket关闭
3.服务端发送反向请求客户端关闭socket连接
4.客户端确认服务端请求,关闭socket连接
② UDP (User Datagram Protocol 用户数据报协议) 是一种面向非连接的、一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境
UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。
二、区别
1.TCP是面向连接的,UDP是面向非连接的
2.TCP的传输性是可靠地,UDP的传输性不可靠
3.TCP的传输速度缓慢,UDP的传输速度较快
4.TCP主要应用于大量数据的传输,UDP适用于少量数据的传输(例如,QQ消息,短信)