当前位置: 首页 > news >正文

初识网络

目录

  • 一、网络发展史
    • 1.1 独立模式
    • 1.2 网络互联模式
  • 二、网络分类
    • 2.1 局域网
    • 2.2 广域网
  • 三、协议
    • 3.1 协议的概念
    • 3.2 协议的必要性
    • 3.3 协议分层
      • 3.3.1 通过对话理解协议分层
      • 3.3.2 协议分层的好处
    • 3.4 OSI七层模型
    • 3.5 TCP/IP模型
    • 3.6 封装和分用

一、网络发展史

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

1.1 独立模式

独立模式:计算机之间相互独立;
在这里插入图片描述

1.2 网络互联模式

随着计算机的不断发展,人们不在局限于单机模式,而是将一个个计算机连接在一起,形成一个计算机网络。连接多台计算机可以实现信息共享,同时还能在两台位置较远的机器之间即使传递信息。
网络互连:将多台计算机连接在一起,完成数据共享。
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
根据网络互连的规模不同,可以划分为局域网广域网。
在这里插入图片描述

二、网络分类

计算机网络可根据其规模分为WAN(Wide Area NetWork,广域网)和LAN(Local Area NetWork,局域网)。

2.1 局域网

局域网:指一个楼层、一栋楼或一个校园等相对较小的区域内的网络。
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
在这里插入图片描述
一栋大楼或校园中有限的、狭小的、区域内网络

局域网组建网络的几种方式如下:

(1)基于网线直连
在这里插入图片描述
当主机数目很少的时候,我们可以基于网线实现将所有主机相连组建成局域网,但当主机数量较多的时候,通过网线的方式组建局域网就不太现实了,于是就有了后面的集线器、交换机和路由器
(2)基于集线器组建
在这里插入图片描述
(3)基于交换机组建
在这里插入图片描述
(4)基于交换机和路由器组建

在这里插入图片描述

【集线器和交换机的区别】:

  • 交换机工作在数据链路层,通过MAC地址转发数据;

  • 集线器工作在物理层,通过广播的形式转发数据。

  • 集线器内部采用了总线型拓扑,在同一时间内必须是单向的,只能维持在半双工模式下;
    在这里插入图片描述

  • 交换机上的两个端口之间的通道是相互独立的,可以实现全双工通信

  • 由于集线器的功能有限,组建局域网的时候现在很少使用了

【交换机和路由器】

交换机:是将多个机器连接到一个局域网中,工作在数据链路层
路由器:连接了多个局域网,工作在网络层
在交换机和路由器,反复的连接下,就可以把很多的设备都连接到一起,使他们之间可以直接进行通信

但是实际上,当下交换机和路由器的功能都越来越强大,彼此之间有很多功能的重叠,例如三层交换机(带有路由器的功能),路由器,也有桥接模式,也相当于交换机一样,甚至有些设备也有可能有一些传输层和应用层的功能。

2.2 广域网

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网
在这里插入图片描述
跨接相距较远的计算机或LAN网络

如果有北、中、南等分公司,甚至海外分公司,把这些分公司以专线方式连接起来,即称为“广域网”。
如果属于全球化的公共型广域网,则称为互联网(又称公网,外网),属于广域网的一个子集。
有时在不严格的环境下说的广域网,其实是指互联网。
所谓 “局域网” 和 “广域网” 只是一个相对的概念。比如,我们有 “天朝特色” 的广域网,也可以看做一个比较大的局域网。

三、协议

3.1 协议的概念

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

  1. 语法:数据与控制信息的结构或格式
    类似打电话时,双方要使用同样的语言:普通话
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应 语义主要用来说明通信双方应当怎么做。
    用于协调与差错处理的控制信息。 类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!
  3. 时序:即事件实现顺序的详细说明
    时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是 异步传输。 女生和男生的通话,总是由男生主动发起通话,而总是在男生恋恋不舍的时候,由女生要求 结束通话。

3.2 协议的必要性

简单来说,协议就是计算机与计算机之间通过网络实现通信事先达成的一种"约定"。这种"约定"使那些有不同厂商的设备、不同CPU以及不同的操作系统组成的计算机之间,只要能够遵循相同的协议就能实现通信反之,如果所使用的协议不同,就无法进行通信。就好比两个人使用不同国家的语言是无法进行交流的。
同时,协议分很多种,每一种协议都明确的界定了它的行为规范

协议所起到的作用就好比见网友,彼此协商胸口插支玫瑰花见面,这就是一种提前的约定,也可以称之为协议

在这里插入图片描述
计算机之间的传输媒介是光信号和电信号。通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式

  • 计算机生产厂商有很多;
  • 计算机操作系统,也有很多;
  • 计算机网络硬件设备,还是有很多;
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;

3.3 协议分层

网络通信是一个非常复杂的过程,有很多的问题和细节需要处理,如果只使用一个协议去解决所有的问题,就会造成这个协议很复杂。
协议拆分:把一个协议拆分成多个协议,这也类似于我们平时写代码,如果一个类写的太复杂,就把拆成多个类,一个方法写的太复杂就把他分成多个方法

在协议拆分的过程中,程序员就发现,有些拆出来的协议其实解决的问题都差不多,因此程序员就把这些协议分成了很多类,也可以称为协议分层,类似于我们开发中将功能相似的类放在同一包下。
在这里插入图片描述

3.3.1 通过对话理解协议分层

关于协议分层,我们以A和C的对话举例简单说明,此处只考虑了语言层和通信设备层这两个分层的情况
A和C正通过电话(通信设备)用汉语(语言协议)进行聊天。

在这里插入图片描述

  • 当我们该变通信设备层的时候,用无线电代替电话机之后,由于通信设备层改用了无线电,就需要学会使用无线电的方法,而语言层仍使用汉语协议,因此可以向往常一样进行聊天
  • 当我们将语言层改为英语的时候,由于电话记本身不受限于使用者使用的语言,因此仍可以实现通话
    这都是协议分层的优点

3.3.2 协议分层的好处

  • 下层协议给上层提供服务,上层调用下层协议。(封装)
    实现上层协议的人,不必考虑下层协议的细节
  • 解耦合,可以把同一层的协议替换成其他协议,对于其他层协议来说,基本是无感知的,因此可以构造一个扩展性和灵活性都较强的系统。
  • 通过分层能够细分功能,更易于单独实现每个分层的意义,并界定各个分层的具体责任和义务

3.4 OSI七层模型

OSI:即Open System Interconnection,开放系统互连

  • OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

OSI七层模型的划分以及各个分层的作用:
在这里插入图片描述
OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。
实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现。

3.5 TCP/IP模型

TCP/IP分层模型与OSI参考模型
在这里插入图片描述
【说明】:

观察上面的TCP/IP模型我们发现,只有应用层是程序员写代码处理的,下面的四层都是操作系统和硬件处理好了的,因此网络编程的主要工作,也就是写应用层的代码,来处理应用层的协议数据

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

【举例理解各层的作用】:

将我在tb上买了一台电脑,卖家给我发货到我收到快递使用电脑这个过程类比于通信,下面是各层所起到的作用

  • 物理层:运快递的高速公路
  • 数据链路层:两个集散点之间的传输
  • 网络层: 物流公司规划的路径
  • 传输层:卖家发货时,只需考虑发件人和收件人
  • 应用层:我收到电脑后具体用来做什么

【举例区分网络层和数据链路层】:

假设我从广州放假回家的路线有很多条:
(1)广州->北京->哈尔滨->齐齐哈尔->甘南
(2)广州->哈尔被->大庆->齐齐哈尔->甘南

网络层的作用是路径规划,也就是选择一条路线,假设选择的路线是(1)
数据链路层的作用是,两个相邻节点之间的传输(也就是两个相邻节点之间乘坐什么交通工具)
广州->北京 (飞机)
北京->哈尔滨(高铁)
哈尔滨->齐齐哈尔 (大巴)
齐齐哈尔-> 甘南 (轿车)

3.6 封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理

【举例理解封装和分用】
当我使用QQ向好友发送一个hello的信息

在这里插入图片描述
在这里插入图片描述

上述的封装分用,不仅仅出现在主机上,也出现在传输过程中,包括路由器和交换机上。

相关文章:

  • Linux的OpenLava配置
  • MySQL如何记忆
  • 【回溯算法】leetcode 78. 子集
  • stm32f4xx-外部中断
  • Tricentis NeoLoad:自动化的企业性能测试平台
  • Linux内核中网络部分结构以及分布
  • 从无到有的基于QT软件的DIY桌面番茄钟(上)
  • Springboot整合ElasticSearch
  • Golang JWT 认证 (三)-添加token自动刷新机制
  • 哈希方法总结
  • 记录get和post的理解误区
  • 2022最全的 App 应 用 测 试 技 巧
  • 【MATLAB教程案例4】直接序列扩频通信系统的MATLAB仿真
  • FORCESPRO的使用教程(暂未完结)
  • Docker 使用 IDEA 内置插件构建上传镜像 与 SSH、FTP 功能使用
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Angular4 模板式表单用法以及验证
  • canvas 五子棋游戏
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • EventListener原理
  • Java应用性能调优
  • leetcode388. Longest Absolute File Path
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • text-decoration与color属性
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 后端_ThinkPHP5
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 实现简单的正则表达式引擎
  • 学习ES6 变量的解构赋值
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 一些关于Rust在2019年的思考
  • 移动端 h5开发相关内容总结(三)
  • 智能合约开发环境搭建及Hello World合约
  • 字符串匹配基础上
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (04)odoo视图操作
  • (145)光线追踪距离场柔和阴影
  • (4.10~4.16)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (十八)SpringBoot之发送QQ邮件
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Remoting学习笔记(三)信道
  • .net 受管制代码