用伪造的TCP协议头花式欺骗核心转发设备?_内核 伪造tcp包发送

如果你看OpenVxx的manual,里面有个链接:
http://sites.inka.de/sites/bigred/devel/tcp-tcp.html

我研究这个问题研究了好几年,从2013年就开始了,后来我烦了,于是见人就跟人说, 用UDP隧道,不要用TCP隧道,不然重传叠加会让连接崩溃!!

那些年,我还是术业不精,难免要照本宣科,扯些什么TCP就是按序接收,重传保序之类云云。

我太老实了。

如若我想构建隧道,比如CDN动态加速的隧道,我肯定是要用这隧道去运输一些别的东西,换句话说, 这隧道肯定不是端到端的!

那么OK,类似丢包,重传这些,肯定有端到端的协议来保证,无论是TCP,还是QUIC,还是基于UDP的其它可靠传输,均有这样的处理逻辑,我一个中间隧道,何必去care这些!

那么我如何既采用TCP构建隧道,又忽略掉TCP的复杂的处理逻辑呢?

很好的想法,在给出一个解答之前,我先来解释一下 为什么非要用TCP来构建隧道。

  • 因为运营商可能会对UDP不友好啊…
  • 因为中间路由器会对TCP友好啊…

路由器不是故意对TCP友好,而是UDP太难处理了,无连接,无session,机器内部还要维护一个表,这根本就不是路由器的主职啊。

哈哈…

所以呢,入乡随俗,就按着要求的来,就用TCP构建隧道呗。

中间路由器能看到的只是一个TCP头而已,它哪能知道我这TCP头是端到端按照TCP协议协商的,还是手工封装上去的呢?它根本区分不出来!

那好,那就这样:

  • 截获感兴趣流的数据包,封装一个隧道对端可以识别的TCP头。
  • 把这个伪造的TCP包扔进网络。
  • 这个包进入中间路由器,被路由器认为是一个TCP流的包。
  • 这个包按照路由器的规则排队等待发送。
  • 数据包到达隧道对端,被识别,剥掉TCP头…

有意思吧。TCP头只是为了迎合中间路由器的区分服务。

你穿双皮鞋装X就会被误认为是经理,但事实上并不是经理,对吧,但大部分人就是以貌取人,这就对了,迎合他就是了。

经理,您好!

如果我把IP地址和端口按照我自己能识别的规则散列开来,中间路由器就会认为这是不同的stream,那这里就是你发挥的空间了。


浙江温州皮鞋湿,下雨进水不会胖!

原文链接: https://blog.csdn.net/dog250/article/details/106881244

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    用伪造的TCP协议头花式欺骗核心转发设备?_内核 伪造tcp包发送

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/405932

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午9:31
下一篇 2023年4月26日 上午9:31

相关推荐