当前位置:网站首页>Dynamic Host Configuration Protocol
Dynamic Host Configuration Protocol
2022-06-28 00:26:00 【竹某】
一.两个用于描述协议的工具
1.1 MSC(Message Sequence Chart)

消息序列图包括:实体、消息和动作,以及时间线。 其作用是从整体的交互上上描述协议的功能。之所以说是整体上,是因为其涵盖了协议实现上的全部实体,区别于STD只描述一个实体。交互由message和action来体现。
电话呼叫时的MSC图:

可以看出,entity产生action,action产生message,message又往往带来其他entity的action。
如何画出一张MSC?首先确定协议中全部的实体。对于每一个实体,确定其能够做的action和能够发出的么message。再之后才是确定各个实体间的交互关系。
1.2 STD(State Transition Diagram)

STD同样也是用于介绍协议功能的,只不过相较于MSC侧重于整体,STD侧重于协议中的一个实体。 STD中包含:event,message,state。event和state都属于STD描述的实体,而incoming message来自于其他实体,而outgoing message来自于该实体。
从上图可知,画出一张STD图我们需要首先列举出协议中该实体可能处于的所有的state。之后再明确state间的转化条件(incoming message或是event)和转化结果(outgoing message)。

1.3 TLV
我们知道message中有许多field,其对应着不同的功能。比如TCP packet这个message中有一个Source IP Address的field,其作用是存放发送该TCP packet的源主机的IP地址。 而出于实现特定的功能考虑,有些field是不定长的(variable length),比如TFTP message中的Error域,为了存放错误提示这一可变长的字符串,Error域本身就是不定长的。
那么问题就是我们如何处理message中可变长的field呢?TLV格式(或说编码风格)。
TLV是type-length-value的缩写,其表示可变长的field中存储的信息应该这样组织以便解码:存放定长的type,指示类型(比如不同的错误类型);存放定长的length,指示value的长度;存放可变长的value,其长度由length给定。

二.IP address allocation --- DHCP介绍
DHCP的全称是动态主机配置协议,作用是为想要接入网络的主机配置相关信息,其中最主要的就是IP地址。 网络相关配置信息的配置有两种分配方式:静态分配(即由用户手动输入)和动态分配(由一个server进行分配)。 常用的动态配置协议分为两种:BOOTstrap Protocol和DHCP。两者的差别和相同点为:
| DHCP | BOOTP | |
| 功能 | 为主机(有硬盘和boot file的)配置相关网络信息 | 主机可以使用BOOTP获取IP地址,但是最重要的功能是无盘工作站使用该协议和TFTP获取boot file。 |
| 传输层 | UDP, DHCP client的port为67。 | UDP |
| 配置的有效期 | 网络配置信息存在有效期。到期后会重新分配。 | 有效期无限制,即不会重新绑定或是更新网络配置 |
| message格式 | 两者相同 |
三.DHCP涉及的实体以及有效期
3.1 DHCP server
3.2 DHCP client

3.3 DHCP lease

四.DHCP message

重点需要介绍的域(field)是OPTIONS。 其可变长,遵循TLV格式。我们介绍当其type为53时(表示OPTIONS存储的DHCP message的类型信息)时的情况。
此时length和type均占一字节,type = 53而length = 1。value同样占用一字节,可以为:
value = 1; DHCPDISCOVER value = 2; DCHPOFFER value = 3;DHCPREQUEST value = 4; DHCPDECLINE value = 5; DHCPACK value = 6;DHCPNAK value = 7; DHCPRELEASE value = 8;DHCPINFORM


五.DHCP operation
DHCP主要包含三种操作,分别时IP address的获取,提前释放IP地址,更新IP地址的租期。各个操作对应着不同的功能,我们可以分别为其画出MSC图。
5.1 IP地址获取

从上述的对IP地址获取过程的描述中,我们可以提炼出三个entity:DHCP host, DHCP server和other DHCP server(offer未被接受的server)。

5.2 Early Lease Termination(提前放弃IP地址)

5.3 Lease Renewal
IP地址的租期到了需要更新。
注意,client被selected server拒绝后(DHCPNAK),是不会进入第三或是第四张图的。这四张图是并列的关系(这点在结合STD看就很明显)。


边栏推荐
- Prometeus 2.35.0 new features
- Machine learning (x) reinforcement learning
- Database query optimization: master-slave read-write separation and common problems
- Intranet penetration with FRP
- Scala 基础 (三):运算符和流程控制
- Scoped attribute and lang attribute in style
- Jenkins - Copy Artifact 插件 Build 之间数据共享传递
- Cesium Color 颜色(赋值)随机颜色
- AAVE launches lens protocol, a Web3 social media platform
- STM32的通用定时器与中断
猜你喜欢

How to optimize the "message" list of IM

Jenkins - groovy postbuild plug-in enriches build history information

Voice network VQA: make the user's subjective experience of unknown video quality in real-time interaction known

将某数据库N多表名作为另外一张表中某一列得值(范围可以是别的数据库中得某张表)

要搞清楚什么是同步,异步,串行,并行,并发,进程,线程,协程

Differences between cesium polygon extrudedheight and height

Jenkins - 邮件通知 Email Notification 插件

SQL 注入繞過(二)

Cesium 获取屏幕所在经纬度范围

【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩
随机推荐
Jenkins - 訪問 Jenkins 自定義參數變量,處理變量值中含有空格
frp实现内网穿透
Scoped attribute and lang attribute in style
Based on am335x development board arm cortex-a8 -- acontis EtherCAT master station development case
SQL 注入繞過(二)
Numpy----np.reshape()
General process after reference layer reboot
MySQL interview question set
Jenkins - Pipeline 概念及创建方式
[Yocto RM]1 - System Requirements
[embedded foundation] memory (cache, ram, ROM, flash)
Appium自动化测试基础 — ADB常用命令(一)
Jenkins - 内置变量访问
[Yocto RM]9 - QA Error and Warning Messages
Jenkins - Pipeline concept and creation method
外盘期货哪里可以开户?哪个平台出入金比较安全?
Appium自动化测试基础— 补充:App的包名(appPackage)和启动名(appActivity)
AAVE launches lens protocol, a Web3 social media platform
树莓派实现温控风扇智能降温
学习 pickle