初识网络的发展史、通信基础和原理

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 初识网络的发展史、通信基础和原理

一.网络的发展史

问: 网络是现在生活当中必不可少的存在,可是网络的发家史是什么呢?

答:  网络的发展史可以追溯到早期的ARPANET,它是一个由美国国防部高级研究计划局(ARPA)创建的计算机网络。在1983年,ARPANET被划分为两个独立的网络,包括ARPANET和MILNET(军用网络)。这促进了互联网的发展,使得任何两台电脑都可以相互通信,没有特定的设备、路由器或网络中心控制数据流向。

  • 20世纪60年代早期,计算机还是独立模式,计算机之间相互独立,并不能进行相互通信,只提供终端和主机之间的通信。
  • 20世纪60年代中期,随着时代的发展, 越来越需要计算机之间相互通信、共享软件和数据了,即以多个计算机协同工作来完成业务,就有了网络互连

网络互连:将多台计算机连接在一起,完成数据共享。

数据共享本质是网络数据传输,即计算机之间通过网络来传

  • 输数据,也称为网络通信。

局域网LAN (Local Area Network)

   是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

局域网组建网络的方法有:

  • 基于网线直连:主机之间相互连接。
  • 基于集线器组建:所有主机连接一台集线器,集线器相当于通信中转站。
  • 基于交换机组建
  • 基于交换机和路由器组建

注:路由器上有2种口,一种Lan口,另一种是Wan口,Lan口负责连接主机,Wan口负责连接运营商的机房,提供网络。

广域网WAN(Wide Area Network)

       通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。

二.网络通信基础

       从网络发家史中,我们可以知道网络互连的目的是进行网络通信,也就是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。

问:在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?

答:需要使用IP地址了。

问:由哪个进程来接收这个数据呢?

答:使用端口号

问:我承认你的确收到了我的数据,但是你可忘记了数据可是二进制数据,你如何得知原本数据呢?

答:这就需要靠协议

抽象表达:快递员通过IP地址,找到你家,由收货人(端口号)来接收快递,快递拆开是加密的信息,需要使用协议解密,才能得到原本的信息。

2.1IP地址

        概念主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址

       格式IP地址是一个32位的二进制数,通常被分割为4“8位二进制数”(也就是4个节)          例如:01100100.00000100.00000101.00000110  但通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式:100.4.5.6。      


       特殊ip:127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1,本机环回主要用于:本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

2.2端口号

       概念端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程

       格式端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

       注意事项: 两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号


2.3认识协议

2.3.1协议是什么?

      网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!:如何标识发送的数据是文本类型,及文本的编码格式呢? 基于网络数据传输,需要使用协议来规定双方的数据格式。

      概念:网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

通常由三要素组成:

  1. 语法:即数据与控制信息的结构或格式;
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
  3. 时序,即事件实现顺序的详细说明。

协议:最终体现为在网络上传输的数据包的格式


2.3.2为什么需要协议?

       例如地下情报组织,潜伏者需要事先和接应人员约定各自带一本书,头戴帽子,这就是一种约定,也是一种协议。

不同计算机厂商中生产的计算机需要进行通信,传递各种各样的信息,则需要约定双方的数据格式,因此出现了一个标准,让大家的计算机都可以给彼此通信,这就是网络协议

协议分为2种,一种存在于教科书的OSI七层网络协议,另一种则是TCP/IP五层协议。

二者的联系:为了实现不同体系结构的计算机网络之间的互联,国际标准化组织定义了开放系统互联基本参考模型OSI/RM(Open Systems Interconnection Reference Model),即OSI模型。OSI模型采用了七层协议体系结构,理论上较为完善,但在实践中过于复杂并不实用。因此,简化出了TCP/IP体系结构,并得到了广泛的应用。

分层的作用:为了降低复杂性、实现协调工作、解决不同体系结构之间的互联问题,并提供更加可行和实用的解决方案。

2.3.3OSI模型和TCP/IP体系结构

OSI模型

  • 物理层:提供了数据在物理介质上传输的能力。
  • 数据链路层:负责相邻网络设备之间建立、维护和拆除,确保数据的无差错传输。
  • 网络层:负责在不同网络设备之间选择最佳路径,实现数据包在网络的路由选择、转发。
  • 传输层:提供端到端的可靠传输服务,包括数据包的分组、传输、接收和错误恢复。
  • 会话层:确保通信系统中两个应用程序会在一个会话当中进行多次交互。
  • 表示层:确保数据可以在不同系统之间通信
  • 应用层:处理与具体应用程序相关的通信,为应用程序提供网络服务接口,可以使应用程序能够使用网络进行数据传输和接收。此层协议通常有:HTTP、FTP、SMTP、DNS、DHCP等

:OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。 实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现。

TCP/IP五层(或四层)模型

  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远 程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发 送到目标主机。
  • 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表 的方式规划出两台主机之间的数据传输的线路(路由)。路由器Router)工作在网路层。
  • 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线 上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重)、数据差错校验等工 作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  • 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的 同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。 物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
  • 而为什么有时候又称为4层模型,因为物理层又偏向于硬件,考虑的比较少。
  • 两种模型之间的关系:

根据网络设备所在分层,分层了3种,应用程序、操作系统、设备驱动程序与网络接口。

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器,它实现了从网络层到物理层;
  • 对于一台交换机,它实现了从数据链路层到物理层;
  • 对于集线器,它只实现了物理层

三.网络通信的原理

       两台计算机通过TCP/IP协议通讯过程:

注:在网络层时,数据也可能会存在从一台计算机传输到另一台计算机中会经过多个路由器。


                ------------------------------》以QQ发送信息为例子《--------------------------------


发送者情况:


1.应用层,输入的信息,构造成应用层数据报,指按照一定格式进行字符串拼接。传递个传输层

2.传输层,传输层有很多种协议,主要使用TCP和DCP,假设此处使用UDP,然后将UDP数据报传递给网络层。注:UDP不会处理应用层数据报的内容。

3.网络层,网络层的主要协议,IP协议,然后传递个数据链路层。注:IP协议不会处理UDP数据报。

4.数据链路层,以太网会针对IP数据报,进行进一步封装,填上数据头和数据尾,当然以太网也不会处理IP数据报。然后传递给物理层

5.物理层,硬件设备需要对上述数据进行转换了,例如:光信息、电信号、电磁波。


以上便是发送者发生信息后,信息的主要传输过程。

接收者情况

1.物理层,硬件设备(网卡),收到光信号/电信号/电磁波,得到了一串二进制数据,也就是以太网数据帧

2.数据链路层,以太网协议,针对这个数据报进行解析,载荷部分交给网络层。

3.网络层,根据IP协议,去掉IP报头,将载荷交给传输层

4.传输层,根据IP报头中的信息,可以知道当前载荷是UDP数据报,交给UDP处理,再取出载荷交给应用层。

5.应用层:根据UDP报头可以得到目的端口,根据目的端口可以找到相关联的应用程序,然后对载荷进行解析,再将数据显示

额外补充:

       系统端口号范范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使用的应用层协议,如:

  • 22端口:预留给SSH服务器绑定SSH协议
  • 21端口:预留给FTP服务器绑定FTP协议
  • 23端口:预留给Telnet服务器绑定Telnet协议
  • 80端口:预留给HTTP服务器绑定HTTP协议
  • 443端口:预留给HTTPS服务器绑定HTTPS协议

总结

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式

网络通信的数据传输需要经过封装和分用,发送者进行封装,接收者进行分用

封装:每层协议都要加上一个数据首部(header),首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息,例如传输层使用了UDP协议还是TCP协议。

分用:到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
21天前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
158 0
|
6月前
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
222 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
19天前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
239 11
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
138 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
184 7
|
5月前
|
监控 应用服务中间件 Linux
掌握并发模型:深度揭露网络IO复用并发模型的原理。
总结,网络 I/O 复用并发模型通过实现非阻塞 I/O、引入 I/O 复用技术如 select、poll 和 epoll,以及采用 Reactor 模式等技巧,为多任务并发提供了有效的解决方案。这样的模型有效提高了系统资源利用率,以及保证了并发任务的高效执行。在现实中,这种模型在许多网络应用程序和分布式系统中都取得了很好的应用成果。
136 35
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
195 0
|
5月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
141 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
4月前
|
安全 Java 程序员
分析Muduo网络库源码中的TcpServer组件工作原理
简言之,TcpServer 在 Muduo 中的角色,就是一位终极交通指挥员,它利用现代计算机网络的魔法,确保数据如同车辆一般,在信息高速公路上自由、安全、高效地流动。
46 0
|
7月前
|
机器学习/深度学习 数据可视化 PyTorch
深入解析图神经网络注意力机制:数学原理与可视化实现
本文深入解析了图神经网络(GNNs)中自注意力机制的内部运作原理,通过可视化和数学推导揭示其工作机制。文章采用“位置-转移图”概念框架,并使用NumPy实现代码示例,逐步拆解自注意力层的计算过程。文中详细展示了从节点特征矩阵、邻接矩阵到生成注意力权重的具体步骤,并通过四个类(GAL1至GAL4)模拟了整个计算流程。最终,结合实际PyTorch Geometric库中的代码,对比分析了核心逻辑,为理解GNN自注意力机制提供了清晰的学习路径。
495 7
深入解析图神经网络注意力机制:数学原理与可视化实现