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

【计算机网络】网络基础概念

计算机网络发展

独立模式:最开始计算机之间相互独立,每个终端各自持有数据。

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

局域网 LAN:计算机数量增多,通过交换机和路由器连接在一起。

广域网 WAN: 将远隔千里的计算机都连在一起。

协议

协议分层

为什么要进行协议分层?

协议本质也是软件,在设计上为了更好的进行模块化以及解耦合,因此进行了分层并被设计为层状结构。

OSI 七层模型

  • •OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了七层。每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是,它既复杂又不实用,所以我们按照 TCP/IP 五层模型来理解。

TCP/IP 五层(四层)模型

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

  • 物理层:负责光/电信号的传递方式。 比如现在以太网通用的网线(双绞 线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的 wifi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
  • 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无线 LAN 等标准。交换机(Switch)工作在数据链路层。
  • 网络层:负责地址管理和路由选择。例如在 IP 协议中,通过 IP 地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。 路由器(Router)工作在网络层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。网络编程主要就是针对应用层。

由于物理层我们考虑的较少,我们只考虑软件相关的内容,因此很多时候我们直接称为
TCP/IP 四层模型。

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器,它实现了从网络层到物理层;
  • 对于一台交换机,它实现了从数据链路层到物理层;
  • 对于集线器,它只实现了物理层。

但是并不绝对,很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的
内容(比如端口转发)。

究竟什么是协议?

关于协议的朴素理解:协议制定了相同的、结构化的数据类型,方便不同主机间的网络通信。因为协议栈是分层的,所以,每层的双方都有协议,同层之间,互相可以认识对方的协议。

ifconfig

网络与操作系统的关系

所有操作系统,只要想入网,就必须遵守 TCP/IP 协议,保证不同主机间的数据通信。

所以操作系统的分层结构属于个性,不同操作系统遵守的网络分层结构属于共性

网络传输基本流程

局域网网络传输流程

首先回答一个问题,两台主机在同一个局域网(以太网为例),能够直接通信?能。

每台主机在局域网上,要有唯一的标识来保证主机的唯一性:MAC 地址。

认识 MAC 地址

  • MAC 地址用来识别数据链路层中相连的节点;
  • 长度为 48 位,即 6 个字节。 一般用 16 进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • MAC 地址在网卡出厂时就确定了,不能修改。MAC 地址通常是唯一的(虚拟机中的 MAC 地址不是真实的 MAC 地址,可能会冲突;也有些网卡支持用户配置 MAC 地址)。

Linux bash 输入以下命令可查看 mac 地址。

ifconfig

局域网(以太网为例)通信原理

  • 以太网中,任何时刻,只允许一台机器向网络中发送数据。
  • 如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞,所有发送数据的主机要进行碰撞检测和碰撞避免。
  • 没有交换机的情况下,一个以太网就是一个碰撞域。
  • 局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标mac 地址判定。
  • 这里可以试着从系统角度来理解局域网通信原理。

以太网和令牌环网都是将局域网看作一个临界资源。

  • 以太网是检测到数据碰撞就等会再发数据;
  • 令牌环网则是有一个令牌,谁拿到了令牌谁就可以发数据。

初步明白了局域网通信原理,再来看同一个网段内的两台主机进行发送消息的过程:

首先明确一下概念:

  • 报文自顶向下交付的过程,要添加每一层的数据首部,这称为封装;自底向上贯穿协议栈,称为解包和分用
  • 首部信息中包含了一些类似于首部有多长,有效载荷有多长,上层协议是什么等信息。
  • 解包:将报头和有效载荷进行分离。
  • 分用:将自己的有效载荷交付给上层的哪个协议。
  • 封装过程中,每个分层接收到上层的报文后,会在头部添加报头。
  • 报头部分,就是对应协议层的结构体字段,我们一般叫做报头。
  • 除了报头,剩下的叫做有效载荷。
  • 所以,报文 = 报头 + 有效载荷。

然后,明确一下不同层的完整报文的叫法:

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.

最后,给出整体传输流程:

在网络传输的过程中,数据不是直接发送给对方主机的,而是先要自顶向下将数据交付给下层协议,最后由底层发送,然后由对方主机的底层来进行接受,再自底向上进行交付。

数据包封装和分用

数据封装流程如下:

数据分用流程如下:

跨网络传输流程

IP 地址

IP 协议有两个版本,IPv4 和 IPv6。后续文章没有特殊说明的,默认都是讨论 IPv4。

  • IP 地址是在 IP 协议中,用来标识网络中不同主机的地址;
  • 对于 IPv4 来说,IP 地址是一个 4 字节,32 位的整数;
  • 我们通常也使用“点分十进制”的字符串表示 IP 地址,例如 192.168.0.1;用点分割的每一个数字表示一个字节,范围是 0 - 255。

IP 网络层存在的意义:提供网络虚拟层,让所有网络都是 IP 网络,屏蔽最底层网络的差异 。

跨网段的主机的数据传输

数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。示意图如下:

为什么给目标主机发数据,先要发给路由器?

当我们向跨网段进行数据传输时,需要给出目的 IP,当目的 IP 不在局域网内,就通过 MAC 地址将数据发给路由器,由路由器对报文进行解释并转发。

结合封装与解包,根据下图重新体现路由器解包和重新封装的特点:

  IP 网络的意义和网络通信的宏观流程图如下:

相关文章:

【计算机网络】网络基础概念

计算机网络发展 独立模式:最开始计算机之间相互独立,每个终端各自持有数据。 网络互联:多台计算机连接在一起,完成数据共享。 局域网 LAN:计算机数量增多,通过交换机和路由器连接在一起。 广域网 WAN: 将远…...

深入理解Spring的三级缓存机制

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…...

LSTM长短时记忆网络【数学+图解】

文章目录 1、简介2、门控机制3、LSTM3.1、概念3.2、公式⭐3.3、特点 4、图解LSTM⭐4.1、RNN4.2、时间链条4.3、记忆单元🔺4.4、LSTM 5、LSTM与GRU的对比6、应用7、训练技巧 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博…...

Linux-入门-02

上节我们讲了如何安装虚拟机,本节课讲一些linux的常用命令,首先我们需要做一些配置,我们的centos的镜像是最小版安装,里面什么也没有,所以我们的linux是不能进行联网的,接下来我们就来一步一步联网 1、配置网络 首先我们需要先使用命令查看ip地址,linux中一切皆文件,只能使用命…...

Animate软件基本概念:基本形状、绘制对象及位图

这一篇讲Animate软件中的基本形状、绘制对象及位图三个概念。 FlashASer:AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084 FlashASer:实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer&…...

Shell定时上传日志到HDFS

Shell定时上传日志到HDFS 一、任务需求二、实现思路三、具体实现流程3.1 规划文件上传目录3.2 开发 shell 脚本3.3 授予 shell 可执行权限3.4 手动执行查看3.4 定时执行 shell 脚本 一、任务需求 公司在线服务器每天都会产生网站运行日志,为了避免志文件过大&#…...

前端day3-表格

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>day3-表格</title> </head> <body&g…...

多进程系列:一个进程对应一个函数

多进程系列&#xff1a;一个进程对应一个函数 这里展示创建两个进程&#xff0c;一个进程用于执行分类模型&#xff0c;另外一个进程用于执行分割模型&#xff0c;以及获取结果的示例。 import multiprocessing import time def classify_data(data):# 这里放置分类任务的代…...

数据清洗与预处理:确保数据质量的关键步骤

数据清洗与预处理&#xff1a;确保数据质量的关键步骤 引言 在大数据时代&#xff0c;数据已成为企业最宝贵的资产。然而&#xff0c;数据的质量直接影响到分析结果和决策的准确性。数据清洗与预处理是确保数据质量的关键步骤&#xff0c;它们包括识别和处理数据中的错误、缺…...

《PostgreSQL 数据库在国内的发展前景》

从DB-engines这张2024年8月的最新排名图上可以看出&#xff0c;PostgreSQL数据库的发展趋势还是非常好的&#xff0c;在国内&#xff0c;PostgreSQL数据库也展现出令人振奋的发展前景&#xff0c;非常明显的一种表现就是腾讯云、人大金仓、阿里云、华为等众多厂商都有基于Postg…...

LVS部署DR集群

介绍 DR&#xff08;Direct Routing&#xff09;&#xff1a;直接路由&#xff0c;是LVS默认的模式&#xff0c;应用最广泛. 通过为请求报文重新封装一个MAC首部进行转发&#xff0c;源MAC是DIP所在的接口的MAC&#xff0c;目标MAC是某挑选出的RS的RIP所在接口的MAC地址. 整个…...

《Linux运维总结:etcd 3.5.15集群数据备份与恢复》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、备份恢复说明 通常, 只需在其中一个节点上对 Etcd 进行快照,即可完成数据备份。但是, 数据恢复时必须要在每个节点上进行。 注意:即便是高可用 Etcd 集群…...

我在杭州的Day30_进程间通信(IPC)——20240805

一、相关练习 1.使用有名管道实现&#xff0c;一个进程用于给另一个进程发消息&#xff0c;另一个进程收到消息后&#xff0c;展示到终端上&#xff0c;并且将消息保存到文件上一份 1.1> 01homework.c #include <myhead.h>int main(int argc, const char *argv[]) …...

FFmpeg推流

目录 一. 环境准备 二. 安装FFmpeg 三. 给docker主机安装docker服务 四. 使用 FFmpeg 进行推流测试 FFmpeg是一个非常强大的多媒体处理工具&#xff0c;它可以用于视频和音频的录制、转换以及流处理。在流处理方面&#xff0c;FFmpeg可以用来推流&#xff0c;即将本地媒体…...

【Rust光年纪】简化文件操作流程:深度剖析多款文件系统操作库

文件系统操作利器&#xff1a;介绍常用的文件操作库 前言 在现代软件开发中&#xff0c;文件系统操作是一个十分常见的需求。为了更加高效地进行文件系统操作&#xff0c;开发人员经常会使用各种文件系统操作库来简化开发流程、提高代码可维护性。本文将介绍几个常用的文件系…...

FFmpeg实现文件夹多视频合并

使用FFmpeg合并文件夹中的多个视频文件&#xff0c;可以通过多种方式来实现&#xff0c;具体取决于你希望如何合并这些视频文件。下面介绍两种常见的方法&#xff1a; 按顺序拼接多个视频文件&#xff1a; 适用于希望将多个视频文件按顺序合并成一个视频文件的情况。 将多个视…...

[设备] 关于手机设备中几种传感器的研究

一、手机设备中三位坐标系概念 X轴的方向&#xff1a;沿着屏幕水平方向从左到右&#xff0c;如果手机如果不是是正方形的话&#xff0c;较短的边需要水平 放置&#xff0c;较长的边需要垂直放置。Y轴的方向&#xff1a;从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端Z轴…...

C#通过Modbus读取温度和湿度

使用 C# 通过 RS-485 接口读取温湿度数据并在电脑上显示&#xff0c;需要使用串口通信。假设你的温湿度传感器使用 Modbus RTU 协议&#xff0c;这里提供一个示例代码&#xff0c;使用 System.IO.Ports 命名空间进行串口通信&#xff0c;并使用 Modbus 协议库 NModbus 进行通信…...

海量数据处理商用短链接生成器平台 - 9

第二十六章 短链服务-冗余双写架构删除和更新消费者开发实战 第1集 冗余双写架构-更新短链消费者开发实战 简介&#xff1a; 短链服务-更新短链-消费者开发实战 具体步骤见代码 第2集 冗余双写架构-更新短链消费者链路测试 简介&#xff1a; 冗余双写架构-更新短链消费者链…...

从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化

在大数据时代&#xff0c;企业对数据的依赖程度越来越高。然而&#xff0c;随着业务的不断发展和技术的快速迭代&#xff0c;大数据平台的集群迁移已成为企业数据中台发展途中无法回避的需求。在大数据平台发展初期&#xff0c;国内数据中台市场主要以国外开源 CDH、商业化 CDP…...

Godot解包工具完整指南:3分钟提取游戏资源

Godot解包工具完整指南&#xff1a;3分钟提取游戏资源 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker godot-unpacker 是一个专为Godot游戏引擎设计的资源解包工具&#xff0c;能够快速提取非加密的…...

快速构建SpringBoot微服务:Phi-3-mini智能代码生成与架构咨询

快速构建SpringBoot微服务&#xff1a;Phi-3-mini智能代码生成与架构咨询 1. 引言&#xff1a;当AI助手遇上Java开发 最近接手了一个新项目&#xff0c;需要快速搭建一套SpringBoot微服务架构。正当我对着空白的IDE发愁时&#xff0c;同事推荐了Phi-3-mini这个AI助手。说实话…...

OpenClaw商业应用边界:Qwen3-14B在个人网店中的合规使用

OpenClaw商业应用边界&#xff1a;Qwen3-14B在个人网店中的合规使用 1. 为什么个人网店需要AI助手&#xff1f; 去年夏天&#xff0c;我的淘宝小店突然迎来一波流量高峰。每天上百条咨询消息让我应接不暇&#xff0c;经常凌晨还在回复"什么时候发货"这类重复问题。…...

告别卡顿与花屏:FFmpeg解码H.264/H.265实时流时,你必须处理的丢包与同步问题实战

FFmpeg实战&#xff1a;构建高稳定性的H.264/H.265实时流解码系统 当你在开发一个实时视频监控系统或流媒体播放器时&#xff0c;最令人沮丧的莫过于画面卡顿、花屏甚至崩溃。这些问题往往源于网络传输中的丢包、乱序以及解码器状态管理不当。本文将深入探讨如何利用FFmpeg构建…...

告别复杂配置:AI股票分析师daily_stock_analysis开箱即用实战体验

告别复杂配置&#xff1a;AI股票分析师daily_stock_analysis开箱即用实战体验 1. 引言&#xff1a;为什么选择这个AI股票分析师&#xff1f; 作为一名金融从业者或投资爱好者&#xff0c;你可能经常面临这样的困扰&#xff1a;想要快速了解一只股票的基本情况&#xff0c;却需…...

Win11Debloat:Windows系统终极精简优化完整指南

Win11Debloat&#xff1a;Windows系统终极精简优化完整指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and customiz…...

Qwen-Image-Edit-F2P教程:Gradio界面实时交互调试+生成过程进度条可视化原理

Qwen-Image-Edit-F2P教程&#xff1a;Gradio界面实时交互调试生成过程进度条可视化原理 想玩转AI图像编辑&#xff0c;但被复杂的命令行和漫长的等待劝退&#xff1f;今天&#xff0c;我们来点不一样的。我将带你深入一个开箱即用的AI图像编辑工具——Qwen-Image-Edit-F2P&…...

数据库---Day6 数据库约束

本系列可作为数据库学习系列的笔记&#xff0c;文中提到的一些练习的代码&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 点赞关注不迷路&#xff01;您的点赞、关注和收藏是对小编最大的支持和鼓励&#xff01; 系列文章目…...

好消息!内存条开始降价了,价格能否回到2025年年初价?

今天又开始因为各种原因在电脑上折腾大模型了&#xff0c;但是发现一件很可怕的事情&#xff1a;16GB的内存真的不够用。 哈哈哈哈……这个Windows电脑因为有很长一段时间没有使用&#xff0c;所以在粉丝需要的时候&#xff0c;直接把一对16GB的内存条拆出来卖了&#xff0c;后…...

机器学习实践指南【1.0】

第1章 机器学习引言本章将介绍机器学习及其涵盖的多个话题。你将了解以下内容&#xff1a;什么是机器学习分类方法概述聚类方法概述模型的选择和正则化概述非线性方法概述监督学习概述无监督学习概述增强学习概述结构化预测概述神经网络概述深度学习概述1.1 什么是机器学习人类…...