计算机间的通信艺术解析

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地址标识本地网络上的设备,并使用交换机来传输流量。•物理硬件:这包括计算机、路由器、防火墙以及它们形成的局域网。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/245318.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS Pro微课1000例】0046:深度学习--汽车检测

本实验讲述ArcGIS Pro中人工智能深度学习应用之–汽车检测。 文章目录 一、学习效果二、工具介绍三、案例实现四、注意事项一、学习效果 采用深度学习工具,可以很快速精准的识别汽车。 案例一: 案例二: 下面讲解GIS软件实现流程。 二、工具介绍 该案例演示的是ArcGIS Pro中…

50 代码审计-PHP无框架项目SQL注入挖掘技巧

目录 演示案例:简易SQL注入代码段分析挖掘思路QQ业务图标点亮系统挖掘-数据库监控追踪74CMS人才招聘系统挖掘-2次注入应用功能(自带转义)苹果CMS影视建站系统挖掘-数据库监控追踪(自带过滤) 技巧分析:总结: demo段指的是代码段,先…

练习11-简单卷积器的设计

简单卷积器的设计 1,任务目的:2,明确设计任务2.1,目前这部分代码两个文件没找到,见第5、6节,待解决中。 ,卷积器的设计,RTL:con1.v4,前仿真和后仿真,测试信号…

No supported authentication methods available (server sent: publickey) 问题的解决

参考:git clone使用ssh报错: No supported authentication methods available(server sent: publickey) 的解决办法_赵锦川的博客-CSDN博客 No supported authentication methods available (server sent: publickey) 修改:网络的中的SSH设置

用最快的速度了解Python?及入门Python?零基础学习方法汇总。

文章目录 前言1. 将其与类似的语言进行比较。2. 阅读语言的官方文档。3. 使用互联网搜索。4. 与社区接触。5. 编写玩具程序。6. 使用该语言编写 “生产就绪(Production-Ready)” 的代码。7. 阅读一本关于这门语言的书籍。8. 观看讲座和课程。9. 阅读示例…

沐足采耳店服务预约管理系统会员小程序效果如何

沐足采耳店的很多服务都有较高的市场需求度,如贵妃采耳、太极足疗等,很多城市中都有多个品牌店铺,在如今互联网趋势下,商家们开始借势线上解决传统经营痛点和促进生意发展。 那么通过【雨科】平台搭建沐足采耳店管理小程序能实现…

问题记录-maven依赖升级或替换(简单版)

问题背景 项目被检测到有高危漏洞,需要对部分jar进行升级。以一个jar为例记录一下升级过程。 1 找到高危漏洞的包 如果装了maven helper插件则可以在下面查看当前模块依赖包 2 使用maven命令 执行下面这个命令,会将当前项目的信息打印出来,…

VIVADO-FFT IP核学习记录

根据用户手册使用IP核 ① 找到user guide / product guide 并打开 ② 找到Customizing and Generating the Core(不同手册可能题目不一样),查看IP核的创建过程中各个参数的意义和设置方法。 ③ 找到port description ,查看接口注释 根据网络教程使用…

通过网线连接的局域网电脑怎么实现上网功能

在机床里面的工控机有时候需要进行联网操作,但是又没有无线网或者外网网线,这时候可以通过笔记本的无线wifi功能实现上网功能. 通过网络适配器-找到wifi对应适配器-共享-1 打勾-2选中与工控机连接的网口-既可. 工控机端,将网口设置为自动获取IP

打印菱形图案C语言

C代码实现&#xff1a; #include <stdio.h> void printDiamond(int n) { int i, j, space n - 1; // 打印上半部分包括中间行 for (i 0; i < n; i) { // 打印空格 for (j 0; j < space; j) printf(" "); // 打印星号 for (j 1; j < 2 *…

Rust UI开发(五):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 这是一个系列博文&#xff0c;本文是第五篇&#xff0c;前四篇链接&#xff1a; 1、Rust UI开发&#xff08;一&#xff09;&#xff1a;使用iced构建UI时…

数据结构与算法-动态查找表

查找 &#x1f388;3动态查找表&#x1f52d;3.1二叉排序树&#x1f3c6;3.1.1二叉排序树的类定义&#x1f3c6;3.1.2二叉排序树的插入和生成&#x1f3c6;3.1.3二叉树的查找&#x1f3c6;3.1.4二叉排序树的删除 &#x1f52d;3.2平衡二叉树&#x1f3c6;3.2.1平衡二叉树的调整…