- 博客(5)
- 资源 (4)
- 收藏
- 关注
转载 漫谈TCP/IP网络技术
总有人问我如何精通网络技术,我也不好回答。但还是可以说几句。我认为协议是最重要的,要多花点精力关注和思考协议,而不是具体的实现。说起TCP,总有人觉得它太复杂,这个我有同感,可是当进一步聊起TCP的复杂之处时,更多的人都会聚焦到 TCP的代码太难看懂 可是难道TCP的RFC规范就简单吗?这得从电话网和分时系统说起。分时系统是约翰麦卡锡首先引入的,这仍然是一种横向变纵向的操作,就类似于我曾经预处理iptables规则那样,也和nf-HiPAC,Nginx这种相类似。可是这么简单的事情,大多数人就是想不
2021-06-27 10:16:52 3577
转载 Linux TCP F-RTO图解
TCP在收不到ACK会重传数据包,兜底策略就是超时重传。但是也会判断,因为TCP是一个端到端协议。当TCP发送超时,如果能判定从来没有重传过的数据包竟然被SACK了,那么就是误判了。当重传过后收到了持续推进的ACK或者SACK,那就说不好是谁带来的确认了。图解如下:浙江温州皮鞋湿,下雨进水不会胖。...
2021-06-26 10:57:31 24987
转载 Linux TCP reneging判断图解
SACK是TCP的一个特性,用来更加有效地实施拥塞控制,这是对标准TCP的增强。当接收端收到乱序的数据包时,在内存足够的情况下会保存这些数据包,但这并不是必须的,比如当接收端内存吃紧时,它有权力丢弃任何乱序暂存的数据包,然而这件事并不会告诉发送端,于是发送端必须要可以自行判断接收端丢掉乱序数据包这件事。图解如下:如果接收端没有丢掉图示中SACKed的段,为啥不用una覆盖呢?所以…浙江温州皮鞋湿,下雨进水不会胖。...
2021-06-26 10:50:52 8191
转载 Linux TCP reordering更新逻辑图解
当TCP没有收到一个预期的ACK时,它无法判断这个数据包是真的丢了还是延迟了或者乱序了。因此TCP包含一个乱序判断的逻辑,图解如下:浙江温州皮鞋湿,下雨进水不会胖。
2021-06-26 10:39:56 8339
转载 Linux TCP拥塞控制的undo图解
TCP是个端到端的瞎子协议,进入拥塞状态完全靠自己维护的状态机,并不一定属实,当误判时,就要undo。那么怎么证明误判呢?很简单, 一个TCP段只发送了n次,不管是正常发送还是重发,但是却收到了m(m>n)次的ACK/SACK ,那就说明这是误判。Linux TCP实现的undo操作细节如下:浙江温州皮鞋湿,下雨进水不会胖。...
2021-06-26 10:34:30 24143
一个iptables的stateless NAT模块实现
2014-12-27
模块化的nf-HiPAC
2014-11-21
关于linux内核以及其他个人体会的文集
2009-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人