1、精品文档5GSA TCP数传问题分析应用总结5G_SA TCP数传问题分析应用总结 5G_SA TCP数传问题分析应用总结【摘要】随着移动网络的不断发展,5G网络已逐渐进入商用元年,相对于传统的LTE网络,5G网络最大的特点是拥有更低的接入时延、更宽的频段资源与更高的速率体验。伴随5G 用户数量的快速增长,开展5G特性研究、提升用户感知显得尤为重要。在SA网络优化中,存在较多TCP数传问题,此类问题分析较为困难,难以发现,且问题处理往往需要同时多点抓包定位,处理起来周期长、难度大,迫切需要针对TCP数传类问题开展专题性研究分析,总结相关问题经验。本文针对SA组网模式下TCP数传问题进行研究、分
2、析并梳理出TCP数传六类典型问题加以论证。【关键字】TCP拥塞控制、TCP问题定界【业务类别】优化方法、TCP数传问题分析一、问题描述在SA网络优化中,存在较多TCP数传问题,此类问题分析较为困难,难以发现,且问题处理往往需要同时多点抓包定位,处理周期长,处理难度大。迫切需要针对TCP数传类问题开展专题性研究分析,总结相关问题经验。二、分析过程122.1 TCP拥塞控制基本原理现实中TCP网络状态并不是稳定的,随着提供的负载增大,网络吞吐量的增长速率逐渐减小。在网络吞吐量还没有饱和时,就已经有一部分分组被丢弃了。当网络的吞吐量远小于理想吞吐量时,网络就进入了轻度拥塞的状态。当提供的负载达到某一
3、数值时,网络的吞吐量开始下降,这是网络就进入了拥塞状态。当提供的负载继续增大到某一数值时,网络的吞吐量就下降到零,此时进入死锁。拥塞控制是通过拥塞窗口处理网络拥塞现象的一种机制。在拥塞控制中,有一个拥塞窗口的概念,该窗口由发送方根据当前计算机网络的拥塞情况来计算,和通知窗口共通作用于发送窗口,拥塞窗口的单位也是字节,通常拥塞窗口的初始值为一个最大TCP报文段的大小是,但下面我们以每个传输轮次所能发送TCP数据段(用户数据)的次数作为其单位来描述。在拥塞控制中,我们主要使用四种算法:慢启动、拥塞避免、快速重传和快速恢复1)慢启动TCP建立之初cwnd=1(MSS),之后每收到1个报文段被确认,c
4、wnd=cwnd+1,直至cwndssthresh,慢启动结束。之所以叫慢启动,是相对于没有拥塞控制只有流控的情况下发送端一次发下不超过接收窗口大小的数据来讲的。2)拥塞避免cwnd超过慢启动门限即进入拥塞避免阶段,拥塞窗口大小随时间线性上升3)快速重传当收到3个(默认3,有些配置为2)重复ACK即启动快速重传,进入快速重传阶段。快速重传过程中,不需要等到重传定时器超时,收到3个重复ACK后立即重传数据包。4)快速恢复快速重传结束后,不进入慢启动阶段,而是进入拥塞避免阶段,这就是快速恢复。快速过程中慢启动门限更新为当前cwnd的一半。2.2 基于空口灌包快速定界TCP问题TCP为端到端业务,对
5、于TCP数传类问题,可能为从内容源到终端路径中任一网元引入,因此在开展5G SA优化中,如怀疑存在TCP问题,需要通过空口灌包方式快速定界。协议规定MAC层支持下行padding bit的调度,MAC层如果收到的RLC层来水量不足的情况下,基站会根据当前可调度的MCS和RB,选择对应的TBS进行调度,如果“实际业务量”Statistics-TCP Stream Graphs-TCP Sequence (TCP Trace)时序图分析所示,蓝色的每一小节为一个是数据包,正常情况下,数据包的接收是连续的,中间没有断链,如果出现断链,则可能是发生了乱序或者丢包。判断是乱序或丢包则需要看后续收到的数据
6、包的IPID是新IPID还是本来应该有的IPID。通过wiresharkTCP序号分析发现,Seq No. 在35398493568157之间的数据包丢失,即IPID在3067930703之间的数据包丢包Seq No. 在35398493568157之间的数据包发生重传,其IPID已不再居于3067930703之间,而是3127531295,是新的IPID,表明是丢包的重传包。2.3.2乱序和乱序导致的重传问题1)乱序识别原则乱序对于抓包点来说一般指的是上游乱序。当序列号Seq No.低的TCP报文先发后至,则出现了乱序,Wireshark便会标记报文为“TCP Out of Order”。
7、乱序分为普通乱序(一般深度=3),重点关注深度乱序,深度乱序的SEQ No.有重传包。上游发生大量乱序或深度乱序导致的重传应重点排查抓包点上游问题。2)乱序问题定界如下图IP.ID为02、Seq No.为200的TCP报文在发送端先发,但是在抓包点却在Seq No. 300之后收到,因此该TCP报文在上游发生了乱序,由于乱序深度为1,为普通乱序。IP.ID为05、Seq No. 为500的TCP报文在抓包点却在Seq No. 700之后才收到,因此该TCP报文在上游发生了乱序,由于乱序深度为3,为深度乱序,发送端会发生快速重传,会导致发送窗口减半。通过wireshark-Statistics-
8、TCP Stream Graphs-TCP Sequence (TCP Trace)时序图分析所示,Seq No.小的却后收到,表明发生了乱序:2.3.3重传问题1)重传问题识别原则:重传对于抓包点来说一般指的是下游重传。下游重传场景初传包在抓包点抓到,而且还抓到了重传的包,同一个Seq No.在抓包点抓到两次。发生重传的原因可能是抓包点下游初传包丢包或乱序,造成接收端先收到后续TCP报文,多次给发送端回Dup ACK,从而引起发送端快速重传。发生下游重传应重点排查抓包点下游问题。2)重传问题定界:如下图IP.ID为05、Seq No.为500的TCP报文为初传包,在抓包点gNB发往下游后由于
9、下游的原因无法送达接收端,造成接收端先收到后续TCP报文,多次给发送端回Dup ACK,从而引起发送端快速重传。此IP.ID为05,Seq No.为500的数据包在抓包点gNB已抓到,其重传包IP.ID为09,Seq No.为500,重传包的IP.ID为09,比Seq No. 为600的IP.ID 06还大,证明该数据包是在IP.ID 06&07&08之后发的,因此该IP.ID 09的数据包是IP.ID 05的重传包。如下图的Wireshark分析,抓包点已经抓到了786886121的包,但是下游发来了多个DUP ACK,最后导致该TCP报文发生快速重传:2.3.4网络分片1)分片原理说明:M
10、TU: IP层的最大传输单元,Maximum Transmission UnitMSS:是TCP层最大报文段长度,Maximum Segment Size,MSS的值一般为MTU值减去两个首部大小(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),MTU的值一般默认为1500。TCP协议在建立连接的时候通常要协商双方的MSS值。例如:第一次握手:接收端向发送端通报自己支持的MSS=1460Byte;第二次握手:发送端向接收端通报自己支持的MSS=1400Byte;则后续数据包发送时取两者最小值,每条报文的实际净核大小为1400B。如果IP报文的大小大于MTU,IP
11、层就会将该IP报文进行分片。 对于TCP来说,要尽量避免分片。因为必须所有分片都到达才能重组成一个包,其中任何一个分片丢失了,都必须重发所有分片。分片会增大丢包和乱序的概率,同时也会增加时延。2)网络分片定界:如果在TCP报文经过的传输网络中有某个设备的MTU设置得太小,则它会将收到的IP报文进行分片。分片会增大丢包和乱序的概率,同时也会增加时延。传输中若存在IPSec,IPSec会增加额外的协议头,MSS建议不超过1350,这样MTU就不会超过1500,不会引起分片。2.3.5 TCP接收和发送端口1)TCP接收窗口分析:接收窗口受限是指接收端收到了发送方发出的TCP报文段之后,在进行确认时
12、,告知发送端本接收端TCP接收缓存耗尽,请暂停发送数据。通常分析TCP接收窗口,主要识别三种异常:接收窗口值逐渐减小为0;接收窗口值频繁波动;接收窗口最大只能达到65535。如果存在上述问题,则有两种可能:发送端或网络侧发包频率异常;接收端本身处理能力不足。此类问题一般都出现在数据接收端,可能的原因如下:接收端配置太低,无法为相关程序进行分配足够的内存;运行在数据接收方的应用程序无法从操作系统得到足够的缓存;运行在数据接收方的应用程序消耗的内存太多,操作系统对其进行了资源的限制;接收端TCP接收窗口太小,导致接收能力受限2)TCP发送窗口/拥塞窗口分析说明TCP发送窗口是指TCP发送缓冲区的大
13、小。由于无法通过TCP抓包报文直接得到发送窗口的大小,只能通过分析已发送未确认的数据量推算TCP发送窗口的大小。如果发送窗口太小,可能是服务器发送缓存设置得太小,需要优化服务器。数据发送之后会被缓存在TCP发送缓冲区中,接收到对应的TCP ACK后,数据才会被从缓冲区中删除,已发送未确认的数据一定是保存在TCP发送缓冲区中的,换句话说:TCP发送缓冲区的大小一定大于等于已发送未确认的数据量。 已发送未确认的数据量小于接收窗口的大小,说明TCP发送缓冲区已经满了,TCP无法发送更多的数据,这种情况下TCP发送窗口=已发送未确认的数据量TCP接收窗口; 已发送未确认的数据量等于接收窗口的大小,说明TCP发送缓冲区还没满,但由于TCP接收窗口的限制,TCP无法发送更多的数据,这种情况下TCP发送窗口已发送未确认的数据量=TCP接收窗口。发送窗口
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1