今天这篇文章,我们来聊聊5G LAN。
大家如果对通信技术稍有了解的话,就会发现,5G LAN其实是一个很有意思的概念。
对于5G,大家应该都很熟悉,它是4G 的演进,也是目前我们最新的移动通信技术。
而对于LAN,大家应该更熟悉。它的全称是local area network,也就是局域网。我们家里的网络,还有在公司办公室的网络,基本都是LAN。带有无线Wi-Fi的,就是Wireless LAN(WLAN)。
那么,我为什么会说5G LAN很有意思呢?
因为,5G是一个广覆盖的蜂窝通信网络,而LAN是一个小范围的区域数据通信网络。两种技术,看上去并无关系。

换句话说,5G和LAN这两个词,分开大家都认识。但合在一起后,就让人有点懵逼。不是吗?
█ 5G LAN,到底是个啥东东?
其实,5G LAN,简单来说,就是利用5G技术,将终端进行“分组”、“建群”,组成一个LAN网络。
大家都有5G手机。在使用5G手机的时候,你们有没有发现,即便你和朋友离得再近(哪怕面对面),你的手机都是无法搜索到对方的。你之所以可以对方进行通信,是因为数据流到了运营商或者互联网服务商的服务器,绕了一圈。
对于基站来说,所有的手机终端之间,都是“隔离”的。这是基于安全的考虑,手机各自使用各自的信道,互不干扰。

而LAN呢,是将区域内的终端(手机、电脑等)连接在一起,变成“群组”。这既方便了相互之间的数据传输,也节省了外网出口。
在LAN中,终端相互之间通过MAC地址可以选址,就找到对方(层二通信)。出入外网的话,架设一个路由器,通过IP选址,也可以实现路由出入(层三通信)。
我们都知道,“4G改变生活,5G改变社会”。作为目前最主流的移动通信技术,5G肩负了“万物互联,助力百行千业数字化转型”的使命,需要帮助垂直行业的用户打通连接。
那么,5G就不能只打通每个终端到云的连接,还要实现终端与终端之间的“就近连接”。
所以,在3GPP R16标准中,就推出了5G LAN这个新特性功能。
█ 5G LAN的原理与特点
在5G网络里,管理者可以修改用户数据库(UDM网元)中的数据,对指定的终端(UE)号码进行业务签约,从而把它们分入相同或不同的VN Group(Virtual Network Group,虚拟网络群组)。
用户数据库会向5G核心网(5GC)的管理网元(SMF、AMF、PCF等)提供终端号码的VN群组信息,以及访问策略。管理网元基于这些信息和策略规则,将它们组成了不同的LAN。这就是5G LAN。

5G LAN网络架构示意图
5G LAN支持层二通信(相同网段,互相直接访问),也支持层三通信(跨网段,借助路由)。5G LAN支持单播,也支持组播和广播。简单来说,就是相互访问方式非常灵活,组网也非常简单。
从范围来看,5G LAN既支持同一个UPF(5G核心网的媒体面网元)下的相互通信,也支持不同UPF下的相互通信。这等于打破了终端之间的物理距离限制(甚至北京和上海都能通信)。

特别重要的一点,5G LAN建立的网络,可以与用户现有的数据网络进行连接,从而实现即插即用、相互访问。
█ 5G LAN的应用场景和优势
5G LAN实现了指定5G终端之间的分组和连接,大大方便了企业构建更具移动性的LAN网络。很多读者肯定会问,现有的Wi-Fi技术,不是已经可以实现移动性了吗?为什么还需要5G LAN?
别急,让我们继续往下看。
5G LAN实现的本地组网,可以帮助企业、学校、政府、家庭等用户更好地进行区域范围内的终端互联互通。它可以用于办公网络,但是,它更大的价值,在于对园区生产环境的改造,对工业制造、港口码头、能源矿山等生产型企业基层网络的改造。

我们现在都在推动工业互联网,认为5G能够赋能行业场景的数字化,就是因为5G拥有大带宽、低时延等特点,是出色的无线通信技术,可以实现工业场景各个生产要素的无线连接。
以工业制造为例。以前,为了更好地进行自动化,实现设备控制,采用的是“工业总线”技术。这种技术有很多类型,可谓“五花八门”。
后来,随着以太网和IP技术的出现,工业界形成了共识,一起向以太网演进,就有了“工业以太网”。现在,不管谁家的工业互联协议,基本都是基于以太网的。
再后来,工业企业发现,有线连接对移动性有太多的限制——设备后面总要留一个“辫子”,妨碍了自由移动。
而且,有线连接部署方式比较麻烦,工期长,成本高。一旦设备或线缆出现问题,更换也很耽误事。所以,工业界开始考虑,引入无线通信技术。
于是,Wi-Fi、蓝牙等技术,就进入了工业领域。
那么,回到前面的问题,既然有Wi-Fi,为什么要5G LAN?
原因如下:
一、Wi-Fi网络(尤其是Wi-Fi 4、Wi-Fi 5)的性能不如5G。
传输速率、时延等方面,5G能更好地满足工业机器人(机械臂控制)、智能质检(高速图像识别)、AGV(无人物流小车)等场景的需求。
覆盖范围方面,5G的覆盖范围比Wi-Fi更大,可以更好地覆盖园区。5G的小区间切换能力,也比Wi-Fi更强,可以给用户带来更好的网络体验。
二、Wi-Fi网络维护成本高。
企业建设园区Wi-Fi网络,需要自己布线,自己买设备。设备有折旧、有损坏、有更新换代,还要专人维护。海量的Wi-Fi设备,配置也很麻烦。
5G不一样。它是由运营商负责建设和维护的,企业属于租用(Wi-Fi对比5G,有点像自建机房对比云计算)。
综合来看,5G会更加划算。
三、5G LAN的功能更加强大。
前面提到5G LAN的VN分组。分组除了隔离通信之外,更重要的一个作用,是实现不同网络的QoS(服务等级)差异化。
举例来说,企业内部有办公网络、IT系统网络、OT网络等。
OT就是Operational Technology,运营技术(操作技术)。其实就是连接工业环境和设备的网络,例如车床、机械臂、传感器、仪器仪表、AGV、监控系统、MES、PLC等。

不同的网络,对性能要求不一样,有的需要时延低,有的需要带宽大,有的则没有那么多要求。
5G LAN在分组的基础上,可以针对不同的VN分组,定义不同的网络性能。有的企业,将其称为“微切片”。
四、5G LAN容易管理,且安全性更强。
前面我们提到可以在运营商的5G UDM网元中修改用户签约数据,对用户进行VN分组。那么,难道我们每次需要变更一个终端的分组信息(加入、删除、更改),都要找运营商客服吗?
当然不用。
运营商5G网络可以通过开发接口的方式,将修改权限开放给企业网络管理者,实现自助修改。
当然,企业还可以根据自己的需要,设置自己的专网策略。
在建立数据连接时,企业还可以设置授权和认证机制,对VN分组进行严格管理。这个安全性,比Wi-Fi强大了很多,也方便了很多。
█ 5G LAN的案例分析
接下来,我们通过一个具体的组网案例,来看看5G LAN到底有什么好处。
首先,一家制造型企业,有自己的车间、生产线(或车床),需要通过网络,将PLC和PLC控制端连接起来。
每条流水线有很多的设备,也是独立的。将流水线的每个设备都安装5G模组,这是比较理想的状态。但是,现阶段费用好像会有点贵。
那么,我们引入5G工业网关,或者5G CPE,可以提升性价比。适合用有线的,连接有线端口(以太网口、或PLC端口)。适合用无线的,连接5G或Wi-Fi。

如果5G不支持5G LAN(R16之前),实现PLC和PLC控制器之间的连接,也是可以的。但是,整个5G网络是依靠IP寻址的三层协议,终端地址也是IP地址,不支持二层数据转发。为了实现端到端通信,就必须在两边各加一个AR(Access Router,接入路由器),建立一个隧道,把工业二层协议封装在隧道里,带到对端。

这种方式,不仅增加复杂度,也增加了成本(AR路由器购买成本、AR路由器配置的人力和时间成本)。试想一下,如果车间有几千条流水线,那么这个成本将会非常惊人。
引入5G LAN之后,5G网络支持直接传输二层协议,就不再需要AR路由器了。同时,5G网络可以为没有IP地址的终端提供路由,UPF可以识别终端的MAC地址,整个网络变成了极简的单层网络,相互之间进行层二通信。
5G LAN的即插即用能力,可以完美地将自己与客户现有网络进行融合,减少了对客户现有网络的影响,不需要费劲改造升级,可以节约大量成本。
从宏观上来看,5G LAN是5G与以太网技术的协作。将来,基于以太网技术发展的TSN(时间敏感网络)技术,也离不开5G LAN的助力。
值得一提的是,5G LAN除了有利于建设园区内部网络之外,还可以作为企业传统专线网络的补充,连接异地的分支机构。

█ 5G LAN的模组
正如大家所见,5G LAN是5G在垂直行业落地的一个重要创新技术。它可以建设更强大的5G专网通信,帮助客户加速数字化转型升级。
想要更好地部署5G LAN,除了网络侧升级之外,还需要5G模组的支持。
在5G LAN技术商用落地的进程中,紫光展锐推出的业界首款5G R16 Ready基带芯片平台——V516。
基于这个平台,国内领先的模组厂商——移远通信(Quectel),已成功开发出多款支持5G LAN技术的5G模组,且已实现商用,包括RG500U、RG200U、RM500U等LGA、M.2、Mini PCIe封装模组。

这些模组具有高可靠性特点,可实现ms级的空口时延和精度达1us的5G网络授时,可以更好地满足工业制造高精度机器协作、仓储物流多车协同、智能电网差动保护等工业互联网行业应用需求。
在浙江宁波,某知名企业采用移远通信5G LAN模组,建立了5G全连接工厂,完成了全国首个5G LAN商用试点。
作为一家汽车铝合金精密压铸件制造企业,该企业聚焦汽车零部件制造领域,是典型的离散制造型企业。
它下面的6家工厂,分散在宁波市某工业园的不同位置。5G LAN技术,帮助这些工厂实现了更灵活的连接,使工厂产线调整效率提升了70%(7天→2天),MES组网交付效率翻了一倍(6个月→3个月),年均可节约隧道配置维护工作约750人天。

某知名企业厂区内安装的5G设备
在这里,“5G+工业互联网”真正实现了“柔性生产”的赋能。
在某汽车品牌、某大学智慧楼宇、某工业企业柔性工厂等项目,5G LAN也都实现了成功落地。未来,5G LAN会更多地出现在我们的视野中,赋能国内数十万个园区的数字化改造。
█ 结语
工业互联网是第四次工业革命的基石,像5G LAN这样的5G专网技术创新,对工业领域全面走向数字化、网络化、智能化,具有重要的意义。
随着5G R17版本的冻结,我们逐渐迎来了5G-Advanced时代。新的精彩还在继续,新的技术创新,也在不断出现。
日积月累的创新,终究会引领人类走向“万物智联”。让我们拭目以待!

类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?
我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or