网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)

网络互连

网络互连: 将多台计算机连接在一起, 完成数据共享
数据共享的本质是网络数据传输, 即计算机之间通过网络来传输数, 也叫做网络通信

根据网络互连的规模不同, 将网络划分为局域网广域网
注意: 局域网和广域网是相对的概念

局域网LAN

又称内网, 局域网和局域网之间在没有连接的情况下, 无法通信

局域网组建网络 (组网) 的方式有多种:

  1. 基于网线直连
  2. 基于集线器组建
  3. 基于交换机组建
  4. 基于交换机和路由器组建 (二层交换机,三层路由)

广域网WAN

通过路由器, 将多个局域网连接起来, 就形成了广域网
如果属于全球化的公共型广域网, 则称为互联网

IP, 端口号

IP 和 端口号用于定位在网络世界(局域网/广域网)中的位置
IP 用于标识网络主机, 网络设备的地址, 即一台设备的网络地址

  • IP 地址是一个32位的二进制数
    eg: 01100100.00000100.00000101.00000001
    通常以点分十进制的形式表示:
    eg: 100.4.5.1

端口号用于定位一台主机上的某个进程

  • 端口号范围: 0~65535 (2^16 个)
  • 其中有个概念叫知名端口号: 0~1023
    他们被一些常用软件: QQ, 微信, 浏览器 … 占用
    所以如果你要指定某个端口的使用, 最好设定在 1024~65535 的范围内

注意:
一个端口号只能绑定一个进程(一个端口号不能同时被多个进程使用)
但是一个进程可以绑定多个端口号
(比如开一个"QQ游戏软件", 里面有一堆游戏: 妈祖,象棋 …
“QQ游戏软件” 是一个进程,里面的每个单独的游戏占用一个端口
么一个进程就绑定了多个端口)

网络协议

网络协议: 网络通信警告的所有网络设备都必须共同遵守的一组约定, 规则.
通常由三要素组成:

  1. 语法: 数据和控制信息的结构或格式
  2. 语义: 请求和响应的格式
  3. 时序: 事件实现顺序的详细说明

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

网络协议的作用:
由于存在无数种数据格式: 二进制, 文本, 光信号, 电信号 …
网络协议用来规定通信过程中, 使用什么类型的数据, 用什么方式请求, 用什么类型响应 等等
所以协议就是一组约定,规则, 即大家共同遵守的秩序

五元组

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

  1. 源IP: 标识源主机
  2. 目的IP: 标识目的主机
  3. 源端口: 标识通信中源主机中的发送数据的进程
  4. 目的端口: 标识通信中目的主机中接收数据的进程
  5. 协议号: 标识通信双发约定好的 数据格式 (你发二进制的内容, 我接受二进制的内容, 别你发了二进制形式内容, 我以字符格式接收)

协议分层

将网络协议分成几个部分, 每个部分专门处理某些内容

协议分层的作用:

  • 对于使用者来说, 不必关注提供方是如何实现的, 只需要使用接口即可
  • 对于提供方来说, 利用封装的特性, 隐藏实现细节, 只需要开放接口即可

不同分层之间, 上层应用调用下层接口, 下层接口实现上层应用

协议分层有两个常见划分模型: OSI 七层模型, TCP/IP 五层模型(或者有的地方也说是四层模型)

OSI 七层网络模型

这是只存在于教科书上的网络分层模型(没被真正实现, 只是提出了这样一种七层划分的概念)

该图片源自百度搜索

应用层: 针对特定应用的协议 (微信, 网页, 邮件 …)
表示层: 设备固有数据格式和网络标准 数据格式的转换
会话层: 通信管理. 负责建立和断开通信连接
传输层: 管理两个节点之间的数据传输, 即 端到端的数据传输 (节点: 网络通信中所有的设备, 主机, 路由, 交换机 …)
网络层: 地址管理和路由选择 (路径选择)
数据链路层: 互连设备之间传送和识别数据帧, 点到点之间的数据传输
物理层: 比特流(0/1)和电子信号之间的转换, 负责光 / 电信号的转换及数据传输

挺抽象的, 了解就好, 重点是学习我们正在用的 TCP/IP 五层模型

TCP/IP 五层模型

该图来自百度搜索

有的时候也说是 TCP/IP 四层网络模型, 原因是有人认为物理层是硬件相关的操作, 和我们网络通信有什么关系 (不是) , 所以把物理层删掉了, 这里不用太过在意, 知道是怎么回事就好.

这里有个便于记忆的点: TCP/IP 就是把 OSI 七层模型中的表示层和会话层合并到了应用层里 (有些大佬认为这仨层都是和应用相关, 没必要分的那么细 …) (考试的时候我死活记不住表示层和会话层 =^= )

应用层: 负责应用程序间的沟通, eg: HTTP, FTP, Telnet
传输层: 负责两台主机之间的数据传输, eg: TCP, UDP, 保证数据可靠的从源主机发送到目的主机.
网络层: 负责地址管理和路由选择, eg: IP, ICMP, 在IP协议中, 通过 IP 地址标识主机, 并通过路由表来规划两台主机之间的数据传输路线.
数据链路层: 负责设备之间的数据帧的传送和识别. eg: 设备驱动程序及接口卡
物理层 : 负责光/电信号的转换及数据传输.

不好记吧, 总有些取巧的方式 …
先了解几个概念, 网络通信过程中会经过很多设备, 其中的每个设备称为 节点 , 数据从 源主机, 途径许多节点, 发送到目的主机

没找到合适的图, 我自己做了

以微信聊天为例
应用层: 负责源主机和目的主机上的应用程序, 即微信和微信之间的匹配
传输层: 保证源主机和目的主机之间数据传输的可靠性
网络层: 源主机到目的主机之间, 有很多条线路可供网络通信选择, 网络层负责路径规划
数据链路层: 负责相邻节点之间的数据传输
物理层: 数据在设备之间通过光信号(电缆) 传输, 而在设备上以电信号(高低电平 =>01信号) 存储, 物理层负责光/电信号的转换

网络设备所在分层

主机的操作系统内核 实现了从传输层到物理层的内容
路由器 实现了网络层到物理层的内容 (三层路由)
交换机 实现了数据链路层到物理层的内容 (二层交换)
集线器 实现了物理层的内容

此处的路由器和交换机都是指传统意义上的路由器和交换机 (因为目前已经有 四层的路由器 和 三四层的交换机 了, 科技的发展是多么伟大 …)

封装和分用

不同协议层对数据包有不同的称呼, 在传输层叫做 段(segment), 在网络层叫做 数据报(datagram), 在链路层叫做 帧(frame)

应用层数据通过协议栈发送到网上时, 每层协议都要加上一个数据首部(header), 称为 封装(Encapsulation)
首部信息中包含一些类似于: 首部长度, 载荷长度, 数据类型, 上层使用协议 等等的信息

数据封装成帧后发送到传输介质上, 到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理, 这个过程叫做 分用

数据的封装过程

该图来自百度搜索
数据的分用过程
该图来自百度搜索


IP 地址 (Internet Protocol Adress) 互联网协议地址,又称网际协议地址

作用 : IP 地址时 IP 协议提供的一种统一的地址格式, 它为互联网上的每一个网络和每一台主机分配一个逻辑地址. 依次来屏蔽物理地址的差异.
格式 : 32位二进制数 & 点分十进制
组成 : 网络号 + 主机号


子网掩码

网络号 = 子网掩码 “按位与” IP地址
一般用于判断目的 IP 和本机 IP 是否位于同一网段


MAC 地址 (Media Access Control Address)

用于标识网络设备的硬件物理地址 (用来识别数据链路层中相连的节点)


网络设备及相关技术

集线器

发送到集线器的任何数据, 都会被转发到其他所有端口 (指集线器内部端口)

交换机

内部维护一张 MAC 地址转换符, 该表记录了 MAC 地址与(交换机中的)端口之间的映射. 交换机用于主机和主机间的数据报转发

路由器

作用 :

  • 作为网关
    • 划分公网和局域网
    • 将局域网划分为不同网段的多个子网
  • 路由
    • 路由即能够找出端到端的路线 (主机到主机)

ARP

ARP 协议 : 介于网络层和数据链路层之间的协议. ARP 协议建立了 IP 地址 和 MAC 地址的映射关系
ARP 寻址 : 在数据链路层, 寻找下一路设别 MAC 地址的过程, 称为 ARP 寻址
ARP 缓存表 : 记录了 IP 地址和 MAC 地址的对应关系. 主机和路由中均有各自的 ARP 缓存表


冲突域 (基于物理层)

主机之间通过网络设备 (集线器, 交换机)的物理端口, 网线相连时, 多个主机在同一时刻同时发送数据报. 如果存在冲突, 则该网络范围为一个冲突域 (碰撞域)

  • 集线器的所有端口, 为一个冲突域
  • 交换机可分割冲突域. 分割后, 一个端口为一个冲突域

广播域 (基于数据链路层)

广播是指某个网络中的主机, 同时向网络中的其他主机发送数据, 这个数据所能传播到的范围即为广播域

  • 集线器的所有端口为一个广播域
  • 一个交换机为一个广播域
  • 路由器可以隔离广播域, 其划分的一个网段为一个广播域

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

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

相关文章

生成式AI在B端产品的应用分析

AI产品发展到现在,消费端的产品应用还受到比较大的限制;但是在B端,已经有了不错的表现。作者总结了AI产品在B端的几款应用,一起来看看表现如何。 生成式AI在B端产品的应用分析© 由 ZAKER 提供 随着今年生成式AI应用的大范围…

Python基础06-日期和时间的操作方法

在Python中处理日期和时间是编程中常见的需求,无论是安排任务、记录日志还是分析数据。本文将介绍如何在Python中获取当前日期和时间、创建特定日期和时间、格式化日期和时间、解析字符串中的日期和时间、使用时间差、比较日期和时间、从日期/时间中提取组件、处理时…

2024年Java接单平台强力推荐!各个都知名!

Java这几年真卷飞了,一点都不夸张。因此,很多程序员朋友都已经试着转方向、换赛道了。试着接单、找私活就是一大途径。当然,特别是有技术、又有相对空闲时间的朋友,更值得一试。既是增加收入的捷径,又可以提升自我——…

在Milk-v Duo上部署YOLOV8模型

建议自己编译images固件,我使用官方给的固件在部署中出现了一些问题,请参考: 编译Milkv-duo固件-CSDN博客 下载YOLOv8 git clone https://github.com/ultralytics/ultralytics.git 下载yolo_export.zip 下载链接:链接:百度网盘…

mysql常见语法操作笔记

1. 数据库的基本操作 1.1. MYSQL登录与退出 D:\phpstudy_pro\Extensions\MySQL5.7.26\bin 输入 mysql -uroot -proot -h127.0.0.1 退出的三种方法 mysql > exit; mysql > quit; mysql > \q; 1.2. MYSQL数据库的一些解释 注意:数据库就相当于文件夹 …

Nacos的简介及安装和使用

Nacos的简介及安装和使用 1. Nacos简介1.1 核心特性1.2 常见的注册中心1.3 Nacos结构图 2. 如何安装和配置Nacos?2.1 Nacos的安装2.2 如何使用Nacos? 1. Nacos简介 ​ Nacos是一个开源的动态服务发现、配置和服务管理平台,由阿里巴巴开发和维…

南京邮电大学数学实验A答案 | 《MATLAB数学实验》第三版课后习题答案

数学实验A 本仓库收集了2024年我在学习《数学实验A》课程期间完成的作业。课程使用的教材为《MATLAB数学实验》第三版,作者为胡良剑和孙晓君教授。 这个资源库的建立初衷是为了帮助南京邮电大学的同学们在学习过程中有一个参考的依据,减少一些无端浪费…

OSPF虚连接

OSPF虚连接 虚连接(Virtual link)是指在两台ABR之间通过一个非骨干区域建立的一条逻辑上的连接通道。 根据RFC 2328,在部署OSPF时,要求所有的非骨干区域与骨干区域相连,否则会出现有的区域不可达的问题。但是在实际应…

模糊测试—AFL——实战小记

一 安装环境: 在vm虚拟机上使用Ubuntu-22.04系统的镜像。 清华和科大的镜像都可以,下载下来的是ISO的压缩包,不用解压(出来的是一堆文件),在安装新的VM虚拟机时,在镜像源里面直接选择下载下来…

【学习笔记二十四】EWM补货策略和自动补货配置

一、EWM补货策略概述 1.计划补货 ①以联机或批处理模式启动 ②根据最大和最小数量计算补货 ③仅当库存量低于最低数量时才开始 ④四舍五入至最小补货数量的倍数 2.自动补货 ①在WT确认期间启动 ②根据最大和最小数量计算补货 ③只有当库存量低于最低数量时才开始 ④四舍…

MySQL Prepared语句(Prepared Statements)

在数据库应用中,很多SQL语句都会重复执行很多次,每次执行可能只是where条件中的变量值不同,但MySQL依然会解析SQL语法并生成执行计划。对于这类情况,可以利用prepared语句来避免重复解析SQL的开销。 文章目录 一、prepared语句优…

Java——继承与组合

和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果。组合并没有涉及到特殊的语法 (诸如 extends 这样的关键字), 仅仅是将一个类的实例作为另外一个类的字段。 继承表示对象之间是is-a的关系,比如:狗是动物,猫是动…

模板(二)

文章目录 模板(二)1 非类型模板参数2. 模板的特化2.1. 概念2.2 函数模板特化2.3 类模板特化2.3.1 全特化2.3.2 偏特化2.3.3 类模板特化应用示例 3 模板的分离编译3.1 什么是分离编译3.2 模板的分离编译3.3 解决方法 4. 模板总结 模板(二&…

鸿蒙OpenHarmony【LED外设控制】 (基于Hi3861开发板)

概述 OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介绍如何通过调用OpenHarmony的NDK接口,实现对GPIO控制,达到LED闪烁的效果。其他的IOT外设控制&#xff0…

谁说快是转瞬即逝,PUMA说快是永恒

巴黎奥运会、欧洲杯、美洲杯......2024年可以说是名副其实的体育大年。在各种全球体育盛事营造的浓厚体育氛围当中,各大体育品牌纷纷开始发力。 4月10日,全球领先运动品牌PUMA率先发布了其为本届奥运会准备的17套奥运装配,包括瑞士、瑞典等国…

Linux多进程(一)创建进程与进程控制

一、进程状态 进程一共有五种状态分别为:创建态,就绪态,运行态,阻塞态(挂起态),退出态(终止态)其中创建态和退出态维持的时间是非常短的,稍纵即逝。主要是就绪态, 运行态, 挂起态三者之间的状态切换。 就绪…

小程序使用阿里巴巴矢量图标库

一、登录官网 www.iconfont.cn 二、在搜索框中搜索想要的图标,将鼠标移动到图标上会看到三个标记 可以使用下载,直接使用: 可以使用css文件使用: 首先点击购物车样式的选项,而后点击下图位置: 点击自己创…

Flume的安装及使用

Flume的安装及使用 文章目录 Flume的安装及使用Flume的安装1、上传至虚拟机,并解压2、重命名目录,并配置环境变量3、查看flume版本4、测试flume5、flume的使用 Flume的安装 1、上传至虚拟机,并解压 tar -zxvf apache-flume-1.9.0-bin.tar.g…

Git TortoiseGit 详细安装使用教程

前言 Git 是一个免费的开源分布式版本控制系统,是用来保存工程源代码历史状态的命令行工具,旨在处理从小型到非常大型的项目,速度快、效率高。《请查阅Git详细说明》。TortoiseGit 是 Git 的 Windows Shell 界面工具,基于 Tortoi…

05_FreeRTOS信号量

信号量 信号量信号量简介常用信号量API函数 信号量 信号量简介 信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务之间同步或临界资源的互斥访问,常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中&#xf…