如果将 TCP 比作成熟的社会人,UDP 则是头脑简单的小朋友。
UDP 面向无连接
流媒体的协议:直播
实时游戏
移动通信领域
TCP 面向连接

分析:
源端口号和目标端口号:数据知道发给哪个应用。
包的序号:那个包先来,那个后来
确认序号:发出去的包应该有确认,无确认再发一次。
状态位:SYN 是发起一个连接,ACK 是回复,RST 是重新连接,FIN 是结束连接等。是面向连接的,因而双方要维护连接的状态,这些带状态位的包的的发送,会引起双方的状态变更。
窗口大小:标识自己当前能够的处理能力,让对方根据自己窗口来确定发送速度。
拥塞控制:控制自己发送的快慢。
TCP 的三次握手
作用:三次握手除了双方建立连接外,还获取TCP包的序号。
“请求 -> 应答 -> 应答之应答”
A:您好,我是 A。
B:您好 A,我是 B。
A:您好 B。
状态时序图:

首先AB都是closed状态。
首先服务器监听某个端口,处于listen状态;
客户端主动发起SYN连接,之后处于SYN-SENT状态;
服务器收到发起的连接,返回SYN,并且ACK确认客户端的SYN连接,此时处于SYN-RECIVED状态;
客户端收到服务器端发起的SYN和ACK之后,发送ACK的ACK就,处于创建状态,一发一收成果了。
服务器端收到ACK之后,处于常见状态。因为其✌也一发一收了。
四次挥手
A:B 啊,我不想玩了。
B:哦,你不想玩了啊,我知道了。(半关闭)
B:A 啊,好吧,我也不玩了,拜拜。
A:好的,拜拜。

问题
都说 TCP 是面向连接的,在计算机看来,怎么样才算一个连接?
第一个问题:TCP连接是通过三次握手建立连接,四次挥手释放连接,这里的连接是指彼此可以感知到对方的存在,计算机两端表现为socket,有对应的接受缓存和发送缓存,有相应的拥塞控制策略