产业气象站|趣味故事:TCP 出“大事”了!,IT


产业气象站|趣味故事:TCP 出“大事”了!,IT
文章图片
作者|轩辕之风
来源|编程技术宇宙
不速之客
夜黑风高 , 乌云蔽月 。
两位不速之客 , 身着黑衣 , 一高一矮 , 潜入Linux帝国 。
【产业气象站|趣味故事:TCP 出“大事”了!,IT】这一潜就是一个多月 , 直到他们收到了一条消息······
高个:“上峰终于给我们派任务了” 。
矮个:“什么任务?我都闲的发慌了” 。
高个:“上峰让我们配合他们完成TCP连接的劫持” 。
矮个:“TCP劫持?我们就是个普通程序 , 并没有内核权限 , 怎么去修改网络连接啊 , 这不是强人所难嘛” 。
高个:“是啊 , 我也很奇怪 。 信上只约定了让我们到时候告诉他们一个计数器的值就行 , 其他我们不用管” 。
矮个:“计数器 , 什么计数器?” 。
高个:“DelayedACKLost , 信上说执行cat/proc/net/netstat就能看到” 。
矮个:“不需要特殊权限吗?” 。
高个:“我也不知道 , 要不咱先试一下?” 。
两人收起信件 , 环顾一圈 , 见四下无人 , 便偷偷执行了这一条命令:
产业气象站|趣味故事:TCP 出“大事”了!,IT
文章图片
“这都是些什么啊?怎么这么多?” , 矮个子问到 。
“看样子 , 像是记录了Linux帝国网络协议栈的很多统计信息” , 高个子一边说一边仔细的查看着 。
“这些信息居然是公开的 , 谁都可以看?”
“也只能看 , 又改不了 。 怕啥?快找吧 , 找到DelayedACKLost再说”
两人瞪大了眼睛 , 总算在一片密密麻麻的输出中 , 找到了他们要的计数器 。
可这一个小小的计数器怎么就能助上峰完成TCP的劫持 , 二人却是百思不得其解 。
秘密任务
第二天晚上 。
“快醒醒 , 上峰又来消息了” , 在高个子的一阵摇晃中 , 矮个睁开了困顿的双眼 。
“又是什么消息啊?”
“让我们立即汇报DelayedACKLost的值” 。
两人赶紧起身 , 再次执行了那条命令 , 拿到了计数器的值 , 报了上去 。
刚发完消息还没缓过神 , 上峰的指示又来了:DelayedACKLost有无增加?
两人互相看了一眼 , 不解其意 , 不过还是再次查看了计数器 , 确认没有增加 , 再次把结果报了上去 。
就这样 , 来来回回几十次 , 上峰一直询问这个计数器有无增加 , 可把哥俩忙坏了 。
终于 , 上峰不再来消息 , 两人有了喘息的时间 。
古怪的TCP连接
而此刻 , Linux帝国网络部协议栈大厦还是灯火通明 。
“今晚是怎么回事 , 网络怎么这么差 , 我都收到了好多错误包了” , 新来的Robert叹了口气 。
“不至于吧 , 是不是因为刚来还不太熟练?” , 一旁的Cerf随口问到 。
“不是啊 , 有一条连接 , 我收到的包序列号不是太小 , 就是太大 , 搞了好多次才正确的 , 我还没见过这种情况呢!” , Robert继续说到 。
一听这话 , Cerf赶紧放下了手里的工作 , 来到Robert工位旁边 , “这么邪乎?你说这情况我来这里这么久也没见过 , 让我看看” 。
Cerf仔细查看了过去一段时间的通信 , 这条连接上 , 不断有数据包发送过来 , 但因为TCP序列号一直不对 , 所以一直给丢掉了 。
产业气象站|趣味故事:TCP 出“大事”了!,IT
文章图片
“有点奇怪 , 这家伙怎么感觉像是在猜序列号啊?而且奇怪的是最终居然让他给猜出来了!这条连接一定有古怪 , 多半是被人劫持了 。 劫持方因为不知道序列号 , 所以一直在尝试猜测序列号” , Cerf说到 。
Robert也看了一看 , “你这么一说 , 确实是 , 而且你看 , 他不是瞎猜 , 好像是用二分法在猜!序列号是个32位的整数 , 二分法猜测 , 只需要32次就能猜出来” 。