http三次握手四次挥手

UDP: 无连接通信 所以数据不安全 用于实时应用比如视屏通讯
支持一对一 一对多 多对多 多对一的通信
面向报文 开销小 首部只需要八个字节 一般用于视屏等

TCP: 面向连接通信 数据通信安全的
支持一对一通信 面向字节流
首部最小20字节最大60字节

TCP的三次握手四次挥手:
三次握手确定通信双方进行安全通信
序号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
确认序号:ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1。
标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
ACK:确认序号有效。
FIN:释放一个连接。
PSH:接收方应该尽快将这个报文交给应用层。
RST:重置连接。
SYN:发起一个新连接。
URG:紧急指针(urgent pointer)有效。

三次握手:创建连接
第一次:首先发起方生成一个起始的序列号 ISN例如为100 那客户端发送链接的话会发送标志位SYN=1(表示发起一个链接请求) sqe=100
第二次:服务端接受SYN=1 知道这是个请求链接 保存客户端的请求序列号100 并且服务端生成序列号 比如300 然后发送给客户端SYN=1 ACK=1(确认链接有效) seq=300 确认号ack=101
第三次:客户端接受到服务度的信息ACK=1知道服务端已经接收到上次发送的序号为100的那段报文 保存服务端的300序列号 并且发送请求SYN=1 ACK=1 seq=101 确认号ack=301 当服务端接受到后就知道客户端
收到了报文 那么服务端和客户端就确认了连接

四次挥手:关闭连接
第一次:假设客户端发送1000字节数据 服务端发送了2000字段的数据 当开始释放连接的时候 FIN=1 seq=1101
第二次:服务端接受到客户端的释放连接的报文那么会把ACK=1 ack=1102 seq=2300 表示确认收到客户端的释放连接的请求 但不是立即释放连接 而是等服务端还在发送的请求发送完后释放
第三次:当最后的50字节发送完成后 服务端会再向客户端发送释放连接的报文 ACk=1 ack=1102 sqe=2350 同时释放服务端的连接
第四次:客户端收到服务端发的FIN报文后,向服务端发出确认报文,确认报文包含ACK标志位(ACK=1)、确认号ack=2351、序列号seq=1102。注意客户端发出确认报文后不是立马释放TCP连接,
而是要经过2MSL(最长报文段寿命的2倍时长)后才释放TCP连接。而服务端一旦收到客户端发出的确认报文就会立马释放TCP连接,所以服务端结束TCP连接的时间要比客户端早一些

HTTP三次握手四次挥手是TCP协议在建立连接和断开连接时的过程。为了确保双方的接收能力和发送能力都正常,需要进行三次握手。两次握手是不够的,因为在两次握手的情况下,如果客户端发送的连接请求在网络中滞留,那么服务器会误以为客户端已经关闭连接,从而导致服务器资源的浪费。而通过三次握手,可以确保双方都能够正常地发送和接收数据。 三次握手的过程如下[^1]: 1. 客户端向服务器发送一个连接请求报文段,该报文段中包含了客户端的初始序列号(SYN)。 2. 服务器收到请求后,向客户端发送一个确认报文段,该报文段中包含了服务器的初始序列号(SYN)和确认序号(ACK)。 3. 客户端收到确认报文段后,再向服务器发送一个确认报文段,该报文段中包含了客户端的确认序号(ACK)。 四次挥手的过程如下[^2]: 1. 客户端向服务器发送一个连接释放请求报文段,该报文段中包含了客户端的序列号(FIN)。 2. 服务器收到请求后,向客户端发送一个确认报文段,该报文段中包含了服务器的确认序号(ACK)。 3. 服务器向客户端发送一个连接释放请求报文段,该报文段中包含了服务器的序列号(FIN)。 4. 客户端收到请求后,向服务器发送一个确认报文段,该报文段中包含了客户端的确认序号(ACK)。 通过三次握手四次挥手,可以确保双方在建立和断开连接时的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值