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

【Multipath网络层协议】MPTCP工作原理

常见网络层多路径协议介绍

MPTCP(Multipath TCP)

  • MPTCP 是在传统 TCP 基础上进行扩展的协议,它允许在源端和目的端之间建立多个 TCP子流,这些子流可以通过不同的网络路径传输数据。

例如,一台笔记本电脑同时连接了 Wi-Fi 网络和以太网网络,当使用 MPTCP进行数据传输时,它可以将数据分别通过 Wi-Fi和以太网这两条不同的路径发送到目标服务器,从而充分利用两条链路的带宽。

LISP(Locator/ID Separation Protocol)

  • LISP 将 IP 地址的功能进行了分离,把 IP地址分为标识(ID)和位置(Locator)两部分。在实际网络中,比如一个大型企业拥有多个分支机构,每个分支机构都有自己的内部网络。通过LISP,企业可以将内部设备的标识(ID)与它们当前所在的位置(Locator)进行分离管理。当分支机构之间进行数据传输时,LISP可以根据网络的实时状态,将流量动态地分配到不同的链路(路径)上。

例如,如果一条链路出现拥塞,LISP 会自动将部分流量切换到其他可用的链路,实现负载均衡,提高网络的整体性能和可靠性。

  • 在数据中心网络中,LISP 也可以发挥作用。数据中心内有大量的服务器和存储设备,它们之间的数据交互频繁。LISP可以根据服务器的负载情况和网络拓扑,合理地规划数据传输路径,避免某些链路或设备过度负载,提高数据中心的运行效率。

DIF(Data-Centric Networking/Information-Centric Networking)

  • DIF 以数据为中心,不同于传统的以地址为中心的网络架构。在一个内容分发网络(CDN)场景中,DIF可以根据用户请求的数据内容,在网络中寻找距离用户最近且缓存有该数据的节点进行数据传输。

例如,当用户请求观看一部热门电影时,DIF 会在 CDN 的多个节点中查找,发现节点 A 和节点 B 都缓存了这部电影,且节点 A距离用户更近,延迟更低。此时,DIF 会选择从节点 A 传输数据给用户。如果在传输过程中节点 A 出现问题,DIF 可以迅速切换到节点 B继续传输,而不需要像传统网络那样重新建立连接和寻找路径。

  • 在物联网(IoT)环境中,DIF 也具有优势。物联网设备数量众多,产生的数据种类和格式各异。DIF可以根据数据的类型和需求,选择合适的路径进行传输。例如,对于实时性要求较高的传感器数据(如温度、湿度等监测数据),DIF会优先选择低延迟的路径进行传输;对于一些非实时性的设备配置数据等,则可以选择更经济的路径传输。

MPTCP 的工作原理与优势

工作原理
1、子流建立:当源端和目的端要建立 MPTCP 连接时,首先进行初始的协商。双方通过发送带有 MPTCP 选项的 SYN 报文,来确定对方是否支持 MPTCP 协议以及可以建立的子流数量等参数。

例如,源端发送一个 SYN 报文,其中包含了自己支持的最大子流数量等信息,目的端收到后,如果也支持 MPTCP,会在返回的 SYN-ACK报文中确认相关参数,并可能提出自己的一些配置信息。之后,双方会像建立普通 TCP 连接一样,通过三次握手为每个子流建立独立的 TCP连接。比如,源端和目的端决定建立两个子流,那么就会分别为这两个子流进行三次握手,建立起两条独立的 TCP 连接。

2、数据传输:在数据传输阶段,MPTCP 会根据各个子流的状态信息(如带宽、延迟、丢包率等)来分割和分配数据。假设源端要发送一个大文件,MPTCP 会将文件数据分割成若干个数据块,然后根据当前各个子流的带宽情况,将数据块分配到不同的子流上传输。如果子流 1 的带宽较高,可能会分配更多的数据块给它;子流 2 的带宽较低,则分配相对较少的数据块。接收端会对来自不同子流的数据块进行重组,按照正确的顺序恢复出原始文件数据。
3、路径管理:MPTCP 会持续监测各个子流的状态。例如,通过定期发送探测报文来测量子流的延迟、丢包率等指标。当发现某个子流的丢包率过高(如超过了设定的阈值),或者链路断开时,MPTCP 会将原本通过该子流传输的数据转移到其他正常的子流上。同时,如果检测到新的可用路径,MPTCP 可以动态地建立新的子流来利用这条路径。比如,当移动设备连接到一个新的 Wi-Fi 网络时,MPTCP 可以迅速建立一个新的子流,将部分数据切换到这个新的路径上传输,以提高整体的传输效率。
优势
1、提高吞吐量:通过同时利用多个路径的带宽,MPTCP 能够显著提升数据传输速度。

例如,在一个实验环境中,一台设备同时连接了 100Mbps 的 Wi-Fi 网络和 100Mbps 的以太网网络,使用传统 TCP协议传输数据时,由于只能使用一条路径,最大传输速度只能达到 100Mbps。而使用 MPTCP 协议,将数据分别通过这两条路径传输,理论上最大传输速度可以达到 200Mbps(实际情况可能会因网络开销等因素略低),大大提高了数据传输的效率,满足了高清视频流、大数据文件传输等对带宽要求较高的应用需求。

2、增强可靠性:当某一条路径出现故障时,MPTCP 可以快速切换到其他路径,保证数据传输的连续性。

例如,在视频会议应用中,如果使用传统 TCP 协议,当网络链路突然中断(如 Wi-Fi信号弱导致连接断开),视频会议可能会出现卡顿甚至中断。而使用 MPTCP 协议,当 Wi-Fi 链路出现问题时,MPTCP可以迅速将数据切换到蜂窝网络路径上继续传输,用户几乎感觉不到视频会议的中断,提高了应用的可靠性和用户体验。

3、无缝切换:在移动场景中,MPTCP 能够实现设备在不同网络之间的无缝切换。

比如,当用户在地铁上使用手机观看在线视频时,手机可能会从一个基站的覆盖范围移动到另一个基站的覆盖范围,或者从地铁内的 Wi-Fi 网络切换到移动数据网络。使用 MPTCP协议,视频数据可以在不同网络之间无缝切换传输路径,而不需要重新建立连接,保证了视频播放的流畅性,用户不会因为网络切换而中断观看。

MPTCP 与传统 TCP 的对比

连接特性

  1. 传统 TCP

一个 TCP 连接只使用一条路径进行数据传输。在连接建立过程中,源端发送 SYN 报文,目的端返回 SYN-ACK 报文,源端再发送 ACK 报文,通过三次握手建立起一条端到端的连接。

例如,用户在浏览网页时,浏览器与 web 服务器之间建立的 TCP连接就是通过一条网络路径(如用户的家庭宽带网络)进行数据传输的,数据只能在这条路径上按照 TCP 的规则进行发送和接收。

  1. MPTCP

一个 MPTCP 连接可以包含多个 TCP 子流,这些子流可以通过不同的路径传输数据。在连接建立时,除了进行传统的 TCP 三次握手外,还需要额外协商 MPTCP 相关的参数。

例如,源端和目的端不仅要确定基本的 TCP 连接参数(如初始序列号等),还要协商可以建立的子流数量、子流的优先级等 MPTCP特有的参数。然后,为每个子流分别建立独立的 TCP 连接,这些子流可以同时在不同的网络路径(如 Wi-Fi 和移动数据网络)上传输数据。

性能表现

  1. 传统 TCP

在网络条件良好的情况下,传统 TCP 能够提供稳定的数据传输性能。

例如,在局域网环境中,网络带宽充足且稳定,使用传统 TCP 协议进行文件传输可以达到较高的速度。

但当网络出现拥塞(如在高峰时段网络带宽被大量占用)、链路故障(如网线断开)或路径变化(如移动设备切换网络)时,TCP 的性能会受到较大影响。

比如,当网络拥塞时,传统 TCP会通过慢启动、拥塞避免等机制来调整发送窗口大小,降低数据发送速率,导致传输速度大幅下降;当链路故障时,TCP连接可能会中断,需要重新建立连接,这会造成数据传输的中断和延迟。

  1. MPTCP

MPTCP 可以通过多路径传输和动态路径管理,在网络拥塞或路径故障时,仍然保持较高的吞吐量和较低的延迟。

例如,当一条路径出现拥塞时,MPTCP 会将数据转移到其他未拥塞的路径上,避免了因单条路径拥塞导致的整体性能下降。

在链路故障时,MPTCP 可以迅速切换到其他可用路径,保证数据传输的连续性,减少了数据传输的中断时间和延迟。通过合理地分配数据到不同的子流,MPTCP 还可以提高整体的带宽利用率,从而提升数据传输的性能。
应用场景

  1. 传统 TCP

适用于大多数对网络连接要求不高的应用场景,如简单的网页浏览、文件下载等。在这些场景中,单路径的 TCP 连接能够满足基本的需求,用户对网络性能的要求相对较低。

例如,用户浏览普通的新闻网页,网页内容较小,即使传统 TCP 连接在网络拥塞时速度有所下降,用户也可能不会明显感觉到影响。

  1. MPTCP

更适合对网络性能和可靠性要求较高的应用场景,如移动应用、实时通信(如 VoIP、视频会议)、云计算等。在移动应用中,设备经常需要在不同的网络之间切换,MPTCP 的无缝切换特性可以保证应用的连续性。在云计算场景中,服务器之间的数据交互频繁且数据量大,MPTCP 的高吞吐量特性可以提高数据传输效率,提升云计算服务的性能。

相关文章:

【Multipath网络层协议】MPTCP工作原理

常见网络层多路径协议介绍 MPTCP(Multipath TCP) MPTCP 是在传统 TCP 基础上进行扩展的协议,它允许在源端和目的端之间建立多个 TCP子流,这些子流可以通过不同的网络路径传输数据。 例如,一台笔记本电脑同时连接了 W…...

deepseek使用记录18——文化基因美食篇

子篇:薪火相传的味觉辩证法——从燧人氏到预制菜的文化突围 一、石器时代的启蒙:食物探索中的原始辩证法 在贾湖遗址的陶罐残片上,碳化稻米与蜂蜜的结晶层相互交叠,这是9000年前先民对"甘"与"饱"的首次辩证…...

2025学年安徽省职业院校技能大赛 “信息安全管理与评估”赛项 比赛样题任务书

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(五) 第一部分:网络平台搭建与设备安全防护任务书第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务1 :内存取证&…...

在 Ansys Maxwell 中分析磁场

在 Ansys Maxwell 中分析磁场 分析磁场的能力对于理解电磁系统至关重要。Ansys Maxwell 为工程师提供了强大的工具,帮助他们探索磁场数据并从中提取有价值的见解。在本指南中,我将深入研究 Ansys Maxwell 中的几种基本技术和方法,以有效地分…...

springboot项目Maven打包遇到的问题总结

java -jar 执行报错中没有主清单属性 Spring Boot的可执行JAR需要依赖该插件生成正确的主清单属性。在 pom.xml 的 部分添加以下配置&#xff1a; <build><plugins><!-- 必须配置此插件才能生成可执行的Spring Boot JAR --><plugin><groupId>o…...

DeepSeek FlashMLA:用技术创新破解大模型落地难题

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列十四DeepSeek大模型技术系列十四》DeepS…...

[补充]原码、反、补、移码的转换

近期在学习Java的类型转换的知识&#xff0c;强制类型转换的时候会遇到数据&#xff08;丢失&#xff09;溢出的问题。 最后在IDEA控制台输出的时候&#xff0c;出现了负数。了解了一下强制类型转换在计算机中的原理&#xff0c;随后就复习了一下原码、反、补、移码的转换的知…...

Hue 编译异常:ImportError: cannot import name ‘six‘ from ‘urllib3.packages‘

个人博客地址&#xff1a;Hue 编译异常&#xff1a;ImportError: cannot import name six from urllib3.packages | 一张假钞的真实世界 在编译Hue的时候出现错误信息如下&#xff1a; Running /home/zhangjc/ysten/git/ysten-hue/build/env/bin/hue makemigrations --noinpu…...

【Maven】将普通Eclipse项目改造为Maven项目(非SpringBoot项目)

文章目录 将普通Eclipse项目改造为Maven项目&#xff08;非SpringBoot项目&#xff09;Maven安装与配置项目结构改造父子Pom.xml文件配置&#xff08;继承与集成&#xff09;父项目下的pom.xml文件配置普通子模块下的pom.xml配置启动模块的pom.xml配置 多模块编译总结 Maven插件…...

安装Node.js

1.打开官网&#xff0c;下载安装包 2.安装过程中&#xff0c;全部默认&#xff0c;next. 3.在安装根目录下&#xff0c;新建两个文件夹【node_cache】和【node_global】 4.检测是否安装成功 打开控制台&#xff0c;node -v, npm -v, 显示版本号。 5.配置环境变量 1>从no…...

物联网同RFID功能形态 使用场景的替代品

在物联网&#xff08;IoT&#xff09;和自动识别技术领域&#xff0c;除了RFID标签外&#xff0c;还有一些其他技术产品可以在形态和大小上与RFID标签相似&#xff0c;同时提供类似或更强大的功能。以下是几种能够替代RFID标签的产品&#xff1a; 一、NFC标签 NFC&#xff08;…...

【力扣】堆相关总结

priority_queue std::priority_queue 是 C 标准库中的一个容器适配器&#xff0c;提供了堆&#xff08;Heap&#xff09;数据结构的功能。它通常用于实现优先队列&#xff0c;允许你高效地插入元素和访问最大或最小元素。 头文件 #include <queue> 基本定义 std::pri…...

【前端基础】3、HTML的常用元素(h、p、img、a、iframe、div、span)、不常用元素(strong、i、code、br)

HTML结构 一个HTML包含以下部分&#xff1a; 文档类型声明html元素 head元素body元素 例&#xff08;CSDN&#xff09;&#xff1a; 一、文档类型声明 HTML最一方的文档称为&#xff1a;文档类型声明&#xff0c;用于声明文档类型。即&#xff1a;<!DOCTYPE html>…...

【漫话机器学习系列】113.逻辑回归(Logistic Regression) VS 线性回归(Linear Regression)

逻辑回归 vs 线性回归&#xff1a;详解对比 在机器学习和统计学中&#xff0c;逻辑回归&#xff08;Logistic Regression&#xff09; 和 线性回归&#xff08;Linear Regression&#xff09; 都是非常常见的模型。尽管它们的数学表达式有一定的相似性&#xff0c;但它们的应用…...

3 算法1-3 回文质数

题目描述 因为 151 既是一个质数又是一个回文数&#xff08;从左到右和从右到左是看一样的&#xff09;&#xff0c;所以 151 是回文质数。 写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)&#xff08;一亿&#xff09;间的所有回文质数。 输入格式 第一行输入两个正…...

Redis---缓存穿透,雪崩,击穿

文章目录 缓存穿透什么是缓存穿透&#xff1f;缓存穿透情况的处理流程是怎样的&#xff1f;缓存穿透的解决办法缓存无效 key布隆过滤器 缓存雪崩什么是缓存雪崩&#xff1f;缓存雪崩的解决办法 缓存击穿什么是缓存击穿&#xff1f;缓存击穿的解决办法 区别对比 在如今的开发中&…...

联合省选 2025 游记

Day 1 不会 LCT&#xff0c;不会字符串&#xff0c;不会博弈 快进到考场 t 1 t1 t1 很快想到枚举中位数再 check&#xff0c;然后就会了&#xff0c;思路很清晰写的很快 t 2 t2 t2 干想 1h 编出来 n m 2 3 nm^{\frac{2}{3}} nm32​&#xff0c;然后认为 t 3 t3 t3 会和去年…...

Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking

一.Skywalking介绍 Apache SkyWalking是一个开源的分布式追踪与性能监视平台&#xff0c;特别适用于微服务架构、云原生环境以及基于容器&#xff08;如Docker、Kubernetes&#xff09;的应用部署。该项目由吴晟发起&#xff0c;并已加入Apache软件基金会的孵化器&#xff0c;…...

Thonny+MicroPython+ESP32开发环境搭建

1、下载&安装Thonny 安装成功后&#xff0c;会在桌面生成快捷键 双击快捷键&#xff0c;打开程序&#xff0c;界面如下 2、下载MicroPython 下载地址&#xff1a;MicroPython - Python for microcontrollers v1.19版(推荐&#xff0c;此版本稳定)&#xff1a; https://do…...

数据结构:反射 和 枚举

目录 一、反射 1、定义 2、反射相关的类 3、Class类 &#xff08;2&#xff09;常用获得类中属性相关的方法&#xff1a; &#xff08;3&#xff09;获得类中注解相关的方法&#xff1a; &#xff08;4&#xff09;获得类中构造器相关的方法&#xff1a; &#xff08;…...

前缀和算法 算法4

算法题中帮助复习的知识 vector<int > dp( n ,k); n为数组大小 ,k为初始化 哈希表unordered_map<int ,int > hash; hash.find(k)返回值是迭代器 ,找到k返回其迭代器 没找到返回hash.end() hash.count(k)返回值是数字 ,找到k返回1 ,没找到返回0. C和java中 负数…...

USRP7440-通用软件无线电平台

1、产品描述 USRP7440基于第三代XILINX Zynq UltraScale RFSoC架构&#xff0c;它将射频ADC、DAC、ARM、FPGA等集成一体&#xff0c;瞬时带宽可以达到2.5GHz&#xff0c;尤其适合于射频直采应用&#xff0c;比如通信与雷达。 第一代RFSOC高达4GHz • 8x 或 16x 6.554GSPS DAC…...

yunedit-post ,api测试比postman更好

postman应该是大家最熟悉的api测试软件了&#xff0c;但是由于它是外国软件&#xff0c;使用它的高端功能注册和缴费都比较麻烦。生成在线文档分享也经常无法访问被拦截掉。 这里可以推荐一下yunedit-post&#xff0c;该有的功能都有。 https://www.yunedit.com/postdetail …...

windows下玩转vllm:在wsl下安装vllm后续,设置modelscope作为下载源

文章目录 前言所涉及的之前的关键步骤解决模型权重下载网络不通畅的问题vllm和modelscope整合后的bug附录 ImportError: cannot import name _try_login from modelscope.utils.hf_util 全部报错信息前言 之前,咱们说了,由于windows不支持直接部署vllm,所以要么采用wsl,要…...

移动零

一 &#xff1a;题目 二&#xff1a;思路 双指针法&#xff1a; 两个指针将数组划分成三个部分&#xff1a; 解释&#xff1a; ①&#xff1a;所以一开始dest要等于-1&#xff0c;因为没有非零的元素&#xff0c;cur0&#xff0c;因为要从头开始遍历数组 ②&#xff1a;cur为…...

MySQL整体架构

目录 1 客户端 2 服务端 2.1 Server层 2.1.1 连接器 2.1.2 查询缓存 2.1.3 词法器 2.1.4 优化器 2.1.5 执行器 2.2 存储引擎层 1 客户端 ● 客户端为连接MySQL服务端的工具或者驱动&#xff0c;比如JDCB&#xff0c;ODBC等等 ● 用于连接目前服务器&#xff0c;并且发送需要执行…...

Linux之yum详解

—— 小 峰 编 程 目录 1、Linux软件的安装方式 2、什么是yum 3、配置网络yum源 4、yum命令 【语法】 【yum常用命令】 1、Linux软件的安装方式 在CentOS系统中&#xff0c;软件管理方式通常有三种方式&#xff1a; rpm安装 、 yum安装 以及 编译安装 。 2、什么是yum…...

大数据学习(52)-MySQL数据库基本操作

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

鸿蒙启动页开发

鸿蒙启动页开发 1.1 更改应用名称和图标 1.更改应用图标 找到moudle.json5文件&#xff0c;找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可 2.更改应用名称 3.效果展示 2.1 广告页面开发 3.1 详细介绍 3.1.1 启动页面 import { PrivacyDialog } fr…...

记忆化搜索(典型算法思想)—— OJ例题算法解析思路

目录 一、509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 1. 动态规划 (fib 函数) 初始化&#xff1a; 递推计算&#xff1a; 返回结果&#xff1a; 2. 记忆化搜索 (dfs 函数) 备忘录初始化&#xff1a; 递归终止条件&#xff1a; 递…...