初识网络基础知识

关于网络的一些核心概念
局域网

局域网(Local Area Network,简称LAN)是一种计算机网络,覆盖的范围通常是相对较小的地理区域,比如一个办公室、一栋大楼或一个校园。

局域网的组成通常包括以下部分:

  • 网络硬件:如交换机、路由器、集线器、网桥、中继器等。
  • 传输介质:如双绞线、同轴电缆、光纤、无线信号等。
  • 网络协议:如以太网(Ethernet)、Wi-Fi、蓝牙等。
  • 服务器和工作站:服务器提供网络服务和资源,工作站是用户使用的设备,如个人电脑、打印机等。
广域网

广域网(Wide Area Network,简称WAN)是一种覆盖较广地理区域的计算机网络,通常跨越城市、地区甚至国家。与局域网相比,广域网的覆盖范围更广、传输速率较低、时延较高,但能够连接不同地理位置的用户和设备。广域网可以理解成是许多局域网连接在一起,以下是广域网的一些主要特点和组成:

  1. 网络硬件:包括路由器、交换机、网关、调制解调器等设备,用于连接和传输数据。

  2. 传输介质:可以是电话线、光纤、卫星链路、无线信号等,用于传输数据。

  3. 网络协议:广域网使用多种协议来管理数据传输和网络连接,如TCP/IP、IPX、BGP等。

  4. 服务提供商:通常由电信运营商、互联网服务提供商(ISP)等提供网络服务和连接。

  5. 服务器和终端设备:服务器提供数据存储和处理服务,终端设备如个人电脑、移动设备等用于访问网络资源。

路由器:

路由器是一种网络设备,主要用于连接不同的网络,并在这些网络之间转发数据包。它在计算机网络中扮演着“交通警察”的角色,确保数据能够正确地从源地址传输到目的地址。以下是路由器的一些关键特性和功能:

基本功能

  1. 路由选择:路由器能够根据网络的拓扑结构和路由协议决定数据包的最佳传输路径。

  2. 数据转发:路由器将接收到的数据包转发到下一个路由器或目的主机。

  3. 网络隔离:路由器可以隔离不同的网络,提供一定程度的安全保护。

  4. 流量控制:路由器可以控制网络流量,平衡负载,提高网络效率。

组成

  1. 输入端口:用于接收来自不同网络的数据包。
  2. 输出端口:用于将数据包发送到下一个路由器或目的主机。
  3. 路由表:存储路由信息,指导数据包的转发。
  4. 控制软件:管理路由器的路由选择和数据转发等功能。

IP地址:

IP地址是用来标识网络上一个设备的位置,通过这个位置找到这个设备,进行进一步的通信,IP地址是32位整数(IPV4),IP地址是四个字节的数字,往往"采用点分十进制"方式来表示IP地址,使用三个.分成四个部分,每个部分表示一个字节,每个部分都表示0-255

端口号

端口号是用来标识不同的应用程序,要求每个程序启动的时候,要关联上一个不和别人重复的端口号,端口号是区分在一个主机上不同程序之间,而不是区分不同主机上的不同程序,一个主机上有0-65535个端口,2个字节

TCP/IP模型(实际用最多)
  1. 物理层(Physical Layer, Layer 1)

    • 负责在物理媒介上传输原始的比特流(0和1)。
    • 涉及电气信号、光信号等,以及物理设备如电缆和连接器。
    • 网线网口之类的东西,硬件层面上的相关约定
  2. 数据链路层(Data Link Layer, Layer 2)

    • 负责在相邻网络设备之间传输帧(frame)。
    • 提供错误检测和纠正,确保数据的可靠传输。
    • 涉及MAC地址和错误控制机制。
    • 关注的是相邻设备之间的通信
  3. 网络层(Network Layer, Layer 3)

    • 负责在源主机和目的主机之间选择数据传输路径。
    • 处理数据包在整个网络中的路由选择。
    • 涉及IP地址和路由协议。
    • 关注的是通信中,通信路径的规划,数据要经过哪些节点
  4. 传输层(Transport Layer, Layer 4)

    • 负责提供端到端的数据传输服务。
    • 确保数据的完整性和可靠性。
    • 涉及TCP(传输控制协议)和UDP(用户数据报协议)。
    • 关注的是通信双方的起点和终点
  5. 应用层(Application Layer, Layer 7)

    • 为应用软件提供网络服务。
    • 直接为用户的应用进程提供支持,如HTTP、FTP、SMTP等。
    • 和具体应用程序直接相关,传输的数据是干啥用的,如何使用
OSI模型(理论存在)
  1. 物理层(Physical Layer, Layer 1)

    • 负责在物理媒介上传输原始的比特流(0和1)。
    • 涉及电气信号、光信号等,以及物理设备如电缆和连接器。
  2. 数据链路层(Data Link Layer, Layer 2)

    • 负责在相邻网络设备之间传输帧(frame)。
    • 提供错误检测和纠正,确保数据的可靠传输。
    • 涉及MAC地址和错误控制机制。
  3. 网络层(Network Layer, Layer 3)

    • 负责在源主机和目的主机之间选择数据传输路径。
    • 处理数据包在整个网络中的路由选择。
    • 涉及IP地址和路由协议。
  4. 传输层(Transport Layer, Layer 4)

    • 负责提供端到端的数据传输服务。
    • 确保数据的完整性和可靠性。
    • 涉及TCP(传输控制协议)和UDP(用户数据报协议)。
  5. 会话层(Session Layer, Layer 5)

    • 负责建立、管理和终止应用程序之间的会话。
    • 控制两个通信系统之间的数据流。
  6. 表示层(Presentation Layer, Layer 6)

    • 负责数据的表示、编码和转换。
    • 确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
    • 涉及数据格式转换、数据加密和压缩。
  7. 应用层(Application Layer, Layer 7)

    • 为应用软件提供网络服务。
    • 直接为用户的应用进程提供支持,如HTTP、FTP、SMTP等。

OSI模型将应用层分为会话层和表示层,这张图表示OSI模型 和TCP/IP模型之间的对应关系

关于协议的层和层之间是如何配合工作的? 

上层协议调用下层协议,下层协议给上层协议提供服务,主要通过封装(不是Java面向对象的封装),分用

举个栗子,来进行理解一下

我们日常使用的QQ发送消息,假如A要给B发送一个hello首先要在聊天界面输入hello,然后点击发送,此时QQ程序就要完成上述逻辑,通过网络来进行传输,QQ应用程序首先会将上述内容打包成一个应用层数据包,QQ内部会有一个应用层网络协议(包含了数据按照什么样的格式来进行组织),网络上传输的数据本身就是二进制字符串,更准确说是二进制的bit流,因此组织的时候要按照协议的格式来进行组织.

1)应用层协议假设QQ的应用层协议是这样的,四个信息分别是发送人,接收人的账号和发送时间及正文,中间用,分开,使用\n作为结束标志,

结构化数据(包含很多字段,属性),把结构化数据=>字符串/二进制数据称为"序列化",字符串/二进制数据=>结构化数据称为"反序列化"

2)传输层协议,此时已经拥有了应用层数据包,把QQ程序调用操作系统的api,应用层要把数据交给传输层(操作系统内核提供api,socket api),传输层拿到应用层数据包之后,就会把这个数据包进行进一步的封装,构造出传输层数据包,此时传输层典型协议有两个TCP,UDP,此处假设使用UDP作为传输协议,UDP报头中存储着一些固定的属性比如发送人和接收人的端口号,后半部分是UDP数据包的载荷

3)网络层协议,传输层构造好数据包之后,就会把数据包交给网络层,传输协议调用网络层的api,典型协议是IP协议,IP只关心报头中的数据,不关心载荷的数据,IP报头中包含了收件人和发件人的IP地址,有进一步调用数据链路层的api(往往是网卡的驱动程序提供的),把IP数据包交给数据链路层协议

4)数据链路层协议,典型协议以太网,电脑,通过有线网传输数据,就是以太网协议,网线称为以太网线,以太网也有自己的数据包格式,对上述的IP数据包进行进一步封装 

5)物理层,上述以太网数据帧,本质上还是0101二进制数据,硬件设备把上述二进制数据,转化成光信号/电信号/电磁波,才会真正发射.

上述层层包装数据,不停的加数据报头的过程,称为"封装",

上述数据,并非是直接到达B,而是要先到和A连接的交换机/路由器,数据经过交换机/路由器一系列转化之后到达B,当数据到达B之后,就是对上述过程的逆过程,到达每一层就按照当前这层的协议对报头进行数据解析,为后续传输/转化大小基础,从而拿到载荷数据,将每一次的载荷数据在交给上层,此时上层都会根据当前这个协议的格式,对数据进行解析,再将载荷继续交给上一层,此时这个过程就称为分用,

路由器封装分用到网络层,交换机封装分用到数据链路层

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

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

相关文章

数据结构-C语言-排序(3)

代码位置:test-c-2024: 对C语言习题代码的练习 (gitee.com) 一、前言: 1.1-排序定义: 排序就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。(注:我们这里的排序采用的都为升序) 1.2-排序分…

录取查询老师在哪里制作?

随着考试的落幕,家长们焦急等待的心情终于可以稍微缓解,因为录取结果即将揭晓。然而,对于老师来说,这仅仅是另一项繁重工作的开始。他们需要将每一份录取通知单逐一发送给学生家长,这个过程不仅耗时而且容易出错。面对…

Blender中的重拓扑修改器如何使用?

许多人还不了解Blender中的重拓扑编辑器及其使用方法。Blender中的重拓扑修改器提供了一系列工具和选项,以简化创建优化网格的过程,无论是出于何种目的,都能为3D艺术家和建模者节省大量时间和精力。那么,在Blender中重拓扑的定义是…

《数据结构:C语言实现双链表》

文章目录 一、链表的分类二、双向链表1、概念与结构 三、双向链表实现1、双向链表要实现的功能2、哨兵位初始化3、双链表头插数据4、判断链表是否为空5、打印链表数据6、尾插数据7、头删数据8、尾删数据9、寻找数据所在结点10、在任意结点之后插入数据11、删除任意结点12、销毁…

FastGPT 代码调试配置

目录 一、添加 launch.json 文件 二、调试 本文简单介绍如何通过 vscode 对 FastGPT 进行调试。 这里假设已经安装 vsocde 和 FastGPT本地部署。 一、添加 launch.json 文件 vscode 打开 FastGPT 项目,点击 调试 -> 显示所有自动调试配置 -> 添加配置 -&…

IDEA创建Java工程、Maven安装与建立工程、Web工程、Tomcat配置

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试(Debug) 第七章 …

响应式编程(Reactive Programming)是什么?

响应式编程的概念 Reactive Programming(反应式编程或响应式编程)是一种面向数据流和变化传播的编程范式,它允许程序组件以声明式的方式响应数据的变化。 响应式编程强调以数据流作为核心,利用观察者模式等机制自动处理数据的变化和传播。 响应式编程的核心思想 以异步数…

【Nacos】Nacos服务注册与发现 心跳检测机制源码解析

在前两篇文章,介绍了springboot的自动配置原理,而nacos的服务注册就依赖自动配置原理。 Nacos Nacos核心功能点 服务注册 :Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端…

JVM监控及诊断工具-命令行篇--jcmd命令介绍

JVM监控及诊断工具-命令行篇5-jcmd:多功能命令行 一 基本情况二 基本语法jcmd -ljcmd pid helpjcmd pid 具体命令 一 基本情况 在JDK 1.7以后,新增了一个命令行工具jcmd。它是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能…

pyspark使用 graphframes创建和查询图的方法

1、安装graphframes的步骤 1.1 查看 spark 和 scala版本 在终端输入: spark-shell --version 查看spark 和scala版本 1.2 在maven库中下载对应版本的graphframes https://mvnrepository.com/artifact/graphframes/graphframes 我这里需要的是spark 2.4 scala 2.…

QDockWidget

详细描述 QDockWidget 类提供了一个小部件,它可以停靠在QMainWindow内部,也可以作为桌面上的顶级窗口浮动。 QDockWidget 提供了停靠部件的概念,也称为工具调色板或实用窗口。停靠窗口是放置在 中央部件 周围的停靠部件区域中的辅助窗口&am…

AI算法24-决策树C4.5算法

目录 决策树C4.5算法概述 决策树C4.5算法简介 决策树C4.5算法发展历史 决策树C4.5算法原理 信息熵(Information Entropy) 信息增益(Information Gain) 信息增益比(Gain Ratio) 决策树C4.5算法改进 …

Golang中读写锁的底层实现

目录 Sync.RWMutex 背景与机制 接口简单介绍 sync.RWMutex 数据结构 读锁流程 RLock RUnlock RWMutex.rUnlockSlow 写锁流程 Lock Unlock Sync.RWMutex 背景与机制 从逻辑上,可以把 RWMutex 理解为一把读锁加一把写锁; 写锁具有严格的排他性&…

【python】OpenCV—Extreme Points in the Contour

文章目录 1、需求描述2、功能实现3、更多的例子4、完整代码5、参考 1、需求描述 给一张图片,找出其轮廓,并画出轮廓的上下左右极值点 输入图片 输出效果 2、功能实现 # 导入必要的包 import imutils import cv2 # 加载图像,将其转换为灰度…

vue3 + antd vue 纯前端 基于xlsx 实现导入excel 转 json,将json数据转换XLSX并下载(下载模版)

一、导入 0、关键代码 // 安装插件 npm i xlsx/yarn add xlsx // 导入xlsx import * as XLSX from xlsx; 点击提交的时候才整理数据。上传的时候文件保存在 state.form.file[0] 中的 // 定义字段映射关系 const fieldMap {sheet2json: {技能名称: skill_name,技能等级: …

uni-app 影视类小程序开发从零到一 | 开源项目分享

引言 在数字娱乐时代,移动设备已成为我们生活中不可或缺的一部分,尤其是对于电影爱好者而言,随时随地享受精彩影片成为一种日常需求。爱影家,一款基于 uni-app 开发的影视类小程序,正是为此而生。它不仅提供了丰富的影…

【Django+Vue3 线上教育平台项目实战】购物车与订单模块的精简实现与数据安全策略

文章目录 前言一、购物车模块1.后端核心逻辑2.前端页面代码3.操作流程及演示 二、订单模块1.订单模块模型类设计1.展示订单信息a.页面展示b.前端核心代码c.后端核心逻辑 2.订单是否使用优惠券与积分a.页面展示b.前端核心代码 3.订单支付方式a.页面展示b.前端核心代码 4.提交订单…

PyTorch Autograd内部实现

原文: 克補 爆炸篇 25s (youtube.com) 必应视频 (bing.com)https://www.bing.com/videos/riverview/relatedvideo?&qPyTorchautograd&qpvtPyTorchautograd&mid1B8AD76943EFADD541E01B8AD76943EFADD541E0&&FORMVRDGAR 前面只要有一个node的re…

北京交通大学《深度学习》专业课,实验3卷积、空洞卷积、残差神经网络实验

一、实验要求 1. 二维卷积实验(平台课与专业课要求相同) ⚫ 手写二维卷积的实现,并在至少一个数据集上进行实验,从训练时间、预测精 度、Loss变化等角度分析实验结果(最好使用图表展示) ⚫ 使用torch.nn…

Matlab基础语法篇(下)

Matlab基础语法(下) 一、逻辑基础(一)逻辑运算符(二)all、any、find函数(三)练习 二、结构基础(一)条件结构(1)if-elseif-else-end&am…