两台计算机是如何通信的呢在成千上万的计算机中为什么一台计算机能够准确着寻找到另外一台计算机并且把数据发送给它呢这依赖的就是TCP/IP网络通信的5层模型。可能很多人都听说过网络通信的 5 层模型但是可能并不是很清楚为什么需要5层模型5层模型负责的任务也有可能经常混淆。今天我们就来谈谈TCP/IP网络通信的5层模型如图1。
图1
一、 物理层
一台计算机与另一台计算机要进行通信如图2第一件要做的事是什么当然是要把这台计算机与另外的其他计算机连起来啊这样我们才能把数据传输过去。例如可以通过光纤啊电缆啊双绞线啊等介质把他们连接起来然后才能进行通信。
图8
可能有人会问知道了MAC地址之后发送数据是通过广播的形式发送询问对方的MAC地址也是通过广播的形式来发送那其他计算机怎么知道你是要传送数据还是要询问MAC地址呢其实在询问MAC地址的数据包中在对方的MAC地址这一栏中填的是一个特殊的MAC地址其他计算机看到这个特殊的MAC地址之后就能知道广播想干嘛了。假如两台计算机的IP不是处于同一个子网之中这个时候我们就会把数据包发送给网关然后让网关让我们进行转发传送。
四、 传输层
通过物理层、数据链路层以及网络层的互相帮助我们已经把数据成功从计算机A传送到计算机B了可是计算机B里面有各种各样的应用程序计算机该如何知道这些数据是给谁的呢这个时候端口(Port)这个家伙就上场了也就是说我们在从计算机A传数据给计算表B的时候还得指定一个端口以供特定的应用程序来接受处理。传输层的功能就是建立端口到端口的通信。相比网络层的功能是建立主机到主机的通信。只有有了IP和端口我们才能进行准确着通信。这个时候可能有人会说我输入IP地址的时候并没有指定一个端口啊。其实呢对于有些传输协议已经有设定了一些默认端口了。例如http的传输默认端口是80这些端口信息也会包含在数据包里的。传输层最常见的两大协议是 TCP 协议和 UDP 协议其中 TCP 协议与 UDP 最大的不同就是 TCP 提供可靠的传输而 UDP 提供的是不可靠传输。
五、 应用层
应用层这一层最接近我们用户。虽然我们收到了传输层传来的数据可是这些传过来的数据有html格式、mp4格式等各种格式因此我们需要指定这些数据的格式规则收到后才好解读渲染。例如我们最常见的 Http 数据包中就会指定该数据包是什么格式的文件。
总结
5层模型至此讲到这里。对于有些层讲的比较简洁就大致概况了一下。你如果感兴趣的话可以再去详细学习希望现在你已经对计算机之间数据的传输有所了解