首页 > 其他分享 >0214-最大传输单元 MTU

0214-最大传输单元 MTU

时间:2024-08-09 10:38:09浏览次数:11  
标签:pnet MTU 传输 1500 let 0214 ff linux channel

环境

  • Time 2022-11-20
  • WSL-Ubuntu 22.04
  • Rust 1.65.0
  • pnet 0.31.0

前言

说明

参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/linux
RFC894:https://www.rfc-editor.org/rfc/pdfrfc/rfc894.txt.pdf
《TCP/IP详解 卷1:协议》:http://www.52im.net/topic-tcpipvol1.html

目标

数据包可以通过网络接口进行传输,需要限制最大的长度,以太网协议里默认是 1500。

查看 MTU

8: mydummy: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 36:e0:f1:2a:e8:45 brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
             0       0      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
          3771      16      0       0       0       0

其中第一行 mtu 1500,表示传输的数据帧最大为 1500,不包括之前定义的 MAC 地址和类型。

发送数据

use pnet_datalink::{linux, Channel};

fn main() {
    let interfaces = linux::interfaces();

    let dummy: Vec<_> = interfaces
        .into_iter()
        .filter(|e| e.name == "mydummy")
        .collect();

    let config = linux::Config::default();
    let channel = linux::channel(&dummy[0], config);
    let (mut sender, mut _reader) = match channel {
        Ok(Channel::Ethernet(tx, rx)) => (tx, rx),
        _ => panic!("Not a valid channel returned"),
    };

    let buffer = [0; 1500 + 6 + 6 + 2];
    // 再增长一位就超过最大值了,要报错:Message too long
    // let buffer = [0; 1500 + 6 + 6 + 2 + 1];
    sender.send_to(&buffer, None).unwrap().unwrap();
}

总结

了解 MTU 是最大传输单元,默认是 1500,不包含 MAC 地址和类型。

附录

标签:pnet,MTU,传输,1500,let,0214,ff,linux,channel
From: https://www.cnblogs.com/jiangbo4444/p/18350352

相关文章

  • 探索亚马逊Amazon S3:无缝存储管理与极速数据传输的奥秘
    亚马逊云科技中AmazonS3,因其设计简单与高度可靠,允许用户通过互联网存储和检索任意数量的数据,并能够自动扩展以满足各种规模的需求,使得AmazonS3成为了许多云计算应用和网站的核心存储基础设施之一,AmazonS3提供的功能涉及方面众多,今天博主就云存储服务这一方面知识简单讲解一......
  • TCP 通信全流程分析:从连接建立到数据传输的深度探索
    目录一、TCP报头二、三次握手三、数据传输四、四次挥手本文通过一次TCP通信过程的分析来学习TCP协议一、TCP报头如图是一份TCP报文的报头,标准报头是20个字节,还可带有选项报头,也就是TCP报头的最小长度是20字节。以下是对报头的各个字段的分析:端口号:向上层交付时交付......
  • BUG: 传输的uicode码转汉字显示部分错误
    1.BUG描述pc下发文本信息,采用unicode编码形式,下位机单元接收后,需要将其解码成utf-8的编码形式显示出来,但是发现文本首部和尾部出现乱码。2.BUG原因原因很简单,解码的时候尾部和首部没有对齐。记录这个BUG主要是记录下汉字的编码方法。3.修复方法解码时对齐即可。4.unicode编......
  • 智能化解决方案:提升汽车制造图文档发送效率,实现高效传输!
    汽车制造业企业数据外发需求频繁,不仅有与异地研发机构间、供应商之间的协同研发文件交换,还有与外包供应商及零部件供应商之间的基于价值链的协同关系。主要涉及的数据类型有:汽车制造图文档发送、研发数据发送、项目文件发送、反馈数据与协调文件发送等。目前大部分汽车制造业企......
  • AXI4传输层概念和跨4K边界理解
    1.AXI传输层级概念在手册的术语表中,与AXI传输相关的有三个概念,分别是transfer(beat)、burst、transaction。用一句话串联就是:在AXI传输事务(Transaction)中,数据以突发传输(Burst)的形式组织。一次突发传输中可以包含一至多个数据(Transfer)。每个transfer因为使用一个周期,又被......
  • IC设计企业如何真正实现便捷又高效地云租户文件传输?
    越来越多的IC设计企业选择开通云租户的方式进行半导体芯片的设计和验证工作,也即在HPC环境中进行芯片设计流程,对于IC设计企业而言,使用云租户有明显的好处和优势:资源分配:云平台会根据租户的需求分配相应的资源,如独立的身份ID、虚拟私有云(VPC)等。每个租户都拥有自己独立的资源环境,保......
  • 数据跨境传输的安全合规风险如何规避?获取免费解决方案白皮书!
    在全球化的背景下,企业进行有效的资源整合,学习海外市场的先进技术和管理经验,寻找新的增长点,实现业务的多元化和可持续发展,不仅有利于开辟新市场,更有助于巩固和增强企业在全球中的地位。在这种前景下,越来越多的企业寻求更深度的跨国业务及合作,因此,企业数据跨境流动也成为了势不可......
  • 串行通信协议--UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器
    一、UART简介  UART广泛应用于微控制器和计算机之间的数据通信,如GPS模块、蓝牙模块、GSM模块等。UART是一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信UART通常被集成于其他通讯接口的连结上。UA......
  • 80.SAP ME - SAP ERP向SAP ME传输物料主数据的方法
    目录SAPERP与ME传输物料的几种方式1.自动传输物料到SAPME2.手动发送2.1BD10发送物料2.2DRFOUT执行数据复制2.3POIM发送主数据SAPERP与ME传输物料的几种方式1.自动传输物料到SAPME        这是标准方法,需要全面的配置,当在ERP里修改物料的数据时,保......
  • 数据跨境流动需要注意什么?怎么实现安全合规的跨境传输?
    2024年3月22日,《促进和规范数据跨境流动规定》(以下简称《数据跨境规定》)正式公布并施行。数据跨境流通涉及到隐私保护、安全性和法律合规等多个方面的重要考虑因素。具体来说,需要注意以下几点:1、隐私保护:跨境数据流通涉及个人数据,需要确保数据在传输和存储过程中的隐私保护措施,......