centos路由跳转,centos远程桌面软件
很多朋友对于centos路由跳转和centos远程桌面软件不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
quic 协议分析
HTTP 3,它来了,QUIC(quick udp internet connection“快速 UDP互联网连接”)正如其名一样,它就是快。其正在标准化为新一代的互联网传输协议。是由google提出的使用udp进行多路并发的传输协议。
QUIC解决了什么问题呢?从上世纪90年代至今,互联网一直按照一成不变的模式发展着。使用ipv4进行路由,使用tcp进行连接层面的拥塞控制,并保证其传输的可靠性,使用tls层进行安全加密和身份验证,使用http进行应用的数据传输。
这么多年的发展,这些协议只是小部分或者细节上有了改变,tcp提出了几个新的拥塞控制算法,tls改变了加密方式,http层进化出了h2。但是互联网发展至今,网络传输的内容越来越大,用户对传输的时延,带宽提出越来越大的要求。
tcp虽然也在拥塞控制上提出了一些优秀的拥塞控制算法,如BBR但是限制于其对操作系统内核版本的要求,tcp的 TFO,windows操作系统又支持不好等。导致想要切换成更高效的协议成本巨大。
这里列出几个主要的矛盾。
1、协议历史悠久导致中间设备僵化。
2、依赖于操作系统的实现导致协议本身僵化。
3、建立连接的握手延迟大。
4、队头阻塞。
QUIC孕育而生,其抛开了TCP直接采用UDP,如一些拥塞算法,可靠性保证机制,不再依赖操作系统内核,而是可以自定义。
Quic相比现在广泛应用的 http2+tcp+tls协议有如下优势:
1、减少了 TCP三次握手及 TLS握手时间。
2、改进的拥塞控制。
3、避免队头阻塞的多路复用。
4、连接迁移。
5、前向冗余纠错。
有些防火墙只允许通过 80和 443,不放通其他端口。NAT网关在转换网络地址时重写传输层的头部,有可能导致双方无法使用新的传输格式。因为通信协议栈都是固化到操作系统中的,只能通过内核参数进行调整,但是这样的调整极其有限,如果想要新加协议,只能重新编译内核。而现实是,可能还有一些Centos5还作为某些古董公司的线上服务器。另外,windows xp可能还是某些事业单位的办公电脑上装的操作系统,尽管xp的时代已经过去20年了。另外TCP Fast Open也在2013年就提出了,但是windows操作系统也有些不支持。
知道一个首次https网站的访问都要有哪些步骤吗?dns解析需要1个RTT,TCP三次握手,HTTP 302跳转 HTTPS又需要RTT,TCP重新握手。TLS握手再消耗2个。解析CA的DNS(因为浏览器获取到证书后,有可能需要发起 OCSP或者 CRL请求,查询证书状态)再对CA进行TCP握手,OCSP响应。密钥协商又是RTT。当然这种情况是最极端的,大部分情况下不是所有流程都需要走一遍的。(参考大型网站的 HTTPS实践(二)-- HTTPS对性能的影响)
基于以上的原因,QUIC选择了UDP。没有了三次握手,在应用层面完成了传输的可靠性,拥塞控制还有TLS的安全性。只要应用软件的客户端和服务端支持就行,绕开了操作系统内核版本这个硬骨头。
在HTTPS over TCP+TLS的时代。HTTPS需要3个RTT,在session复用的情况下是2个RTT。而QUIC做到了1RTT和会话复用的0RTT。
QUIC的TLS只能使用TLS1.3,这就可以做到PSK的0RTT。
TCP的拥塞控制实际上包含了四个算法:慢启动,拥塞避免,快速重传,快速恢复。其中TCP中拥塞控制是被编译进内核中的,如果想要更改就需要改变内核参数,但是想要对已有的拥塞控制算法进行更改就需要重新编译内核,Linux 4.9中引入了基于时延的拥塞控制算法 BBR,这打破了以往是靠丢包驱动的拥塞控制算法,但是想要在TCP中使用,就必须升级内核至4.9以上。
QUIC协议当前默认使用了 TCP协议的 Cubic拥塞控制算法 [6],同时也支持 CubicBytes, Reno, RenoBytes, BBR, PCC等拥塞控制算法。
QUIC和TCP的对比
其中α从 0到 1(RFC推荐 0.9),越大越平滑
如 UBOUND为1分钟,LBOUND为 1秒钟,β从 1.3到 2之间
对于QUIC
参考:科普:QUIC协议原理分析罗成
Centos下配置firewalld实现nat路由转发
firewalld介绍:
nat介绍:
1.准备两台虚拟机:nat01, nat02(centos,安装时选择安装类型,nat02需要有浏览器)
2.转发用虚拟机[nat01]准备两张网卡,一张网卡与要测试环境网络互通,一张网卡与局域网虚拟机[nat02]网络互通
3.局域网虚拟机[nat02]与转发用虚拟机网络互通,相同网段,且网关为[nat01]ip地址(修改ifcfg-eth0文件后重启网络即可)
nat01:33.33.33.35 nat02:33.33.33.52
4.配置转发用虚拟机[nat01]:
step1:内核参数文件sysctl.conf配置ip转发
vi/etc/sysctl.conf
在文本内容中添加:net.ipv4.ip_forward= 1
保存文件后,输入命令sysctl-p生效
step2:开启firewalld.service
systemctl start firewalld.service#开启
systemctl enable firewalld.service#开机自启动
step3:防火墙开启伪装IP功能
firewall-cmd--add-masquerade--permanent#允许防火墙伪装IP
firewall-cmd--query-masquerade#检查是否允许伪装IP
firewall-cmd--reload#重载配置文件生效
step4:开放端口:
firewall-cmd--zone=public--add-port=10020/tcp--permanent#开放通过tcp访问10020
firewall-cmd--list-ports#查看开放端口
firewall-cmd--reload#重载配置文件生效
step5:端口转发
firewall-cmd--zone=public--add-forward-port=port=10020:proto=tcp:toport=443:toaddr=192.25.1.2--permanent
#将10020端口的流量转发到192.25.1.2:443
firewall-cmd--reload
ps:zone=external针对伪装进入连接,一般用于路由转发
--permanent永久生效
192.25.1.2:443修改为需要访问环境的IP和开放端口
5.测试
登录[nat02]虚拟机,进入ssh终端,wget 33.33.33.35:10020
进入浏览器,访问:33.33.33.35:10020 --》自动跳转到环境地址,访问正常
ps:若需要访问地址是https,则在浏览器中输入: