当前位置:网站首页>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看就很明显)。


边栏推荐
- [Yocto RM] 4 - Source Directory Structure
- Jenkins - Pipeline 概念及创建方式
- [Yocto RM]8 - OpenEmbedded Kickstart (.wks) Reference
- How to study efficiently
- Voice network VQA: make the user's subjective experience of unknown video quality in real-time interaction known
- Coscon'22 lecturer solicitation order
- TD Hero 线上发布会|7月2日邀你来
- Four classic training modes in comparative learning
- Jenkins - Pipeline concept and creation method
- General process after reference layer reboot
猜你喜欢

The practice of dual process guard and keeping alive in IM instant messaging development
![[elt.zip] openharmony paper Club - memory compression for data intensive applications](/img/54/8248c1d95b04498d44a00ea94a6c85.png)
[elt.zip] openharmony paper Club - memory compression for data intensive applications

766. 托普利茨矩阵

Appium automation test foundation - Supplement: app package name and appactivity

SQL 注入绕过(二)

Review of drug discovery-03-molecular design and optimization

Cesium 点击绘制多边形(动态绘制多边形)

Jenkins - 内置变量访问

Adobe Premiere foundation - sound adjustment (volume correction, noise reduction, telephone tone, pitch shifter, parameter equalizer) (XVIII)

Database query optimization: master-slave read-write separation and common problems
随机推荐
geojson 格式说明(格式详解)
MySQL interview question set
Numpy----np. Tile() function parsing
STM32的通用定时器与中断
Cesium 点击获取经纬度(二维坐标)
Jenkins - 内置变量访问
Class initialization and callback usage
Evaluation - rank sum ratio comprehensive evaluation
TD Hero 线上发布会|7月2日邀你来
General process after reference layer reboot
Jenkins - Pipeline syntax
[Yocto RM] 2 - Yocto Project Terms
Cesium 点击绘制多边形(动态绘制多边形)
New choice for database Amazon Aurora
Numpy----np.reshape()
Cesium color color (assignment) random color
[Yocto RM]1 - System Requirements
[Yocto RM]3 - Yocto Project Releases and the Stable Release Process
TD Hero online conference on July 2
TIA botu_ Concrete method of making analog input and output Global Library Based on SCL language