美文网首页小菜学网络我爱编程
网络七层协议之物理层

网络七层协议之物理层

作者: fasionchan | 来源:发表于2018-08-09 18:30 被阅读22次

我们以一个非常简单的例子开始:

两服务器通讯问题

两服务器通讯问题

如上图,有两台服务器,分别是 Server 1Server 2 。 我们先做一个假设:计算机网络现在还没有被发明出来, 作为计算机科学家的你,想在这两台服务器间传递数据,怎么办?

原文地址:https://learn-linux.readthedocs.io
QQ交流群:Linux网络编程,群号:183196643
欢迎关注我们的公众号:小菜学编程 (coding-fan)

这时,你可能会想到,用一根电缆把两台服务器连接起来:

通过电缆实现通讯

物理课大家都学过,电线可以分为 低电平高电平 。 电平可以高低变化,这样不就可以传递信息了么: Server 1 控制电缆电平的高低, Server 2 检测电平的高低,这样就实现了 Server 1Server 2 发送数据啦!

更进一步,可以将高低电平抽象成数学语言:我们用低电平表示 0 ,高电平表示 1 ,这样就得到一个理想化的信道:

理想化信道

通过信道,双方可以传递一些 01 比特流。 例子中,我们传输的比特流是 1111010101... (从右往左看)。 比特流可以编码任意信息: 比如,我们用 1111 表示告诉对方本地开机了,用 0000 告诉对方本地准备关机了。

到目前为止,我们是不是万事具备了呢? 一个比特流信道成为现实?——理论上是这样子的。 但是,现实世界往往要比理想化的模型复杂一些。

发送控制

信道无穷无尽

首先,如上图,信道是无穷无尽的。 因为,信道状态要么为 0 ,要么为 1 ,没有一种表示空闲的特殊状态。

结尾在哪?

举个例子,如上图, Server 1Server 2 发送比特序列 101101001101 (从右往左读)。 最后一个比特是 1 ,对应的电平是高电平。 发送完毕后,由于没有没有其他地方改变电缆的电平,所以还是维持高电平状态。 也就是说,信道看起来还是按照既定节拍,源源不断地发送 1 (灰色部分), Server 2 怎么检测结尾在哪里?

我们可以定义一些特殊的比特序列,用于定义开头结尾: 101010 表示开头, 010101 表示结尾。

.引入控制比特

这时, Server 1 先发送 101010 (红色),告诉 Server 2 我要开始发数据了; 然后, Server 1 开始发送数据 1101011 (黑色部分); 最后, Server 1 发送 010101 (绿色),告诉 Server 2 数据发送完毕。 注意到,平时信道为 1 (灰色),也就是代表空闲状态。

冲突仲裁

如果两台服务器同时往信道里发送数据,会发生什么事情呢?

发送冲突:两台服务器同时发送数据

肯定冲突了嘛!一台发 0 ,一台发 1 ,那你说信道到底是 0 还是 1 ? 那么,冲突要怎么解决呢?

解决方式也简单,只需在硬件层面实现一种机制:在检测到两台服务器同时发送数据时,及时喊停,并协商到底由哪一方先发。

总结

本节讨论了一个最简单的模型,解决两台服务器之间的通讯问题。 通过电缆,在两台机器间建立了一个理想的比特流传输信道。 这其实就是网络分层结构中最底层——物理层的作用:

  • 传输比特流
  • 依赖物理(电气)特性

这一层对开发人员来说,基本上是透明的,我们只需将其理解成一个比特流传输信道即可。 至于细节问题,高低电平啦,信号啦,各种物理特性啦,通通留给电子工程师去关心好啦!

进度

新技能Get✔️

下一步

下一节,我们将通过 多服务器通讯问题 进入 数据链路层 的学习。

订阅更新,获取更多学习资料,请关注我们的 微信公众号

小菜学编程

相关文章

  • iOS socket网络编程(二)

    网络七层协议 网络七层协议由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数...

  • tcp/ip和udp--http/https

    网络七层协议 网络七层协议由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数...

  • socket网络编程(二)

    网络七层协议 网络七层协议由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数...

  • day24 OSI、TCP、TCP三次握手

    Linux计算机网络中网络协议 OSI Open System Interconnection 七层协议 物理层:...

  • Socket、TCP、UDP、HTTP、HTTPS

    网络七层协议 网络(OSI)七层协议由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中...

  • 网络编程09_Socket TCP UDP HTTP HTTPS

    网络七层协议 网络(OSI)七层协议由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中...

  • iOS知识整理-网络

    HTTP协议(超文本传输协议) OSI网络七层协议:应用层、表示层、会话层 、传输层、网络层 、数据链路层、物理层...

  • Python-Net编程

    网络编程 网络: 网络协议: 一套规则 网络模型:七层模型-七层-理论物理层数据链路层网络层传输层会话层表示层应用...

  • 网络协议

    网络协议 网络七层协议 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP/IP五层模型的协议 应...

  • OSI七层

    网络中的七层协议为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。那么介绍一下在网络七层协议中传输数...

网友评论

    本文标题:网络七层协议之物理层

    本文链接:https://www.haomeiwen.com/subject/dldbvftx.html