两台计算机之间怎么通信( 二 )


① 封装成帧
首先了解一下为什么需要封装成帧:前面说了,物理层它只是简单的把计算机连接起来并在上面传输比特流(0、1 序列),如果这些 0,1 组合的传送毫无规则的话,计算机是解读不了的 。因此,我们需要制定一套规则来进行 0、1 的传送,让计算能够读懂这些序列 。
? 封装成帧就是:发送端的数据链路层接收到上层网络层传过来的 IP 数据报后,在其前后部分添加首部、尾部,这样就构成了一个帧 。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束 。

两台计算机之间怎么通信

文章插图
把一台计算的的数据通过物理层和链路层发送给另一台计算机,究竟是谁发给谁的,计算机与计算机之间如何区分,你总得给他们一个唯一的标识吧?
于是,MAC 地址出现了
② MAC 地址
MAC 地址就是链路层地址,长度为 6 字节(48 位),**用于唯一标识网络适配器(网卡) 。**计算机之间的数据传送,就是通过 MAC 地址来唯一寻找、传送的 。
一台主机拥有多少个网络适配器就有多少个 MAC 地址 。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址 。
? 那么,一台计算机它是如何知道另一台计算机的 MAC 地址的呢?这是网络层的 ARP 地址解析协议做的事情 。
4. 网络层
在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网 。
网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送 。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送 。
在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称数据报 。
① IP 协议
IP 协议用于屏蔽下层物理网络的差异,为上层提供统一的 IP 数据报 。
两台计算机之间怎么通信

文章插图
IP 协议定义的地址,我们称之为 IP 地址 。IP 数据报中含有发/收方的 IP 地址 。
IP 协议提供无连接的、不可靠的、尽力的数据报投递服务
  • 1)无连接的投递服务 发送端可于任何时候自由发送数据,而接收端永远不知道自己会在何时从哪里接收到数据 。每个数据报独立处理和传输,一台主机发出的数据报序列,可能取不同的路径,甚至其中的一部分数据报会在传输过程中丢失;
  • 2)不可靠的投递服务 IP 协议本身不保证数据报投递的结果 。在传输的过程中,数据报可能会丢失、重复、延迟和乱序等,IP协议不对内容作任何检测,也不将这些结果通知收发双方;I 数据报的丢失,通过路由器发 ICMP报文 告知;必要时,由高层实体(如TCP)负责差错恢复动作 。
  • 3)尽力投递服务 执行数据报的分段和封装,以适应具体的传输网络,由最终结点的IP模块进行合段处理 不同物理网络对传输的帧 /分组的体积有不同的规定;当数据报长度 > MTU(最大传输单元 MTU—Maximun Transfer Unit )时,需对数据报分段。
② ARP 地址解析协议
OK,有了上面 IP 协议的知识,我们来讲解一台计算机它是如何知道另一台计算机的 MAC 地址的,这就是网络层的 ARP 地址解析协议做的事情 。
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信 。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变 。
? ARP(Address Resolution Protocol )协议就可以实现由 IP 地址得到 MAC 地址 。

推荐阅读