网络初识基本概念总结

news2024/11/24 0:50:15

网络发展背景

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

其他一些小概念

  • 局域网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.coloradmin.cn/o/2210122.html

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

相关文章

Rhymes AI发布首款开源多模态AI模型Aria 性能超越GPT-4o mini等多家知名AI模型

最近,日本东京的初创公司 Rhymes AI 推出了他们的首款人工智能模型 ——Aria。该公司自称,Aria 是全球首个开源的多模态混合专家(MoE)模型。这个模型不仅具有处理多种输入模态的能力,还声称在能力上与一些知名的商业模…

大一高等数学速成指南

大一高等数学速成指南 高等数学作为大学理工科学生的基础课程,对于许多新生来说,既是挑战也是机遇。本文将为你提供一个高效的学习指南,帮助你快速掌握高等数学的核心内容。 1. 理解课程大纲 首先,你需要了解高等数学的课程大纲…

Linux(1. 基本操作_命令)

目录 关于超级用户root: root用户可以做什么? 避免灾难: 格式约定: 浏览硬盘: 命令行补全和通配符: 命令行补全: 通配符: 常用基本命令: 查看目录和文件&#xff…

使用SpringMVC搭建WEB项目时报错404的问题排查解决以及web.xml配置文件init-param行标红问题

一、使用SpringMVC搭建WEB项目时报错404的问题排查解决 很早前(4年前)就把这个搭建过,但今天运行的时候就是报404错误,见文章: JAVA开发中SpringMVC框架的使用及常见的404问题原因以及SpringMVC框架基于注解的开发实例…

Unity3d折叠Inspector中的变量

InspectorFoldoutGroup插件 [Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpDownGraph aimStabilityGraph;[Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpGraph aimDensityGraph;[Pixeye.Unity.Foldout("【曲线图】")] p…

libssh2编译部署详解

libssh2编译部署详解 一、准备工作二、编译libssh2方法一:使用Autotools构建方法二:使用CMake构建三、验证安装四、使用libssh2五、结论libssh2是一个用于实现SSH2协议的开源库,它支持建立安全的远程连接、传输文件等操作。本文将详细介绍如何在Linux系统下编译和部署libssh…

AI+视频监控:EasyCVR安防平台赋能火电制造行业的视频智能管理方案

随着信息技术的飞速发展和智能制造的深入推进,火电制造行业作为国民经济的重要组成部分,正面临着智能化转型的迫切需求。为了提升生产效率、保障设备安全、优化管理流程,火电制造企业迫切需要引入先进的视频监控与人工智能技术。EasyCVR安防监…

【Canvas与标牌】立入禁止标牌

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>立入禁止Draft1</title><style type"text/css"&g…

计算机网络(以Linux讲解)

计算机网络 网络协议初识协议分层OSI七层模型TCP/IP五层模型--初识 网络中的地址管理IP地址MAC地址 网络传输基本流程网络编程套接字预备知识网络字节序socket编程UDP socketTCP socket地址转换函数Jsoncpp 进程间关系与守护进程进程组会话控制终端作业控制守护进程 网络命令TC…

MES系列-工单管理

MES系列-工单管理 MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制系…

【STM32单片机_(HAL库)】6-1【串口通信UART、USART】通信基础

并行通信和串行通信 全双工、半双工、单工通信 单工通信&#xff1a;数据只能沿一个方向传输 半双工通信&#xff1a;数据可以沿两个方向传输&#xff0c;但需要分时进行 全双工通信&#xff1a;数据可以同时进行双向传输同步通信与异步通信 同步通信&#xff1a; 异步通信 …

『网络游戏』摄像机跟随【31】客

创建脚本文件夹 创建脚本 编写代码&#xff1a;CameraCtrl.cs using UnityEngine; public class CameraCtrl : MonoBehaviour{float dis;float height;float speed;Transform target;Vector3 targetPos;void Awake(){Screen.SetResolution(2304, 1296, FullScreenMode.Windowe…

24/10/12算法笔记 VGG

VGG特点&#xff1a; 1.深度&#xff1a;非常深 2.卷积核采用3*3&#xff0c;使得网络能够捕捉到更细粒度的图像特征 3.全连接层&#xff1a;使用全连接层来分类 4.使用ReLU激活函数&#xff0c;有助于缓解梯度消失 5.在卷积层和池化层后&#xff0c;使用局部归一化&#…

自动驾驶系列—自动驾驶整体开放平台:如何加速无人驾驶技术的落地?

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何解决 金融场景凭证篡改检测的核心问题&#xff0c;以及解决思路和代码实现过程。希望…

vue3学习:数字时钟遇到的两个问题

在前端开发学习中&#xff0c;用JavaScript脚本写个数字时钟是很常见的案例&#xff0c;也没什么难度。今天有时间&#xff0c;于是就用Vue的方式来实现这个功能。原本以为是件非常容易的事&#xff0c;没想到却卡在两个问题上&#xff0c;一个问题通过别人的博文已经找到答案&…

JavaSE——集合4:LinkedList、ArrayList与LinkedList的选择

目录 一、LinkedList的全面说明 二、LinkedList的底层操作机制 (一)LinkedList添加结点源码 (二)LinkedList删除结点源码 三、LinkedList常用方法 四、ArrayList与LinkedList的选择 一、LinkedList的全面说明 LinkedList底层实现了双向链表和双端队列的特点可以添加任意…

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口&#xff0c;统一方法处理&#xff0c;每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…

Centos7内核升级

案例分析Centos7内核升级 1. 规划节点 节点规划&#xff0c;见表1。 IP主机名节点10.24.2.5k8s-master-node1master节点、仓库节点 表1 节点规划 2. 基础准备 &#xff08;1&#xff09;删除官方yum源 [rootk8s-worker-node1 ~]# rm -rf /etc/yum.repos.d/*&#xff08;…

Redhat的yum源出错——如何将yum源换成阿里云Centos源

文章目录 引言1. 查看和删除已安装的yum包2. 查看系统的版本号3. 镜像文件下载4. 镜像文件安装5. 下载和安装repo文件6. 配置repo文件7. 更新软件包缓存8. 验证9. 问题问题1 参考文献 Linux RedHat更换阿里云yum源 Redhat8.0 yum install问题解决 阿里云镜像 引言 为什么redha…