TCP传输控制协议
特点:有连接的,可靠性高,效率低,适用于文本流量
封装内容:(20字节)
端口号占16bit,知名端口号:0-1023,自定义端口号:1024-65535
源端口号来自自定义端口号,目的端口,目的端口号标识上层协议的
Sequence序列号、ack确认号、Reserved保留位,固定为0
Control bits控制位,有SYN、ACK、FIN、RST、PSH、URG位
SYN表示建立连接
ACK表示确认连接
FIN表示断开连接
RST表示TCP连接建立失败后,重新建立TCP连接
window窗口值:用来控制TCP的流量
可靠机制:
1、建立TCP连接(通道),通过三次握手的方式来建立TCP连接(双向)
主动端使用SYN置位的TCP报文,携带随机序列号a,请求TCP连接
被动端生成ACK和SYN置位的TCP报文,携带ack+1用来确认主动端到被动端的连接,同时携带随机序列号c,用来请求被动端到主动的连接
主动端生成ACK置位的TCP报文,携带ack=c+1用来确认连接
2、确认机制/重传机制
所有的TCP流量都会携带一个序列号,对端收到TCP流量之后,会进行ACK的确认回复,接着才可以继续发送下一份TCP流量,如果没有收到ACK确认,一直进行重传
3、滑动窗口机制
控制数据的传输速率,防止缓冲区不够导致数据发生丢包
在TCP三次握手时,双方告诉对方自己的缓冲大小为多少
4、关闭连接
数据传输完成之后,需要关闭TCP连接,通过四次挥手的方式进行关闭
主动端发送FIN请求断开TCP连接
被动端收到后,发送ACK确认主动端到被动端的连接断开
被动端发送FIN请求断开TCP连接
主动端收到后,发送ACK确认被动端到主动端的连接断开
UDP用户数据协议
特点:无连接的,可靠性低,效率高,适用于视频流量