TCP详解
2015-07-23 16:56
344 查看
控制位RST
TCP连接正常断开称为有序释放,置FIN,走四步分手。
连接异常时,置RST,连接复位。
场景还原:
1.无论Server和Client,对已建立连接的socket调用setsockopt(SO_LINGER),任何时候只要close(s),即刻发送RST,连接被重置,跳过四步分手,直接强关。
连接建立过程
连接过程中端口状态变化,如上图所示。
大量Client调用connect连接Server时,若某一时刻Client连接请求数大于Server处理速度,则发起connect的Client端口为SYN_SENT状态。
四步分手过程
简介
发送FIN,即要求关闭连接。进入FIN_WAIT_2,等待对方关闭连接。对方进入CLOSE_WAIT,继续工作。
对方发送FIN后,连接正式关闭。分别进入TIME_WAIT和CLOSE。
此为正常情况下连接的有序释放,走四步分手。
问题
1.率先关闭方需等待对方同意后方可释放连接
2.即便对方同意后,率先关闭方最终会导致端口进入TIME_WAIT,不可立即再用。(一段时间后TIME_WAIT进入CLOSE后,方可使用)
解决方式
连接建立后,对己方socket调用上述函数。
那么任何时候,只要己方关闭连接,则即刻发送RST,重置连接,跳过四步分手,暴力强关,两方端口都是CLOSE。
TCP连接正常断开称为有序释放,置FIN,走四步分手。
连接异常时,置RST,连接复位。
场景还原:
1.无论Server和Client,对已建立连接的socket调用setsockopt(SO_LINGER),任何时候只要close(s),即刻发送RST,连接被重置,跳过四步分手,直接强关。
连接建立过程
连接过程中端口状态变化,如上图所示。
大量Client调用connect连接Server时,若某一时刻Client连接请求数大于Server处理速度,则发起connect的Client端口为SYN_SENT状态。
四步分手过程
简介
发送FIN,即要求关闭连接。进入FIN_WAIT_2,等待对方关闭连接。对方进入CLOSE_WAIT,继续工作。
对方发送FIN后,连接正式关闭。分别进入TIME_WAIT和CLOSE。
此为正常情况下连接的有序释放,走四步分手。
问题
1.率先关闭方需等待对方同意后方可释放连接
2.即便对方同意后,率先关闭方最终会导致端口进入TIME_WAIT,不可立即再用。(一段时间后TIME_WAIT进入CLOSE后,方可使用)
解决方式
连接建立后,对己方socket调用上述函数。
那么任何时候,只要己方关闭连接,则即刻发送RST,重置连接,跳过四步分手,暴力强关,两方端口都是CLOSE。
相关文章推荐
- 赛门铁克网络版杀毒软件SEP布署小记
- Exchange2003中只键入“http://服务器”来名访问OWA
- iOS实用技巧 - AFNetworking2安全的使用自签证书访问HTTPS
- android httpclient
- http status
- Android 中//此句无响应 HttpResponse httpResponse = httpClient.execute(post);
- Unity3D研究院之C#使用Socket与HTTP连接服务器传输数据包(四十三)
- 如何快速找到下载主机,解决网络拥塞问题。
- iOS 自己封装的网络请求,json解析的类
- 网络编程(网络基础,OSI参考模型,UDP传输协议,TCP传输协议,URL类和URLConnection类)
- 使用python SimpleHTTPServer 快速搭建Web服务器
- TCP连接中TIME_WAIT连接过多
- AFNetWorking中进行HTTPS网络请求
- TCP的keep-alive小结
- https 双向认证
- https与http的区别
- hls流媒体、传统流媒体、http流媒体、adobe流媒体
- atitit.无损传输二进制数据串传输网络
- HttpClient的超时用法小记
- 三层交换机3com 5500G-EI 网络广播风暴一事