高通面试问题

目录

1. Python知识点

2. 进程和线程

3. 切换的原理和决策方法

4. SINR、RSRP、RSRQ、RSSI的含义

5. 5G的框架(不是古老的OSI七层模型)


1. Python知识点

        with用法

        有一些任务,可能需要先设置,事后进行清理工作(类似对象的构造和析构)。with语句就是一种便捷的处理方式。实例:文件处理,需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。

try:
    f = open("xxx")
except:
    print("fail to open")
    exit(-1)
try:
    do...
except:
    do...
finally:
    f.close()
##################################
# with优化
with open ("xxx") as file:
    data = file.read()

        with可以简化,还可以更好处理上下文环境产生的异常。(用于debug和测试)

        紧跟着with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。

        当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。

        with-as表达式可以简化每次写finally的工作。

        总结:Python的with语句提供一个有效的机制,让代码更简练,同时在异常产生时,清理工作共简单。

        装饰器(语法糖)

        装饰器,装饰的对象是函数或方法,作用:改变被修饰函数或者方法的功能、性质;

        装饰器本质上是一个python函数,它可以让其他函数在不需要任何代码变动的前提下,增加额外功能,装饰器的返回值也是一个函数对象。

        装饰器的应用场景:插入日志、性能测试、事务处理、缓存、权限校验等;

        前置知识:

                高阶函数:如果一个函数的参数是另外一个或几个函数,那么这个函数就是高阶函数,(参数是函数方法名)

                闭包:闭包是一个函数,它延申了变量的作用域,使得在定义变量的作用域失效后,该变量仍然能够被调用;(静态变量)

        装饰器本质就是一个高阶函数,它接受一个函数作为参数,并返回一个被装饰后的函数。(在不修改被装饰函数的源代码和调用方式的情况下,给被装饰函数添加额外的功能)

         wrapper函数是嵌套在timer函数里面,timer函数返回wrapper()函数引用wrapper。fun=timer(fun)就相当于fun=wrapper,调用fun()就相当于调用wrapper()。可以用@来代替fun = timer(fun),@timer和fun=timer(fun)是等效的,于是上面的调用就可以写成下面的形式

         何时执行装饰器:(1)被装饰函数和装饰器在同一个模块时,只有在明确调用被装饰函数时装饰器才被执行;(2)当被装饰函数和装饰器在不同模块时,只要被装饰函数一经定义,装饰器就会立即执行,这一般在import导入时发生;

        类装饰器

        

         # @timer等价于 fun=timer(fun)

        @timer的在这里的作用实际就是实例化一个fun对象(fun=timer(fun)),对于类的实例化对象是不支持实例化对象()这样调用的,而__call__方法的作用就是支持实例化对象这样被调用。满足装饰器不改变装饰函数调用方式的特性。

        迭代器

        有很多对象都可以通过for循环来对每一个元素进行访问,如list、dict、string,这些对象被称为可迭代对象。迭代器:Iterator是访问集合内元素的一种方式,提供了一种遍历序列对象的方法。用来迭代操作对象,可以像列表一样,迭代的获取其中的每一个元素,任何事项__next__方法的对象,都可以称之为迭代器。(可迭代即为可遍历)

        迭代器的特点:__iter__方法返回迭代器本身;next()方法返回容器的下一个元素,当没有下一个元素时,会报出StopIteration异常。

        与列表区别,构建迭代器时,不需要像列表一样,把所有元素一次性加载到内存,二十通过使用延迟计算的方式返回元素。迭代器没有把所有元素加载到内存,而是调用迭代器的next方法时才返回该元素。

alist =[1,2,3,4]
it = iter(alist)
# 调用next函数,输出下一个
print(next(it))
# for循环自动迭代,直到StopIteration被引发,内部捕获并结束循环
for item in alist:
    print(item)

        利用for / while循环不断取出迭代器中的元素,若是超出范围StopIteration异常,用Try-except方法捕获异常。

自带的迭代器(列表元组字符串字典集合..),自己编写的迭代器。Python迭代器对象必须实现两个特殊的方法:__iter__()和__next__()方法

                使用__iter__()方法初始化迭代器对象;返回迭代器对象本身,若需要,可以执行一些初始化;

                使用__next__()方法进行迭代;必须返回序列中的下一项,在到达终点时以及在随后的调用中,它必须引用StopIteration;

        无限迭代器,iter()内置函数可以使用两个参数调用,其中第一个参数必须时可调用对象(函数),第二个参数是哨兵。迭代器调用这个函数,知道返回的值等于哨兵。

        迭代器和可迭代对象的区别:

                Iterable是一个可以迭代的对象。它在传递给iter()方法时生成一个迭代器。

                Iterator是一个对象,用于使用__next__()方法对可迭代对象进行迭代。

        注意:每个迭代器也是可迭代的,但不是每个可迭代的都是一个迭代器。

        例如,list列表时可迭代的,但列表不是迭代器,可以使用函数iter()从可迭代对象创建迭代器。

        map函数

        map时python的内置函数,会根据提供的函数对指定的序列做映射。

        map(function, iterable,....)

        第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。把函数一次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原本的list,而是返回一个新list。(funciton对可迭代对象依次操作,返回到新的可迭代对象上)
        快速构建,lambda函数返回

        若不传入function = None,map() 就等于zip(),将多个列表归并到一个元组;

        map(None, [1,2,3], [4,5,6])       

        通过map还可以实现类型转换

               map(int ,(1,1,2,3))

        可以将元组 、字符串 、字典中的key 转换为list。

        切片

        切片是截取指定对象、数据。

        三部分:开始、结束、过程。

                开始:切片的起始位置,默认是0;

                结束:切片结束位置,前闭后开[start, end),结尾取前一位。

                过程:定义步长,默认1,值为正数时,从左往右切片;值为负数时,从右往左;

        list[]:什么都没有

        list[start:]:只有start,从start到结束

        list[:end]:从0开始切到end

        list[start:end],从start切到end;

        list[start:end:step]:从start到end,步长是step;

特殊:a[:]和a[::]是相同的,::后一个冒号为步长,都是从0到结束。

        a[2:],从第二个到结束;a[:6],从开始到第五个(6-1);

        a[::-1]:倒序输出

        a[3:-2]:从第3个位置到倒数第3个(-2+1),取不到右边界

        a[:3:-1]:步长-1,倒叙,倒数到正数第4个

        

2. 进程和线程

        CPU比作工厂,进程好比车间,线程好比工人;进程代表CPU工厂所能处理的单一任务;一个车间(进程)可以有好多工人,协作完成一个任务;车间的空间工人们共享,许多房间每个工人都可进出,象征一个进程的内存空间时共享的,每个线程都可以使用这些共享内存;一个线程使用某些共享内存时,其他线程必须等待结束,才能使用该共享内存。防止他人(其他线程)进入的方法,在门口加一个锁。先到的人锁上门,后到的人看到上锁,等锁打开在进去——互斥锁,防止多个进程与线程同时读写某块内存。

        进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程。进程时一个正在执行的程序的实例,包括程序计数器、寄存器和程序变量的当前值。

        进程的特征:进程依赖程序运行而存在(进程动态,程序静态);进程是操作系统进行资源分配和调度的独立单位(CPU除外,线程是处理器任务调度和执行的基本单位);每个进程拥有独立的地址空间(代码区、数据区和堆区),进程之间的地址空间是隔离互不影响。

        线程的创建、销毁与切换存在着较大的时空开销,因此人们急需一种轻型的进程技术来减少开销。线程被设计成进程的一个执行路径,同一个进程中的线程共享进程的资源。系统对线程的调度成本远小于进程。

        进程和线程区别

        本质:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

        包含关系:一个进程至少包含一个线程,线程是进程的一部分。

        资源开销:每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈金额程序计数器,线程之间切换的开销小。

        影响关系:一个进程崩溃后,在保护模式下其他进程不会被影响,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程要比多线程健壮。

        并行和并发:【一个CPU在一个瞬间只能处理一个任务】

        单核CPU进行轮转调度机制;并行:多个CPU执行不同任务,互不相关;并发:多个CPU执行相同的几个任务;

        

         线程运行的本质就是函数运行,函数运行时信息保存在栈帧中的,每个线程都有自己独立的、私有的栈区。

3. 切换的原理和决策方法

        切换时连接状态下UE的移动触发——UE可以与比当前服务小区信道质量更好的小区通信-为UE提供连续的五终端的通信服务,有效防止由于小区的信号质量变差造成的掉话。

        切换的流程:     

  1. 切换请求阶段:核心网根据移动设备的位置信息网络负载情况,决定将移动设备切换到哪个基站。核心网向目标基站发送切换请求信令,请求目标基站为移动设备提供服务。

  2. 切换准备阶段:目标基站接收到切换请求信令后,会向移动设备发送切换准备信令,告知移动设备可以切换到该基站。

  3. 切换执行阶段:移动设备接收到切换准备信令后,会向目标基站发送切换执行信令,告知目标基站可以为其提供服务。同时,移动设备会与原基站断开连接,与目标基站建立连接。

  4. 切换完成阶段:目标基站接收到切换执行信令后,会向核心网发送切换完成信令,告知核心网切换已完成。此时,移动设备已经成功切换到目标基站,可以继续通信。

        5G切换的流程:

                UE与基站gNB,触发切换

                测量环节:测量下发(下行)、测量上报(上行)

                切换执行:gNB下行

        1. 触发测量:UE完成接入或切换后,gNodeB会立刻通过RRC(Radio Resource Control, 无线资源控制)向UE发测量控制信息。此外,若测量配置信息有更新,gNodeB会通过RRC连接重配置消息下发更新的测量控制信息(信道状态信息、位置信息)。

        2. 3GPP为5G-NR定义的测量事件对比LTE新增了A6,38331-g41标准):

        系统内事件

                A1:服务小区Serving高过的门限值thresh;

                        Event A1 (Serving becomes better than threshold)

                A2:服务小区Serving低于的门限值thresh;

                        Event A2 (Serving becomes worse than threshold)

                A3:邻小区Neighbor高出指定小区SpCell的偏置offset;

                        Event A3 (Neighbour becomes offset better than SpCell)

                A4:邻小区Neighbor高出门限值thresh;

                        Event A4 (Neighbour becomes better than threshold)

                A5:指定小区SpCell低于的门限值1,邻小区Neighbor高出服务小区的门限值2

                        Event A5 (SpCell becomes worse than threshold1 and neighbour becomes better

                        than threshold)

                A6:邻小区Neighbor高出辅助小区SCell的偏置;

                        Event A6 (Neighbour becomes offset better than SCell)

        系统间事件

                B1:异系统邻小区inter Neighbor高于门限

                        Event B1 (Inter RAT neighbour becomes better than threshold)

                B2:主小区PCell低于门限1,异系统邻小区inter Neighbor高于门限2

                        Event B2 (PCell becomes worse than threshold1 and inter RAT neighbour

                        becomes better than threshold2

        5G测量事件具体判定准则

                A1:Ms-Hys>Thresh,且持续Time To Trig时间【服务小区Serving高于门限】

                A2:Ms+Hys<Thresh,且持续Time To Trig时间【服务小区Serving低于门限】

                A3:Mn+Ofn+Ocn-Hys>Ms+Ofs+Ocs+Off,且持续Time To Trig时间【邻小区Neighbor高出指定小区SpCell的偏置】

                A4:Mn+Ofn+Ocn-Hys>Tresh,且持续Time To Trig时间【邻小区Neighbor高出门限值】

                A5:Ms+Hys<Thresh1且Mn+Ofn+Ocn-Hys>Thresh2,且持续Time To Trig时间【指定小区SpCell低于的门限值1,邻小区Neighbor高出服务小区的门限值2】

                A6:Mn+Ocn-Hys>Ms+Ocs+Off,且持续Time To Trig时间【邻小区Neighbor高出辅助小区SCell的偏置;】

                B1:Mn+Ofn-Hys>Thresh,且持续Time To Trig时间【异系统邻小区inter Neighbor高于门限】

                B2:Ms+Hys<Thresh1且Mn+Ofn-Hys>Thresh2,且持续Time To Trig时间

        其中:【主小区低于门限1,异系统邻小区inter Neighbor高于门限2】

         Ms:服务小区的测量结果;

        Mn:邻区的测量结果;

        TimeToTrig:持续满足事件进入条件的时长,即时间迟滞;

        Off:测量结果的偏置,步长0.5dB;

        Hys:测量结果的幅度迟滞,步长0.5dB;

       Ofs:服务小区的频率偏置;

        Ofn:邻区的频率偏置;

        Ocs:服务小区特定偏置CIO;

        Ocn:邻小区特定偏置CIO;

        Thresh:对应事件配置的门限值;

上报测量报告的触发方式【周期型/事件型】

A1事件:当前服务基站的数据优于thresh阈值;这个事件可以用来关闭某些小区间的测量。

        作用是关闭正在进行的异频或异系统测量

A2事件:当前服务基站的数据低于thresh阈值;这个事件可以用来开启某些小区间的测量,因为这个事件发生后可能发生切换等操作。作用是开启异频或异系统测量,为切换作准备

A3事件:邻区基站的数据比当前服务基站的数据高出offset;这个事件发生可以用来决定UE是否切换到邻居小区。邻区质量高于当前服务小区不一定需要切换【要高于偏置offset】

A4事件:邻区基站的数据优于thresh阈值;负载均衡的切换,把负载分配给邻区。

A5事件:当前服务基站的数据比thresh1阈值1低,邻区基站的数据高于thresh2阈值2; 为切换作准备。

A6事件:邻区服务质量好于辅小区服务质量;

UE基于A3事件上报测量数据(RSRP/RSRQ)UL上行到当前附着基站,经过固定基站处理时延后,基站BS返回DL切换命令,UE向着所需切换的目标基站发送切换请求。

4. SINR、RSRP、RSRQ、RSSI的含义

        P:power,Q:quality

        5GNR中的事件取值范围与LTE有区别。RSRP(Reference Signal Reciver Power),LTE的取值为-140--44dBm,而NR为-156--31dBm,NR允许接受更高和更低的接收电平。LTE的实际值为MR上报值-140,而NR为MR上报值为-156.

        RSRP: Reference Signal Receiving Power,参考信号接收功率,LTE网络中代表无线信号强度的关键参数以及物理层重要的测量学求,RSRP代表了每个子载波的功率值。等同于WCDMA中的RSCP(Reference Signal Code Rower)接收信号码功率。-44~-140dBm,越大越好

        RSRQ:Reference Signal Receiving Quality,参考信号接收质量,这种度量主要是根据信号质量来对不同LTE候选小区进行sort。这种测量用作切换和小区重选决定的输入。

RSRQ被定义为N*RSRP/(LTE载波RSSI)之比,N是LTE载波RSSI测量带宽的资源块RB个数。RSRQ实现了一种有效的方式报告信号强度和干扰相结合的效果。反映了当前信道质量的信噪比SNR和干扰水平。为了使得得到的RSRQ为负值,定义RSRP是单个RE上的信号功率,RSSI定义是一个OFDM符号上所有RE的总接收功率。取值范围-3~-19.5,越大越好。

        RSRQ = N(DL,RB)*RSRP / RSSI

        RSSI:Received Signal Strength Indicator接收信号强度指示,UE探测带宽内一个OFDM符号所有RE上的总接收功率,包括了服务小区和非服务小区吸纳后、相邻信道干扰,系统额你不热噪声等。即为总功率S+I+N ,其中I为interference干扰功率,N为noise噪声功率,反映了当前信道接收信号强度和干扰强度。RSSI在无线网络中表示信号的强度,随着距离增加而衰减,通常为负值,该值越接近0说明信号强度越高。

        RSSI持续过低,说明基站收到的上行信号太弱,可能导致解调失败。RSSI持续过高,说明收到的伤心信号强度过强,相互之间干扰太大,影响信号解调。

        SNR:signal to noise ratio,信噪比,它指规定条件下测得的有用信号电平与电磁噪声电平之间的比值。在任意点上有用信号的赋值与同一点上噪声信号的幅值之比,并用dB表示,峰值与脉冲噪声联系,信噪比SNR越大越好。S/N

        SINR:signal ti Interference plus noise Ratio信干噪比信号强度与干扰+噪声之比。S/(I+N)

5. 5G的框架(不是古老的OSI七层模型)

        5G使用5GNR空中接口和OFDM原理,sub6G和毫米波(更宽的带宽技术)。

TCP:传输层协议;IP:网络层协议;

        5G协议栈与OSI七层模型关系:

        5G协议栈结构类似与LTE协议栈,由用户面(UP)和控制面(CP)组成。其中,控制面主要处理系统信令层面的数据,与核心网控制面节点AMF连接;用户面处理用户数据,与核心网用户面节点UPF连接。

        在接入网侧,控制面协议栈组成没有发生变化,仍然由物理层、L2(MAC、RLC、PDCP)、RRC、NAS层组成。其中RRC终止于基站。NAS终止于AMF。但在用户面,协议栈组成除了类似LTE协议栈包含的PHY、MAC、RLC、PDCP以外,还新增了SDAP层。(SDAP全称service data adaption protocol,NR中新增的协议层)

      

         5G核心网协议栈结构与LTE相比几乎没变化。核心网协议栈分别由物理层、数据链路层、IP层组成下三层。用户面的传输层选择IETF定义的UDP;而控制面的传输层选用IETF定义的SCTP。上层由GTP-U和NG-AP层,这两层对应到OSI七层模型中的应用层。

        下三层:物理层、数据链路、IP;

        中层(传输层):UDP  /  SCTP;

        上层:GTP-U  /  NG-AP;

        5G接入网协议栈结构、OSI、TCP/IP模型区别

        从核心网来开,基本符合TCP/IP五层模型定义,由物理层、L2、网络层、传输层和应用层组成。

  • 应用层协议。GTP-U、NG-AP(以及LTE的S1-AP)本质上属于应用层协议,只不过该应用层为电信核心网内部定义的专用应用层,并不向普通用户开放。
  • 网络层协议,IP层(L2之上)用作在电信网络内部数据传输的寻址和路由,其IP地址为电信网络内部分配的IP地址。
  • 传输层协议,核心网控制面传输层采用SCTP,用户面采用UDP,两者的区别时:SCTP提供可靠的数据传输,以适应控制面特征;用户面采用UDP协议,提供不可靠传输,可靠的传输利用底层的HARQ、ARQ保障。

上面的分析,核心网协议栈之所以符合TCP/IP五层模型主要原因时核心网本质上来说就是一种定制化的传输网络,它的基本原理和功能与TCP/IP模型描述的互通网络类似。

OIS 7层模型TCP/IP 5层模型对应的网络协议
应用层应用层HTTP、TFTP、FTP、NFS、WAIS、SMTP
表示层Telnet、Rlogin、SNMP、Gopher
会话层SMTP、DNS
传输层传输层TCP、UDP、SCTP
网络层网络层IP、ICMP、ARP、RARP、AKP、UUCP
数据链路层数据链路层FDDI、Ethernet、Arpanet、PDN、SLIP、PPP
物理层物理层IEEE 802.1A、IEEE 802.2~802.11等

        接入网不同,接入网协议栈和TCP/IP以及OSI模型有很大的差异,这个差异本质上因为无线接入网框架和一般的互联网络有很大差异(一般不存在多跳路径),此外,无线接入网传输介质(空气)的基本特征也引起了堆协议栈结构的重建,具体特征:

  • 接入网无网络层和传输层。接入网无网络层和传输层主要原因是接入网的拓扑结构相对互通网络简单很多,不存在多点之间的传输问题(即便考虑小基站和其他异构往结构,也属于少量节点之间的传输且数据传输路径固定)。因此,没有必要设置网络层和传输层来实现数据的路由和寻址。
  • RRC层和NAS层本质上属于应用层协议。RRC和ANS层从本质上来说就是应用层,其功能是实现UE与基站、UE与核心网节点之间的信令传输。
  • 接入网采用无线传输,较固定电缆复杂很多。因此,考虑到灵活承载业务、简化网络结构和缩短处理时延,接入网协议栈进行了特殊设计
    • 由于无线相对有线而言,信息传输泄露和篡改的风险更大,因此,在接入网的L2层增加了PDCP子层,实现对用户数据和信令的加密和完整性的保护功能;
    • 接入网数据传输采用无线承载的概念以保证用户QoS,因此,在L2新增SDAP子层,以实现核心网QoS Flow到无线承载之间的映射和管理;
    • 无线传输比有线传输更容易受到环境影响而导致传输失败,因此在L2的MAC子层和RLC子层采用了双层的可靠保障机制(HARQ、ARQ),以侯死刑案可靠性和传输效率的平衡;
    • 无线资源管理,为了保证用户QoS和公平性,因此,在L2的MAC子层设置了复用和优先级管理功能;
    • 无线信号动态变化幅度大,物理层实际传输能力动态变化。因此,在L的MAC子层增加了自适应的调制和编码功能( MAC控制,物理层执行),在RLC子层设置堆高层数据分组的分段功能,以匹配物理层的变化。
    • 考虑低时延需求,将原本应该由L3控制的DTX/DRX功能下沉到MAC负责。

5G核心网和接入网解析与OSI、TCP/IP对应关系表:

OSI模型TCP/IP模型5G RAN5G CN
应用层应用层RRC、NASGTP-U-AP
表示层
会话层
传输层传输层——————SCTP/UDP
网路层网络层——————IP
数据链路层数据链路层MAC、RLC、PDCP、SDAP数据链路层(L2)
物理层物理层物理物理

LTE和5G接入网协议栈分为:物理层L2(MAC、RLC、PDCP、SDAP)、L3(RRC、NAS);

其中SDAP,Service Data Adaptation Protocol,NAS,Non-Access ;

LTE和5G核心网协议栈分为:物理层、数据链路层、IP层、UDP/SCTP和应用层;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值