电脑 A 和电脑 B 之间是如何网络通信的?这就要说到开放系统互连(OSI,Open Systems Interconnection)参考模型。
网络通信采用 OSI 模型,将整个通信过程分为不同的层次,每一层提供特定的服务。
而为了降低网络设计的复杂性,网络会组织成一个「层次栈」,每一层都建立在下一层的基础之上,每一层的名字、每一层的内容都不一样。
每层的协议都是独立的,只要不同设备相同层协议达成一致,便可以相互解析对方传递的消息。
举例来说,假设有两位哲学家,一个说英语,一个说法语,缺乏共同语言,需要添加一层翻译。每个哲学家雇佣一个翻译,这是第二层。每个翻译再有一个秘书,构成第一层。当哲学家 1 想传递消息 \\”How are you\\” 给哲学家 2 时,他将消息通过英语发送给他的翻译。哲学家1的翻译将消息翻译成汉语,然后通过秘书传递出去,比如通过网线传递。当消息传递到另一位秘书时,她将消息传递给哲学家 2 的翻译,将汉语翻译成法语,最后传递给哲学家 2。这就是一个简述的网络传输过程。所以,数据不是直接从一个电脑的某一层传递到另一台电脑的相同层,而是通过逐层传递,最终的通信是通过物理介质进行的。服务是指一层向其上一层提供的操作或功能,其中底层是服务提供者,上层是服务用户。服务充当着类似于面向对象语言中抽象数据类型或对象的角色,定义了可在对象上执行的操作,但未详细说明这些操作的具体实现方式。协议则是一组规则,明确了同一层上对等实体之间,在通信中交换的数据的格式和含义。协议的存在确保了在不同系统之间的有效的通信。简而言之,服务定义了操作的抽象,而协议规定了这些操作的具体方式和约定。这两者共同构成了系统中不同层级之间有效通信的基础。它关注在一条通信信道上传输原始比特,确保主机 A发送的是比特1,主机 B 收到的也是比特1。就像我们发短信需要手机信号一样,确保发送的信息是准确的。还包括:一个比特持续多少纳秒、初始连接如何建立、如何撤销连接等等。它的主要任务是把原始的数据转变成可靠的线路,就像确保你发的短信没有错别字一样。发送方将数据拆分成「数据帧块」,一个数据帧块通常为几百或几千字长,然后顺序地发送这些数据帧块。主要功能是控制整个网络的运作,主要解决如何将数据包从源端路由到接收方,就像导航一样,决定数据从哪里出发,怎么到达目的地。而如果有太多的包存在于网络层中,数据包彼此之间会相互拥挤,所以,处理拥堵也是网络层的责任。网络路由可以建立在「静态表」的资源上,很少改变,常见的情况是路由会自动更新,以避免网络中的「故障组件」。这层接收来自上一层的数据,如果需要,就把大块的数据分成小块,然后确保这些小块都能顺利地传输到目的地。就像确保我们发的整段文字都能被对方完整地收到一样。传输层是真正的端到端的层,它自始至终将数据从源端携带到接收方。让不同机器上的用户能够建立连接,就像手机通话一样。可以提供一些额外的服务,确保通话过程中有序,不会混乱。还包括对话控制、令牌管理、同步功能等。关注的是信息的表达方式,就像不同人用不同语言表达一样。关注的是传递信息的语法和语义,不同计算机有不同的数据表示法,为了能让不同的计算机通信,它管理一种抽象的方式来定义数据的结构,以便不同机器之间能够理解和交流。用户直接面对的层,包含了各种各样用户常用的功能,一个非常熟悉的应用协议是超文本传输协议「HTTP」,当我们需要浏览一个网页的时候,它通过 HTTP 将所需要的页面名字发给服务器,然后服务器将页面内容发回给浏览器。- 每当我们遇到一个新的问题或者任务时,应该在那个位置设立一个新的层次;
- 每一层功能都应符合全球标准,以确保设备和系统之间的兼容性;
- 层数应该足够多,保证不同功能的分离,但层数又不能太多,以免体系结构变得过于庞大;
内容优化:ChatGPT
图片来源:Pixabay
内容来源:《计算机网络》
原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34608.html