互联网应用 -- WEEK.4

复习

学习了socket 网络编程,最后有一个基于UDP的echo server示例

这周要学习一个应用层协议--DHCP。之前的互联网协议简单讲过这个,它是用来给网络中的每个host分配IP

Some useful information about learning a protocol

因为网络的协议可以说是创造出来的一种模型,那么就会有一些特别的概念来描述,ppt讲了三个

Message Sequence Chart(MSC)

看懂例子就行,就是一种表示方法而已。就跟上学期学TCP那个什么有限状态机啥的

State Transition Diagram

这个就是那个什么状态机,这个过程现在看不太清楚,等后面讲完再翻回头看

Time-Length-Value

这个就是一种编码风格,就在DHCP的报文中,有一个OPTION的地方会用这种格式写

Introduction to DHCP

每个Host进入网络后需要有一个IP地址,DHCP就是用来给各个主机分配IP的。

DHCP的前身是BOOTP,他俩之前有一些区别和联系

比如,交换报文的结构相似,都基于UDP

但是BOOTP一般用于 diskless workstation(无磁盘主机,就是不通过磁盘来配置链接网络),而且他分配的IP地址会和硬件地址绑定在一起从而固定并不动态。

DHCP遵从CS模式,使用本地硬盘来引导定位,IP地址是有租约的过期后要重新绑定

我们看一下DHCP工作基本流程,这个互联网协议就背过,记得报文都是broadcast(广播)形式

DHCP Protocol

先看一下DHCP的报文结构,细节ppt说的都比较清楚,注意最下面那个OPTION就是开头提到的TLV encoding style 

而TLV的value一共有8种,分别的作用如下,这个需要结合后面具体过程来理解

1.DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始

2.DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息

3.DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。

4. DHCP DECLINE :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

5. DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。

6. DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。

7. DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址

8. DHCP INFORM :客户端发出的向服务器请求一些信息的报文
 

DHCP有三种主要操作,主要记一些过程之间的报文发送,都对应的是哪个

Address acquisition

这个不赘述了 

Early lease termination

就是在租约到期之前,就放弃这个IP不用了

Lease renewal

 T1就是租期*0.5,到达这个时间后,client会进入一种请求续租的状态,就要开始申请续租,如过申请成功(ACK),那么就会更新租约然后继续使用这个IP,如果没成功就是NAK

 这种情况是client要换一个IP使用,那么到达T1后,续约申请自然被拒绝(不返回ACK)。

T2就是租期*0.875,到达这个时间后,就开始重新寻找一个DHCP服务器并与其绑定

同上成功就返回ACK然后更新租约

 我们来看一个实例

对于这样的一个网络,一台笔记本想(DHCP client)要获取一个IP,那么它就需要寻找DHCP服务器来进行IP分配。

 首先,这台笔记本会生成这样的一个报文对网络上所有主机进行广播,其中的内容如下。

1 1 6 0 :1代表这是request请求;1代表硬件类型,1指的是以太网;6代表硬件地址长度,以太网就是6;0这个地方,client都是0

12:其实就跟那个ACK的序号差不多。就是一个随机的整数,客户端用于将响应与请求匹配

0 flag:0代表的是从client开始请求地址的时间;flag是标记是否允许请求和回应

init阶段有些地址信息还并不知道,所以直接填成0

下一行就是笔记本(client)的MAC地址,request将根据这个地址找到笔记本并将IP赋予它

53 1 1:这个就是前面提到的Type Length Value 的编码风格,这个正好对应Discover的报文

因为这个报文是DISCOVER,只有DHCP的服务器能接受,所以网络上的计算机和router直接就忽略,然后这两个DHCP服务器将接受信息并且都作出响应(以广播形式) 

可以看到请求的报文(OFFER)如下,将分配的IP封装进去,以及DHCP服务器的IP

因为这里还有那台笔记本的MAC地址,所以广播的时候,每个host会看到这个MAC地址,发现不是自己的就忽略。当传到笔记本那里就接受。且这个分配的IP和client的MAC将被存在服务器的ARP表中

 接受成功后,client将会广播一个REQUEST,信息包含向它所选定的DHCP服务器的IP,和请求的IP,可以看到这个信息是在OPTIONS中,

最后对应的DHCP服务器收到后,返回ACK确认租期 

然后后面有将一个在不同子网之间DHCP的使用方式,就是路由器做代理

其他也没啥了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值