两台计算机之间怎么通信

计算机网络的知识点非常杂乱且琐碎,非常容易让人产生畏惧心理 。其实计网通篇研究的核心就是不同计算机之间的通信过程,本文将从小白的角度,讲解两台计算机之间是如何精确的找到对方的位置并发送和接收消息的,以从宏观角度把握计算机网络的体系结构 。

两台计算机之间怎么通信

文章插图
1. 五层协议参考模型
所谓通信协议就是通信双方都必须要遵守的通信规则 。如果没有网络通信协议,计算机的数据将无法发送到网络上,更无法到达对方计算机,即使能够到达,对方也未必能读懂 。有了通信协议,网络通信才能够发生 。
一般我们用五层协议参考模型来进行计算机网络的学习:
  • 应用层
  • 运输层
  • 网络层
  • 数据链路层
  • 物理层
上述各层的作用会在下文详细讲解,我们首先要明白为什么要分层:
协议的实现是很复杂的 。因为协议要把人读得懂的数据,如网页、电子邮件等加工转化成可以在网络上传输的信号,需要进行的处理工作非常多 。
两个系统中实体间的通信是一个十分复杂的过程 。为了减少协议设计和调试过程的复杂性,网络协议通常都按结构化的层次方式来进行组织,每一层完成一定功能,每一层又都建立在它的下层之上 。不同的网络协议,其层的数量、各层的名字、和功能不尽相同 。
也就是说,每一层都是在下一层的基础上,通过层间接口向上一层提供一定的服务,而把 “这种服务是如何实现的” 细节对上层加以屏蔽 。
? 那么,我们将一个大型网络体系分成了若干个层,各个层之间是如何进行通信的呢?
  • 1)对等层之间通信(不同开放系统中的相同层次之间的通信,对等层实体之间的信息交换):OSI 标准为每一层的通信都严格定义了 协议数据单元 PDU的格式 。对等层之间的通信是目的,对等层实体的协作保证该层功能和服务的实现
  • 2)相邻层之间通信(相邻的上下层之间的通信,属于局部问题):相邻层之间的通信是手段,保证对等层实体之间的通信得以实 施
? 假设网络协议分为若干层,那么 A、B 两节点通信,实际是节点 A 的第 n 层与节点 B 的第 n 层进行通信,故协议总是指某一层的协议,例如物理层协议、传输层协议、应用层协议 。每一相邻层协议间有一接口,下层通过该接口向上一层提供服务 。
两台计算机之间怎么通信

文章插图
2. 物理层
两台计算机之间要进行通信,必然需要传输介质/物理媒介来连接两台计算机,这样,我们才能把数据传输过去 。传输介质分为:
  • 导向型传输介质:
    • 双绞线:适用于近距离
    • 同轴电缆(抗干扰性强):适用于远距离
    • 光纤:带宽远远大于其他传输媒体
  • 非导向型传输介质:
    • 无线电波
    • 微波
    • 红外线、激光
? 也就是说,物理层的作用就是实现计算机之间的数据传送,这个数据其实是比特流,物理层需要尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么,即实现比特流的透明传输 。
3. 数据链路层
物理层只是简单的把计算机连接起来并在上面传输比特流,它还是存在着很多问题的:
  • 1)物理连接是有差错和不可靠的
  • 2)物理设备之间可能存在传输速度不匹配问题
也就是说仅仅靠物理层是无法保证数据传输的正确性的 。
? 这样,数据链路层的主要作用就是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路 。在物理层提供服务的基础上,数据链路层还肩负着为网络层提供服务的责任,其最基本的服务是将来自网络层的 IP 数据报封装成帧,可靠的传输到相邻结点的目标网络层 。

推荐阅读