当前位置: 首页 > article >正文

网络编程及原理(一)

目录

一 .  独立模式与网络互联 

二 . 局域网 —— LAN 

(1)基于网线直连 

(2)基于集线器组建 

(3)基于交换机组建 

(4)基于交换机和路由器组建 

三 . 广域网 —— WAN 

四 . 网络通信基础 

(1)IP 地址 

(2)端口号 

五 . 认识协议 

(1)为什么需要协议?

(2)协议分层 

六 . OSI七层网络模型 

七 . TCP / IP 五层网络模型 

(1)分层概念 

(2)网络设备所在的分层 


好久不见各位,今天开始整理一下网络编程及原理这一板块的知识点。

一 .  独立模式与网络互联 

什么是独立模式呢?在计算机发展初期,我们的每台计算机之间是相互独立的:

随着我们科技新兴发展,越来越多的计算机操作已经不满足于独立处理信息了,而是更需要计算机之间相互通信,共享软件和数据,即以多个计算机协同工作来完成业务,这就是网络互联的概念由来及其意义所在。

网络互联:将多台计算机连接在一起,实现数据共享。

数据共享的本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。而根据网络互连的规模不同,我们又将其划分成了局域网与广域网。

二 . 局域网 —— LAN 

局域网,即 Local Area Network ,简称为 LAN 。Local 一词就表明了局域网是本地的,局部组建的一种私有网络。局域网的主机之间能够方便地进行网络通信,又称为内网。局域网与局域网之间在没有建立连接的情况下是无法进行网络通信的。

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

(1)基于网线直连 

(2)基于集线器组建 

(3)基于交换机组建 

(4)基于交换机和路由器组建 

三 . 广域网 —— WAN 

广域网,即 Wide Area Network ,简称为 WAN 。通过路由器,将多个局域网连接起来,在物理意义上组成了很大范围的网络,这就是 “ 广域网 ”,且广域网内部的局域网都属于它的 “ 子网 ”。

比如说我们开了一家公司,经过一段时间咱们做大做强,再创辉煌了,我们在全国东南西北的各地甚至于海外都有分公司。那么这个时候我们就需要将这些分公司以专线的方式连接起来,这就是我们的广域网。

如果属于全球化的公共型广域网,则称为局域网(又称公网、外网),属于广域网的一个子集,有时候我们口头上说的广域网,其实就是指的是互联网。“ 广域 ”、“ 局域 ” 也只是相对而言的概念。

四 . 网络通信基础 

我们进行网络互连的目的就是为了实现网络通信,即网络数据传输,说的更具体一点,就是网络主机中的不同进程间,基于网络传输数据。

那么,在组建的网络中,我们如何判断到底是从哪台主机将数据传输到另一台主机上的呢?这就需要使用 IP 地址来标识了。

(1)IP 地址 

IP 地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。例如我们寄 / 收快递一样,物流公司需要知道发件地址和收件地址才能完成运输快递这一操作。

简单来说,IP 地址用于定位主机的网络地址。(描述了一台主机在互联网上所处的位置)

IP 地址是一个 32 位的二进制整数,而为了方便人们阅读理解,我们现在一般采用 “ 点分十进制 ” 来表示 IP 地址。我现在这台电脑的 IPv4 地址就是:

(2)端口号 

端口号用于区分当前主机上指定的应用程序,可以识别主机中发送数据、接收数据的进程。例如我们在发送快递时,不光要填写收件地址( IP 地址),还需要指定收货人(端口号)。

简单来说,端口号用于定位主机中的进程。

端口号同样也是一个整数,是一个 2 字节的整数:0 -> 65535(实际上 0 -> 1023 这些端口号都是有一些特殊含义的,已经被占用了,所以咱们在编写代码的时候,一般避免用这些端口号,都是用剩下的)

五 . 认识协议 

协议是我们网络中最最最核心的概念,是一切通信的基础。

网络协议简称协议,它是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵循的一组约定、规则。如怎样建立连接,怎样互相识别等等,只有遵守了这个连接,计算机之间才能相互通信交流。

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

(1)为什么需要协议?

举个例子:这就好比咱们网恋奔现,我们是不是得提前约好一个时间,地点,然后到了那天我们还会交流说,我穿的什么样式什么颜色的衣服裤子,你穿的什么样式什么颜色的衣服裤子,这样我们才方便在人潮人海中认出对方是吧,这种提前的约定,在网络数据传输中我们就称之为 “ 协议 ” 。

计算机之间的传输媒介是光信号和电信号,通过 “ 频率 ” 和 “ 强弱 ” 来表示 0 和 1 这样的信息,那么我们想要传递各种不同的信息,由于我们计算机生产厂商有很多,计算机的操作系统也有所不同,计算机的网络硬件设备也是各式各样的,为了让这些不同厂商之间生产的计算机能够互相顺畅地进行数据通信,就需要提前约定好双方的数据格式,不然收到数据怎么解析的懂呢?

(2)协议分层 

什么是协议分层呢?由于网络通信是一件非常复杂的事,如果我们使用一个协议,想要约定所有的网络通信细节,那么这个协议就会相当庞大,相当复杂。所以我们采用的是将一个大的协议拆分成很多个小协议,让每个小协议专注于解决一个或一类问题,再让这些小协议之间互相配合。

将这些拆分出的来的小协议按照功能分类一层一层的,这就是我们的 “ 协议栈 / 协议族 ”,并且约定好,协议之间,不能不能随意交互,只有相邻的层之间才可以。上层协议调用下层协议,下层协议为上层协议提供服务。

协议分层的好处:

1 . 降低了使用成本,在使用某个协议的时候,不需要关注其他协议的实现细节。

2 . 降低了整个体系的耦合性,灵活地变动某个层次的协议。

六 . OSI七层网络模型 

OSI七层网络模型即 Open System Interconnection,开放系统互连。

(1)OSI七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分成了 7 层。

(2)OSI七层网络模型是一种框架性的设计方式,其最主要的功能就是可以帮助不同类型的主机实现数据传输。

由于OSI七层网络模型既复杂又不实用,所以它并没有落地实现,这种划分方式,只存在于教科书里,并没有被真正地采纳。

七 . TCP / IP 五层网络模型 

(1)分层概念 

TCP / IP 五层网络模型是当前世界上最主流的网络协议模型。

TCP / IP 是一组协议的代名词,它还包括许多协议,共同组成了TCP / IP 协议族。

TCP / IP 通讯协议采用 5 层的层级结构,每层都呼叫其下一层所提供的网络来完成自己的需求。

(1)应用层:负责应用程序之间的沟通。如简单的电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层来展开的。

(2)传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。

(3)网络层:负责地址管理和路由选择。例如在 IP 协议中,通过 IP 地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。(路由器工作在网络层)

(4)数据链路层:负责设备之间的数据帧的传送与识别。例如网卡设备的驱动,帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无线 LAN 等标准。交换机(Switch)工作在数据链路层。

(5)物理层:负责光电信号的传递方式。比如现在以太网通过的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的 WiFi 无线网使用电磁波都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

传输层、网络层、数据链路层、物理层这四层是我们程序员干涉不了的,操作系统或硬件设备已经实现好了。只有应用层是程序员能干预的到的。

(2)网络设备所在的分层 

1 . 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也就是 TCP / IP 协议的下四层。

2 . 对于一台路由器,它实现了从网络层到物理层,也就是 TCP / IP 协议的下三层。

3 . 对于一台交换机,它实现了从数据链路层到物理层,也就是 TCP / IP 协议的下两层。

4 . 对于集线器,它只实现物理层。

注意这里我们说的只是传统意义上的路由器和交换机,也称为二层交换机,三层路由器。但是随着我们网络设备技术的不断发展,现在的真实情况是:交换机也可能工作在网络层,甚至是传输层或应用层;路由器也可能工作在数据链路层,甚至是传输层或应用层。

OKK,今天咱们就先说到这里吧,网络原理及编程这一板块的知识点也是相当庞大,也会连续做很多期,今天只是初识网络原理而已,其中最重要的就是网络协议:TCP / IP 五层网络模型,这一板块后续会深度剖析讲解。咱们下期再见咯,与诸君共勉!!!

相关文章:

网络编程及原理(一)

目录 一 . 独立模式与网络互联 二 . 局域网 —— LAN (1)基于网线直连 (2)基于集线器组建 (3)基于交换机组建 (4)基于交换机和路由器组建 三 . 广域网 —— WAN 四 …...

superior哥AI系列第9期:高效训练与部署:从实验室到生产环境

🚀 superior哥AI系列第9期:高效训练与部署:从实验室到生产环境 嘿!小伙伴们!👋 欢迎来到superior哥AI系列第9期!经过前面8期的学习,你已经掌握了深度学习的核心技术。但是&#xff0…...

【Linux】进程 信号保存 信号处理 OS用户态/内核态

🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、信号保存 ✨进程如何完成对信号的保存? ✨在内核中的表示 ✨sigset_t ✨信号操作函数 🪄sigprocmask --- 获取或设置当前进程的 block表 🪄s…...

[ Qt ] | 与系统相关的操作(一):鼠标相关事件

目录 信号和事件的关系 (leaveEvent和enterEvent) 实现通过事件获取鼠标进入和鼠标离开 (mousePressEvent) 实现通过事件获得鼠标点击的位置 (mouseReleaseEvent) 前一个的基础上添加鼠标释放事件 (mouseDoubleClickEvent) 鼠标双击事件 鼠标移动事件 鼠标滚轮事件 …...

stm32使用hal库模拟spi模式3

因为网上模拟spi模拟的都是模式0,很少有模式3的。 模式3的时序图,在clk的下降沿切换电平状态,在上升沿采样, SCK空闲为高电平 初始化cs,clk,miso,mosi四个io。miso配置为输入,cs、c…...

安装 Nginx

个人博客地址:安装 Nginx | 一张假钞的真实世界 对于 Linux 平台,Nginx 安装包 可以从 nginx.org 下载。 Ubuntu: 版本Codename支持平台12.04precisex86_64, i38614.04trustyx86_64, i386, aarch64/arm6415.10wilyx86_64, i386 在 Debian/Ubuntu 系统…...

Vue-1-前端框架Vue基础入门之一

文章目录 1 Vue简介1.1 Vue的特性1.2 Vue的版本2 Vue的基础应用2.1 Vue3的下载2.2 Vue3的新语法2.3 vue-devtools调试工具3 Vue的指令3.1 内容渲染指令{{}}3.2 属性绑定指令v-bind3.3 事件绑定指令v-on3.4 双向绑定指令v-model3.5 条件渲染指令v-if3.6 列表渲染指令v-for4 参考…...

OurBMC技术委员会2025年二季度例会顺利召开

5月28日,OurBMC社区技术委员会二季度例会顺利召开。本次会议采用线上线下结合的方式,各委员在会上听取了OurBMC社区二季度工作总结汇报,规划了2025年三季度的重点工作。 会上,技术委员会主席李煜汇报了社区2025年二季度主要工作及…...

postman自动化测试

目录 一、相关知识 1.网络协议 2.接口测试 3.编写测试用例 4.系统架构 二、如何请求 1.get请求 ​编辑2.post请求 3.用环境变量请求 4.Postman测试沙箱 一、相关知识 1.网络协议 规定数据信息发送与解析的方式。 网络传输协议 https相比http,信息在网…...

力扣热题100之二叉树的直径

题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 代码 方法:递归 计算二叉树的直径可以理解…...

数字人技术的核心:AI与动作捕捉的双引擎驱动(210)

**摘要:**数字人技术从静态建模迈向动态交互,AI与动作捕捉技术的深度融合推动其智能化发展。尽管面临表情僵硬、动作脱节、交互机械等技术瓶颈,但通过多模态融合技术、轻量化动捕方案等创新,数字人正逐步实现自然交互与情感表达。…...

c++ 命名规则

目录 总结1. 类名(Class Names)2. 变量名(Variable Names)3. 函数名(Function Names)4. 宏定义(Macros)5. 命名空间(Namespaces)6. 枚举(Enums&am…...

GRU 参数梯度推导与梯度消失分析

GRU 参数梯度推导与梯度消失分析 1. GRU 前向计算回顾 GRU 单元的核心计算步骤(忽略偏置项): 更新门: z_t σ(W_z [h_{t-1}, x_t]) 重置门: r_t σ(W_r [h_{t-1}, x_t]) 候选状态: ̃h_t tanh(W_h [r_t ⊙ h_{t-1}, x_t]) 新…...

针对KG的神经符号集成综述 两篇

帖子最后有五篇综述的总结。 综述1 24年TKDD 系统性地概述了神经符号知识图谱推理领域的进展、技术和挑战。首先介绍了知识图谱(KGs)和符号逻辑的基本概念,知识图谱被视为表示、存储和有效管理知识的关键工具,它将现实世界的知识…...

RabbitMQ和MQTT区别与应用

RabbitMQ与MQTT深度解析:协议、代理、差异与应用场景 I. 引言 消息队列与物联网通信的重要性 在现代分布式系统和物联网(IoT)生态中,高效、可靠的通信机制是构建稳健、可扩展应用的核心。消息队列(Message Queues&am…...

Vue跨层级通信

下面,我们来系统的梳理关于 Vue跨层级通信 的基本知识点: 一、跨层级通信核心概念 1.1 什么是跨层级通信 跨层级通信是指在组件树中,祖先组件与后代组件(非直接父子关系)之间的数据传递和交互方式。这种通信模式避免了通过中间组件层层传递 props 的繁琐过程。 1.2 适用…...

docker常见命令行用法

🧨 一、关闭和清理 Docker 服务相关命令 🔻 docker-compose down 作用:关闭并删除所有使用当前 docker-compose.yml 启动的容器、网络、挂载卷(匿名的)、和依赖关系。 通俗解释:就像你关掉了一个 App&am…...

Axure设计案例:滑动拼图解锁

设计以直观易懂的操作方式为核心,只需通过简单的滑动动作,将拼图块精准移动至指定位置,即可完成解锁。这种操作模式既符合用户的日常操作习惯,在视觉呈现上,我们精心设计拼图图案,融入生动有趣的元素&#…...

MySQL权限详解

在MySQL中,权限管理是保障数据安全和合理使用的重要手段。MySQL提供了丰富的权限控制机制,允许管理员对不同用户授予不同级别的操作权限。本文将会对MySQL中的权限管理,以及内核如何实现权限控制进行介绍。 一、权限级别 MySQL 的权限是分层…...

基于BP神经网络的语音特征信号分类

基于BP神经网络的语音特征信号分类的MATLAB实现步骤: 1. 数据预处理 信号采样:读取语音信号并进行采样,确保信号具有统一的采样率。例如: [y, Fs] audioread(audio_file.wav); % 读取音频文件预加重:增强高频信号&am…...

解决fastadmin、uniapp打包上线H5项目路由冲突问题

FastAdmin 基于 ThinkPHP,默认采用 URL 路由模式(如 /index.php/module/controller/action),且前端资源通常部署在公共目录(如 public/)下。Uniapp 的历史模式需要将所有前端路由请求重定向到 index.html&a…...

web3-区块链的交互性以及编程的角度看待智能合约

web3-区块链的交互性以及编程的角度看待智能合约 跨链交互性 交互性 用户在某一区块链生态上拥有的资产和储备 ​ 目标:使用户能够把资产和储备移动到另一个区块链生态上 可组合性 使在某一区块链的DAPP能调用另一个区块链上的DAPP 如果全世界都在用以太坊就…...

数据结构(7)—— 二叉树(1)

目录 前言 一、 树概念及结构 1.1树的概念 1.2树的相关概念 1.3数的表示 1.二叉树表示 2.孩子兄弟表示法 3.动态数组存储 1.4树的实际应用 二、二叉树概念及结构 2.1概念 2.2特殊的二叉树 1.满二叉树 2. 完全二叉树 2.3二叉树的性质 2.4二叉树的存储结构 1.顺序存储 2.链式存储…...

ROS1和ROS2的区别autoware.ai和autoware.universe的区别

文章目录 前言一、ROS1和ROS2的区别一、ROS2通讯实时性比ROS1强二、ROS1官方不再维护了三、ROS2的可靠性比ros1强四、ROS2的安全性比ros1强五、ROS2资源占用低六、等等等等 二、autoware.ai和autoware.universe的区别一、autoware.ai不维护了二、autoware.universe功能多&#…...

如何使用 Docker 部署grafana和loki收集vllm日志?

环境: Ubuntu20.04 grafana loki 3.4.1 问题描述: 如何使用 Docker 部署grafana和loki收集vllm日志? 解决方案: 1.创建一个名为 loki 的目录。将 loki 设为当前工作目录: mkdir loki cd loki2.将以下命令复制并粘贴到您的命令行中,以将 loki-local-config.yaml …...

Kafka入门- 基础命令操作指南

基础命令 主题 参数含义–bootstrap-server连接的Broker主机名称以及端口号–topic操作的topic–create创建主题–delete删除主题–alter修改主题–list查看所有主题–describe查看主题的详细描述–partitions设置分区数–replication-factor设置分区副本–config更新系统默认…...

目标检测我来惹1 R-CNN

目标检测算法: 识别图像中有哪些物体和位置 目标检测算法原理: 记住算法的识别流程、解决问题用到的关键技术 目标检测算法分类: 两阶段:先区域推荐ROI,再目标分类 region proposalCNN提取分类的目标检测框架 RC…...

lua的笔记记录

类似python的eval和exec 可以伪装成其他格式的文件,比如.dll 希望在异常发生时,能够让其沉默,即异常捕获。而在 Lua 中实现异常捕获的话,需要使用函数 pcall,假设要执行一段 Lua 代码并捕获里面出现的所有错误&#xf…...

智能进化论:AI必须跨越的四大认知鸿沟

1. 智能缺口:AI进化中的四大认知鸿沟 1.1 理解物理世界:从像素到因果的跨越 想象一个AI看着一杯倒下的水,它能描述“水滴形状”却无法预测“桌面会湿”。这正是当前AI的典型困境——缺乏对物理世界的因果理解。主流模型依赖海量图像或视频数…...

L2-056 被n整除的n位数 - java

L2-056 被n整除的n位数 语言时间限制内存限制代码长度限制栈限制Java (javac)400 ms512 MB16KB8192 KBPython (python3)400 ms256 MB16KB8192 KB其他编译器400 ms64 MB16KB8192 KB 题目描述: “被 n n n 整除的 n n n 位数”是这样定义的:记这个 n n…...