bootp引导程序协议

2023-05-16

bootp又称为引导程序协议,我们来简单了解一下这个协议以及他的用法。

1,BOOTP 请求和应答均被封装在 U D P数据报中 ;

2,B O O T P使用 U D P,且通常需与 T F T P协同工作;

3,B O O T P有两个熟知端口: BOOTP 服务器为67(50067), BOOTP 客户为68(50068),这两个端口一般是固定不变的。

tftp协议后续再介绍,现在我们先来了解一下bootp.

3,bootp的报文了解.

我们看上面的报文,可以看到目的地址为0xffffffffff, 即是广播报文,我们可以看到request报文和reply报文都是广播报文的,那么为什么呢(这里的端口是固定的)

 IP数据报我们前面有了解过,这里不赘述了,整个报文结构如下 ,前面还有个以太网首部,即是

mac首部+ ip首部+udp首部 + udp报文。

 bootp的udp报文数据结构分析:

 报文分析

 请求报文:

op = 01;

Htype = 01;

HLen = 06;

XID = 0x7d174686;

chaddr = 0x001ab6334401(00....)

sname = 0x74697661(0000....)

 回应报文:

op = 02;

Htype = 01;

HLen = 06;

XID = 0x9d174686;

chaddr = 0x001ab6334401(00....)

sname = 0x74697661(0000....)

uint32 CIAddr; //  0x0000000

 uint32 YIAddr;//  0x7e000101(126.0.1.1)

 uint32 SIAddr;  //0x7e000107(126.0.1.7)

  uint32 GIAddr; // 0x00000

  uint8 CHAddr[16]; 0x001ab6334401(000..)

  char SName[64]; //  0x74697661(000..)

  char File[128]; .//0x6669726d776172652e62696e(000..)
 

数据结构:

typedef struct
{	  
	uint8 op; // The operation; 1 is a request, 2 is a reply.

	uint8 HType;// The hardware type; 1 is Ethernet. 

	uint8 HLen;// The hardware address length; for Ethernet this will be 6, the length of the MAC address. 

	uint8 Hops;// Hop count, used by gateways for cross-gateway booting.

	uint32 XID;// The transaction ID.

	uint16 Secs; // The number of seconds elapsed since the client started trying to boot.

	uint16 Flags;// The BOOTP flags. 

	uint32 CIAddr; // The client's IP address, if it knows it. 

	uint32 YIAddr;// The client's IP address, as assigned by the BOOTP server. 

	uint32 SIAddr; // The TFTP server's IP address.

	uint32 GIAddr; // The gateway IP address, if booting cross-gateway.

	uint8 CHAddr[16];// The hardware address; for Ethernet this is the MAC address.

	char SName[64]; // The name, or nickname, of the server that should handle this BooTP // request. 

	char File[128]; // The name of the boot file to be loaded via TFTP. 

	uint8 Vend[64];// optional vendor-specific area; not used for BOOTP.
 }bootp_pkt_t;

 

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

bootp引导程序协议 的相关文章

  • 进程的组成部分

    在UNIX系统中进程由以下三部分组成 xff1a 进程控制块PCB 数据段 正文段 进程控制块 PCB 是用来记录进程状态及其他相关信息的数据结构 PCB是进程存在的唯一标志 xff0c PCB存在则进程存在 系统创建进程时会产生一个PCB
  • 对一个程序的理解

    一 什么是程序 1 程序的结构 指令 数据 2 指令 操作CPU的一段指令集合 xff0c 更详细的说 xff0c 是对数据的加载 xff0c 移动 xff0c 以及需要进行的计算的集合 指令存储在 非易失存储器 xff08 一般指 xff
  • mv替换文件名前缀shell命令

    for name in prefix do mv name 96 echo e name sed s prefix g 96 done
  • VSCode Workspace使用,以及file.exclude、search.exclude的使用模板

    代码如下 xff1a 文件名 xff1a Project code workspace 文件描述 xff1a 此文件文件为VSCode工作区启动文件 文件内容 xff1a 代码路径 工作区设置 不包含的文件 包含路径 文件编码 针对的编译器
  • roslaunch turtlebot_gazebo turtlebot_world.launch 报错ResourceNotFound

    报错 xff1a ResourceNotFound gazebo ros 这里是引用 logging to home kwunphi ros log e14aa722 32b9 11ea 94f7 00d8613afe77 roslaunc
  • 基于MDK Keil将中断及中断服务函数定位到RAM中的.sct文件

    VectorTable ROM 0x08000000 0x00000200 VectorTable RAM 0x20000000 0x00000200 o RESET 43 First IntFunction ROM 0x08000200
  • Linux镜像各种文件名来源

    vmlinux或vmlinuz xff1a Linux直接编译得到 的elf文件 Image xff1a 上面的 elf 文件会比较大 xff0c 为了烧录方便 xff0c 会使用 objcopy工具制作成镜像文件 xff0c 叫 Imag
  • 字节序最本质的地方

    个人理解 xff1a 1 数据的传输路径是 内存 gt 总线 gt 内存 xff1b 2 内存有存放顺序 xff1b 3 总线有发送顺序 xff1b 4 不同的机器内存的存放顺序可能不同 xff1b 5 总线发送顺序也有不同 xff1b 所
  • gcc 关于目标平台相关选项的查询

    gcc target help 列出目标平台可以指定的选项 xff0c 包括gcc选项 汇编选项 链接选项 gcc help 61 target 列出目标平台可以指定的选项 xff0c 只有gcc选项 gcc march 61 armv7
  • 描述点云关键点提取ISS3D、Harris3D、NARF、SIFT3D算法原理

    ISS3D xff08 Intrinsic Shape Signatures 3D xff09 xff1a ISS3D算法是一种基于曲率变化的点云关键点提取算法 它通过计算每个点与其近邻点的曲率变化 xff0c 得到该点的稳定性和自适应尺度
  • 描述相机内部参数以及外部参数

    内部参数和外部参数是数字摄影测量中经常使用的两个概念 xff0c 它们分别用于描述相机内部性能和相机与物体之间的几何关系 内部参数 xff1a 内部参数是相机的内部性能参数 xff0c 包括焦距 主点位置 径向畸变等 这些参数决定了相机成像
  • 最优化建模、算法与理论(二)—— 典型优化问题

    参考书籍 最优化 xff1a 建模 算法与理论 文章目录 1 线性规划2 最小二乘问题3 复合优化问题4 随机优化问题5 半定规划6 矩阵优化7 整数优化附录 常用软件包 库或软件 1 线性规划 一般形式 min
  • 蒙特卡罗求积分(使用MATLAB实现,分层抽样,重点抽样,对偶变量,控制变量,Metropolis Hasting,Gibbs)

    蒙特卡罗求积分 64 author HCF 背景概述 为了解决某问题 xff0c 首先需要把它变成一个概率模型的求解问题 xff0c 然后产生符合模型的大量随机数 xff0c 最后对产生的随机数进行分析从而求解问题 xff0c 这种方法叫做
  • docker容器编译程序 的两种方案

    如果用docker 容器编译程序 有两种方案可供选择 1 xff0c 激活镜像作为slave编译 采用Jenkins提供的jnlp slave 或ssh slave 标准镜像二次封装 xff0c 或者初始镜像 xff0c 然后通过label
  • 安卓与串口通信-校验篇

    前言 一些闲话 时隔好几个月 xff0c 终于又继续更新安卓与串口通信系列了 这几个月太颓废了 xff0c 每天不是在睡觉就是虚度光阴 xff0c 最近准备重新开始上进了 xff0c 所以将会继续填坑 今天这篇文章 xff0c 我们来说说串
  • vscode的git冲突

    vscode的git冲突 vscode中使用git进行代码管理 xff0c 如果出现冲突了 xff0c git pull会报错 xff0c 需要进行以下步骤 xff1a git stash git pull git stash pop gi
  • 树莓派4b ubuntu mate 18.04设置开机自动登录,解决无HDMI无法开机问题

    一 树莓派4b ubuntu mate 18 04设置开机自动登录 之前安装的是树莓派4b Ubuntu server 的18 04版本 xff0c 通过命令行安装的ubuntu mate 18 04 xff0c 由于官方没有18 04ma
  • TX2 NX核心板-VNC远程桌面

    文章目录 前言一 前期准备二 TX2端安装VNC1 安装vino2 使能VNC服务3 编辑org gnome4 设置为Gnome编译模式5 设置VNC 登录密码6 配置本地网络地址为静态7 开机自启VNC 二 WINDOWS端安装VNC参考
  • docker(三)dockerfile

    文章目录 dockerfile构建过程基础知识dockerfile 的指令简单的dockerfile实验docker historyCMD 和 ENTRYPOUNT的区别举例 tomcat镜像 dockerfile构建过程 编写一个dock
  • FIND_IN_SET函数

    FIND IN SET函数是IN函数的升级版 功能类似 区别在于 如果是常量 xff0c 则可以直接用IN xff0c 否则要用FIND IN SET 函数 MySQL中原型为 xff1a FIND IN SET str strlist 假

随机推荐