注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 感谢各位客官的到来,小站的已经免费运营了15年头了,如果您觉着好,看着文章写的不错,还请看官给小站打个赏~~~~~~~~~~~~~!

琐碎的想法(二)网络协议——人们给计算机的一组“约定”

其他 Kwanwooo 2566次浏览 0个评论 手机上查看

网络协议学习方式一

学习网络协议的入门多种多样,如果是从术语上来讲协议,大概是这样的。

  1. 协议的作用意义
  2. 协议的定义。
  3. 协议的发展。
  4. 协议的特点。

这是一种靠强记,通过实践来加深印象,最后不自知地了解网络协议的过程。有效但趣味寥寥。

网络协议学习方式二

这一次,我想从开创者的角度来分析,如何让两台计算机的应用进行通讯。
试想,如果我们抛弃所有现有的网络协议思维,把自己当做一个科研人员,那么如何才能让两台计算机的软件进行通讯呢?
这就需要我们发明一种机制能够实现通讯。
但是,做事最好不要从头开始,应该多借鉴前人的思想,回忆一下最初信息是如何传递的。

烽火对照计算机

还记得历史课本讲过的烽火台(敌人白天来临时就燃烟,夜间来犯就点火)吗?

假设,只有一个烽火台,给一个城传递信息。
我们可以从这个具体事务中提取他能够传递信息的几个最基础的要素。

要素名对应物
信息发布者烽火台的士兵
信息接收者城的士兵
信息烟、火
信息传递的规则敌人白天来临时就燃烟,夜间来犯就点火

而我们把几个基础要素转化到两台计算机上。

要素名对应烽火台对应计算机
信息发布者烽火台的士兵计算机A的软件a
信息接收者城的士兵计算机B的软件a
信息烟、火数据
信息传递的规则敌人白天来临时就燃烟,夜间来犯就点火两台计算机之间的“约定”

邮寄对照计算机

前三者都是实体,第四点需要我们好好理解,烽火台的士兵和城的士兵应该是在之前都清楚“敌人白天来临时就燃烟,夜间来犯就点火”这个规则,那么我们要实现通讯也需要实现一个规则,并且让双方事先清楚。

总结:通讯是需要双方默认都事先理解的一套“约定”

这时候,我们可以参考最常见的通讯方式之一的邮寄。

如果将一封邮件的构成要素和计算机的概念进行对比

信的构成计算机元素
收信人地址(城市、门牌号)计算机A的地址
收信人姓名计算机A中的a应用的位置
寄信人地址(城市、门牌号)计算机B的地址
寄信人姓名计算机B中的a应用的位置
邮件数据

如果我们对每台计算器进行编号,并对我们使用的应用,也进行编号,记在一个记事本中。
如果这两台计算机都存着这个记事本,那么它们就可以区分,每一台电脑的每一个应用。
由此,我们就设计出一个能够实现数据传输的协议了。

计算机对照TCP协议

而现实中的协议也是如此,下面引用TCP协议来对比我们上面所描述的各个基本元素。(注意:事实上TCP不仅仅是实现了基本的数据传输,还处理了可靠性、流量控制、多路复用、连接数、优先与安全等问题,是一个值得深入学习的协议。)

信的构成计算机元素对应协议中的专业术语
收信人地址(城市、门牌号)计算机A的地址A计算机的地址(IP地址加MAC地址)
收信人姓名计算机A中的a应用的位置a应用在A计算机中占用的端口
寄信人地址(城市、门牌号)计算机B的地址B计算机的地址(IP地址加MAC地址)
寄信人姓名计算机B中的a应用的位置a应用在A计算机中占用的端口
邮件数据数据包

以上内容仅仅涉及到了基本的数据传输,如有兴趣,可以想想如下的问题。

  1. 如何保证数据传输正确?需要涉及到数据校验的问题。
  2. 如何保证数据的可靠性?需要涉及到三次握手、四次挥手机制。
  3. 数据量过大怎么办?涉及数据拥塞控制(Reno、BBR)。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明琐碎的想法(二)网络协议——人们给计算机的一组“约定”
喜欢 (0)
[感谢客官~]
分享 (0)

您必须 登录 才能发表评论!

加载中……