TCP连接(三次握手):
发起方: 发送1次连接,接收一次连接
接收方: 接收到并发送,接收
由于发起方和接收方都需要各做一次发送->接收->确认
TCP断开(四次挥手):
发送方: 通知接收方准备断开(发送方不再发送数据)
接收方: 响应发送方(此时还在正常接收与发送数据)
接收方: 响应后->发送准备断开(此时数据已经处理结束),此时进入等待最终确认状态
发送方: 响应接收方请求(此时未关闭,过了最大报文段生存时间才会关闭)
接收方: 收到确认后,关闭连接
最大报文段生存时间(Time_Wait中2*msl)解释:
TIME_WAIT状态的socket在等待两倍的MSL时间以后(之所以是两倍的MSL,是由于MSL是一个数据报在网络中单向发出到认定丢失的时间,一个数据报有可能在发送图中或是其响应过程中成为残余数据报,确认一个数据报及其响应的丢弃的需要两倍的MSL),将会转变为CLOSED状态。这就意味着,一个成功建立的连接,必然使得先前网络中残余的数据报都丢失了
http2的多路复用
PS: 在看grpc的时候,顺便找了些http2的相关资料
每次传递数据.都可以通过stream_id区别每个请求
下次找时间把具体请求格式分析一下吧