TCP超时处理

TCP报文交互

A向B发送了数据报文1,B收到后向A发送确认报文ACK1。B解析数据报文1,然后向AP发送数据报文2,A收到后向B发送确认报文ACK2。

 

以下是打开一个博客的交互过程的报文

 

 

 

TCP超时

总的来说,TCP可能有三个超时

1)连接超时

2)读超时,即阻塞在读的地方(应用层),比如B没有收到数据报文1而阻塞,或者A没有收到数据报文2而阻塞。

3)写超时,即阻塞在写的地方(即发送的地方,协议栈),数据没有发送成功,因对方没有回应收到数据,注意此处的回应并不会到读缓冲(即输入缓冲),而是在协议栈中就处理这个回应了。比如A发送数据报文1后,没有收到ACK1。

(socket是属于应用层,传输层在协议栈中,协议栈是属于内核层的。)

 

 

TCP长连接要处理的超时

鉴于要建立一条TCP长连接,上面的超时不用处理。要处理的超时是:长时间没有收到服务器对请求的回复。这种超时得针对具体请求,在发出该请求后,服务器在一定时间有没有回复该请求,或者客户端在一定时间没有收到服务器的回复,从而判断为超时。比如A发出请求报文(数据报文1)后,在一定时间内没有收到B回复A请求的报文(数据报文2),则A就可以判断为超时。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值