计算机学院或者软件学院毕业的小伙伴必然学过《计算机网络》这门课,作为一个小小的考验,我们来稍微思考一下这么一个问题:
  计算机的通信协议跟手机的通信协议有什么区别?TCP/IP协议和4G/5G的LTE,GSM等区别。
  要解释这个问题,先从分层模型讲起。在课本中会给出国际标准化组织ISO的OSI七层模型和TCP/IP五层模型。

  这张图可以说相当经典,每本课本讲到这里都还会举个坐飞机的例子。说到分层的优点大家都会背:

(1)人们可以很容易的讨论和学习协议的规范细节。
(2)层间的标准接口方便了工程模块化。
(3)创建了一个更好的互连环境。
(4)降低了复杂度,使程序更容易修改,产品开发的速度更快。
(5)每层利用紧邻的下层服务,更容易记住个层的功能。

但其实很难体会它真正的用处。看完下面的讲解大概就能体会到分层的好处了。
  TCP/IP通过竞争慢慢地战胜了其它一些网络协议方案,包括OSI七层模型。TCP/IP实际上是一个四层的体系结构,主要包括:应用层传输层网络层网络接口层。如图:

从实质上讲,TCP/IP协议栈起始于第三层协议IP(互联网协议) 。所有这些协议都在相应的RFC文档中讨论及标准化。可以说TCP/IP协议栈只有上边三层,网络接口层没有什么具体的内容。

  值得一提的是,重要的协议在相应的RFC文档中均标记了状态: 必须 (required) ,推荐(recommended) ,可选(optional) 。其它的协议还可能有"试验"(experimental) 或"历史"(historic) 的状态。如图:

  所有的TCP/IP应用都必须实现IP和ICMP。应用层和网络接口层的大部分协议都 并不是TCP/IP协议组的“必须”协议。也就是说网络接口层的协议有多种选择。

有线局域网

  目前的以太网几乎占领着所有的有线局域网市场。在早些时期,还有其它的局域网技术,如令牌环FDDIATM(Asynchronous Transfer Mode,异步传输模式)等等。虽然这些技术也抓住了部分市场,但是以太网1980发明以来,就不断演化和发展。直到今天,以太网成为应用最广泛的有线局域网技术,以至于以太网几乎成为局域网的代名词
  以太网并不是单一的协议标准,它有很多技术,如:10BASE-T、10BASE-2、100BASE-T、1000BASE-LX和10GBASE-T,这些已经被IEEE 802.3工作组标准化了。其中10和100表示速率,10Mbps、100Mbps和10Gbps。"BASE"指基带以太网,几乎所有的802.3标准都适用于基带以太网。最后一部分指物理媒介,以太网是链路层和物理层的规范(统称网络接口层),并且能够使用各种物理媒介,如:同轴电缆、铜线和光纤。一般来说,T是指双绞线,我们平时用的网线都是双绞线。

无线局域网

  无线局域网和有线局域网一样,上世纪90年代研发了很多无线局域网的标准和技术。但目前来看,有一类标准明显已经成为了赢家:IEEE 802.11 无线LAN,也称WiFi。没错,我们平时说的连WiFi、蹭WiFi,指的就是这个。
  IEEE 802.11协议族有几套无线局域网的标准,如下表:

标准 频率 最大速率
802.11b 2.4GHz 11Mbps
802.11a 5GHz 54Mbps
802.11g 2.4GHz 54Mbps
802.11n 2.4GHz,5GHz 450Mbps
802.11ac 5GHz 1300Mbps

  不同的802.11标准都具有一些共同的特征,例如:都使用相同的媒体访问协议CSMA/CA;链路层都使用相同的帧结构;都具有减少速率以伸展到更远距离的能力。
  802.11设备工作在两个不同的频段上:2.4到2.485GHz(称为2.4GHz频段)和5.1~5.8GHz(称为5GHz频段)。2.4GHz频段是一种无须执照的频段,也就意味着,同样使用2.4GHz的电话、微波炉、蓝牙耳机等设备可能会争用该频段。我之前就有过体会,笔记本连的是WiFi(2.4GHz),连上蓝牙耳机后网络就有点卡。我们也可以在网络属性里看到,如图:

  我的无线网卡虽然支持802.11n协议,但是只工作在2.4GHz频段,就算工作在5GHz频段,速率也是没有802.11ac快的。现在市面上的笔记本的无线网卡基本上都支持WiFi 6了。早在2018年,Wi-Fi联盟便将基于802.11ax标准的Wi-Fi正式纳入正规军中,通过推广802.11ax的机会,将Wi-Fi规格重新命名,新标准802.11ax改名为Wi-Fi6。具体对应关系如下表:

标准 名称
802.11 n Wi-Fi 4
802.11ac Wi-Fi 5
802.11ax Wi-Fi 6

下面开始链路层和物理层合称网络接口层。

蓝牙和ZigBee

  除了WiFi以外,还有两个无线协议:蓝牙和ZigBee。蓝牙定义在IEEE 802.15.1标准中。IEEE 802.15.1网络以低功率和低成本在小范围内运行,本质上是一个"电缆替代"技术。平时我们也能发现,蓝牙主要用于计算机与无线键盘、鼠标、耳机等外部设备的互联。所以蓝牙也被称为无线个人域网络(Wireless Personal Area Network, WPAN)。蓝牙也是定义的网络接口层,以TDM方式工作于无须许可证的2.4GHz频段。802.15.1能提供高达4Mbps的数率。蓝牙通常用于自组网络,也就是不需要网络基础设施(如AP)来互连蓝牙设备。这就意味着蓝牙不能上网。
  有人可能会问,同样是无线协议,同样定义在网络接口层,为什么WiFi能上网,而蓝牙就不行。我们讲下层为上层协议提供了一个统一的接口,隐藏了实现细节,网络层并不关心底层是双绞线还是无线,不管你是以太网还是WiFi,它只是通过接口获取下层提供的服务。那么为什么蓝牙不行?
  虽然蓝牙协议结构和802.11协议的结构图类似,都包括最下的物理层和中间的数据链路层,但是蓝牙协议还包括了一个中间层协议和最后的应用层协议。而且,某些控制数据和音频数据完全不经过中间层,是直接从Baseband到达应用层,甚至也跨过了部分数据链路层的结构。所以蓝牙并不能加入TCP/IP体系,也就不能上网。不过倒也有方法,两台手机开启蓝牙共享功能,一台手机通过移动数据或者WiFi联网,另一台手机可以在只开启蓝牙的情况下上网
  ZigBee被定义在IEEE 802.15.4标准中。它与蓝牙目标不同。ZigBee的服务目标是低功率、低速率、低工作周期的应用。因为并非所有的网络应用都需要高带宽和随之而来的高成本。比如,家庭温度和光线传感器、安全设备和墙上安装的开关都是非常简单、低功率、低工作周期、低成本的设备。ZigBee非常适合这些设备。和蓝牙一样,也是用于自组网络(Ad Hoc)。

移动蜂窝网络

  虽然目前5G已经大行其道,但我们依然拿4G来举例,原理都差不多。
  首先,4G也是属于网络接口层,也就是说,我们使用4G上网,上层还是走的TCP/IP协议栈。有人可能联想到WiFi,同样是定义了物理层和链路层,上层同样是TCP/IP协议栈,同样是无线网络协议,是不是WiFi和4G就差不多呢。
  实际上,4G和WiFi非常不同。举几个我们能明显感受到的不一样:不管是以太网还是WiFi,都有MAC地址和网关;而在4G里面没有MAC地址和网关的概念(如果要类比的话可以把PGW看作是网关,它负责分配IP和DNS)。如图:


  说到4G就不得不说到一个组织:3GPP。很多人以为3GPP是制定3G标准的,其实不是,他们是负责整个移动蜂窝网络的标准化工作的。另外很多人会把4G和LTE混为一谈。4G全称是第四代移动通信技术(the 4th generation mobile communication technology),只是一个标准,是由3GPP组织负责定制的。只要你的协议能达到4G的标准,你就可以称为4G。
  至于为什么需要蜂窝网络,而不直接使用WiFi作为无线接入,那是因为WiFi接入区域范围在10~100米。因此我们需要在WiFi热区外接入互联网时就需要蜂窝网络。因为蜂窝电话早就已经普及了,很自然想到扩展蜂窝网络,使它们不仅支持语言电话,也支持无线互联网接入。
  不过4G和之前的3代还是很有区别的。第一代(1G)系统是模拟FDMA系统,专门用于语音通话。后来被2G系统替代,2G系统也是为语音通话设计的,后来扩展了对因特网的支持(2.5G)。3G系统支持语音和数据,但更强调数据能力和更高速的无线接入。到了基于LTE技术的4G系统,其特征是全IP核心网络。
  现在我们打电话也是走的IP网络,不过也不是所有的都是。有这种场景:我们在接电话时就不能上网了,而且4G的标志也变成了2G。这因为语音服务用的不是上述模型,在打电话时,占用了4G所在的频段,所以就不能上网了。有一种VoIP的语音通话技术,它是基于IP的语音传输。在4G中的应用就是VOLTE。也就可以分为下面两种:

(1)VOLTE ,采用与数据传输同种形式。
(2)CSFB (电路域衰落),采用2G网络传输语音。

  当使用VOLTE技术时,会用到IP层及以上的部分协议。当采用CSFB衰落到2G网络时,运营商有专门的语音网络,在这个网络上只支持手机,不支持互联网其他设备接入,不必考虑其它层的数据封装。此时整个网络模型只有物理层和MAC层,没有上层。现在大部分手机都是使用VOLTE进行通话。

总结

  4G和WiFi都是属于网络接口层,上层都是走的TCP/IP协议栈。4G和WiFi都是输入接入网的范畴,核心网相同。WiFi属于局域网范畴,和以太网理念一样,底层使用MAC地址在局域网内通信。4G严格来说没有局域网的概念,使用移动数据网络时主要靠IMSI码,需要鉴权、注册等一系列动作,这些大部分靠我们插入的SIM卡来完成。总之,4G的技术比WiFi要复杂很多很多。因为4G要考虑的东西非常之多。4G相关的技术常见的有:

1、LTE技术标准。
2、LTE-Advanced技术标准(分为TD-SCDMA直接进化的TDD和WCDMA直接进化的FDD两种标准)。
3、WiMax技术标准。
4、HSPA+技术标准。
5、WirelessMAN-Advanced技术标准。

  我国三大运营商采用的都是第2种技术,FDD-LTE和TDD-LTE都有。蜂窝网络是一个庞大的体系,无法详尽展开,在《计算机网络·自顶向下》这部书中的第7章有详细的介绍,这本书也是我老师推荐我读的,确实不错,对于想深入了解计算机网络的可以看看。这本书已经出到了第7版,目前最新的一版。为了方便大家学习,我已经将其打包,可以在公众号:极客随想中获取。在公众号内回复消息:计算机网络。就可获取资源。

一文彻底弄清4G/蓝牙/WiFi/TCP/IP之间的关系相关推荐

  1. http和https和ssl和tcp/ip之间的关系和区别

    1.http解释 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准,HTTP是客户端浏览器或其 ...

  2. Swoole的TCP/IP HTTP WebSocket关系

    1.网络分层层级 2.ws的由来 我们知道HTTP是为了规范HTML页面的发布.接收而提出的. 为了规范HTML5,WebSocket协议提出了. 3.长轮训短轮询 短轮询的方式是:页面定时向服务器发 ...

  3. 计算机网络基础:OSI模型与TCP/IP协议的关系

    数据来源 一.分层模型 1)分层思想(把复杂的事情简单化) 通信需要 --> 定义协议标准 完成每一件事,需要的协议太多,怎么办 ?分层,分工合作 将复杂的流程分解为几个功能相当单一的子流程 - ...

  4. sequelize模型关联_Sequelize 中文API文档-3. 模型(表)之间的关系/关联

    模型(Model)之间存在各种各样的关系,如:一对一(One-To-One ).一对多(One-To-Many)等.模型间的关系本质上是对其代表的数据库中表之间的关系描述,通过这些关系可以实现数据库中 ...

  5. HTTP协议与TCP/IP协议的关系

    HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠 ...

  6. dataset__getitem___一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    以下内容都是针对Pytorch 1.0-1.1介绍. 很多文章都是从Dataset等对象自下往上进行介绍,但是对于初学者而言,其实这并不好理解,因为有的时候会不自觉地陷入到一些细枝末节中去,而不能把握 ...

  7. 查看dataloader的大小_一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    以下内容都是针对Pytorch 1.0-1.1介绍. 很多文章都是从Dataset等对象自下往上进行介绍,但是对于初学者而言,其实这并不好理解,因为有的时候会不自觉地陷入到一些细枝末节中去,而不能把握 ...

  8. 一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系

    自上而下理解三者关系 首先我们看一下DataLoader.__next__的源代码长什么样,为方便理解我只选取了num_works为0的情况(num_works简单理解就是能够并行化地读取数据). c ...

  9. lwip协议栈在linux运行,2.通过LWIP协议栈使用学习http,tcp,网卡之间的关系.

    这是LWIP  路由器里能看到获取IP,但ping不通 [main.c@0088]:Build DateTime:Sep 15 2020 11:43:50 [main.c@0089]:Project ...

最新文章

  1. 杂项题的基本解题思路——1、文件操作与隐写
  2. linux 定时执行shell脚本 定时任务
  3. Socket请求获取数据
  4. 怎样取消Windows 2003 server 意外关机提示
  5. explain分析执行计划
  6. access课程均不及格_access 第二章 查询 练习题 -
  7. 数据服务器性能测算依据,如何对服务器性能计算的公式参考(tpmc-tpcc).pdf
  8. 程序员在囧途之我是一头牛
  9. 2017年网易校招题 数字翻转
  10. 年薪80万难求一名AI程序员,技术革新世界已到来!
  11. 苹果笔记本能玩英雄联盟吗_《英雄联盟手游》日服安卓和ios数据互通说明 安卓和ios可以一起玩吗_英雄联盟手游...
  12. 计算机专业助我成长作文600,我在成长作文
  13. USBCNC导入DXF文件
  14. Python爬虫前置知识
  15. 2021-07-23 N卡显示器亮度设置
  16. 智能化生鲜配送系统,让采购更高效
  17. python分层抽样_基于列的sklearn分层抽样
  18. Android 隐私合规API检查方案
  19. 关于java的反编译的一些坑,反编译后代码中的$+数字是什么
  20. Android切换深色模式导致布局字体变小的解决方案

热门文章

  1. sketchup制作模型加载进cesium
  2. Arp中间人攻击原理
  3. v-if绑定的元素为什么事件没有响应
  4. ibm java虚拟机_IBM J9 Java虚拟机正式开源,贡献给Eclipse基金会管理
  5. STM32 CAN总线通信学习笔记(一)
  6. android自动照相机2.0,Camera2.0下载
  7. 开源office办公套件
  8. as打开时出现The environment variable JAVA_HOME (with The value of C:\Java\jdk1.8.0_101\bin) does not poin
  9. 谷歌宣布加入“反微软联盟”
  10. android实现高德地图集成