【网络】掌握网络基础概念

文章目录

  • OSI七层模型
  • TCP/IP五层(或四层)模型
  • 为什么要有TCP/IP协议
  • 网络传输的基本流程
    • 网络传输流程图
    • 数据包封装和分用
  • 网络中的地址管理
    • IP地址
    • Mac地址
    • 比较IP地址和Mac地址

OSI七层模型

OSI即Open System Interconnection,开发系统互连。OSI七层模型是一个逻辑上的定义和规范,每一层都有其特定的功能和协议。OSI七层模型是一种框架性的设计方法,其主要功能就是使不同的两台主机实现数据传输。下面是七层网络模型的结构图:
在这里插入图片描述
OSI七层模型提供了一个通用的框架,不同厂商和技术可以通过遵循该模型实现互操作性。

值得注意的是:即使在网络的角度上来看,七层模型设计的非常完善,但是在实际的操作过程中,会话层和表示层一般是不能接入到操作系统中的,所以在工程实践中,最终实现的大多都是5层协议。

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

四层模型就是不算物理层。TCP/IP是一组协议的代名词,它还包含了许多协议,组成了TCP/IP协议簇。TCP/IP协议簇是目前最广泛的网络通信的协议集。具体的TCP/IP协议套件是一个分层模型,相比于OSI七层模型,TCP/IP模型更加简洁和实用。下面介绍TCP/IP每个层次的作用:

  • 应用层:提供直接面向用户的应用服务,通过不同的应用协议实现各种网络功能,如电子邮件、文件传输和网页浏览。常见的协议有HTTP和SSH协议
  • 传输层:负责两台主机之间的数据传输,即端到端之间,包括数据分段、传输控制、错误检测与纠正。使用到的协议有:TCP协议和UDP协议
  • 网络层:负责数据包的路由和转发,确保数据从源主机传输到目的主机,处理数据包的逻辑地址(IP地址)寻址和路由选择。使用到的协议有IP协议
  • 数据链路层:负责在相邻节点之间传输数据帧,包括物理介质访问、数据帧的封装和解封等。协议有以太网、WI-FI(无线网络)等。
  • 物理层:负责信号的的传递方式,比如现在以太网通用的网线(双绞线)、早期采用的同轴电缆、光纤、电磁波等。物理层的能力大小决定了数据传输的上限。
    在这里插入图片描述

对于上述对TCP/IP各个层次作用的解释的一些名词做出解释

  • 端口:端口是一个用于标志一台主机运行某个程序的整数

  • 数据分段:将较大的数据包拆分成更小的数据段的过程

  • 数据帧:数据帧(Data Frame)是在计算机网络中用于数据传输的基本单位,组成部分有:

    • 帧头:包含了控制信息,如目标地址、源地址、数据帧类型或长度等。通俗一点讲就是它的作用就是找到目标主机和目标主机如何正确接收这些数据的方法
    • 数据部分:实际传输的数据
    • 帧尾:包含校验等错误检测信息,用于检查数据在传输过程中是否损坏
  • 路由:路由是指数据根据特定算法确定到目的地址的传输路径的一个过程,简单来说们,就是选择合适路径的过程

此外,一般来说:

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

为什么要有TCP/IP协议

本质就是两个需要通信的两个主机距离变远了。之所以要遵循协议,这是为了两个主机能够在同一个规则下进行数据传输,这样即使相隔很远,只要遵循规则,我们就能做到正确的传输数据。那为什么是TCP/IP协议呢?因为TCP/IP协议有以下特征:灵活性,支持全球网络、可靠性和安全性等。协议即规则
下面给出TCP/IP协议栈与操作系统 的宏观关系示意图:
在这里插入图片描述
由于都遵循TCP/IP协议,两台主机封装的数据和解包的数据在同一个层次中是一致的。这句话是什么意思呢?意思就是假如主机A发送一个数据帧给主机B,假设在A的传输层中得到的数据是XXX,那么在B接收到数据帧后解包,在B的传输层中得到的数据也是XXX。当然这里的数据可能是某个结构体。

网络传输的基本流程

网络传输流程图

两台计算机设备通过TCP/IP协议通信的过程如下:

  • 局域网通信:
    在这里插入图片描述
  • 跨网络通信:
    在这里插入图片描述

数据包封装和分用

  • 数据包在不同的协议层有不同的称谓,比如在传输层就叫数据段,在网络层就叫数据报,在数据链路层就叫数据帧
  • 发送数据时,数据从应用层开始往下,每依次经过一层协议就要在数据首都加上一段数据,这个过程称为封装
  • 接收数据时,数据从物理层开始往上,每依次经过一层协议就要剥掉响应的首部数据,这个过程称为解包
  • 解包时,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理.比如在网络层解包后发现该数据使用的是TCP协议,那么在向上传递数据时就会选择TCP协议而不是UDP。这个过程也被称为分用
  • 对于每一层来说,上一层的传递的数据部分都被称为有效载荷,本层加的数据首部称为报头,所以报文=报头+有效载荷

下面给出封装和解包过程:
在这里插入图片描述

在这里插入图片描述
分用示意图:
在这里插入图片描述

网络中的地址管理

IP地址

IP地址是在网络层用IP协议标识和定位设备的逻辑地址,其中IP协议分为IPv4和IPv6。IPv4下的IP地址是一个4字节,32位的无符号整数表示,通常写成四个十进制数字,每个数字占一个字节,数据范围是[0-255]。IPv6下的IP地址是16字节,采用八组十六进制数字,每组都是16位,即两个字节。

作用:

  • 唯一标识一台网络上的设备
  • IP地址帮助路由器决定数据包如何从源地址传输到目标地址
  • 路由器根据目标IP地址将数据包从一个网络传输到另一个网络

Mac地址

Mac地址是用于在数据链路层标识和定位设备的物理地址,由48位二进制表示,通常用十六进制的表示,被厂商预先分配给网卡。

作用:

  • 每个网卡都有唯一的Mac地址,用于在局域网中唯一标识设备
  • 在局域网中,数据帧的源地址和目标地址是MAC地址,通过MAC地址确保数据帧能够准确地从发送端传输到接收端。

比较IP地址和Mac地址

IP地址可以在不同的网络中标识唯一设备,帮助路由器将数据包从一个网络到另一个网络。Mac地址用于定位网络内部的目标设备。这俩各种再网络传输过程中起到了不可替代的作用。

简单来说,IP地址告诉路由器数据应该转发给哪一个网络,Mac地址告诉路由器数据应该发给这个网络的那一台主机

下面给出网络通信的流程图:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ABAP 物料主数据屏幕增强记录

参考文章:https://zhuanlan.zhihu.com/p/692818545 先从SPRO进入——》SAP 参考IMG——》后勤_常规——》物料主数据——》配置物料主记录——》创建定制子屏幕的程序 然后会让你创建一个函数组,此处命名为ZTEST2 (后面才发现这张图截图不对&#xf…

昇思25天学习打卡营第13天|LLM-基于MindSpore实现的GPT对话情绪识别

打卡 目录 打卡 预装环境 流程简述 部分执行结果演示 词向量加载过程 模型结构 模型训练过程 模型预测过程 代码 预装环境 pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore2.2.14 pip install mindnlp pip install jieba pip install spacy pip …

Typescript 实现倒计时功能 useCountdown

效果图 代码块 useCountdown.ts import {onUnmounted, reactive, ref, watch} from "vue";type union days | hours | minutes | seconds | millisecondsexport type Remains Record<union, number>;/*** 创建一个倒计时** 用法*/ export const useCountDo…

Python酷库之旅-第三方库Pandas(029)

目录 一、用法精讲 74、pandas.api.interchange.from_dataframe函数 74-1、语法 74-2、参数 74-3、功能 74-4、返回值 74-5、说明 74-6、用法 74-6-1、数据准备 74-6-2、代码示例 74-6-3、结果输出 75、pandas.Series类 75-1、语法 75-2、参数 75-3、功能 75-4…

C语言函数:编程世界的魔法钥匙(2)

引言 注&#xff1a;由于这部分内容比较抽象&#xff0c;而小编我又是一个刚刚进入编程世界的计算机小白&#xff0c;所以我的介绍可能会有点让人啼笑皆非。希望大家多多包涵&#xff01;万分感谢&#xff01;待到小编我学有所成&#xff0c;一定会把这块知识点重新介绍一遍&a…

【JAVA基础】反射

编译期和运行期 首先大家应该先了解两个概念&#xff0c;编译期和运行期&#xff0c;编译期就是编译器帮你把源代码翻译成机器能识别的代码&#xff0c;比如编译器把java代码编译成jvm识别的字节码文件&#xff0c;而运行期指的是将可执行文件交给操作系统去执行&#xff0c; …

Linux介绍和文件管理

一Linux的起源 1.Unix Dennis Ritchie和Ken Thompson发明了C语言&#xff0c;而后写出了Unix的内核 2.Minix MINIX是一种基于微 内核架构的类UNIX计算机操作系统&#xff0c;由 Andrew S. Tanenbaum发明 3.Linux内核 芬兰赫尔辛基大学的研究生Linus Torvalds基于Gcc、 ba…

stack与queue的介绍与使用

stack 栈&#xff08;stack&#xff09;是一种遵循先入后出&#xff08;FILO&#xff09;逻辑的线性数据结构。其只能从容器的一端进行元素的插入与提取操作。 我们可以把他比作串串&#xff0c;我们在串肉的时候都是从底依次往上串肉&#xff0c;然后在吃的时候是从串顶依次…

springboot websocket 知识点汇总

以下是一个详细全面的 Spring Boot 使用 WebSocket 的知识点汇总 1. 配置 WebSocket 添加依赖 进入maven官网, 搜索spring-boot-starter-websocket&#xff0c;选择版本, 然后把依赖复制到pom.xml的dependencies标签中 配置 WebSocket 创建一个配置类 WebSocketConfig&…

platformIO STM32 upload-“Failed to init device.”问题解决

因为发现自己的32板子有带自动下载功能&#xff0c;platformIO也支持串口下载&#xff0c;但一直提示这个问题 问题情况 问题解决 把BOOT0接3.3V&#xff0c;BOOT1接GND&#xff0c;再点击下载(之后接回去复位也可以显示) 这是我从一个有相同问题的人从他尝试过的解决方案中…

手动添加node包给nvm管理

1.下载二进制包文件&#xff1a;https://nodejs.org/zh-cn/download/prebuilt-binaries 2.解压后&#xff0c;改名为v20.15.1。 3.放入nvm文件夹下&#xff1a; 4.运行命令即可查看&#xff1a;nvm ls 5.命令大全&#xff1a; 更新 nvm&#xff1a; nvm install-latest-npm…

STL—string类—模拟实现

STL—string类—模拟实现 熟悉了string的结构和各自接口的使用之后&#xff0c;现在就要尝试去模拟实现string类 这个string类为了避免和我们库里的string类冲突&#xff0c;因此我们需要定义一个自己的命名空间 namespace wzf {class string{public://成员函数private://成…

java之 junit单元测试案例【经典版】

一 junit单元测试 1.1 单元测试作用 单元测试要满足AIR原则&#xff0c;即 A&#xff1a; automatic 自动化&#xff1b; I: Independent 独立性&#xff1b; R&#xff1a;Repeatable 可重复&#xff1b; 2.单元测试必须使用assert来验证 1.2 案例1 常规单元测试 1.…

H6392升压恒压芯片输入2.6V4.2V5V升压9V12V18V2.5Aic 制冷市场应用

在制冷市场应用中&#xff0c;H6392升压恒压芯片由于其多种特性和优势&#xff0c;可以找到多种应用场景。虽然直接提及“制冷市场”的具体应用可能不太常见&#xff0c;但我们可以从产品特征和典型应用中推导出一些潜在的应用场景。 制冷系统电子控制器供电&#xff1a;H6392…

让旧书重焕新生:旧书回收小程序开发

在这个数字化的时代&#xff0c;书籍依然是知识的重要载体&#xff0c;承载着无数的智慧与情感。然而&#xff0c;随着时间的推移&#xff0c;许多旧书被闲置在角落&#xff0c;逐渐被遗忘。为了让这些旧书重新发挥价值&#xff0c;我们致力于开发一款创新的旧书回收小程序&…

Re:从零开始的C++世界——类和对象(下)

文章目录 前言1.再谈构造函数&#x1f34e;构造函数体赋值&#x1f34e;初始化列表&#x1f34e;特性&#x1f34c;特性一&#x1f34c;特性二&#x1f34c;特性三&#x1f34c;特性四&#x1f34c;特性五 &#x1f34e;explicit 关键字 2.static成员&#x1f34e;概念&#x1…

ThinkBook_TypeC外接显卡突然无输出了怎么解决?这里有方法!

ThinkBook用了快一年了&#xff0c;使用群体蛮多&#xff01;速度和效果还是值得肯定。 但是这个外接显示器用着用着&#xff0c;偶尔就碰到无输出了&#xff01;在使用TypeC外接显卡的情况下! 这个问题我咨询过联想客服&#xff0c;一顿乱指导&#xff0c;方向根本不对&…

连接池应用

一、什么是连接池&#xff1a; 当应用程序需要执行数据库操作时&#xff0c;它会从连接池中请求一个可用的连接。如果连接池中有空闲的连接&#xff0c;那么其中一个连接会被分配给请求者。一旦数据库操作完成&#xff0c;连接不会被关闭&#xff0c;而是被归还到连接池中&…

【数据结构】非线性表----树详解

树是一种非线性结构&#xff0c;它是由**n&#xff08;n>0&#xff09;**个有限结点组成一个具有层次关系的集合。具有层次关系则说明它的结构不再是线性表那样一对一&#xff0c;而是一对多的关系&#xff1b;随着层数的增加&#xff0c;每一层的元素个数也在不断变化&…

Uniapp 组件 props 属性为 undefined

问题 props 里的属性值都是 undefined 代码 可能的原因 组件的名字要这样写&#xff0c;这个官方文档有说明