网络初识基本概念总结

网络发展背景

经历了 单机阶段 -> 局域网阶段 -> 广域网阶段 -> 移动互联网阶段
(简单介绍一下)

其他一些小概念

  • 局域网LAN: 是把一些设备通过交换机 / 路由器连接, 形成的私有网络
  • 广域网WAN: 是把更多的局域网相互连接起来,当规模足够大时形成广域网
  • 交换机和路由器: 是组成网络的重要设备
  • IP地址: 描述一个主机在互联网上的具体位置
  • 端口号: 区分主机上的应用程序

其中最重要的就是协议 !!!

概念 : 通俗来说,协议就是 " 约定 " ,发送方规定了数据的格式,接收方要能理解这个格式, 当两边同时对上号才可以进行正常的通信

分层原因

但是由于环境的复杂, 协议也变得越来越复杂, 所以拆分出很多协议, 对其进行分类, 对不同的类别进行分层

相当于是规定了层级与层级之间的调用关系

  • 上层协议调用下层协议
  • 下次协议给上层协议提供支持
  • 不能跨层调用

协议分层的好处

  • 分层之后可以做到, 层级与层级之间的耦合度较低
  • 上层协议不必了解下层的细节, 下层也不必了解上层的细节
  • 方便需要替换协议时,对某一层的协议进行替换

真实网络协议具体分层

(用快递的方式来粗略解释每层的作用)

我在淘宝上买了一件衣服
需要填写收件人地址, 收件人电话
同时要填写发件人地址, 发件人电话
比如发货地址是上海, 收货地址是福建

OSI 模型各层的描述
层级描述
应用层相当于拆快递,关注传输过来的数据,具体要干啥。
传输层不考虑中间路径,只关注起点与终点
就像我和淘宝卖家都不关心中间是如何传输的,只需要按时送到即可。
网络层主要负责两个节点的路线规划
比如从上海到福建有很多路可以走,网络层会规划出一条合适的路径。
数据链路层主要关注两个相邻节点的传输:
- 上海 -> 江西可以使用卡车
- 江西 -> 福建可以使用飞机
在网络中,相邻节点是通过光纤或网线直接连接的设备。
物理层网络通信的基础设施,比如网线、光纤等硬件设备,确保数据能够通过这些设备传输。

在这里插入图片描述
以上图可以来偶尔来看一下,便于记忆,也可以查询一下协议,毕竟协议很多

数据通过网络传输的过程

封装与分用

发送方发送数据, 数据从上到下, 依次交给对应层级的协议进行封装
接收方收到数据, 数据从下到上, 依次交给对应层级的协议进行解析

具体分析一个实例
比如 A 发一条消息给 B 在 QQ 上

  1. 应用层(QQ的应用程序)拿到上述的用户数据, 进行封装操作,封装成应用层的数据包
    本质上是字符串拼接,区分上述字段可能会引入分隔符或长度信息来做界定
    (这里只是举个例子,QQ的真实协议格式应该更加复杂)
    如下图

在这里插入图片描述

  1. 传输层拿到了上述的数据
    应用层要调用传输层所提供的 api 来进行处理这个数据

    传输层有很多协议(前面有张图可以看), 最典型的是TCP和UDP协议

    我们以UDP举例
    UDP针对上述数据包进行封装
    在这里插入图片描述
    采用报头 + 载荷的方式构成(加上UDP报头, 本质上还是字符串拼接)

    在此处, UDP协议给应用层数据包加上了UDP报头,就是为了贴上一层标签, 填写必要的属性.

    其中最关键的就是源端口与目标端口了.

  2. 传输层到网络层
    将上述的UDP数据包交给网络层的协议

    网络层最常见的协议就是IP协议,以此举例

    上述的UDP数据报到达网络层,进行进一步的封装,添加上IP协议的报头
    在这里插入图片描述
    加上IP协议的报头, 整个UDP数据报, 作为IP的载荷

    其中源IP地址和目的IP地址就代表着这次传输的最初的起点和最终的终点

    IP地址的结构采用点分十进制如192.168.0.1998

    IP是找到主机

    端口号是确定主机上哪个程序/ 进程

  3. 网络层交给数据链路层

    里面最典型的协议叫做以太网
    与前面有差别的是要添加上以太网帧头与以太网帧尾(也是字符串拼接)
    在这里插入图片描述

    mac地址, 也叫做物理地址

    也是描述主机在网络中的位置

    它的功能和IP 很相似

    IP 用来进行网络层的路径规划

    mac 用来进行描述数据链路层, 两个即将进行传输的相邻节点

    从理论上来说, 每个设备都会有自己唯一的mac 地址(也就是和网卡相绑定)

  4. 数据链路层将上述的以太网数据帧交给物理层

    物理层要将上述0101的二进制数据转化成光信号 / 电信号等方式进行传输

    上述的过程操作系统帮我们都封装好了,接下来来介绍一下接受过程(忽略中间的转发过程)

    接受过程与上述过程正好相反

~~

  1. 物理层, 网卡接收到了高低电平的二进制数据

    会对这个信号进行解析, 还原成0101的二进制序列

  2. 从物理层交给数据链路层

    此时就把上述 0101 的一系列数据当作以太网数据帧
    在这里插入图片描述
    把帧头帧尾去掉, 取出中间的载荷, 交给网络层处理

    其中以太网数据帧帧头中有一个消息类型, 通过这个类型就知道网络层是 IP 协议

  3. 网络层

    此时由网络层的 IP 协议进行解析数据报. 就是去掉 IP 报头, 然后交给传输层协议
    在这里插入图片描述
    IP 数据报, 报头中也有一个字段, 表示当前传输层用的是哪个协议

  4. 传输层

    此处由 UDP 来解析处理, 还是去掉报头, 取出载荷,交给应用层处理

在这里插入图片描述

借助端口号来区分具体的应用程序
每个接受网络数据的程序都会关联上一个端口号

  1. 应用层

    由qq这个程序, 进行解析应用层数据报的内容
    取出字段, 放入程序的界面中

在这里插入图片描述

最终会在QQ 聊天界面出现我发送的消息

数据传输过程
在这里插入图片描述
参考以上(简略版)

中间的交换机, 只需要封装到数据链路层(只需要修改源mac 和 目的 mac)

中间的路由器, 则需要封装分用到网络层(也需要改 mac 地址,还需要根据目的 IP 地址进行下一阶段的路径规划)

一点点疑问
我当时想过如果自己发消息给自己会怎么样

走计算机中的环回网卡, 和真实网卡差别较大(属于特殊情况)

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

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

相关文章

STM32F103ZET6 FREERTOS 双UART 多任务多串口输出(配置教程)

基本的stm32cubemx使用就不细说了,要想配置freertos,用这个工具配置那是相当方便和简单 1、系统晶振配置 使用外部时钟晶振,配置如图 2、系统定时器设置 serial wire 保证下次可以程序下载 SysTick 是 Cortex-M 内核中的一个系统定时器&a…

用C++编写信息管理系统(歌单信息管理)

C语言是面向过程的编程语言,而C是面向对象的编程语言,在书写代码时风格有所不同(也存在很多共性)。 程序说明 本次系统程序使用的是C语言进行编写,主要考虑怎么实现面向对象的问题。 因为本次程序属于小型系统程序&…

C语言 | 第十六章 | 共用体 家庭收支软件-1

P 151 结构体定义三种形式 2023/3/15 一、创建结构体和结构体变量 方式1-先定义结构体,然后再创建结构体变量。 struct Stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 }; struct Stu stu1, stu2; //…

从二维到三维,电商行业有哪些变化?

从二维到三维,电商行业经历了一系列显著的变化,这些变化不仅体现在商品展示的方式上,还深刻影响了消费者的购物体验、电商平台的运营策略以及整个电商行业的竞争格局。 一、商品展示方式的变革 二维展示阶段: 在电商行业的早期&…

【黑苹果】记录MacOS升级Sonoma的过程

【黑苹果】记录MacOS升级Sonoma的过程 一、硬件二、提前说明三、准备OC四、选择驱动五、选择ACPI六、下载内核扩展七、其他问题 一、硬件 设备是神舟zx6-ct5da 具体参照下图 二、提前说明 本机器已经安装过 macOS Monterey 12.6,这次是升级到 macOS Sonoma 14。 …

Java后端面试题(day16)

目录 java常见的引用类型java中深拷贝和浅拷贝如何设计一个秒杀系统?谈一下对高并发的理解,平时怎么处理高并发问题?Comparable和Comparator区别?解决hash冲突有哪些方法?Synchronized锁的升级过程 java常见的引用类型 java的引用类型一般分…

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)

图论day56|广度优先搜索理论基础 、bfs与dfs的对比(思维导图)、 99.岛屿数量(卡码网)、100.岛屿的最大面积(卡码网)) 广度优先搜索理论基础bfs与dfs的对比(思维导图)&…

C++调试方法(Vscode)(一) ——本地调试

初学者在调试一段代码的时候,经常出于不明原因,写出bug,导致程序崩溃。但是定位崩溃的地方时,往往采用简单而朴素的方法:即采用cout或者printf进行输出。这种方式既原始,又低效。一个合格的工程师应该是通过…

RabbitMQ简介及安装类

RabbitMQ概述-MQ介绍 RabbitMQ是一个开源的消息代理和队列服务器,它支持多种消息协议,并且可以轻松地与多种编程语言和框架集成。RabbitMQ是使用Erlang语言编写的,因此它具有高并发和高可用性的特点。以下是RabbitMQ的一些关键特性和概念 消息…

华为OD机试 - 区间交叠问题 - 贪心算法(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

Django的请求与响应

Django的请求与响应 1、常见的请求2、常见的响应3、案例 1、常见的请求 函数的参数request是一个对象,封装了用户发送过来的所有请求相关数据。 get请求一般用来请求获取数据,get请求也可以传参到后台,但是传递的参数显示在地址栏。 post请求…

【CSS3】css开篇基础(2)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

el-date-picker设置只有某些日期可选

示例图&#xff1a; <el-date-pickerv-model"topFormObj.upTime"type"date"value-format"timestamp"format"dd/MM/yyyy":picker-options"pickerOptions" /> 固定限制每周的周末周三不可选 data() {return {pickerOp…

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块 简介 下载与安装 如何使用安装好的第三方开源模块 如何上传自己写的模块到 PyPi 简介 在前面的模块介绍和导入当中主要介绍的都是 Python 内置的一些模块&#xff0c;我们把它称为标准库&#…

【多版本并发控制(MVCC)】

并发事务问题&#xff1a; MySQL隔离级别-未提交读&#xff0c;提交读&#xff0c;可重复读&#xff0c;序列化 隔离级别对于并发事务的解决情况 隔离级别脏读不可重复读幻读未提交读不可不可不可读已提交可不可不可可重复读 &#xff08;默认&#xff09;可可不可串行化&…

vue+echarts实现雷达图及刻度标注

文章目录 前言代码实现实现效果总结 前言 最近项目有做数据可视化 大屏 不免再次使用些echarts应用 记录下其中echarts雷达图的实现 代码实现 先上代码 <template><div class"container"><div ref"chart" style"width: 500px; heig…

树莓派应用--AI项目实战篇来啦-11.OpenCV定位物体的实时位置

1. 介绍 本项目通过PCA9685舵机控制模块控制二自由度舵机云台固定在零点位置&#xff0c;然后通OpenCV检测到黄色小熊&#xff0c;找到中心位置并打印出中心位置的坐标&#xff0c;通过双色LED灯进行指示是否检测到目标&#xff0c;本项目为后面二维云台追踪物体和追踪人脸提供…

grpc的python使用

RPC 什么是 RPC &#xff1f; RPC&#xff08;Remote Procedure Call&#xff09;远程过程调用&#xff0c;是一种计算机通信协议&#xff0c;允许一个程序&#xff08;客户端&#xff09;通过网络向另一个程序&#xff08;服务器&#xff09;请求服务&#xff0c;而无需了解…

Cef加载自定义本地资源

在Cef auto build下载cefCEF Automated Builds 我下载的是104&#xff0c;使用cefsimple工程。 例如&#xff1a;前端资源如下 通过http协议把前端资源加载出来。所有的资源都通过http://local.test.cn/xxx加载。 前端资源包括index.html、test.css、test.js index.html&am…

福州少儿自闭症寄宿制学校:专注关爱每个孩子

在福州&#xff0c;少儿自闭症寄宿制学校以其专注与关爱&#xff0c;为自闭症儿童提供了一个温暖的避风港。这些学校不仅提供教育服务&#xff0c;更是一个充满爱与包容的大家庭&#xff0c;让孩子们在这里找到归属感和自信心。然而&#xff0c;当我们把目光投向广州&#xff0…