五分钟技术趣谈 | 场景宽带的底层由来
2023-08-18 21:13:12 来源:移动Labs
国内的运营商网络一般都会提供QoS。QoS指的是网络利用各种基础技术,以提供更好的服务能力来支持特定的网络通信。它是一种网络安全机制,旨在解决网络延迟和阻塞等问题。简单来说,当网络拥堵时,运营商会优先处理重要的流量包,而将一些不重要的包丢弃。具体丢弃哪些包则取决于使用场景和运营商的策略。
对于受到QoS限制的用户而言,可能会出现以下表现:网速降低、丢包、ping值不稳定。在这种情况下,细分场景用户往往希望进一步获取更好的网络质量以满足场景使用,例如更高的带宽、更少的丢包和更低的延迟。
(相关资料图)
需要注意的是,QoS并不区分TCP和UDP。对于UDP来说,除了常规的QoS限制,还可能存在更严格的限制,甚至在某些极端情况下会屏蔽UDP。这主要是因为UDP的无连接、无状态、支持广播和最大努力传输等特性使得网络运营商控制UDP的成本较高。
Part 02游戏场景下TCP与UDP的区别通常情况下,为了确保游戏的实时性,使用UDP进行网络传输是常见的做法。例如,在射击游戏中,当角色在行走时遇到网络卡顿,画面会卡住,但当恢复后,画面中的角色已经跳到下一个位置,仿佛跳帧了一般。这是UDP的特性,它尽最大努力进行传输,允许丢包。
相比之下,如果使用TCP,当网络卡顿时,你会发现游戏画面暂停,角色像卡在幻灯片上一样逐帧向前移动。这是因为TCP是面向连接的,丢失的包会被重传,确认后才会继续进行。当然,游戏中不仅仅使用UDP、TCP,更高层的协议如HTTP也可能被使用,这完全取决于游戏对延迟的要求。
Part 03TCP与UDP的场景选择那么在不同的使用场景中究竟是使用UDP还是TCP呢?
如果是客户端间歇性发起无状态查询,并且偶尔的延迟是可以接受的(例如查询学术论文、参考信息等),那么可以考虑使用HTTP/HTTPS。
如果客户端和服务器都可以独立发包,但偶尔的延迟是可以容忍的(例如在线纸牌游戏、许多MMO游戏),那么可以考虑使用TCP长连接。
如果客户端和服务器都可以独立发包,并且无法容忍延迟(例如大多数多人动作游戏、一些MMO游戏、直播互动等),那么考虑使用UDP。
在访问一些国外学术网站、游戏服务器时,直接连接效果可能不佳,因此需要使用场景宽带来实现优化效果。以游戏为例,因为游戏通常使用UDP进行传输,而普通的运营商网络对UDP会产生较大的干扰,所以场景宽带需要对游戏客户端与代理服务器之间的连接进行一些处理。
Part 04UDP协议的QoS问题每次UDP套接字发送数据包时,源端口会随机变化。如果一个设备频繁发送UDP包,会在短时间内产生大量的五元组(源IP地址、源端口、目标IP地址、目标端口、协议)。传统的状态防火墙和状态NAT会使用一个五元组来跟踪一个连接。如果连接数量过多,会给保存状态的设备带来巨大压力。
这种压力主要体现在两个方面:存储压力和处理器压力。
存储压力指的是设备需要配置大量内存来保存大量连接。
处理器压力指的是设备在数据包到达时需要花费更多时间匹配连接。
由于UDP协议的无状态特性,没有任何报文指示何时创建或销毁连接,设备必须能够自行老化已创建的UDP连接,并在权衡中做出决策。如果老化时间过短,会破坏通信频率较低的UDP连接。如果老化时间过长,将会导致无效的UDP连接消耗大量内存,为DDoS攻击提供攻击面。攻击者只需构造不同的UDP五元组的报文通过状态设备,由于UDP报文没有连接创建或销毁的控制信息,状态设备不得不对待所有新到达的五元组,并为它们创建连接并指定相同的老化时间。
而TCP协议与此完全不同,由于具有syn、fin、rst等控制信息,状态设备可以为不同状态的TCP连接指定不同的老化时间,ESTABLISHED状态的连接老化时间明显更长。这使得使用TCP实施同样攻击更加困难。为什么快速构造不同的TCP五元组无法达到UDP的效果呢?如果盲目使用不同源端口发送syn,没有真正的对端回应的情况下,这种连接状态将很快老化(在10秒甚至更短的时间内)。如果构造大量使用不同端口的真实TCP连接,那么除了给状态设备带来伤害外,攻击者自己也必须付出巨大代价来维持这些连接。你发起一个TCP连接,为了让状态设备保存该连接,你也必须保存该连接。除非通过大量的反射主机同时发起真实连接,否则在单台或少量主机上,这种攻击很难成功。对于无状态设备来说,我们不再需要担心五元组连接的保持。
但是UDP短时间内构造大量五元组仍会影响无状态设备的包分类算法的正常运行。基于包分类算法的优先级队列和缓存管理几乎都是基于五元组计算的,UDP的特性会使无状态设备难以对其进行流量控制。结果就是,即使UDP流量挤满各级队列和缓存,也无法准确识别出来。即便是BBR(Bottleneck Bandwidth and Round-trip propagation time)遇到UDP流量,也只能降低pacing rate,别无他法。
普通的运营商网络对TCP更友好,对UDP不友好,但同样无法深度检测TCP连接的真实性。一个简单的例子是将正常TCP数据的协议字段改为UDP。这样做会导致通信出现问题,甚至无法进行有效的传输:
if (iph->protocol == IPPROTO_TCP) { iph->protocol = IPPROTO_UDP; ip_send_check(iph); udph->check = 0;} else if (iph->protocol == IPPROTO_UDP) { iph->protocol = IPPROTO_TCP; ip_send_check(iph);}
Part 05结语到这里,已经从底层角度基本说明了为什么在学术、游戏、实时音频等场景下会催生进一步的网络加速服务需求了。而加速服务的主要难在两点:其一,是如何处理客户端到加速器服务器之间的UDP连接;其二,是如何让游戏客户端去连接这个加速器(一般游戏客户端是没有设置代理服务器的功能的)。而场景宽带也正是旨在解决特定场景下以上所述的这些问题,为特定网络应用场景提供更流畅、快速的网络体验,在未来构筑更多元化、优质的网络服务。
关键词:
[责任编辑:]
相关阅读
- (2023-08-18)五分钟技术趣谈 | 场景宽带的底层由来
- (2023-08-18)兴业银行28条举措全力支持民营经济发展壮大
- (2023-08-18)东安县鹿马桥镇:“硬核”整治市场环境卫生
- (2023-08-18)湘阴整治违规砂场码头“不手软”
- (2023-08-18)开通运营八周年!哈齐高铁运送旅客9004万人次
- (2023-08-18)重庆云端之眼值得去吗?
- (2023-08-18)佛山二中中考录取分数线2023年
- (2023-08-18)广铁集团通报违规使用商务座结果:2人补缴车票,列车长免职
- (2023-08-18)2023第7号台风兰恩实时路径(持续更新)
- (2023-08-18)2023年郑州市七夕诵读活动(活动时间+地点+内容)
- (2023-08-18)西安碑林区通用环球中铁西安医院免费两癌筛查
- (2023-08-18)宋·吴琚法书选:行书五段卷等(关于宋·吴琚法书选:行书五段卷等简述)
- (2023-08-18)东风27重大部署惨遭曝光!美军竟知火箭军各个坐标!
- (2023-08-18)千里山湖情 格桑花更艳——湖北全方位支援西藏山南建设纪实
- (2023-08-18)孙颖莎4-3逆转陈梦太经典!夺冠后孙颖莎握拳庆祝,能突破不容易
- (2023-08-18)腾讯翻译 tengxunfanyi
- (2023-08-18)windows(7 sp1)
- (2023-08-18)董七(关于董七简述)
- (2023-08-18)“消费万亿俱乐部”扩容 今年也该轮到深圳了?
- (2023-08-18)实朴检测(301228):该股换手率大于8%(08-18)
- (2023-08-18)二手车交易市场现状分析 :上半年二手车市场累计交易额达5517亿元。
- (2023-08-18)三年实现电动汽车“充电自由” 河南怎么做?
- (2023-08-18)山阳联社:组织开展第二期“高管讲合规”专题讲座
- (2023-08-18)2023天津德云社最新节目单一览(8月22日-8月27日)
- (2023-08-18)8月17日SMM金属现货价格|铜价|铝价|铅价|锌价|锡价|镍价|钢铁|废金属|稀土|小金属|新能源|光伏
- (2023-08-18)兰蔻粉水适合多大年龄的人用(兰蔻粉水适合什么年龄)
- (2023-08-18)宁夏沙坡头·沙漠传奇后世代音乐节交通指南
- (2023-08-18)学霸都这么写!高中生物72条长句规范表述,满分答案等你带走!
- (2023-08-18)美国石油协会(API)行业版周报:8月11日当周API 美国原油库存下降619.5万桶
- (2023-08-18)8月15日基金净值:华夏永福混合A最新净值2.288,跌0.35%