如果你看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,那这里就是你发挥的空间了。


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

用伪造的TCP协议头花式欺骗核心转发设备?相关推荐

  1. tcp协议头窗口,滑动窗口,流控制,拥塞控制关系

    tcp协议头窗口,滑动窗口,流控制,拥塞控制关系 参考文章 TCP 的那些事儿(下) http://coolshell.cn/articles/11609.html tcp/ip详解--拥塞控制 &a ...

  2. TCP协议中的核心知识点,SYN Flood?ISN?滑动窗口?数据重传?拆包粘包?单tcp连接多请求?拥塞管理?(个人收藏学习笔记)

    TCP协议中的核心知识点,滑动窗口?数据重传?拆包粘包?单tcp连接多请求? 1.前言 2.TCP/IP四层结构 3. TCP 3.1 TCP 协议头 3.2 TCP通信过程 3.2.1 建立连接的三 ...

  3. TCP协议疑难杂症全景解析|硬核

    大家好,我是Alex,今天分享一篇好文章,来自好友dog250,本文深入浅出地分析了TCP协议为什么要这样设计的背后原因,解答了几乎所有TCP疑难杂症问题,可以帮助大家查缺补漏,加深对TCP协议的理解 ...

  4. 深度思考|TCP协议存在那些缺陷?

    作者:dog250 https://www.zhihu.com/question/47560918/answer/2302296292 TCP如何优化吞吐率,我很直接说优化不了,这让我甩开了很多令人尴 ...

  5. 1万字30张图说清TCP协议

    本篇文章较长,大家先看下目录 1.简介 2.TCP协议头 3.TCP 数据包的编号(SEQ) 4.三次握手建立连接 5.四次挥手断开连接 6.TCP可靠性的保证 7.滑动窗口技术 9.窗口滑动的数据重 ...

  6. Linux内核中TCP协议实现的关键数据结构

    1. TCP协议头tcphdr TCP协议头描述了TCP数据段发送的源地址.目标地址.数据段传送管理和连接管理的信息,是TCP协议实现的重要数据结构之一. struct tcphdr {__be16 ...

  7. TCP协议疑难杂症全景解析

    说明: 1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面 2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的 3).针对对象:对TCP已经有了全面了解的 ...

  8. TCP协议的部分解析(2)

    终于到了阐述问题的时候了,以上的TCP协议实现的非常简单,这也是TCP的标准实现,然而很快我们就会发现各种各样的问题.这些问题导致了标准化协会对 TCP协议进行了大量的修补,这些修补杂糅在一起让人们有 ...

  9. TCP协议三次握手与三次挥手

    TCP协议和UDP协议都工作在传输层,它们的目标都是在程序之间传输数据,数据可以是文本文件可以是视频,也可以是图片.对于TCP协议和UDP协议来说:都是一堆二进制数,并没有多大的区别: 哪TCP与UD ...

最新文章

  1. 功能测试常用6种方法_建筑管道常用的8种连接方法
  2. linux pidof 进程名称查进程id
  3. 压缩机电流保护原因是什么?压缩机烧毁常见原因有哪些?
  4. 【Python】这个插件竟打通了Python和Excel,还能自动生成代码!
  5. 删除我的电脑里面软件快捷方式
  6. 电流源并联怎么合并_一种特殊的并联切换电力系统,长见识了
  7. h710阵列卡支持最大硬盘_DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例)
  8. windows服务编写原理(上)
  9. ckc交易什么意思_1379ip0在股市是什么意思,600875东方电气股票,股市交易手续费计算...
  10. atomic原子类实现机制_反射机制实现两个类的复制
  11. drupal7 代码生成用户,并自动登录
  12. [转]GO err is shadowed during return
  13. ASP.NET中IsPostBack属性研究
  14. 网络编程~socket
  15. 刘永行:领导者的得与失
  16. 垂直跑马灯水平跑马灯
  17. SPSS26没有典型相关性分析怎么办
  18. 初识FineBI数据分析
  19. [杜撰的故事]那天以后
  20. Redis实现分布式锁(setnx、getset、incr)以及如何处理超时情况(二)

热门文章

  1. 计算机视觉编程 第六章 图像聚类
  2. 什么是安全文件传输?
  3. Mysql 语句的优化技巧
  4. JS判断字符是否为数字类型
  5. IDEA的debug调试功能
  6. 【Tools】机器视觉工业相机客户端安装详解教程
  7. 一篇文章带你认识芯片分类及代表企业
  8. 统计学中基础概念说明
  9. PY_matplotlib
  10. 浏览器直接打开excle文件