TCP三次握手

本文深入探讨TCP的三次握手过程,解析TCP标志符集头字段,解释为什么是三次而非二次或四次握手,讨论握手中数据传输的可能性,以及面对连接故障时的服务端处理策略。同时,介绍了TCP的半连接队列和ISN随机生成的重要性,对比补充了UDP协议的特点。
摘要由CSDN通过智能技术生成

每天一个前端面试题之 TCP三次握手

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP协议中,主动发起请求的一端为客户端,被动连接的一端称为服务端。不管是客户端还是服务端,TCP连接建立完成后都能发送和接收数据,所以TCP也是一个全双工的协议。

一、TCP标志符集头字段

1.标志符

URG(urgent 紧急): 表示本数据包的数据部分包含紧急信息,是最高优先级数据报文,此时紧急指针有效。用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据;

ACK(acknowledgement 确认): 表示确认号字段是否有效,0为无效,1为有效。

PSH(push 传送): 表示数据到达接收端后,接收端应该立即将数据push给应用层,而不是等到缓冲区满后再提交。

RST(reset 重置): 连接复位请求。表示当前TCP连接出现严重问题,可能需要重新建立TCP连接。也可以用于拒绝非法的报文段和拒绝连接请求。

SYN(synchronous 同步):表示同步序号,用来建立连接。SYN=1,ACK=0表示这是一个连接请求报文,SYN=1,ACK=1表示这是一个同意建立连接的应答报文。

FIN(finish 结束): 表示数据传送完成,可以释放连接。

2.部分头字段

Seq(Sequence number 序列号码):32位,用来标识从TCP发送端向TCP接收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节在数据流中的序号;它是随机生成的,保证了TCP传输的报文都是有效的,主要用来解决网络报乱序的问题;

Ack(Acknowledge number 确认号码):32位,表示上一个序号的数据已经收到,还包含发送确认的一端所期望收到的下一个序号,因此,确认序号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值