计算机网络(一)--网络发展和协议

网络发展和协议

    • 计算机网络背景
      • 从独立模式到网络互联模式
      • 计算机网络发展七个阶段
        • 1. 批处理
        • 2. 分时系统
        • 3. 计算机之间的通信
        • 4. 计算机网络的产生
        • 5. 互联网的普及
        • 6. 以互联网技术为中心的时代
        • 7. 单纯建立连接 到 安全建立连接
      • 协议
        • 例子:人与人之间的对话
        • 计算机中的协议
      • 协议分层
        • OSI参考模型中各个分层的作用
      • 传输方式的分类
        • 面向有连接型与面向无连接型
        • 电路交换与分组交换
      • 地址
        • 地址唯一性
        • 地址的层次性
      • 网络构成要素
        • 网卡
        • 中继器
        • 网桥/2层交换机
        • 路由器/3层交换机
        • 4-7交换机
        • 网关
      • 结尾

计算机网络背景

从独立模式到网络互联模式

最开始计算机是以单机模式被广泛使用(也被称为独立模式),随着计算机不断发展,计算机被连接起来称为一个计算机网络,连接多台计算机实现信息共享,同时还能在两台物理位置较远的机器之间及时传递信息.

计算机网络根据规模可以分为WAN(Wide Area Network,广域网)LAN(Local Area Network,局域网).

计算机网络发展七个阶段

从20世纪50年代到现在,计算机使用模式发生了很多变化,计算机与网络的发展大致key分为下面7个阶段.

1. 批处理

为了能让更多人使用计算机,出现了批处理(Batch Processing)系统.
批处理:事先将用户程序和数据装入卡带或磁带,并由计算机按照一定的顺序读取,使用户所要执行的这些程序和数据能够一并批量得到处理的方式.

2. 分时系统

它是指多个终端与同一计算机连接,允许多个用户同时使用一台计算机的系统.
因为当时计算机造价非常昂贵,一人一台计算机的费用过于高昂,分时系统的出现使得用户感觉自己好像"完全使用一台计算机一样".
上面体现了分时系统的一个重要特性–独占性.

3. 计算机之间的通信

在分时系统中,计算机与每个终端之用通信线路连接,这并不意味着计算机与计算机之间也已经互相连接.
在计算机通信技术诞生之前,想将一台计算机中的数据转移到另一台计算机中是相当繁琐的.
大概操作是:

  1. 将数据保存到磁带等外部存储介质中
  2. 将这些介质送到目的计算机

有了计算机间的通信技术,实现了计算机与计算机之间由通信线路连接,使得我们很轻松及时读取另一台计算机中的数据,从而极大地缩短了传送数据的时间.

4. 计算机网络的产生

20世纪70年代,人们开始实验基础分组交换技术的计算机网络,到了80年代,一种能互连多种计算机的网络随着诞生.它能让各式各样的计算机相互连接,从大型的超级计算机,主机到小型电脑.
其中窗口系统的发明,更是拉进了人们与网络的距离,有了窗口模式,用户不仅key同时执行多个程序,还能在这些程序之间自由地切换作业.

5. 互联网的普及

20世纪90年代,基本上专注于信息处理的公司和大学已经为员工和研究人员实现了"一人一机"的环境.
然而这种环境的构建成本不菲,使用中也遇到很多新问题.
基于此,人们提出了"瘦身"和"多供应商连接"(异构性计算机之间的连接)
瘦身: 当时个人电脑与UNIX工作站从性能上不亚于一台主机,利用这些设备建立网络更有优势,主要体现在两个方面(1.价格低;2.操作简单).
由于这一趋势导致曾经在大型主机上才能运行的公司核心业务系统逐渐转移到"轻量型"的个人电脑或UNIX工作站上运行.

6. 以互联网技术为中心的时代

互联网普及和发展对通信领域产生了巨大的影响.
许多发展道路各不相同的网络技术也都正在向互联网靠拢,例如:曾经一直作为通信基础设施,支撑通信网络的电话网,随着互联网的快速发展,其低位随着时间的推移被IP(Internet Protocal)网所取代,而IP网本身就是互联网技术的产物.

7. 单纯建立连接 到 安全建立连接

互联网的便捷性也给人们的生活带来了负面影响,比如:计算机病毒的侵害,信息泄露,网络欺诈等利用互联网犯罪行为日益增多.
人们当初关注单纯的连接性,以不受任何限制地建立在互联网连接为最终目的;
然而现在,人们更追求"安全建立连接"的目标.

协议

计算机网络与信息通讯领域里,经常提到"协议"这一个词.
那么什么是协议呢?
协议: 计算机与计算机之间通过网络实现通信时事先达成一种"约定".
这种约定使得那些由不同厂商的设备,不同CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信.

例子:人与人之间的对话

协议如同人与人的对话
比如有三个人A,B,C. A只说汉语,B只说英语,C既会说汉语也会说英语.
现在A与B聊天,他们之间如何沟通呢?
如果是A与C聊天,又会怎么样?
这时如果我们:

  • 将汉语和英语当作"协议"
  • 将聊天当作"通信"
  • 将说话的内容当作"数据"
    这么看来,A和B说多久都无法胶料,因为他们之间的谈话所用协议(语言)不同,双方都无法将数据(所说的话)传递给对方.
    同理可推断,A和C是可以正常沟通的,即采用同一种协议(语言),使得他们之间能够传递所期望的数据(想要说给对方的话).
计算机中的协议

人与人的沟通并不受太多规则限制,及时有任何规则之类的东西,人们也可以通过自己的应变能力很自然的去适应规则.
然而在计算机通信当中显然无法实现(因为计算机智能水平还没有到达人类的高度).
计算机从物理连接层面应用程序的软件层面,各个组件都必须严格遵循事先达成的约定才能实现真正的通信.

协议分层

ISO制定标准化OSI之前,提出了作为通信协议设计指标的OSI参考模型.
这一模型将通信协议中必要的功能分为了7层,通过这些分层,使得那些比较复杂的网络协议更加简单化
在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务.
上下层进行交互时所遵循的约定称为----接口
同一层之间交互所遵循的约定称为—协议

OSI参考模型中各个分层的作用
层数分层名称功能每层功能概览
1物理层以0,1代表电压的高低,灯光的闪灭.界定连接器和网线的规格比特流与电子信号之间的转换
2数据链路层互连设备之间传送和识别数据帧数据帧与比特流之间的转换
3网络层地址管理与路由选择经过哪个路由传递到目标地址
4传输层管理两个节点之间的数据传输.负责可靠传输(确保数据被可靠地传送到目标地址)是否有数据丢失
5会话层通信管理.负责建立和断开通信连接(数据流动的逻辑通路),管理传输层以下分层何时建立连接,何时断开连接以及保持多久的连接
6表示层设备固有数据格式和网络标准数据格式的转换接受不同表现形式的信息,如文字流,图像,声音等
7应用层针对特定应用的协议针对每个应用的协议,比如:电子邮件–电子邮件协议

传输方式的分类

网络通信中可以根据其数据发送方式进行多种分类,分类方法有很多,下面介绍几种.

面向有连接型与面向无连接型

通过网络发送数据,大致可以分为面向有连接与面向无连接两种类型.

  • 面向有连接型
    在发送数据之前,需要在收发主机之间连接一条通信线路.
    好比人们日常打电话,只有对方拿起电话后才能真正通话,通话结束后将电话机扣上就如同切断电源.
    因此在有面向连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理.
  • 面向无连接型
    面向无连接型则不要求建立和断开连接.
    发送端可于任何时候自由发送数据,当然接收端永远不知道自己在何时从哪里收到数据.
    因此接收端需要时常确认自己是否收到了数据.
电路交换与分组交换

目前网络通信大致分两种—电路交换和分组交换.

  • 电路交换
    用于过去的电话网,历史相对久远.
    主要是负责数据的中转处理.
    计算机连接到交换机,交换机和交换机之间由众多通信线路连接,还要交换机与目标主机连接建立通信电路.
    我们将上面连接电路称为建立连接.建立好连接后,用户就可以一直使用这条线路,直到连接被断开为止.
  • 分组交换
    上面电路交换过程中,谁也无法预测某一台计算机的数据传输从何时开始和结束,如果并发用户数据超过交换机之间的通信线路数,就意味着通信根本无法实现.
    因此,人们想到一个新方法:让连接到通信电路的计算机将所要发送的数据分成了多个数据包,按照一定的顺序排列之后分别发送
    这就是分组交换.
    大致过程:
  1. 发送端计算机将数据分组发送给路由器
  2. 路由器收到分组数据后缓存到自己的缓存区
  3. 路由器缓存后转发后目标计算机
    基于上述过程,分组交换也有一个别名蓄积交换.

地址

通讯传输中,发送端和接收端可以被视为通信主体.它们都能由一个所谓"地址"的信息加以标识出来.
比如: 打电话时,电话号码就相当于"地址".

地址唯一性

想让地址在通信当中发挥作用,首先需要确定通信的主体.
一个地址必须明确地表示一个主体对象.
在同一个通信网络中不允许有两个相同地址的通信主体存在,这就是地址唯一性.

可能你会有疑问,对于单播通信还好理解,那如果接收端设备不止一个呢?
对于这种情况,我们可以对多个设备组成的一组通信赋予同一个具有唯一特性的地址,从而可以避免产生歧义,明确接受对象.
举个例子:
老师说:一年一班的同学请起立,其中一年一班就是一次"多播"

地址的层次性

地址总数不是很多的情况下,有了唯一地址就可以定位相互通信的主体,然而当地址的总数越来越多时,如果高效地找出通信的目标地址是一个重要的问题.
为此人们发现地址除了唯一性还要有层次性.
MAC地址和IP地址在标识一个通信主体时虽然都具有唯一性,但是它们当中只有IP地址具有层次性.

网络构成要素

搭建一套网络环境需要各种各样的电缆和网络设备
下面我们介绍一些硬件设备.

网卡

任何一台计算机连接网络时,都必须使用网卡(全称为网络接口卡).
网络接口卡(NIC)有时也被称为网络适配器,网卡,LAN卡.
计算机必须具备能够接入无线网的NIC才能保证连接到网络.

中继器

中继器(Repeater)是在OSI模型第一层—物理层面上延长网络的设备.
由电缆传过来的电信号或光信号由中继器的波形调整放大再传给另一个电缆.
但注意:中继器只是单纯负责信号在0与1比特流之间的替换,并不负责判断数据是否有错误,而且通过中继器进行的网络延长,其距离也并非key无限扩大.
有些中继器key提供多个端口服务.这种中继器被称为中继集线器或集线器.

网桥/2层交换机

网桥是在OSI模型的第2层—数据链路层面上连接两个网络的设备.
它能够识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段.
数据链路的数据帧有个数据位叫FCS(用于校验数据是否正确送达目的地),网桥可以通过检查这个域中的值,将那些损坏的数据丢弃,从而避免发送给其他的网段.
此外网桥还可以通过自学机制和过滤功能控制网络流量.
有些网桥能够判断是否将数据报文转发给相邻的网段,这种网桥被称为自学式网桥.

路由器/3层交换机

路由器是OSI模型的第3层—网络层面上连接两个网络,并对分组报文进行转发的设备.
网桥是根据物理地址(MAC地址)进行处理,而路由器则是根据IP地址进行处理的.
由此,TCP/IP中网络层的地址就成为了IP地址.

4-7交换机

4-7交换机负责处理OSI模型中从传输层至应用层的数据.
如果用TCP/IP分层模型来表述,4-7层交换机就是已TCP等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理.
比如,对于并发访问量比较大的企业级Web站点,使用一台服务器肯定是不足以满足前端的访问需求,这是就是架设多台服务器分担,但是前端访问接口就只有一个,这时候就可以在前端加一个负载均衡器.

网关

网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设备.
它不仅转发数据还负责转换数据,它通常会使用一个表示层或应用层网关,在两个不能直接通信的协议之间进行翻译,最终实现两者之间的通信.
比如互联网邮件与手机邮件之间的转换服务.
互联网邮件与手机邮件之间如果不能互相兼容,那就是表示层和应用层中的"电子邮件协议"不同导致的.
我们设置一个网关,它负责读取不同的协议后,对它们逐一进行合理的转换,再将相应的数据转发出去,这样就可以实现通信了.
此外,有时候微粒控制网络流量和安全的考虑,有时会使用代理服务器(Proxy Server).这种代理服务器也是网关的一种,称为应用网关.

结尾

第一章的内容到这里就结束了,主要是了解一些基础的网络概念,为后续深入学习做准备

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

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

相关文章

Linux CentOS基础操作

Linux CentOS基础操作 1. 查看Linux服务器当前主机名等 hostname 2. 查看当前系统日期和时间 date -d -y 3. 显示网络接口信息,获取当前网卡状态,启动、停止网卡,网卡等闪烁显示30秒,配置网卡(网卡名称:eth1)的IP地址…

Redis主从同步机制

Redis主从同步机制是一种分布式数据库架构设计,用于确保主数据库(Master)和从数据库(Slave)之间的数据一致性,从而实现数据冗余、负载均衡、故障转移等功能。以下是Redis主从同步机制的关键要点&#xff1a…

每日OJ题_两个数组dp⑤_力扣10. 正则表达式匹配

目录 力扣10. 正则表达式匹配 解析代码 力扣10. 正则表达式匹配 10. 正则表达式匹配 难度 困难 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c…

springboot 整合 mybatis(配置版)

代码及配置整合 创建实体类,与数据库对应 创建 mapper、service 和 controller @AutowiredUserService userService;@ResponseBody@GetMapping("/user")public com.vazquez.bootstudy.model.User getById(@RequestParam("id") Long id) {return userServ…

XC7A35T-2FGG484 嵌入式FPGA现场可编程门阵列 Xilinx

XC7A35T-2FGG484 是一款由Xilinx(赛灵思)制造的FPGA(现场可编程门阵列)芯片 以下是XC7A35T-2FGG484 的主要参数: 1. 系列:Artix-7 2. 逻辑单元数量:33280个 3. 工艺技术:28nm 4. …

设计模式之中介者模式讲解

概念:也称为调停者模式。用一个中介者对象封装一系列对象的交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 抽象中介者:定义中介者的操作。具体中介者:实现…

【HTML】简单制作一个动态变色光束花

目录 前言 开始 HTML部分 效果图 ​编辑​编辑​编辑​编辑总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,其中HTML的文件名改为[index.html]&a…

目标检测YOLO实战应用案例100讲-基于卷积神经网络的多尺度特征融合目标检测

目录 前言 存在的挑战 2 相关技术基础 2.1 卷积神经网络 2.2 损失函数

【CTF】rip--堆栈的简单认识

前言 最近在学二进制,准备拿BUUCTF的pwn试试手,还在摸索的阶段,有什么思路出错的地方还请指出。 解题思路 下载文件到kali,查看文件为 64-bit的ELF(ELF为Linux下的可执行文件,相当于Windows的exe&#xff0…

python-flask后端知识点

anki 简单介绍: 在当今信息爆炸的时代,学习已经不再仅仅是获取知识,更是一项关于有效性和持续性的挑战。幸运的是,我们有幸生活在一个科技日新月异的时代,而ANKI(Anki)正是一款旗舰级的学习工具…

GD32F470_GY-68 BMP180 新款 BOSCH温度 代替BMP085 气压传感器模块

2.23 BMP180气压传感器 1BMP180是一款高精度、小体积、低能耗的压力传感器,可以轻松应用在移动设备中.在测量海拔高度时,传统的做法是通过测量某一高度的大气压力,再经过换算才能得到高度数据。BMP180不仅可以实时的测量大气压力&#xff0c…

基于velero和minio实现k8s数据的备份

1.30部署minio rootk8s-harbor:/etc/kubeasz/clusters/k8s-cluster1# docker run \ -d --restartalways -p 9000:9000 -p 9090:9090 –name minio -v /data/minio/data:/data -e “MINIO_ROOT_USERadmin” -e “MINIO_ROOT_PASSWORD12345678” quay.io/minio/minio server…

Netty框架介绍并编写WebSocket服务端与客户端

一、Netty 介绍 Netty 是一个基于 Java NIO(Non-blocking I/O,非阻塞 I/O)的网络通信框架,旨在帮助开发者轻松地编写高性能、高可靠性的网络应用程序。由于其出色的设计和强大的功能,Netty 在企业级应用和开源项目中得…

智慧安防系统EasyCVR视频汇聚平台接入大华设备无法语音对讲的原因排查与解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流,视频画面1、4、9、16个可选,支持自定义视频轮播。EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标…

不同的子序列-java

题目描述(力扣题库115): 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 示例 1: 输入:s "rabbbit", t "rabbit"输出:3 解释: 如下所示…

小型企业网络安全指南

许多小型企业刚刚起步,没有大公司所拥有的相同资源来保护其数据。他们不仅可能没有资金来支持多样化的安全计划,而且也可能没有人力或时间。 网络犯罪分子知道小型企业缺乏这些资源,并利用这些资源来谋取利益。遭受网络攻击后,小…

hyperf websocket

composer require hyperf/websocket-server 配置 Server 修改 config/autoload/server.php&#xff0c;增加以下配置。 <?phpreturn [servers > [[name > ws,type > Server::SERVER_WEBSOCKET,host > 0.0.0.0,port > 9502,sock_type > SWOOLE_SOCK_TCP…

2024年河北省网络建设与运维-省赛-nginx 和tomcat 服务服务步骤

题目&#xff1a; 5.nginx 和tomcat 服务 任务描述&#xff1a;利用系统自带tomcat&#xff0c;搭建 Tomcat网站。 &#xff08;1&#xff09;配置 linux2 为 nginx 服务器&#xff0c;网站目录为/www/nginx&#xff0c;默认文档 index.html 的内容为“HelloNginx”&#xf…

Rust与Go的对比

在各个领域&#xff0c;Rust 都已经成为一流的语言。最近&#xff0c;我们通过将服务的实现从 Go 切换到 Rust&#xff0c;极大地提升了该服务的性能。这里我阐述了重新实现服务为何是有价值的、该过程是如何实现的以及由此带来的性能提升。 Read States 服务 我们从 Go 切换…

01 Php学习:导学篇

Php是什么&#xff1f; PHP 是服务器端脚本语言。 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种通用开源脚本语言&#xff0c;主要用于服务器端开发。PHP脚本在服务器端执行&#xff0c;生成动态网页内容或执行服务器端任务。PHP可以嵌入到HTML中&#xff0c;也…