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

网络初识-

网络的相关概念

一、局域网和广域网

将各种计算机、外部设备等相互连接起来,实现在这个范围内数据通信和资源共享的计算机网络。它的覆盖范围通常在几百米到几公里之内。例如,一个小型企业的办公室,通过交换机将多台电脑连接在一起,这些电脑可以共享打印机、文件等资源,这个网络就是一个局域网。就像是一个网吧,就是一个局域网

是一种覆盖范围很广的网络,它可以跨越城市、国家甚至全球。广域网是通过电信运营商的网络设施,如电话线、光纤电缆、卫星通信等来连接不同地理位置的网络或计算机系统。像互联网就是最大的广域网,它连接了全球各个国家和地区数以亿计的计算机和网络设备,使得人们可以在世界各地访问网站、发送电子邮件等。

二、路由器和交换机

更多组建局域网的方式是通过路由器和交换机

交换机是一种常见的 网络设备 ,它主要用于局域网内的设备通信
路由器是一种用于连接多个网络的设备,它在网络之间起到了桥梁的作用.

路由器上的接口分为LAN口和WAN口,WAN口用来接运行商的网线.LAN口用来接入设备.路由器的LAN口也可以接入交换机,交换机还可以接交换机,基于上述结构就构成了庞大的网络结构.
在这里插入图片描述
路由器和交换机的区别:
每一台路由器,他实现了网络层到物理层,也就是TCP/IP的下三层,路由器工作在网络层
每一台交换机,实现了从数据链路层到物理层,也就是TCPP/IP的下两层,交换机工作在数据链路层

IP地址

IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址。

就像是我们发快递一样,必须要知道对方的收货地址,快递员才能将包裹送达

计算机上则是通过数字来描述一个设备的地址
为了方便表示,往往IP地址采用"点分十进制"的方式,用三个 . 把这4个字节分为4个部分,每部分一个字节,取值为0-255.
在这里插入图片描述

端口号

具体描述了一个主机上的哪个应用程序.
有了IP可以确定主机,但是主机上有很多程序都在使用网络,主机收到网络数据后就要分辨是交给哪个程序使用数据.
每个程序在进行网络通信中都有一个端口号(可以自己定义,也可以系统分配).同一个主机上端口号不能重复.

网络通信中的IP和端口号

网络通信中的IP地址和端口号其实是有两个的

其实和快递一样,记录了收发地址,以及收发人的联系方式

源IP:相当于发件人地址
源端口:发件人手机号
目的IP:收件人地址
目的端口:收件人手机号

描述了"从哪里来,到哪里去"的问题.

协议[重要]

协议就是一种通信过程中的约定.
通信双方需要制定好数据的格式,才能确保双方进行正常沟通.

通信双方的计算机可能来源于不同的厂商,为了确保两个计算机中的网络通信,就需要计算机遵守相同的网络协议.
在这里插入图片描述
网络通信过程中,其实有很多的细节需要注意,如果只是靠一个协议来完成的话,就需要面面俱到,这样就导致了协议非常复杂不利于维护.

于是我们把协议拆分成了很多层,把功能定位相似的放在同义词,上层协议调用下层功能,下层协议为上层服务.

只有相邻层次之间可以进行沟通,不能越级沟通.
就像是在公司中,我们完成任务只需要向自己的上一级交代,不需要直接向老板汇报.
在这里插入图片描述

协议分层的其他好处

1.上层协议可以直接调用下层协议,而不用关心具体的实现细节.

就像打电话,我们不用关心电话是怎样实现双方沟通的
在这里插入图片描述
2.某一层协议进行替换时,对其他应用也不会有什么影响.
在这里插入图片描述

OSI七层网络协议

我们并不常用OSI七层网络协议,这里只是给大家简单介绍,有兴趣的可以在挖掘~~
在这里插入图片描述
在这里插入图片描述
接下里我们重点介绍下TCP/IP五层网络协议.

TCP/IP五层网络协议

网络编程主要就是针对应用层,因为剩下的都是操作系统内核封装好的,我们没办法干预.

应用层:程序拿到数据之后,要解决什么问题,用来做什么

传输层:传输层执行进程到进程的端到端通信,关注的是数据的起点和终点(类似关注收件人发件人以及他们的信息).

网络层:网络层负责将数据从一个节点传输到另一个节点,主要进行寻址.将数据从源机器传送至目的机器的数据路径

数据链路层:相邻节点的之间的传输.通过检测、纠正数据包错误来建立可靠的邻接网络节点之间的数据传输

物理层:网络通信的硬件设备.

封装和分用(网络传输数据最核心的流程)

假设A给B在QQ上发了一个hello的消息.

封装

1.应用层
QQ从输入框获取到这个消息,就要把这个字符串封装成一个应用层的数据包.
QQ这样的程序就内置了一个应用层协议,用来构造应用层数据包.(就是利用字符串拼接的方式)

假定约定的格式是:

发送方QQ号;接收方QQ号;发送时间;消息正文

构造成数据包:
在这里插入图片描述
构造完成之后应用层就会调用系统的api,将数据包传给传输层

2.传输层
传输层就会把上述数据作为一个整体,构造成一个传输层数据包
传输层涉及到最主要的两个协议:TCP,UDP
这里我们假定使用UDP进行通信,就会构成一个UDP数据包
在这里插入图片描述
形如上述,添加报头的过程就叫封装,其实就是字符串的拼接,但是报头有一定的数据结构

对于UDP报头来说,承载的最重要的信息就是记录了源端口和目的端口

UDP报头虽然不能起到保护数据的作用但是能用来承载关键的用来转发的信息

拼接好传输层数据包后,就可以将他传给下层(网络层)继续封装
在这里插入图片描述
3.网络层(涉及到最核心的IP协议)

网络层IP协议,将传输层的UDP数据包作为一个整体再次进行封装,再拼上IP协议的报头,构成了IP数据包
在这里插入图片描述
IP协议,就是把整个UDP数据包视为一个整体.

IP报头也会保存一些关键的信息,这里保存的就是源IP和目的IP

网络层封装完成之后会继续调用api,将IP数据包传输到 数据链路层.

4.数据链路层 涉及到的核心协议:以太网

以太网数据帧.就是把IP数据包作为一个整体,在这个基础上加上帧头和帧尾
在这里插入图片描述
封装好后继续往下走交给物理层.

5.物理层
把上面的以太网数据帧,二进制结构(一串0101),转换成光信号/电信号/电磁波.发送出去.

经过上述过程,就算是把消息发送出去

分用
假设数据包已经到达了B的网卡,B的处理过程就叫分用

1.物理层
B的物理层接收到了信号并且将他转换成数字信号,得到一个以太网数据帧,进一步将以太网数据帧传输给数据链路层.

2.数据链路层
按照以太网数据帧的格式来解析,取出其中的载荷,交给上层协议
在这里插入图片描述
3.网络层
按照IP协议的格式来解析,取出其中的载荷,交给上层协议
在这里插入图片描述
4.传输层
按照UDP协议的格式来解析,取出其中的载荷,交给上层协议

在这里插入图片描述
5.应用层
根据 应用层协议来解析数据

路由器和交换机对上述封装分用同样适用

在这里插入图片描述

对于交换机来说,只需要封装到数据链路层即可

在这里插入图片描述
而对于路由器来说则是要封装到,网络层.
在这里插入图片描述

下一篇我们分享下网络编程,这里介绍一些前置知识.

网络编程中的一些概念

客户端/服务器

在网络中,主动发起请求的一方就是客户端,被动接受的一方就是服务器.

客户端发送给服务器的数据,叫做请求(request)
服务器返回给客户端的数据,叫做响应(response)

客户端-服务器之间的交互:

1.一问一答
在这里插入图片描述

2.一问多答

在这里插入图片描述

3.多问一答
在这里插入图片描述
4.多问多答
在这里插入图片描述

TCP/UDP

进行网络通信,需要调用系统的api,本质上是传输层提供的

传输层涉及到的协议主要是TCP和UDP

TCP和UDP区别:
在这里插入图片描述

连接:网络上的连接是抽象的,本质上就是通信双方保存了对方的相关信息.
就像客户端,有一些数据结构,记录了谁是他的服务器.
服务器,有一些数据结构,记录了谁是他的客户端.

可靠传输:这里的可靠传输就是发的数据到没到,发送方能够清楚的感知到

面向字节流:网络中传输的数据的基本单位是字节

面向数据报:每次传输的基本单位是数据报

全双工:一个信道可以双向通信,就像公路一样是双向车道
半双工:只能单向通信,就像过独木桥

相关文章:

网络初识-

网络的相关概念 一、局域网和广域网 将各种计算机、外部设备等相互连接起来,实现在这个范围内数据通信和资源共享的计算机网络。它的覆盖范围通常在几百米到几公里之内。例如,一个小型企业的办公室,通过交换机将多台电脑连接在一起&#xf…...

DNS污染:网络世界的“隐形劫持”与防御

在互联网的底层架构中,DNS(域名系统)如同数字世界的“导航员”,将用户输入的域名翻译成机器可读的IP地址。然而,DNS污染(DNS Poisoning)正像一场无声的“地址篡改”危机,威胁着全球网…...

MQTT(Message Queuing Telemetry Transport)协议(三)

主题是什么 2. TCP 协议封装 tcp.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>// 建立 TCP 连接 int tcp_connect(const char *server_ip, int s…...

多核cpu与时间片多线程的问题

在多核处理器中&#xff0c;每个核心可以独立运行一个线程。操作系统负责管理和调度这些线程&#xff0c;以确保高效利用处理器资源。下面详细解释如何获取时间片以及四个线程如何在四个核心上同时工作。 ### 时间片和调度 #### 1. 时间片&#xff08;Time Slice&#xff09;…...

电脑出现蓝屏英文怎么办?查看修复过程

电脑出现蓝屏英文是一种常见的电脑故障&#xff0c;它通常表示电脑遇到了严重的错误&#xff0c;需要停止运行以防止进一步的损坏。电脑蓝屏英文的原因可能有很多&#xff0c;比如硬件故障、驱动程序错误、系统文件损坏、病毒感染等。那么&#xff0c;当电脑出现蓝屏英文时&…...

安卓基础(第一集)

SharedPreferences&#xff08;本地存储简单数据&#xff09; 在 Android 中&#xff0c;SharedPreferences 用于存储小型数据。 &#xff08;1&#xff09;存储数据 // 获取 SharedPreferences 对象 SharedPreferences sharedPreferences getSharedPreferences("MyPre…...

【从零开始入门unity游戏开发之——C#篇56】C#补充知识点——模式匹配

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...

【数据可视化-16】珍爱网上海注册者情况分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

c/c++蓝桥杯经典编程题100道(21)背包问题

背包问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 背包问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1&#xff1a;0-1背包&#xff08;基础动态规划&#xff0c;难度★&#xff09; 解法2&#xff1a;0-1背包&#xff08;空间优化版&#xff0c;难度★…...

电赛DEEPSEEK

以下是针对竞赛题目的深度优化方案&#xff0c;重点解决频率接近时的滤波难题和相位测量精度问题&#xff1a; 以下是使用NI Multisim 14.3实现本项目的详细解决方案&#xff1a; 一、基础要求实现方案&#xff08;模块化设计&#xff09; 1. 双频信号发生电路 电路结构&…...

VSOMEIP ROUTING应用和CLIENT应用之间交互的消息

#define VSOMEIP_ASSIGN_CLIENT 0x00 // client应用请求分配client_id #define VSOMEIP_ASSIGN_CLIENT_ACK 0x01 // routing应用返回分配的client_id #define VSOMEIP_REGISTER_APPLICATION 0x02 // client应用注册someip应用 #…...

HTML之基本布局div|span

HTML基本布局使用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width<device-width>, initial-scale1.0"><title>布局</title> <…...

Linux下学【MySQL】常用函数助你成为数据库大师~(配sql+实操图+案例巩固 通俗易懂版~)

绪论​ 每日激励&#xff1a;“唯有努力&#xff0c;才能进步” 绪论​&#xff1a; 本章是MySQL中常见的函数&#xff0c;利用好函数能很大的帮助我们提高MySQL使用效率&#xff0c;也能很好处理一些情况&#xff0c;如字符串的拼接&#xff0c;字符串的获取&#xff0c;进制…...

【Rabbitmq篇】高级特性----TTL,死信队列,延迟队列

目录 一.TTL ???1.设置消息的TTL 2.设置队列的TTL 3.俩者区别? 二.死信队列 定义&#xff1a; 消息成为死信的原因&#xff1a; 1.消息被拒绝&#xff08;basic.reject 或 basic.nack&#xff09; 2.消息过期&#xff08;TTL&#xff09; 3.队列达到最大长度? …...

机器学习赋能的智能光子学器件系统研究与应用

机器学习赋能的智能光子学器件系统研究与应用 时间&#xff1a; 2025年03月29日-03月30日 2025年04月05日-04月06日 机器学习赋能的光子学器件与系统&#xff1a;从创新设计到前沿应用 课程针对光子学方面的从业科研人员及开发者&#xff0c;希望了解和实践在集成光学/空间…...

尚硅谷课程【笔记】——大数据之Linux【三】

课程视频链接&#xff1a;尚硅谷大数据Linux课程 七、定时任务调度 任务调度&#xff1a;指系统在某个时间执行的特定的命令或程序。 1&#xff09;系统工作&#xff1a;有些重要的工作必须周而复始地执行。 2&#xff09;个别用户工作&#xff1a;用户可能希望在某些特定的时…...

Visual Studio踩过的坑

统计Unity项目代码行数 编辑-查找和替换-在文件中查找 查找内容输入 b*[^:b#/].*$ 勾选“使用正则表达式” 文件类型留空 也有网友做了指定&#xff0c;供参考 !*\bin\*;!*\obj\*;!*\.*\*!*.meta;!*.prefab;!*.unity 打开Unity的项目 注意&#xff1a;只是看&#xff0…...

教程 | MySQL 基本指令指南(附MySQL软件包)

此前已经发布了安装教程安装教程&#xff0c;现在让我们来学习一下MySQL的基本指令。 一、数据库连接与退出 连接本地数据库 mysql -uroot -p # 输入后回车&#xff0c;按提示输入密码&#xff08;密码输入不可见&#xff09;若需隐藏密码显示&#xff0c;可使用&#xff1…...

企业数据集成案例:吉客云销售渠道到MySQL

测试-查询销售渠道信息-dange&#xff1a;吉客云数据集成到MySQL的技术案例分享 在企业的数据管理过程中&#xff0c;如何高效、可靠地实现不同系统之间的数据对接是一个关键问题。本次我们将分享一个具体的技术案例——通过轻易云数据集成平台&#xff0c;将吉客云中的销售渠…...

网络编程 day3

思维导图 以select函数模型为例 思维导图2 对应 epoll模型 应使用的函数 题目 使用epoll函数实现 两个客户端 通过服务器 实现聊天 思路 在原先代码基础上 实现 服务器 发向 客户端 使用客户端在服务器上的 套接字描述符 实现 客户端 接收 服务器…...

Android14 SurfaceFlinger启动流程与线程调度机制解析

1. SurfaceFlinger的启动入口与初始化流程 Android显示系统的核心服务SurfaceFlinger由init进程启动&#xff0c;这个设计保证了它在系统早期就能准备好图形合成能力。main函数作为入口点&#xff0c;首先做了一系列关键初始化&#xff1a; 设置Binder线程池的最大线程数为4&…...

Balena Etcher:三步完成系统镜像烧录,告别复杂命令的困扰

Balena Etcher&#xff1a;三步完成系统镜像烧录&#xff0c;告别复杂命令的困扰 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 你是否曾经因为需要制作系统启动…...

RTKLIB进阶指南:深入理解北斗三代CNAV电文与BDS-3星历数据结构

RTKLIB进阶指南&#xff1a;北斗三代CNAV电文与星历数据结构深度解析 当你在RTKLIB的源码中第一次看到eph_t结构体里那些神秘的Adot、ndot字段时&#xff0c;是否好奇过它们如何精确描述北斗三号卫星的轨道变化&#xff1f;这些看似简单的浮点数背后&#xff0c;隐藏着中国自主…...

应对维普AIGC史诗级升级:2026降重急救包!5款工具基准测试 x 4大手改重构技巧

论文初稿快要交了&#xff0c;维普却突然搞了个大动作&#xff0c;把系统给升级了。说实话&#xff0c;这事真挺让人头疼的&#xff0c;有人前两天查还是绿的&#xff0c;以为稳了&#xff0c;结果升级完再一测&#xff0c;AI率直接飙红。 但别慌&#xff0c;也别怀疑自己是不…...

s2-pro音色定制实战:为品牌IP打造专属语音形象的全流程方案

s2-pro音色定制实战&#xff1a;为品牌IP打造专属语音形象的全流程方案 1. 为什么品牌需要专属语音形象 在当今数字营销时代&#xff0c;品牌IP的语音形象已经成为品牌识别的重要组成部分。一个独特、一致的语音形象能够&#xff1a; 增强品牌辨识度&#xff1a;让用户一听到…...

一文搞懂 Spring Cloud:从入门到实战的微服务全景指南(建议收藏)

如果你正在做后端开发&#xff0c;或者正在准备找实习/秋招&#xff0c;那你一定绕不开一个关键词&#xff1a;微服务。 而在 Java 技术栈中&#xff0c;微服务的“标配方案”&#xff0c;就是今天的主角——Spring Cloud。 很多同学第一次接触 Spring Cloud 时&#xff0c;都…...

MusePublic部署案例:离线环境无网络部署与本地模型缓存策略

MusePublic部署案例&#xff1a;离线环境无网络部署与本地模型缓存策略 1. 项目概述 MusePublic是一款专为艺术感时尚人像创作设计的轻量化文本生成图像系统。这个项目基于专属大模型构建&#xff0c;采用安全高效的safetensors格式封装&#xff0c;特别针对艺术人像的优雅姿…...

API平台选型指南:从RapidAPI、聚合数据到幂简集成的实战考量

1. 为什么API平台选型如此重要&#xff1f; 想象一下你正在开发一款智能天气应用&#xff0c;需要接入实时气象数据、空气质量指数和灾害预警接口。如果每个API都要单独注册账号、申请密钥、阅读不同风格的文档&#xff0c;光是集成工作就可能耗掉两周时间。这就是为什么选择一…...

Nunchaku-flux-1-dev技术解析:深入理解其背后的深度学习网络架构

Nunchaku-flux-1-dev技术解析&#xff1a;深入理解其背后的深度学习网络架构 最近在AI编程和图像生成圈子里&#xff0c;FLUX.1 [dev]这个名字被讨论得越来越多。作为其社区衍生版本&#xff0c;Nunchaku-flux-1-dev自然也吸引了大量技术爱好者的目光。大家可能已经体验过它生…...

FlowState Lab新手避坑指南:快速上手时间序列预测的5个技巧

FlowState Lab新手避坑指南&#xff1a;快速上手时间序列预测的5个技巧 1. 环境准备与快速部署 1.1 系统要求与安装步骤 FlowState Lab作为基于IBM Granite架构的时间序列分析工具&#xff0c;对运行环境有以下要求&#xff1a; 操作系统&#xff1a;Linux (推荐Ubuntu 20.…...