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

目录

一.网络的发展史

二.网络通信基础

2.1IP地址

2.2端口号

 2.3认识协议 

 2.3.1协议是什么?

2.3.2为什么需要协议?

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

三.网络通信的原理

总结


🎁个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主
🎥 本文由 tq02 原创,首发于 CSDN🙉
🎄 本章讲解内容:网络的通信基础

🎥多线程学习专栏:多线程学习专栏

🎥其他学习专栏:  C语言         JavaSE       MySQL基础 

一.网络的发展史

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

答:  网络的发展史可以追溯到早期的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协议。
分用:到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理


   

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

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

相关文章

R730xd风扇调速

共使用了三个方法都是有效的,dell_fans_controller_v1.0.0和Dell_EMC_Fans_Controller_1.0.1以及ipmitool,前面两个是GUI界面后面一个是命令行工具 重点 我虽然能通过设置的ip地址能访问idrac管理界面,但是使用上面三个工具都是无法获取风扇…

Mybatis-Plus 批量插入数据时报错 java.lang.Object Not Found TableInfoCache

文章目录 前言问题回溯排查过程总结 前言 报错堆栈信息如下,基本是mybatis-plus源码中的一些东西: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: java.lang.Object Not Found TableInfoCache.at com.baomidou.mybatisplus.core.to…

REST风格【SpringBoot】

1.REST简介 行为动作 通常模块名使用复数,也就是加s 2.RESTful入门 Controller public class UserController {RequestMapping(value "/users", method RequestMethod.POST)public String save() {System.out.println("user save");return &…

ClickHouse进阶(十二):Clickhouse数据字典-2-字典类型

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 📌订阅…

英码深元“三位一体”AI场景化解决方案,助力多地化工园区快速实现智慧化转型!

我国是世界公认的化工大国,同时也是崛起中的化工强国。近年来多起重大爆炸事故暴露出我国化工园区安全问题突出,特别是在安全风险管控数字化转型、智能化升级方面存在明显短板和不足,尤其突出的痛点:化工园区的日常管理方式较为粗…

电子烟行业常用的英文表达

1. 电子烟的各种表达 a) 电子烟 i. Electronic-cigarette, ii. Electronic smoke, iii. electronic cigarettes iv. Electric cigarette, v. E-Cigarettes vi. e-cigarette, vii. e-Cig viii. E cigar,e-cigar 电子烟雪茄 2. 电子烟特指词汇及衍生 a) VAPE i. Vapo…

【Git】Git 分支

Git 分支 1.分支简介 为了真正理解 Git 处理分支的方式,我们需要回顾一下 Git 是如何保存数据的。 或许你还记得 起步 的内容, Git 保存的不是文件的变化或者差异,而是一系列不同时刻的 快照 。 在进行提交操作时,Git 会保存一…

Scrum工作模式的角色和活动

​Scrum工作模式是一种敏捷软件开发方法,其核心是团队合作和自我组织,旨在通过短周期的迭代开发,实现快速反馈和持续改进。 Scrum工作模式包括以下角色和活动: 1、产品负责人(Product Owner):…

Oracle(1):Oracle简介

1 什么是 ORACLE ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一。 ORACLE 通常应用于大型系统的数据库产品。 ORACLE 数据…

ICC2: ICG clone与ICG merge

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 默认情况下,initial_place阶段或者在spg flow的initial_opt阶段工具会自动merge clock gating cell。但是如果在place_opt之前使用merge_clock_gates命令了,place阶段就不会再merge clock gate了。…

maven管理android项目

maven管理android项目 1.安装maven-android-sdk-deployer,下载地址:https://github.com/mosabua/maven-android-sdk-deployer 2.解压缩大英文路径文件夹 3.在压缩后的根目录执行mvn clean install -P 2.3.3(2.3.3指的是android版本号&#x…

赋能人工智能:Kubeflow VMware Distribution的发布

在最近结束的 VMware Explore 2023 拉斯维加斯大会上,VMware 推出了新的 Private AI 产品,以促进企业采用生成式人工智能并挖掘可信数据的价值。VMware 宣布了以下几点: 与 NVIDIA 合作推出 VMware Private AI Foundation,将两家…

安装 paddlepaddle paddleocr库,避坑指南

看到这个库我就头疼,因为换了电脑,不得不再来一遍,又是到处踩坑!拼了好几个小时,总结出来的最终解决方法!详细的傻瓜式解决! - import paddle 报错!illegal hardware instruction py…

Linux 内核 6.5 发布,首次支持 Wi-Fi 7 和 USB4

导读Linux 6.5 内核 已经推出,此次更新在 Linux 6.4 内核的基础上进行了进一步的开发,带来了值得注意的改变和新特性。 Linus Torvalds 表示,这是一次相对顺畅的发布: 上周并没有发生任何异常或惊人的事情,因此没有理…

数据预处理之数据缩放

一、介绍 ​ 在实践中,同一个数据集合中经常包含不同类别的变量。一个很大的问题是这些变量的值域可能大不相同。如果使用原值域将会使得值域大的变量被赋予更多的权重。针对这个问题,我们需要在数据预处理时对自变量或特征使用缩放的方法。特征缩放的目…

【运维 Pro】时序场景实践与原理 - 1. 分布与分区

【运维 Pro】: 是由 YMatrix 售前和售后团队负责的栏目。除了介绍日常的数据库运维和使用知识,我们更希望能够通过介绍这些知识背后的原理,让大家和我们一起感知数据库的美妙。 摘要 有别于其它场景,时序场景中的数据、查询都有着更为明显的…

Scrum敏捷开发流程及敏捷研发关键环节

Scrum是一个迭代式增量软件开发过程,是敏捷方法论中的重要框架之一。它通常用于敏捷软件开发,包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括Scrum主管(Scrum Master)、产品负责人(Product Owner&…

坚果投影人事地震:IPO之前,创始人被投资人踢出公司

大数据产业创新服务媒体 ——聚焦数据 改变商业 一份流传于网络的《董事会函件》以及一张微信截图显示,智能投影行业市占率第二的坚果投影8月28日发生人事地震,公司创始人胡震宇被董事会罢免董事长一职,由资方代表连萌担任临时董事长一职。 …

企业架构LNMP学习笔记21

URL重写: ngx_http_rewrite_module 模块用于使用PCRE正则表达式更改请求URI,返回重定向,以及有条件地选择配置。 return 该指令用于结束结束规则的执行并返回状态码给客户端。 403 Forbidden.服务器已经理解请求,但是拒绝执行它 404 Not…

Nginx反向代理联动Tomcat实现多实例部署、动静分离、负载均衡

文章目录 1. 配置反向代理1.1 前置准备1.2 代理服务器配置1.3 真实服务器配置1.4 客户机配置 2. Tomcat 多实例部署2.1 部署JDK2.2 设置JDK环境变量2.3 部署Tomcat服务2.4 路径启动 3. Nginx联动Tomcat实现动静分离、负载均衡3.1 基本原理3.2 前置准备3.3 配置nginx1实现四层代…