计算机眼睛里只有0、1,计算机上看到的汉字、英文字母、数字、特殊符号,在计算机眼里也是由0、1组成的串串。

当把“01100011”存储到物理介质上,这个二进制流在不同介质有不同的表示方法,硬盘、光盘、磁带机、U盘对这个串串,肯定有不同的表现形式,但计算机并不care,因为下次读取介质时,依然会读取“01100011”,0是一种状态,1是另一种状态,写入/读取数据时,遵从同样的标准,读取数据时,才能还原出原始的数据,对吗?

同理,当传输“01100011”时,无论是采用电信号、光信号、电磁信号,只是每种传输介质对于0、1的不同呈现形式,只要通信的双方遵从同样的标准,发送方把0、1以特有的信号状态,把“01100011”编码成一串状态流,接收方再把这串状态流还原成“01100011”,这就是计算机通信的基础原理,这就是大名鼎鼎的OSI参考模型物理层

可是,信号在传输时,可能由于信号传输距离过长,而衰减太厉害,以至于接收方无法把信号还原成“01100011”,而是还原成“01100010”。发送方为了让接收方能够校验数据,通常在数据末尾附有数据校验,这里自然会校验失败而丢弃,这就是丢包。丢包就是不再处理这串数据流,也不会朝着目的地的方向继续发送。

还有,信号遭遇噪音干扰、线缆质量粗劣而产生信号差错,也会造成丢包。丢包的可能性有几十种之多,如网络拥堵、TTL=0、报文尺寸大于上限、报文尺寸小于下限、没有路由指示、防火墙过滤、网速限制等等。

Internet对IP地址统一管理,Internet基础架构已经为这些IP生成了导航指示,这就是我们经常听到的全球路由表,这些路由表可以帮助IP报文导航到目的地,同时返程的IP报文也可以借助这个导航信息返回原始发送方。

介绍了以上的背景知识,聪明的读者可以逻辑推理,用户发送的“01100010”数据前一定有目的IP、源IP地址。目的IP的存在是为了到达目的地,源IP的存在是为了IP报文能够返回,即一来一回。这个就是打遍天下无敌手的IP协议,对应OSI参考模型的网络层

Internet是开放互联的,一台电脑一根网线就可以连上Internet访问世界上任何电脑了,这听起来很诱人,坏人也是这么想的。

在Internet上传输的数据,如果没有加密,比如http,那就是数据在裸奔,只要坏人能捕获到流量,就能看到裸奔的数据,还能篡改数据,这令人毛骨悚然。

但坏人要看裸奔的数据,首先要保证流量流经坏人控制的设备,这个有点难度。

需要将用户裸奔的数据加密传输,到达终点再解密成明文数据,这样坏人就没有办法偷窥、篡改数据了,即使捕获到流量也毫无办法,因为加密/解密 密钥只有发送方、接收方知道,其它第三方都不知道,也就没有办法解密。

常用的加密技术有TLS、SSH、IPsec

所谓加密、解密就是将明文数据“01100010”,变换成其它的表示形式,如“11011001”,变换后的串串已经和原始的串串已经大相径庭了,“11011001”即使在Internet上传输被坏人捕获,也无法还原其本来的样子。

那谁能把串串还原成其本来的面目,接收方!
接收方有解密的密钥、也知道解密的算法!
接收方可以小菜一碟地还原出“11011001”,这个解密/解密操作仿佛魔术游戏一般。

读者一定很好奇,接收方是如何知道解密算法、解密密钥的?原来在传输“11011001”之前,通信双方使用控制协议协商沟通,并就加密参数达成了共识。为了区别于数据传输通道,通常称这种控制协议为控制通道

更详细内容请关注微信公众号:车小胖谈网络
https://mp.weixin.qq.com/s/V8Su8BB-8oAAcZkQhdAQYQ

版权所有,禁止任何形式的转载!

来源:知乎 www.zhihu.com

作者:车小胖

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

此问题还有 37 个回答,查看全部。