我最近也在尝试用eBPF TC类型程序,挂钩`egress`网络包,修改IP包、TCP包内容,实现路由跟踪的功能。除了eBPF验证器的奇葩问题外,剩下的就是`skb_buff`修改后,被客户端内核丢弃、中间路由丢弃、服务端内核丢弃的各种问题,头发那是一把一把的掉。幸运的是,我找到了这篇文章《Checksum-or-fxxk-up》,特意转来给大家分享。
tcp
在mac osx上看lol国服ob录像的技术分析
一天,兴起而至,想在mac osx上看lol ob,要看国服的,没现成方案,实现不了,未遂,便决定研究一番。tgp助手fork出replay.exe,在本地建立ob server服务器,解析ob文件格式。我们要实现的分析ob文件组成方式即可。最初是普通json字符串,比较好理解,后面的字节流的解析,才是重点…
不要在linux上启用net.ipv4.tcp_tw_recycle参数
在linux服务器上,要不要开启tcp.ipv4.tw_recycle?TCP连接中,TIME-WAIT状态的作用是什么?tcp.ipv4.tw_reuse参数呢?当服务器即为服务端,又是客户端时(比如FPM服务器,相对于nginx来说,是服务端,相对于redis来说,是客户端),该如何配置?
TCP SOCKET中backlog参数的用途是什么?
在前年时,业务中遇到好多次因为PHP-FPM的backlog参数引发的性能问题,一直想去详细研究一番,还特意在2013年总结里提到这事《为何PHP5.5.6中fpm backlog Changed default listen() backlog to 65535》,然而,我稍于懒惰,一拖再拖,直至今日,才动脑去想,动笔去写。PHP-FPM的配置中,backlog默认值从128改为65535,又从65535改为511,可能很多人都没有在意,我也是因为遇到过类似错误,才决定去认真理理其中知识点的。
nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
前几天看到一篇博客《关于流量升高导致TIME_WAIT增加,MySQL连接大量失败的问题》,提到php所在服务器在大并发情况下,频繁创建TCP短连接,而其所在服务器的2MSL时间过长,导致没有端口可用,系统无法创建TCP socket,而大量报错。博主在后面给的解决方案是减少2MSL的时间,尽快清除TIME_WAIT状态的TCP连接,回收端口。同时,文章结尾写了不用长连接的理由,但这真的是最好的解决办法吗?有其他办法可以更好的做法吗?
YSLOW法则中,为什么yahoo推荐用GET代替POST?
Yahoo的优化法则里,有这么一条“Use GET for AJAX Requests”,让我们尽量使用GET来代替POST发起AJAX请求,为什么呢? 上上周五,公司前端工程师培训,提到前端优化的一些技巧,当然不能少了yahoo yslow的优化法则。其中有这么一条“Use GET for AJAX Requests”,这些法则从最开始的14条,到现在的35条,一直都时刻关注的。可这么一条的原因我却一点都不清楚。在提问的环节里,我对yahoo WEB前端优化法则推荐AJAX中,使用GET代替POST的原因有疑问,便请教前端工程师。我们的工程师说GET的话,浏览器发送一个包,POST会发两个等等。我对这个解释仍带有疑问,甚至怀疑。