默认
打赏 发表评论 5
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”
阅读(92654) | 评论(5 收藏4 淘帖1 3
微信扫一扫关注!

【来源申明】本文引用了微信公众号“鲜枣课堂”的《核心网,不是一般的难啊》文章内容。为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动。


1、系列文章引言


1.1适合谁来阅读?


本系列文章尽量使用最浅显易懂的文字、图片来组织内容,力求通信技术零基础的人群也能看懂。但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获。如果您大学学习过《计算机网络》这门课,那么一定不要错过本系列文章。

特别推荐即时通讯开发者来阅读,因为针对移动弱网的问题,确实可以找到很多有价值的答案

友情提示:本系列文章可能涉及以下通信技术范畴,如您有兴趣,也可自行系统地学习:
IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_1.gif

1.2本系列文章的初衷


作为即时通讯(IM、消息推送等应用场景)相关技术的开发者人员来说,似乎了解跨专业的通信技术(这是大学通信工程专业类学生的学习内容),有点过于深入和底层了,因为一般来说熟练掌握逻辑层的TCP\IP相关协议、网络编程相关的应用技术就差不多能胜任这方面的本职工作了。

没错,确实是这样。但在开发IM、推送这类应用系统时,尤其在移动网络下,各种弱网问题,让人非常痛苦。

典型的弱网问题,比如:

  • 1)频繁掉线;
  • 2)丢包严重;
  • 3)网络抖动;
  • 4)网络延迟;
  • ........

那么,针对以上现象,怎么才能有底气的跟老板、客户、产品经理地解释以下问题?

  • 1)导致这些现象的根本原因到底是什么?
  • 2)怎么跟老板解释,要搞定在高铁上用好音视频聊天功能很困难?
  • 3)怎么跟客户解释P2P在3G、4G甚至5G网络下的成功率问题?
  • 4)怎么向客户说明,商场或人多场合下,明明信号很好,但你的APP确用不了?
  • .......

你说这些都是网络问题,APP代码无能为力。那么,你倒是讲讲到底是什么样的网络问题?能把人讲信服了,就可以甩锅给网络,不然只能是APP代码背锅了。现实吧!

所以,我们还是老老实实花点功夫来研究研究通信技术吧(通信技术直面的是网络通信物理层),至少遇到问题,不说给别人,至少给自已找到一个说的过去的解释。这才是一个优秀程序员的修养!

1.3本系列文章的价值


网上能找到的通信技术资料都太过专业或太不专业,要么都是搞网络工程方面的内行人编写的(内容专业但很枯燥难懂),要么就是外行的IT开发人员写的(很少见,且价值不大,因为不够专业,所以内容并不准确,参考价值很有限)。

既能让外行的普通程序员看懂,还能准确地讲明白通信技术知识,这样的资料简直比找金矿还难。因为普通程序员能接触到的网络编程、网络通信方面的资料多针对数据通信的逻辑层(比如:tcpip、socket等知识范畴),而通信技术涉及的是数据通信的物理层(交换机、路由器、天线、网络制式等),某种意义上来说,这是完全不同的技术方向。

好消息是,经过长时间的资料搜集,终于有了本系列文章,希望能给你带来帮助。

1.4拓展阅读


即时通讯网之前已经整理过《移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”》、《移动端IM开发者必读(二):史上最全移动弱网络优化方法总结》、《现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障》这几篇初涉通信层的文章,但都因技术广度和深度有限,能带给读者的帮助比较局限。如果您看过这几篇文章,那么一定不要错过本次的《IM开发者的零基础通信技术入门》系列文章

另外,如果您对最基本的程序员本该掌握的网络编程知识都还不怎么了解的话,建议首先阅读网络编程懒人入门系列文章》、《脑残式网络编程入门系列》,以及更高深一点的《不为人知的网络编程系列文章》。

1.5番外:通信技术女神镇楼


IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_htlm.jpg
▲ 史上最高颜值科学杂志封面,人物为 “CDMA之母”——海蒂·拉玛(一个被演艺事业耽误的科学女神)

2、本系列文章目录


IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)
IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)
IM开发者的零基础通信技术入门(三):国人通信方式的百年变迁
IM开发者的零基础通信技术入门(四):手机的演进,史上最全移动终端发展史
IM开发者的零基础通信技术入门(五):1G到5G,30年移动通信技术演进史
IM开发者的零基础通信技术入门(六):移动终端的接头人——“基站”技术
IM开发者的零基础通信技术入门(七):移动终端的千里马——“电磁波”
IM开发者的零基础通信技术入门(八):零基础,史上最强“天线”原理扫盲
IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”》(* 本文
IM开发者的零基础通信技术入门(十):零基础,史上最强5G技术扫盲
IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!
IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!
IM开发者的零基础通信技术入门(十三):手机信号差?一文即懂!
IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
IM开发者的零基础通信技术入门(十五):理解定位技术,一篇就够

3、本文内容概述


两年前,我在为即时通讯网整理各种类IM文章的时候,一些通信层的技术疑问,受限于对移动端无线通信底层技术的设计和原理了解不多,苦于找不到让人信服的答案。最后没办法,只能去买专业的通信技术书籍来啃,这些书籍里介绍无线通信技术的时候,“核心网”这个东西几乎是无处不在,能明显感觉到它的重要性。这次正好专门整理《IM开发者的零基础通信技术入门》系列文章,所以单独把有关“核心网”的这个知识拎出来大家一起学习,对于加深对无线通信技术的理解是很有好处的,希望文章内容能帮助到你。

对于通信专业的人来说,几乎每个人都认为核心网难(不只是难,而且是非常难),很难有人能通俗易懂地讲明白它是什么东西。所以本文想借此机会,为零基础的IM开发者或其他移动端应用层程序员们,讲清楚这个话题。

4、什么是核心网?


核心网的英文叫Core Network(核心网络),简称CN,嗯,没错,和我们伟大祖国的英文简称是一样的。

关于核心网的定义,大家千万别去看百度百科,里面的说法要么是废话,说了等于没说,要么不是人话,完全看不懂。

那究竟该怎么定义呢?说实话,迄今为止,我没有见到任何一个能让人满意的回答。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_2.jpg

不是我故弄玄虚,而是这个概念真的很难定义——如果从广义的角度来解释,很难划定边界,如果从狭义的角度来解释,又没有任何一个实体准确与之对应。

它实际上是一个集合,是很多“具有特定功能的设备”的统称。

为了方便理解,大家可以把核心网视为一个“非常复杂的加强版路由器”。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_3.jpg
▲ 核心网可以视为一个“非常复杂的加强版路由器”

通信网络的三大组成部分:接入网、承载网、核心网。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_4.jpg
▲ 通信网络的组成部分

通信网络组成部分的通俗解释:

  • 1)接入网是“窗口”,负责把数据收上来;
  • 2)承载网是“卡车”,负责把数据送来送去;
  • 3)核心网呢,就是“管理中枢”,负责管理这些数据,对数据进行分拣,然后告诉它,该去何方。

而对数据的处理和分发,其实就是“路由交换”,这是核心网的本质。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_6.jpg

因此,对于通信专业的同学来说,如果你要立专要从事核心网,恭喜你,《电磁场和电磁波》可以扔了!不过,请去隔壁计算机专业那边,借一本《计算机网络(自顶向下方法)》。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_7.jpg
▲《计算机网络(自顶向下方法)》封面

5、核心网为什么复杂?


核心网之所以复杂,其实是人为造成的。再具体一点说,就是因为市场的需要。用户产生欲望,市场制造欲望,欲望越多,需求越多,需求越多,业务越多。业务越多,设备越多,接口越多,网络越复杂。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_8.jpg

整个通信,亦是如此。最早的时候,固定电话网的核心网,说白了就是把电线两头的电话连接起来,这种交换,非常简单。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_9.jpg

后来,用户数量越来越多,网络范围越来越大,开始有了分层。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_10.jpg

网络架构也复杂了,有了网元。网元就是Net Element(网络单元),简称NE,是具有某种功能的网络单元实体。同时,我们要识别和管理用户了——不是任何一个用户都允许用这个通信网络。只有被授权的合法用户,才能使用。于是,多了一堆和用户有关的设备(网元)。

简而言之,它们的核心任务只有三个:认证、授权和记账

  • 1)认证:就是看你是不是合法用户,有没有密钥;
  • 2)授权:就是看你有权限做什么事,哪些服务可以用,哪些不能用;
  • 3)记账:就是看你做了哪些事,然后记录下来,收你的钱。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_11.jpg

再后来,有了无线通信,连接用户的方式变了,从电话线变成无线电波,无线接入网诞生。

接入网变了,核心网也要跟着变,于是有了无线核心网。

再再后来,有了2G,3G,4G。每一代通信标准,每一项具体制式,都有属于自己的网络架构,自己的硬件平台,自己的网元,自己的设备。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_12.jpg
▲ 硬件平台随时代发展(以某厂家为例)

于是,这个网络就变得空前复杂。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_aa[低清].jpg
▲ 这张图,只是一个LTE而已... 本图很模糊,高清图请在下方附件下载!

友情提示:上面“LTE_Network_Reference”这张图的高清版在网上很难找到,但即时通讯网已为你备好,请在下方附件点击下载!
LTE_Network_Reference_v3.2[PDF高清矢量图](52im.net).zip (2.44 MB , 下载次数: 19 , 售价: 2 金币)

6、为何新通信标准的出现,运营商都要换新的设备?


主要原因在于以下几个方面。

【第一】:因为用户数量激增,无线速率激增,所以网络设备的数据处理能力必须随之激增:

处理器的运算速度激增,设备单板端口数量和带宽激增(电口变光口),内部线路(总线)的带宽激增。就像我们的电脑一样,以前是586,1M网卡,后来是奔腾处理器,100M网卡,现在是酷睿处理器,1000M网卡。这就是升级换代,速度和性能的提升。

【第二】:就是我前面说的,业务变得无比复杂了:

最开始是打电话,后来多了发短信,再后来,多了上网(数据业务)。

你以为就这三种简单业务?细究起来,远远不止啊:以前是后付费,你打电话,我记账,月底给你账单。

后来,有了预付费,你先存钱,你打电话的同时,我随时盯着你,只要你的余额一用完,我立刻掐掉你的电话。

为了实现“预付费”这个功能,我们多了“智能网”设备。

以前发文本短信,后来要发彩信。

以前电话振铃就是嘟嘟嘟,后来有了彩铃。

以前电话号码是正常位数,现在多了短号码,多了集团用户,多了特服号码(不是你想的那种“特殊服务”啊,是110,119,120这种特殊情况服务号码)。更别说还有变态的一卡双号和一号双卡。

以前上网就是统一按流量收费,现在有了定向免流量(像腾讯大王卡这样)

……

所有这些特殊的业务,都带来了新网元,新设备,新功能,从而导致整个核心网,越来越庞大,越来越复杂

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_13.jpg

这个图不要细看了,很抑郁的。。。

7、小结一下无线通信和核心网的复杂性


个人认为,无线的难,难在空中接口、信道。

站在研发的角度,编解码方式的设计、调制解调方式的设计、天线的设计、算法、仿真等,都难。然后,网络的性能指标、参数设置、手机状态、阀值、兼容问题等,也难(尤其是对网优工程师)。但是,终究都是围绕空口这一个接口转,标准流程并不算复杂,涉及的网元也不多。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_14.jpg

而且,对于一线工程师来说,理论部分都是顶层设计好的,不需要改动(例如前面说的编码方式、信道设计、物理层结构),所以,实际工作中,这一方面要好一些。更多的工作难度,是来自于基站的数量。一个项目,几千个站,需要把它们都照顾好,经常要下站点,是体力上的考验、困难。

但是,核心网恰好相反。核心网,就是路由交换,打包发包,围着协议栈、TCP/IP、OSI模型、报文转,没有空间波那些高深的理论,也不需要想破头去考虑如何突破速率瓶颈和对抗干扰。但是,它涉及的功能性网元种类多,网元与网元之间的接口非常多。不同的接口,使用的是不同的协议,要记住的协议细节很多。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_15.jpg
▲ 数不清的接口

而且,核心网有各种业务,例如短信、智能网、VoLTE等,业务的流程非常复杂,涉及到很多网元的配合,甚至跨网络类型(例如同时接入3GPP无线和Non-3GPP无线)。

IM开发者的零基础通信技术入门(九):无线通信网络的中枢——“核心网”_16.jpg
▲ 核心网业务流程举例

所以,核心网的一线工程师之所以难当,就是难在业务流程、业务对接和协议参数上。

此外,就是各种网元的各种数据配置项,非常复杂。再有一个,复杂的网络,一旦出现问题,排查起来非常困难。

不过和无线相比,核心网有一点优势,就是KPI指标。无线非常关注指标,而核心网对指标其实并不是特别care。不是指标不重要,而是说,核心网,要么就是对的,要么就是错的,一旦能接通,就每次都能,不存在说有时候成功,有时候失败。而无线空口的话,就说不准了。

除了技术难度的压力外,核心网因为承载动辄百万千万的用户,一旦出事,就是大事,所以精神压力会远远大于无线工程师,这是另话。正是因为核心网的技术难度,加上责任艰巨,使得核心网工程师在同行面前,拥有相当不错的“江湖地位”。

不过,这个地位仅限于精神上,至于说经济地位,很抱歉,这是不存在的,你就不要想太多了……

附录:更多网络编程干货文章


计算机网络通讯协议关系图(中文珍藏版)[附件下载]
TCP/IP详解 - 第11章·UDP:用户数据报协议
TCP/IP详解 - 第17章·TCP:传输控制协议
TCP/IP详解 - 第18章·TCP连接的建立与终止
TCP/IP详解 - 第21章·TCP的超时与重传
技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)
通俗易懂-深入理解TCP协议(上):理论基础
通俗易懂-深入理解TCP协议(下):RTT、滑动窗口、拥塞处理
理论经典:TCP协议的3次握手与4次挥手过程详解
理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程
计算机网络通讯协议关系图(中文珍藏版)
UDP中一个包的大小最大能多大?
P2P技术详解(一):NAT详解——详细原理、P2P简介
P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解
P2P技术详解(三):P2P技术之STUN、TURN、ICE详解
通俗易懂:快速理解P2P技术中的NAT穿透原理
高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少
高性能网络编程(二):上一个10年,著名的C10K并发连接问题
高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了
高性能网络编程(四):从C10K到C10M高性能网络应用的理论探索
高性能网络编程(五):一文读懂高性能网络编程中的I/O模型
高性能网络编程(六):一文读懂高性能网络编程中的线程模型
不为人知的网络编程(一):浅析TCP协议中的疑难杂症(上篇)
不为人知的网络编程(二):浅析TCP协议中的疑难杂症(下篇)
不为人知的网络编程(三):关闭TCP连接时为什么会TIME_WAIT、CLOSE_WAIT
不为人知的网络编程(四):深入研究分析TCP的异常关闭
不为人知的网络编程(五):UDP的连接性和负载均衡
不为人知的网络编程(六):深入地理解UDP协议并用好它
不为人知的网络编程(七):如何让不可靠的UDP变的可靠?
网络编程懒人入门(一):快速理解网络通信协议(上篇)
网络编程懒人入门(二):快速理解网络通信协议(下篇)
网络编程懒人入门(三):快速理解TCP协议一篇就够
网络编程懒人入门(四):快速理解TCP和UDP的差异
网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势
网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门
网络编程懒人入门(七):深入浅出,全面理解HTTP协议
网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解
让互联网更快:新一代QUIC协议在腾讯的技术实践分享
现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障
聊聊iOS中网络编程长连接的那些事
移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”
移动端IM开发者必读(二):史上最全移动弱网络优化方法总结
IPv6技术详解:基本概念、应用现状、技术实践(上篇)
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
脑残式网络编程入门(三):HTTP协议必知必会的一些知识
脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
脑残式网络编程入门(五):每天都在用的Ping命令,它到底是什么?
脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?
以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
迈向高阶:优秀Android程序员必知必会的网络基础
全面了解移动端DNS域名劫持等杂症:技术原理、问题根源、解决方案等
美图App的移动端DNS优化实践:HTTPS请求耗时减小近半
Android程序员必知必会的网络通信传输层协议——UDP和TCP
>> 更多同类文章 ……

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:IM开发者的零基础通信技术入门(八):零基础,史上最强“天线”原理扫盲下一篇:IM开发者的零基础通信技术入门(十):零基础,史上最强5G技术扫盲

本帖已收录至以下技术专辑

推荐方案
评论 5
做过2年核心网,文中最后的信令图是终端附着到EPC的流程(主要作用就是给你分配一个IP地址,打通数据面的通道),如果点击手机上飞行模式那个开关,就会去附着(也就是脱网)
引用:cgm 发表于 2020-08-18 15:43
做过2年核心网,文中最后的信令图是终端附着到EPC的流程(主要作用就是给你分配一个IP地址,打通数据面的通 ...

我对通信方面的专业了解的不多,一直想知道你们的工作,在大学里对应的是哪些专业?
平时的工作内容,有没有涉及到代码开发?代码开发主要是针对什么样的业务和具体的工作?
引用:JackJiang 发表于 2020-08-18 15:52
我对通信方面的专业了解的不多,一直想知道你们的工作,在大学里对应的是哪些专业?
平时的工作内容,有 ...

通信工程,其实很多该系列文章提到的内容都学过,但因为知识体系太过庞大,有些也是选修课程(比如天线那里)。通信专业大多用MATLAB仿真,代码开发也有,具体都是通信架构模型中的某个环节,比如信道编解码、调制解调等。工作后,就是个程序猿,搞预研、算法等的那些除外
引用:cgm 发表于 2020-08-18 16:23
通信工程,其实很多该系列文章提到的内容都学过,但因为知识体系太过庞大,有些也是选修课程(比如天线那 ...

学习了
学习了
签名: read the fucking source code
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部