TcpRoute
TcpRoute copied to clipboard
TcpRoute ,TCP 层的路由器。对于 TCP 连接自动从多个线路、多个域名解析结果中选择最优线路。
已经使用 go 重写,地址:https://github.com/GameXG/TcpRoute2/
目前只是对最快获得的dns回应所包含的ip进行 tcpping,是不是需要尽可能多的获得ip? 对所有的dns服务器进行请求来获得更多的ip? 通过代理服务器发起dns请求来获得更多线路的ip? 甚至通过第三方 ping 来获得更多的ip?
少见域名域名本地dns解析延迟高,造成统计的连接时间高。但是实际上tcp连接速度并不慢。而且dns解析一般只影响第一次访问的时间。 所以尝试将dns解析时间从连接时间移除。 大概的解决办法是,为连接增加一个属性存放tcp连接时间,保存连接时间时保存的是tcp连接时间,其他的结构不变。 虽然第一次访问时会受dns影响,但是第二次就会根据实际tcp连接时间选择最快的线路了。
之前猜测会碰到这种情况,现在总算碰到了。 直连连接可以建立,建立后才被重置。 multipath 只在建立连接部分做测试,并没有处理建立连接后被重置的情况。。。 记录下,这个还是需要等待 http 中间件完成才能比较好的检测到,但是现在没时间...
通过访问一个并不存在的IP地址的链接,从而控制对一个域名,或者对一个IP进行管理。 比如: http://1.2.3.4/direct/192.168.1.1 http://1.2.3.4/direct/youku.com http://1.2.3.4/direct/iqiyi.com/ttl/86400 http://1.2.3.4/proxy/github.com/nosave 又挖了新的坑,不过是完成了http处理之后的事情了,但是这个功能实现的话,就可以通过书签栏javascript控制TcpRoute了,ajax即可… 因为优酷等网站存在国外墙,bilibili、爱奇艺等新番放送也存在日本墙,所以需要手动管理一下,免得在网络异常的时候造成自己把自己堵死10分钟… 而百度贴吧如果检测到异地登陆的话,是会立刻对账号进行全吧封禁的,这就更坑了… PS:不过这样的话,10分钟的缓存长度也需要动,会需要一个自动维护的列表文件…
http 中间层
http 代理 及http 过滤器 都需要解析http请求。 打算做一个http中间层,用来对 http 请求及响应解码。
线路丢包测量
对最优线路的选择需要考虑丢包率。 丢包率应用层应该没有什么好的办法。恐怕只能多次 tcpping 来测量了。
UDP 协议支持
虽然基本上用不到 UDP 协议,但是有空实现下吧...