首页 > 其他分享 >0207-pnet 模拟链路层数据

0207-pnet 模拟链路层数据

时间:2024-07-24 10:19:48浏览次数:15  
标签:datalink dummy mut pnet 0207 let 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/dummy

目标

使用 pnet_datalink 包中的 dummy 模拟数据链路层的数据交换。

Cargo.toml

[package]
edition = "2021"
name = "network"
version = "1.0.0"

[dependencies]
pnet_datalink = "0.31.0"

网络接口

let interface = dummy::dummy_interface(44);

创建通道

let mut config = dummy::Config::default();

let read_handle = config.read_handle().unwrap();
let channel = dummy::channel(&interface, config);

发送数据

let (mut sender, _) = match channel {
    Ok(Channel::Ethernet(tx, rx)) => (tx, rx),
    _ => panic!("Not a valid channel returned"),
};

let mut builder = |_: &mut [u8]| {
    panic!("Should not be called");
};

// 0 表示没有发送
sender.build_and_send(0, 20, &mut builder).unwrap().unwrap();

接收

// 因为发送次数是0,所以收不到
assert!(read_handle.try_recv().is_err());

总结

使用 pnet_datalink 模拟了数据帧的发送和接收。

附录

标签:datalink,dummy,mut,pnet,0207,let,channel,链路层
From: https://www.cnblogs.com/jiangbo4444/p/18320242

相关文章

  • 0208-模拟发送链路层数据
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送一个数据包。网络接口letinterface=dummy::dummy_interface(44);创......
  • [Pnetlab实战演练]手把手教你配置华为防火墙的Telnet远程访问!
    实验介绍关于本实验网络管理员在维护网络过程中,经常需要登录很多设备,通过Console口登录每台设备比较困难,为方便维护与调试设备,通过在设备上配置远程登录功能,使远程管理员能够通过Telnet方式远程登录到设备上进行管理。实验目的通过本实验,掌握配置设备Telnet远程登录功......
  • [笔记]网络原理2 - 互连模型,物理层,数据链路层,网络层及其相关协议
    1.五层模型层层叠加,层层封装2.数据链路层中的一些概念MTU:最大传输单元,每一种数据链路层协议都规定了最大能传送的帧的数据长度上限,以太网的MTU最大为1500bytes,最小为64bytes。数据链路层会在数据包的左边(帧开始/结束符)右边(帧开始/结束符)都封装一些东西,封装成帧。......
  • 网络类型和数据链路层协议
    1、P2P----点到点网络2、MA----多点接入网络3、BMA----广播型多点接入网络4、NBMA----非广播型多点接入网络MA:以太网---以太网协议以太网环境下独有的---MACP2P网络---点到点网络:在一个网络中只能存在两台设备的情况,不需要MAC地址进行区分。支持以太网协议的传输介质:......
  • 三分钟了解一款强大的网络设备模拟器:PNETLab
    PNETLab是一个多功能平台,允许用户下载和分享网络实验室给更广泛的社区成员。它主要由两个核心组件组成:PNETLabBox和PNETLabStore,这两个部分各自承担不同的但又相互补充的作用,共同推动网络模拟和教育的发展。官网地址:https://pnetlab.com/特性:下载:实验商店:PNETLabB......
  • Asp.NET Core WebAPI 设置环境变量值ASPNETCORE_ENVIRONMENT
    默认情况下发布后的环境变量是Production方式一:在文件夹PublishProfiles下的FolderProfile.pubxml文件增加配置<Project><PropertyGroup><EnvironmentName>Development</EnvironmentName></PropertyGroup></Project>表示发布后通过builder.Environment.Env......
  • 记一次aspnetcore发布部署流程初次使用k8s
    主题:aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译、发布、推送到k8s。关于gitlab、jenkins、k8s安装,都是使用docker启动服务。首先新建一个项目,为了方便浏览就把swaggerr非开发环境不展示去掉 下面就是需要准备Dockerfile和k8s.yaml文件,这里不应该用......
  • Microsoft.AspNetCore.Builder.ForwardedHeadersOptions
    答案为ai生成ForwardedHeadersOptions是ASP.NETCore中用于配置转发头部的一个类。当应用程序位于负载均衡器(https://blog.csdn.net/cyl101816/article/details/135195729)、反向代理服务器等后面时,由于HTTP请求会通过多个代理或转发,原始的请求头(如X-Forwarded-For和X-For......
  • Microsoft.AspNetCore.Identity 的使用记录
    使用Cookie,在发起请求时从浏览器附加Cookie的示例图:请求后自动生成Cookie,缓存保存于浏览器中以后每次发起请求时浏览器都会自动为请求附加其缓存的Cookies使用访问令牌bearertoken,在发起请求时附加了Authorization请求头,示例注意,如果手动传参,Head中Authorizaion的值要......
  • 数据链路层
    数据链路层的功能加强物理层传输原始比特流的功能,提供逻辑链路的功能,使得数据链路层上层的网络层能够透明地传输数据。为网络层提供服务组帧和透明传输差错控制流量控制链路管理(连接的建立、维持、释放)根据类别不同,提供给网络层的服务分为三种无连接的无确认的服务无......