各主机间在如何相互传输数据

419 阅读5分钟

失业期间,给自己的基础知识充充电,记录一下。

各主机在互联网中是如何相连的(相互访问)

主机间的访问(局域网当中/同一个网段)

(每台主机之间想要互相联系,就得直接使用网线进行直连)

相连的结构是错综杂乱,难以管理,如下图所示

image.png

在多台主机当中加入路由器

每台主机只需要与路由器直连,路由器就能为他们建立连接。

image.png

一台路由器的接口是有限的。如果同时管理成千上万个主机的情况,可以让每个路由器管理一部分主机,再将每个路由器相连,以此来解决多台主机在局域网中互联的情况。如下图的形式连接,就可以同时连接到大量的主机了。

image.png

image.png

主机间的访问(远距离相连)

当我们多个主机之间的距离都比较近,用网线直连到路由器很简单能实现网络互联。但是如果涉及到其他的主机跟我们距离很远,再来使用网线远距离连接不太合理。

如何解决

借助其他已经连通的线路作为传输的载体来传输数据

家里的电话线\电线,已经可以把我们的网络连接到世界各地。所以可以借助电话线来达成这种效果。

为了连接电话这种网络我们需要一种基础设备叫做调制解调器(modem),调制解调器可以把网络信息变成电话设施可以处理的信息,这样就可以借助电话线作为传输的载体来进行远距离传输。图中直连电话线的设备就是调制解调器

image.png

IP寻址问题

虽然通过电话线和调制调解器可以连接远距离的路由器,但是与我们相连的不同路由器之多,我们向其中一方发送数据,如何判断发给哪个IP的路由器呢。

这就需要通过ISP来帮我们寻址,ISP 是一家可以管理一些特殊的路由器的公司,这些路由器连接其他 ISP 的路由器。你的网络消息可以被 ISP 捕获并发送到相应的网络

所以当你通过电话线发送数据给远距离的主机,其连接情况如下图

image.png

实际上,一个互联网世界这么多电脑之间如何长距离的交换信息,就是用这种形式来进行的,一步步演变成现在庞大的网络。

主机之间数据如何传递

上面讲述了主机之间在互联网当中是如何相连的,那么实际上他们通过电话线、ISP、路由器各种设施是如何传输数据的呢?

由于主机是以电话线作为载体向互联网中的不同主机发送数据(向外网发送数据涉及到NAT技术),数据在电话线中传播必须从文本翻译成电子信号再进行传输,接收后再转换回文本。具体是通过使用TCP/IP协议栈来进行数据的转换。

TCP/IP协议我们都知道,那么数据在协议中进行了什么工作呢?

TCP/IP协议栈

image.png

协议栈分为4层结构,每一层做的工作:

  • 应用层:给应用程序提供通信服务,如FTP、HTTP等
  • 传输层:给应用层提供服务,TCP协议就是最显著的代表,将数据包定向到计算机上的特定应用程序 使用端口号
  • 网络层:IP协议使用 IP 将数据包定向到特定计算机地址。
  • 网络接口层:这一层将数据转化为电信号通过物理线路传输。

数据发送的实际情况

一则消息发出,则从应用层开始每层进行一些操作,最后转化为电信号在网络中传播。而接受者接收到电信号则是从网络接口层逐步将电信号组装成原先的文本image.png 数据的发送,实际上就是从应用层往下走,每一层给报文加上自己的首部(可以理解为给数据加多点东西进去)。那么数据的接收就是从网络接口层往上走,一层一层去掉首部,最后得到发送过来的数据。

简单模拟一下发送过程做了什么转换

  • 应用层对数据进行编码格式的转换,将我们传递的数据和一些数据规范组装成应用层的报文数据,区别是接收还是发送数据。
  • 传输层则是给传递双方建立连接,提供传输路径,以及区分端口号;最后给报文添加一个首部,主要包括发送端口号和接收端口号等。
  • 网络层也是添加首部包含发送IP地址,接收IP地址等;并且根据接收的IP地址去寻找其真实的MAC物理地址。
  • 网路接口层包裹一层以太网包首部包括发送和接收方的MAC地址,并将报文转换为电信号进行传输。

数据的接收,与发送相反,也就不过多阐述。

image.png

整体的发送接收信息流程如图所示。

总结

以上就是主机间在互联网中如何相连以及相连后传输数据的过程是怎么样的,不知道大家看懂了吗。

本人小小菜鸡,如果有什么有误之处请大佬们指出,我再好好学习一波。

image.png

查阅文章: