移动终端访问互联网时socket的传输过程详解

http://www.zhihujingxuan.com/23124.html

http://www.zhihu.com/question/23989027/answer/33611749

http://www.zhihu.com/question/26558233/answer/33420469?utm_source=weibo&utm_medium=weibo_share&utm_content=share_answer&utm_campaign=share_button

http://www.zhihu.com/question/27007503/answer/34900443?utm_source=weibo&utm_medium=weibo_share&utm_content=share_answer&utm_campaign=share_button


2G, 3G, 4G 制式各自是如何访问互联网资源的?TCP/IP协议栈是手机操作系统实现的还是基站实现的?


一个很庞大的问题,简单说说吧。

  • 其实可以把2G、3G、LTE这些个网络简单的看作是传输网络,通俗的说就像是快递公司,别人寄给你包裹(IP数据报文),或者是你把包裹寄出去,包裹里是什么东西由寄件人和发件人来决定。快递公司负责将包裹封装,分门别类,然后通过各种运输方式将包裹投送出去,并且需要保障包裹的完好性和准确性,最终投送到收件人手中。但是收件人和寄件人并不需要知道快递公司的投送方式,只要在规定的时间内完好无缺的将包裹投送到就行了。同样的,快递公司也不管包裹里是什么,就负责送出去就是了(当然,现实中的快递公司对寄送物品的内容是有要求的)。TCP/IP协议栈生成的IP数据报文可以类比为包裹的内容,故而应该是由手机(应用程序)以及外部网络来实现的。要注意的是这里的寄件人和收件人未必是一个个体(单部手机或者电脑),更多的可能是一家公司(比如服务器或者是某个网络)。关于移动通信网络是怎么连接互联网的,如果要简单的解释,以前的一篇回答可以参考:手机是如何通过基站接入互联网的? - 知乎用户的回答。在这里我们可以再从协议栈的角度补充一点内容:
  • 在计算机网络和通信网络的协议栈中经常会用到OSI七层参考模型,简单来说这个参考模型就两个定义:一是进行工作分工,每一层管好每一层自己的事情,其它层的工作内容不需要去关注。二是下一层为上一层服务,同时上层控制着下层,每一层和上一层以及下一层都要有标准化的接口,只要接口标准没变,那即使上一层或者下一层的工作内容变了都不会影响到这一层,OSI七层参考模型的详细定义和各层具体功能等等可以百度维基谷歌(注意,这叫参考模型,意味着是一个理想化的模型,通信协议栈并不是都严格按照OSI七层结构来的)。而TCP/IP协议为四层结构,底层的L2数据链路层和L1物理层并没有定义,因此需要借助其他相关协议才能实现最终的通信功能。

    这是一个在UMTS网络(WCDMA和TD-SCDMA)的RAN(Radio Access Network,无线接入网)中,IP数据报文在各层之中传输的一个过程(主要是用户面,还有一个是控制面,不过IP数据报文属于用户数据,放在用户面进行传输)。RAN的构成主要是两个,分别是散布各处的NodeB(基站)和在中心机房里的RNC(Radio Network Controller,无线网络控制器)。图中的PDCP子层、RLC子层、MAC子层构成L2(层2),在3GPP R99版本中由RNC负责,而到了R5(引入HSDPA技术)后,其中的MAC子层被下放至NodeB实现,底层的物理层(L1)则是由NodeB负责。当然了,我们的手机也需要有对应的L2和L1层,这样才能和RAN实现通信。这是一个在UMTS网络(WCDMA和TD-SCDMA)的RAN(Radio Access Network,无线接入网)中,IP数据报文在各层之中传输的一个过程(主要是用户面,还有一个是控制面,不过IP数据报文属于用户数据,放在用户面进行传输)。RAN的构成主要是两个,分别是散布各处的NodeB(基站)和在中心机房里的RNC(Radio Network Controller,无线网络控制器)。图中的PDCP子层、RLC子层、MAC子层构成L2(层2),在3GPP R99版本中由RNC负责,而到了R5(引入HSDPA技术)后,其中的MAC子层被下放至NodeB实现,底层的物理层(L1)则是由NodeB负责。当然了,我们的手机也需要有对应的L2和L1层,这样才能和RAN实现通信。

  • 传输的过程简单说就是手机发出给外部网络的IP数据报文或者是RAN从核心网PS域(Packet Switched,分组交换域)接收到的发往手机的IP数据报文在PDCP层中被压缩(目的在于提高效率),然后递交给RLC层进行分割、串接后放入RLC PDU(Protocol Data Unit,协议数据单元)中,接着再送往MAC层添加个MAC头字段变成MAC PDU发送到物理层,最后物理层需要添加CRC头、编码、交织,然后将这些数据转换成电磁波发射出去,RAN或者手机再通过同样的逆操作恢复出IP数据报文。如果是手机发往外部网络的IP报文需要由RAN传送至核心网PS域,同样的,外部网络发给手机的IP数据报文也是经由核心网PS域传送给RAN,再由RAN发给手机。RAN和PS域之间也需要通过一系列复杂的协议栈完成对IP数据报文的传输和还原,手机发送给外部网络的IP报文最后由PS域中的GGSN路由到其目的地址,GGSN也从外部网络接收发往手机的IP报文,并通过同样的方式发给RAN,再由RAN发给手机。关于RAN和核心网PS域是如何传输IP数据报文的内容略过,有兴趣的参考相应资料吧。
  • 这个过程有点像最开始提到的寄送包裹,将物品放入一个塑料袋中,塑料袋放入纸盒子里,纸盒子分门别类放到相应的篮子里,然后放上货车开始投送,到目的地后又同样的从车上卸货,将纸盒子拿出篮子,拆纸盒,拆塑料袋,还原最先的物品。

  • PS:上图有个小瑕疵,RLC下一层应该是MAC层,不应该又是PDCP层,将就看吧。PS2:这是基于UMTS网络的,其实在GPRS和LTE中也是类似的传输过程,只是各层的名字可能不一样,或者是各层所在的网元不一样,比如LTE里的L1和L2乃至控制面的L3都是在基站中实现的。PS3:一些名词读起来可能会很生涩,具体解释可以百度维基谷歌,这里就不啰嗦了。
以上都只是个人的简单理解,可能会有错漏,敬请谅解。实际上基于IP的业务在2G、3G、LTE网络中的传输还有许多复杂的、细节性的东西,比如IP地址的分配和管理、控制面的协议栈、各个网元之间接口的协议栈、PS域的移动性管理、物理层的操作(比如如何将数据转换成电磁波)等等一大堆,实在感兴趣并且想要深入了解的可以参阅3GPP相关协议规范或者此方面的专业书籍。

手机是如何通过基站接入互联网的?

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:ranger
链接:http://www.zhihu.com/question/23989027/answer/33611749
来源:知乎

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值