传输层协议之TCP协议
1、TCP特点?
①面向连接:通信前需通过“三次握手”建立连接,结束后通过“四次挥手”释放连接;
②可靠传输:通过序号、确认机制、重传机制(超时重传、快速重传)、流量控制(滑动窗口)和拥塞控制保证数据准确、有序到达;
③面向字节流:将应用层数据视为连续字节流,拆分后按序传输,接收方重组;
④全双工通信:通信双方可同时发送和接收数据。
2、TCP协议号?应用场景?
协议号6,适用于文件传输、网页浏览、邮件等。
3、TCP工作机制?
①连接管理:三次握手建立连接、四次挥手释放连接;②可靠传输:每个字节分配序号,接收方通过确认号告知已接受的字节范围,未收到确认的报文超时后重传,或收到重复确认时快速重传;③流量控制:基于滑动窗口机制,接收方根据自身缓存能力动态调整发送方的发送速率;④拥塞控制:通过慢开始、拥塞避免、快重传、快恢复等算法,避免网络因过载而拥塞。
4、TCP三次握手过程?
①客户端向服务器发送连接请求报文,将同步位SYN置为1,序号为X;②服务器收到请求后,同意建立连接,SYN和ACK都置为1,序号为Y,期待下一个序号是X+1;③客户端收到服务器响应后,发送确认报文,ACK置为1,序号为X+1,期待下一个序号是Y+1。
5、TCP四次挥手过程?
①客户端发送结束连接请求,结束位FIN置为1,序号为P;②服务器收到请求后,返回确认,ACK置为1,期望下一个序号是P+1;③服务器完成数据发送后,也发送结束请求,FIN置为1,序号为Q;④客户端收到后,返回确认,ACK置为1,序号为P+1,期待下一个序号为Q+1,服务器收到确认后释放连接,客户端等待超时也释放连接。
6、TCP的优点?缺点?
优点:①可靠传输:通过确认、重传机制,保证数据不丢失、不差错;②有序传输:通过序列号机制,保证数据接收顺序与发送顺序一致;③流量控制:通过滑动窗口机制,防止发送过快淹没接收方;④拥塞控制:通过智能算法动态调整发送速率,保护网络整体稳定性,避免瘫痪。
缺点:①效率低延迟高:因建立连接、确认、重传、拥塞控制等机制,导致传输速度慢、延迟大;②开销大:协议头至少20字节,相比UDP开销显著;③实时性差:重传和排序机制会导致后续数据阻塞,对音视频、游戏等实时应用不友好;④无多播支持:仅支持点对点通信,无法像UDP一样进行一对多广播或多播。
7、TCP三次握手协商了哪些参数?
TCP MSS和窗口
8、TCP可靠性传输机制具体有哪些?
①确认应答机制:让发送方知道数据已被成功接收;
②超时重传机制:解决数据包在网络中丢失的问题;
③序列号和确认号:通过序列号可以识别出重复收到的数据包并丢弃,接收方可以根据序列号对到达的数据段进行排序,再提交给应用层;
④连接管理机制:三次握手——在数据传输前,确保双方都准备好通信,并交换初始序列号,为可靠传输初始化必要的参数。 四次挥手——保证双方都能完成数据的发送,并同意安全地断开连接,防止数据丢失;
⑤流量控制:防止发送方发送速度过快,导致接收方的缓冲区溢出,从而造成数据丢失;
⑥防止发送方过快发送数据导致网络中间设备(如路由器)过载,从而引发网络全局性的瘫痪。
9、为什么TCP握手需要3次?
TCP三次握手需要确认双发都具有:发送的能力和接收的能力
第一次握手:确认了客户端具有发送的能力
第二次握手:确认了服务端具有发送和接收的能力
第三次握手:确认了客户端具有接收的能力
10、为什么TCP挥手需要4次?
四次挥手,第一次断开客户端与服务端之间的连接,第二次服务端同意断开但服务端可能还有数据未传输完毕,传输完之后第三次挥手,断开服务端与客户端的连接,第四次挥手表示客户端同意断开。
如果是三次握手,那么服务端的第二三次合为一,有可能导致长时间才发送,客户端会以为断开连接请求服务端未收到,重传数据。