计算机间的通信艺术解析-CSDN博客

99 阅读5分钟

183c3eb861a6a3858e706302a6e7b0dd.png

1*NwzOU-ne2vvobtubtEmBhw.png

网络基础知识

首先,让我们谈谈网络基础知识,即计算机如何彼此通信。

在这种通信的核心是IP地址,它是网络上每个设备的唯一标识符。IPv4地址是32位的,允许大约40亿个唯一地址。然而,随着设备数量的增加,我们正在转向IPv6,它使用128位地址,显著增加了可用唯一地址的数量。

412bde28c97723df99d2a3487c8a8f82.png

1*hC_2yuelKIljrVu8ErHnSQ.png

当两台计算机通过网络通信时,它们发送和接收数据包,每个数据包都包含一个IP头部,其中包含发送者和接收者的IP地址等重要信息,确保数据到达正确的目标。

6ac2651835c534f2b0e9b0bb7ef1fea2.png

1*hgHoqMwXn7s8Y_qzT_LDow.png

这个过程由Internet协议(IP) 管理,它是一组定义数据如何发送和接收的规则。

除了IP层,我们还有应用层,其中存储特定于应用协议的数据。

这些数据包中的数据按照特定的应用协议数据格式进行,比如HTTP用于Web浏览,以便接收设备正确地解释数据。

8c92dccc77c1d90a10b90d0cc3d9a7c5.png

1*YWVQh_XtgLWaekMBPxSawQ.png

TCP和协议层

一旦我们了解了IP地址和数据包的基础知识,我们可以深入研究传输层,其中TCP(传输控制协议)UDP(用户数据报协议) 发挥作用。

TCP在传输层操作,确保可靠的通信。它就像一个快递员,确保您的包裹到达并检查没有丢失任何东西。

每个数据包还包含一个TCP头部,携带诸如端口号和控制标志之类的重要信息,这些信息对于管理连接和数据流是必要的。

29af2e7ff1b29a16fb416a2e11ff5a46.png

1*jNXrVG8xGjYmXUkVwiU0Tg.png

TCP以其可靠性而闻名;它确保数据包的完整且正确的传递。它通过序列号等功能来跟踪数据包的顺序,并通过一种称为三次握手的过程建立两台设备之间的稳定连接。

1cb046f36a13b199b71bc540839ae997.png

1*aPlgohYM9xz1ccETRYZ9XA.png

0389816731e0cb63d9982c6ec3891f71.png

1*RcCQFTYALI5olz7r4P9r2w.png

相比之下,UDP更快,但比TCP不可靠。它在发送数据之前不建立连接,并且不能保证数据包的传递或顺序。

201edd7199d3cd131301593eb55bdfd6.png

1*PuhJ2kZuX-FKGTsgnkBVrA.png

但是这使得UDP更适合时间敏感的通信,比如视频通话或实时流媒体,其中速度至关重要,而一些数据丢失是可以接受的。

DNS

为了将所有这些概念联系在一起,让我们谈谈DNS(域名系统)

DNS就像互联网的电话簿,将人类友好的域名转换为IP地址。当您在浏览器中输入URL时,浏览器会发送DNS查询以找到相应的IP地址,从而建立与服务器的连接并检索网页。

d84345581d4fadcea76a56d22d468382.png

1*Qx1tqYuSdVDEENDUYDiDHQ.png

DNS的功能由ICANN(互联网名称与数字地址分配机构) 监督,它协调全球IP地址空间和域名系统。

像Namecheap或Godaddy这样的域名注册商经过ICANN认证,可以向公众出售域名。

DNS使用不同类型的记录,比如A记录,将域名映射到其相应的IPv4地址,确保您的请求到达正确的服务器,或AAAA记录,将域名映射到其IPv6地址。

网络基础设施

最后,让我们谈谈支持所有这些通信的基础设施。

网络上的设备具有公共私有IP地址。公共IP地址在互联网上是唯一的,而私有IP地址在本地网络中是唯一的。

IP地址可以是静态的,永久分配给设备,也可以是动态的,随时间变化。动态IP地址通常用于家庭互联网连接。

在局域网(LAN)上连接的设备可以直接通信。为了保护这些网络,使用防火墙,监视和控制基于安全策略的进出网络流量。

84ccfc34acb50c7c80b8e006bf75fb66.png

1*cNZmtXNx5_d0lc4yz_oMZw.png

在设备内部,特定的进程或服务由端口标识,与IP地址结合在一起,为网络服务创建唯一标识符。一些端口保留用于特定协议,如端口80用于HTTP或端

口22用于SSH,依此类推。

简化的层次图

所以这是一个简化的图表,代表了互联网协议套件的不同层,从应用层到物理硬件。

e3e4adb17b68a17755fbc7b99f9bbe1d.png

1*GEWC5-JP_khL0MAXsg1lyQ.png

应用层:这是应用特定协议(如用于Web浏览的HTTP,用于文件传输的FTP和用于电子邮件的SMTP)操作的地方。数据根据这些协议进行格式化,并发送到传输层。端口用于将数据传输到正确的应用程序。DNS属于应用层,因为它是一个将人类可读域名(例如www.example.com[1])转换为网络可理解IP地址的网络服务。•传输层:在传输层,我们有TCP和UDP。TCP提供数据的可靠有序传递,而UDP提供更快但不可靠的传递。TCP使用序列号和确认来确保所有数据都被接收并且顺序正确。•互联网层:在这里有IP地址和IP头部,跨网络路由数据包。IP地址用于标识网络上的设备,可以是公共/私有和静态/动态。•链路层:这一层负责物理网络连接,使用MAC地址标识本地网络上的设备,并使用交换机来传输流量。•物理硬件:这包括计算机、路由器、防火墙以及它们形成的局域网。\