TCP协议:
传输控制协议:
面向连接,可靠的,重传送质量。
面向字节流
点对点(一对一,一个发一个收)
具备可靠性传输,流量控制,拥塞控制等功能。
TCP协议首部格式:
源端口目标端接口,序列号,确认号,数据偏移,保留,控制位,窗口
TCP的三次握手和四次挥手:
第一次握手:
客户端向服务端发送一个同步数据包(报文段),TCP首部内容SYN=1,确认
ACK=0.。
第二次握手:
服务器收到客户端发送的第一个数据包后,服务器同意链接发送数据包回应
SYN=1,AKC=1.
第三次握手:
确认链接客户端收到服务器的确认后,再向服务器发送一个数据包SYN=0,确认
ACK=1
四次挥手:
第一次挥手:
首先客户端向服务器发送连接释放的请求报文(数据包),并停止发送数据。
在连接释放报文(数据包)的TCP首部中:终止FIN=1,确认ACK = 0
第二次挥手:
服务器收到连接释放的报文之后,给客户端发送确认报文。
TCP连接处于半关闭状态。
客户端无法发送数据给服务器,但是服务器还可以发送数据给客户端,
客户端仍可以接收。
在服务器发送给客户端确认报文的TCP首部中:终止FIN=0,确认ACK=1
第三次挥手 :
若服务器已经没有向客户端发送的数据了,其应用进程就通知TCP释放连接,
并向客户端发送确认报文。
在确认报文的TCP首部中:确认ACK=1,终止FIN=1
第四次挥手 :
客户端收到服务器的连接释放报文段后,向服务器发出确认报文。
在确认报文的TCP首部中:确认ACK=1,终止FIN = 0
流量控制
TCP
连接的每一方都有固定大小的缓冲空间,TCP
的接收端只允许发送端发送接
收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的
速率,防止包丢失,从而实现流量控制。
TCP
使用的流量控制协议是可变大小的滑动窗口协议。 (即TCP 利用滑动窗口
实现流量控制)
拥塞控制
TCP 主要通过四个算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复
发送方需要维护一个叫做拥塞窗口的状态变量,注意拥塞窗口与发送方窗口的区别:
拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。
UDP协议
UDP
利用IP
提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立
即按照原样发送到网络上的一种机制。
UDP特点
面向报文传输,不保证可靠交付,同时也不使用拥塞控制,适合多媒体通信的要求。
支持一对一、一对多、多对一和多对多的交互通信
首部开销小,只有 8 个字节。
总结
类型 | 是否面向连接 | 传输可靠性 | 传输效率 | 占有资源 | 应用场景 | 首部 |
TCP | 是 | 可靠性 | 低 | 多 | 要求通信可靠 | 20-60字节 |
UDP | 否 | 不可靠 | 高 | 少 | 要求通信速度 | 8个字节 |