什么是网络数据包?

2023-05-16

流经网络的一切都可以被归类为数据包中所包含数据的一部分。一个网络数据包或IP包可以被称为一个数据单元(约1KBS至1.5KBS),在互联网或分组交换网络内从原点流向目标地址(从发送方到接收方)。

什么是网络中的数据包?

它们是网络上信息传输的基本单位,因为发件人发出的每条信息都被分解成小的片段,以便能够在网络链接上轻松快速地传输。如果没有这些小片段,要在网络上传输大块的信息就会困难很多。

数据包与真实的世界

举个现实生活中的例子。例如,你给一个朋友发送了一个视频。在你点击 “发送 “和视频到达你朋友的收件箱的那一瞬间,发生了很多事情。

首先,你的电脑将视频分割成小块,每块都包含视频的一个部分。这是通过给网络数据包分配标识符的方式完成的,收件人的计算机能够理解并将它们重新组合成原始视频。

然后,每个数据包被分别通过最佳可用路线依次送入互联网网络,以确保网络流量数据的均匀分布。因此,所有的数据包都沿着一条合适的路线走向它们的目的地,而且它们不会全部卡在一条路线上。虽然,有的时候数据包会丢失,我们稍后会讨论这个问题。

一旦它到达你朋友电脑中的相关程序,”头 “和 “尾 “被剥离,有效载荷/数据被放在一起,每个都在其标识符所示的位置上,这样就可以看到视频内容。–没有人问这一切是如何传输得如此之快的!

好吧,让我们从技术上了解一下那里发生了什么。

网络数据包是如何工作的 - 让我们从技术角度出发

虽然不一定完全遵循,但OSI模型所规定的概念框架提出了一系列的协议,通过这些协议,数据在传输前被分解成更小的层次,并在到达目的地地址时被很好地组装起来。一般来说,我们今天的网络都是在TCP/IP协议栈上运行的,这些协议栈在以太网衍生的物理网络上传输。在我们进一步讨论之前,重要的是我们要快速解决一个常见的错误,即绕过一些术语来代替 “网络包 “或 “数据包 “的错误使用。

段是指从传输协议(最可能是TCP)发送到网络层的数据单位。

数据报:有两种形式;UDP数据报和IP数据报。而它们是根据被寻址时使用的协议来区分的。如果分割的数据是由IP网络协议处理的,那么它就是一个IP数据报。而如果在传输层,它是由UDP传输的,那么它就是UDP数据报。帧指的是网络协议的物理表示或容器。

在网络层

这里,IP接收数据段并将其封装到多个IP数据报中,每个接收到的TCP数据段对应一个IP数据报。封装后,IP评估每个数据报的源信息、目的IP地址、标识符以及服务质量(QoS)参数,并将其分配给每个数据报,这有助于确定数据报要采用的最佳物理路径。

分配之后,数据报被转发到网络接口卡。

在数据链路层和物理层

NIC收到的IP数据报在数据链路层被封装成一个以太网帧。随后,该帧以二进制信号在连接到NIC的物理介质(如光纤、同轴电缆、集线器、同轴电缆等)上传输。

网络数据包的组成部分

网络数据包分为三个部分:报头、有效负载和报尾,每个部分都包含其特有的值。

网络数据包报头

报头包含源地址、目的地址、协议和数据包号。

  • 源地址指示信息包的来源。
  • 目的地址指向接收IP地址。
  • 协议帮助识别正在传输的数据包的类型,是电子邮件、网页还是视频等。
  • 数据包号-每个数据包都有两个标识号;第一个表示一条信息被拆分成多少个数据包,第二个表示作为完整信息的一部分的单个数据包的位置。

数据包负载

有效载荷通常被称为数据。这指的是数据包传输的实际数据。根据网络的不同,大小可能在48字节到4KB之间变化。有效载荷是源和目的地接收的唯一数据,因为当数据包到达目的地时,报头信息会从数据包中剥离。

数据包报尾

每个网络类型的数据包报尾的内容都不同。一般来说,报尾包含几个比特,通知接收设备它已经到了数据包的末尾,还有一个循环冗余校验(CRC),它使计算机能够确定所有数据包是否被完全接收。

丢包:网络数据包的灾难

按前面举的例子,如果视频无法在你朋友的电脑上完全加载,那么有可能是一些数据包在传输过程中丢失了。在办公室场景中,工作人员之间(在同一或不同地点)传输关键任务的文件是非常普遍的,不断要求重新传输文件会影响生产力并增加停机时间。

当一个数据包无法到达目的地时,就会发生网络丢包的情况,这是因为数据包被丢弃或数据包在传输过程中丢失 – 导致低质量的体验(QoE)。由于WiFi信号或网络连接不良、电缆故障、网络拥堵、路由器故障等原因,数据包丢失不太可能在有线网络上发生,也不限于无线互联网连接。

有几种方法可以管理、修复或限制数据包丢失的发生,例如。

  • 通过消除干扰源
  • 更新所有网络设备软件
  • 应用QoS设置和网络策略
  • 检查物理连接

但所有这些都只能在短时间内发挥作用。网络监控工具,如LiveNX,与LiveWire一起,提供了一个集中的系统,只要服务在使用中,就能将企业网络作为一个单位进行管理和监控。对网络的远程活动提供深入的实时洞察力,从而确保对网络数据包丢失的检测和故障排除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是网络数据包? 的相关文章

  • RabbitMQ——调优参数

    前言 前面几篇文章讲述了rabbitmq消息存储的相关原理 xff0c 也提到了有些参数可以进行配置 这些配置参数的微调在不同的场景中会有不同的效果 本文对其中一些参数进行说明 xff0c 同时以实测数据结合性能分析工具进行剖析 相关参数说
  • Python之turtle.circle()函数理解

    turtle circle 函数 定义 xff1a turtle circle radius extent 61 None 作用 xff1a 根据半径radius绘制extent角度的弧形 参数 xff1a radius xff1a 弧形半
  • 高精度乘法(C++实现)

    算法分析 1 C 43 43 不支持大数运算 xff0c 故而引入高精度算法 2 高精度乘法将大数以字符串形式输入 xff0c 然后拆分转换为一位一位的整数 xff0c 之后按照小学的竖式运算方法完成编码 xff08 注意 xff1a 字符
  • 在RStudio中安装packages时的“... install from sources ...”问题解决方法

    问题描述 在RStudio中安装packages时出现弹窗提示 xff1a Do you want to install from sources the packages which need compilation 解决办法 选择 NO
  • 排列组合之插板法

    算法解析 插板法的模型 xff1a m个相同的元素 xff0c 分给n个不同的空间里 xff0c 每个空间至少1个 xff0c 有多少种方法 xff1f O 表示元素 xff0c 表示隔板 xff0c xff0d 表示间隔 xff0c 如果
  • cin.getline() 函数用法

    函数用法 接收一个字符串并输出 xff08 可含空格 xff09 参数详解 1 cin getline 函数的完整形式有三个参数 xff1a cin getline 字符数组名 字符个数 结束标志 注意 xff1a 若指定参数 字符个数 为
  • Matlab以分数形式显示运算结果并输出

    问题描述 已知矩阵P的内容如下 xff1a 1 3 1 3 1 3 0 1 2 1 2 0 0 1 4 1 4 0 1 2 0 1 2 0 1 2 利用Matlab编程求P P的值 xff0c 并以分数形式显示运算结果 程序代码 forma
  • Visual Studio Code 常用快捷键

    功能快捷键跳转到定义F12往回跳转Ctrl 43 Alt 43 往前跳转Ctrl 43 Shift 43 注释 取消注释Ctrl 43 搜索Ctrl 43 F替换Ctrl 43 H在文件中搜索Ctrl 43 Shift 43 F变量重命名F
  • LaTeX中保留字符 # $ % ^ & _ { } \ 的输入方法

    LaTeX保留字符 常见的LaTeX保留字符有 xff1a amp backslash 在 LaTeX 中输入它们的命令是 xff1a documentclass UTF8 article usepackage ctex begin doc
  • 蓝桥杯:长草 ← DFS

    题目来源 https www lanqiao cn problems 149 learning 问题描述 小明有一块空地 xff0c 他将这块空地划分为 n 行 m 列的小块 xff0c 每行和每列的长度都为 1 小明选了其中的一些小块空地
  • 利用数组模拟栈,实现逆序输出。

    利用STL stack实现逆序输出的代码 在算法竞赛中 xff0c 利用STL stack实现逆序输出 xff0c 特别好理解 STL stack 的官方帮助文档详见 xff1a https cplusplus com reference
  • 算法竞赛中,sort()函数的常见用法。

    知识点 虽然我们已经学习了诸如快速排序 桶排序 基数排序 插入排序 选择排序等众多的排序算法 xff0c 但在算法竞赛中 xff0c 如需要进行排序 xff0c 我们一般 不会去重复造轮子 xff0c 即去实现某种排序算法后再使用 xff0
  • Android 打印调用栈的方法

    1 Java层调用栈打印 xff1a xff08 1 xff09 打印本地调用堆栈 Log i TAG Log getStackTraceString new Throwable 打印本地调用堆栈 xff08 2 xff09 打印远程调用堆
  • 利用gnome美化Ubuntu18.04

    先上最终的效果图 xff1a 首先需要安装gnome软件 sudo apt install gnome tweak tool 安装好后在terminal中输入 gnome tweaks 进入优化软件 软件里自带有一些主题和图标等 xff0c
  • 软件项目管理0712:干系人管理

    软件项目管理0712 xff1a 干系人管理 xff08 软件项目管理中最复杂的内容 xff09 这个题目是个大课题 xff0c 只谈一些自己的经验 xff0c 并不完整 xff0c 有很多缺漏 xff0c 在以后的工作中慢慢的完善 项目
  • 【JVM学习笔记】JVM内存区域定义与内存结构

    目录 定义和说明JVM内存区域的定义内存区域说明堆说明非堆 方法区说明堆栈的区别HotSpot虚拟机 JVM线程独占内存程序计数器 xff1a Program Counter RegisterJava虚拟机栈 xff1a Java Virt
  • 【自媒体营销神器】一键自动下载短视频并分发至长视频平台脚本开源展示

    项目语言 xff1a Python 开发历时 xff1a 一个月 为什么要开源 xff1a Those whom God wishes to destroy he first makes mad 用到的库 xff1a 首先是项目展示环节 x
  • 搞懂bashrc

    1 bashrc是什么 shell 是给电脑发送指令的地方 xff08 命令行 xff09 xff0c bash 是 Bourne Again Shell 的缩写1 我们在 Ubuntu 打开的命令行界面一般都是 bash xff0c 每次
  • powershell 解压RAR文件(简易版)

    01 前言 为啥要写这个 xff0c 因为可能有些特殊的环境无法使用RAR的解压软件 xff0c 因而动手找了一个库然后写了这个脚本 xff0c 希望有帮助 02 正文 准备 xff1a 第三方的dll SharpCompress xff0

随机推荐

  • 改变 Gnome Terminal 的默认大小

    Ubuntu 中 xff0c Gnome Terminal 的默认大小是 80列 xff0a 24行 xff0c 这是文本模式下的标准尺寸 对于图形界面环境而言 xff0c 默认的大小就不太适合了 如果不满意 Gnome Terminal
  • 主祷文

    主 祷 文 我们在天上的父 xff0c 愿人都尊你的名为圣 愿你的国降临 愿你的旨意行在地上 xff0c 如同行在天上 我们日用的饮食 xff0c 今日赐给我们 免我们的债 xff0c 如同我们免了人的债 不叫我们遇见试探 xff0c 救我
  • 一个失败的程序员

    一个失败的程序员 第一次写博客 xff0c 看了别人的很久 xff0c 也想了很久 xff0c 觉得无论文笔有多不好 xff0c 分享的内容有多糟糕 xff0c 都应该有这个勇气迈出第一步 xff0c 记录生活 抒写回忆 xff0c 等到回
  • H5新增标签及Tab切换水平垂直居中

    1 结构标签 xff08 1 xff09 section xff1a 独立内容区块 xff0c 可以用h1 h6组成大纲 xff0c 表示文档结构 xff0c 也可以有章节 页眉 页脚或页眉的其他部分 xff1b xff08 2 xff09
  • android构建工具gradle基础知识

    1 gradle概述 gradle是一个开源的通用构建工具 xff0c 可以构建几乎任意类型的产物 针对不同的场景 xff0c gradle使用不同的插件和DSL申明配置来共同完成构建 gradle有如下几个特点 xff1a 高性能基于jv
  • Kali linux 2016.2(Rolling)安装之后的常用配置

    转发 xff1a https www cnblogs com zlslch p 6047913 html 前言 使用默认的Kali Linux设置来学习是可以的 xff0c 但是我们通常要修改系统的一些基本设置 xff0c 来最大化使用Ka
  • JAVA版本:使用二分法查找数组中的数据

    使用二分法查找数组中的数据 xff1a 分析 xff1a 二分法查找适用于数据量较大时 xff0c 但是数据需要先排好顺序 主要思想是 xff1a xff08 设查找的数组区间为array low high xff09 xff08 1 xf
  • BlaBlaCar是如何解决四大挑战的?

    BlaBlaCar 是世界领先的长途拼车服务 xff0c 将汽车司机与乘客联系起来 BlaBlaCar 在 22 个国家 地区拥有 6000 万会员 xff0c 每季度有超过 1800 万旅客 xff0c 正在创建一个全新的 以人为本的旅行
  • K8S案例01

    一个简单的例子 Java Web应用 xff1a 是一个运行在 tomcat里的 Web App 如图1 1所示 xff0c JSP页面通过JDBC直接访问 MYSQL数据库并展示数据 为了演示和简化的目的 xff0c 只要程序正确连接到了
  • 【Ubuntu】修改ubuntu和windows双系统启动顺序

    目录 一 问题描述二 背景知识1 GRUB是什么2 GRUB配置文件3 96 etc default grub 96 主配置文件 二 问题分析三 解决方案1 修改grub主配置文件2 更新grub配置文件 一 问题描述 Ubuntu 43
  • OpenShift简介

    文章目录 OpenShift简介1 OpenShift是什么 xff1f OpenShift与K8S的区别1 应用部署2 应用管理3 节点配置4 安全性 2 为什么要用OpenShift xff1f 3 OpenShift的版本4 Open
  • Java 连接MariaDB

    Java应用程序连接MariaDB数据库 在本文中我们将了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接 什么是 JDBC 驱动程序 xff1f JDBC 是一种 API规范 xff1a 一组定义该技术可以做什么
  • 使用 JDBC 执行 SQL 语句

    使用 JDBC 执行 SQL 语句 在上一篇文章中我们了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接 接下来我们在上一篇文章的基础上学习如何使用 JDBC 对 SQL 数据库执行SELECT INSERT UP
  • 创建Redis企业版数据库的步骤

    一 Redis企业版数据库的功能 Redis Enterprise Software 允许您创建数据库并将它们分布在节点集群中 这些数据库可以使用 Redis Enterprise 功能 xff0c 例如 xff1a redis on fl
  • 关于Redis数据库,我问了ChatGPT几个问题

    最近互联网刮起了一阵ChatGPT风 xff0c 从程序猿 产品经理 运营再到大学生 xff0c 都在跟ChatGPT对话 xff01 例如 xff1a 请帮我检查这段代码的BUG 请帮我设计一款功能像虹科VUZIX一样的智能AR眼镜 虹科
  • 虹科案例 | 石油天然气行业CFD高性能计算解决方案

    公司简介 DNV GL是全球领先的能源 石油和海事行业风险管理及资产绩效提升的软件供应商 xff0c 主要为客户提供全面的风险管理和各类评估认证服务 xff0c 认证涉及信息通信技术 汽车及航空天 食品与饮料 医疗等方面 DNV GL以让世
  • 虹科干货| 虹科Redis企业版数据库:告别游戏卡顿,让快乐加速!

    卡顿一分钟 xff0c 玩家两行泪 游戏已成为年轻人最主要的消遣娱乐方式之一 xff0c 游戏卡顿给玩家带来糟糕游戏体验背后的原因是什么 xff1f 数据存储与查询速度不够快 xff01 游戏开发领域 xff0c 不仅拥有海量的数据 xff
  • 虹科干货 | 打破传统!金融界黑科技—虹科Redis企业版数据库

    金融行业数字化转型浪潮来袭 xff0c 客户需求也正加速向在线金融服务转移 金融机构想要实现现代化改造技术堆栈 xff0c 为客户提供实时交互 欺诈检测等一系列个性化创新服务 xff0c 就必须重视遗留系统和传统数据库架构 老年病 问题 x
  • 虹科干货 | 零售业数智升级不掉队,get数据,get未来!

    电商崛起 xff0c 传统零售行业危机四伏 xff0c 全渠道盈利与可持续化成为难点 xff0c 库存管理这块难啃的 硬骨头 也同样让零售商倍感压力 背腹受敌的零售商 xff0c 如何才能在数字化转型道路上避免利润缩水 xff0c 与供应商
  • 什么是网络数据包?

    流经网络的一切都可以被归类为数据包中所包含数据的一部分 一个网络数据包或IP包可以被称为一个数据单元 xff08 约1KBS至1 5KBS xff09 xff0c 在互联网或分组交换网络内从原点流向目标地址 xff08 从发送方到接收方 x