博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tcp协议几个要注意的点
阅读量:6966 次
发布时间:2019-06-27

本文共 740 字,大约阅读时间需要 2 分钟。

hot3.png

首先看下tcp的状态转移图,从几个角度看下这张图:

24122922_KJor.jpg

首先,代码本身逻辑有问题,反应到上图会有什么现象,

    1,服务器端出现大量的syn_rcvd,这个明显很明显,客户端故意不发ack,应该是客户端逻辑问题,有人在SYN泛洪。

    2,服务器端如果代码收到fin或者rst,不显式调用close会出现什么情况,服务端会一直停留在close_wait.

    3,客户端或者服务端出现大量的time_wait这个正常吗,这两个情况都是有可能出现的。首先看第一个,客户端大量出现。我用requests请求,频繁post/get,或者频繁调用curl(会立刻四次握手结束连接)。这种情况一般不会出问题,但是如果使用多线程/进程,大量post的时候,会占光操作系统fd,如果不做内核参数优化,会报错!这种情况,如果发给一个地址,能用长连接,尽量用长连接,能迅速改善。第二种是服务端出现大量的close_wait,这里就要看访问请求的类型了,是否该开放长连接,长连接timeout是否设置得当,是否该使用套接字复用。

总结,由于代码层次误操作,不显式close,长连接使用不当,会响应出现timewait,close_wait,其中,长连接及其超时设置不当,生产中出现的比较多,特别是使用apache,由于基于多线程方式,容易down。

第二个问题,什么时候会发fin/rst的问题。

第三个,python中的read/recv函数如何判断fin/rst,这里和c的不一样,做了简化

 

补充下,http1.0默认是短链接,http1.1是长链接,而urllib2/3默认是短链接,request得注意版本。

转载于:https://my.oschina.net/u/2950272/blog/1014846

你可能感兴趣的文章
GP通过外部表装载数据时遇到ERROR:extra data after last expected column解决方法
查看>>
C#开发中碰到的问题------Uncaught TypeError: Cannot read property 'style' of undefined
查看>>
Android 网络编程
查看>>
正则表达式
查看>>
Tomcat & SVN
查看>>
推荐系统学习03-SVDFeature
查看>>
mysql启动和关闭外键约束的方法
查看>>
安装 Docker <一>
查看>>
C#中的Dictionary字典类介绍
查看>>
PHP 设计模式 笔记与总结(5)PHP 魔术方法的使用
查看>>
Microsoft Visual Studio 下载转帖
查看>>
证券交易买进卖出手续费公式
查看>>
SQL Server存储(6/8) :理解DCM页
查看>>
epoll使用具体解释(精髓)
查看>>
毕业季-回去体检
查看>>
WordPress前台后台页面打开慢的解决方法
查看>>
【m从翻译os文章】写日志禁令Sqlnet.log和Listener.log
查看>>
GRUB启动管理器
查看>>
Maven最佳实践:Maven仓库
查看>>
***PHP多线程pthreads 实现QQ号码爬虫
查看>>