计算机网络学习笔记:应用层概述、动态主机配置协议DHCP

文章目录


一、应用层概述

应用层位于计算机网络结构的最上层,用于解决应用进程的交互以实现特定网络应用的问题。万维网WWW,域名系统DNS,

动态主机配置协议DHCP,电子邮件,文件传送FTP和P2P文件共享,多媒体网络应用,都是属于应用层的范畴。

目前应用层流行的两种架构:C/S和P2P。

1.1、C/S架构

C/S架构的全称是服务器/客户端架构,即将网络中的应用划分为两大类,一类是服务器,一类是客户端。客户端向服务器请求,服务器给予客户端响应。

服务端具有固定的IP和端口,并且应该长期处于运行状态。C/S架构是服务集中型 的,体现在一台服务器要接受N个客户端的请求并处理,客户端必须知道服务器的地址,而服务器不关心客户端的地址。

1.2、P2P架构

相比较于C/S架构,P2P架构中的每一个应用是对等的 ,体现在每个应用既有可能是服务方,也有可能是客户方。例如E从D下载文件,同时F又从E下载文件。

系统增加对等方,不会造成资源的紧张,因为增加一个服务请求者的同时,也是增加了一个服务的提供者。

二、动态主机配置协议DHCP

在网络中,用户主机如果需要访问Web服务器,需要进行IP地址,子网掩码,默认网关,DNS服务器地址等一系列的设置。如果手动地去配置,在现有的网络规模中是不现实的。

解决手动配置的问题,可以引入DHCP服务器。在其中设置好其他主机的配置信息,网络中的各个主机启动后访问DHCP服务器,向服务器请求自己的配置信息,而不用手动配置。

DHCP服务进程,运行在DHCP服务器上。DHCP客户进程,运行在用户主机上。为了简化,本笔记中后续的DHCP服务进程DHCP客户进程,都简称为客户进程和服务进程,DHCP服务器用户主机,都简称为服务和客户。

DHCP是应用层的协议 ,使用的是运输层的UDP协议作为支持 ,在运输层会被封装为UDP数据报,服务使用的端口是67 ,客户使用的端口是68

2.1、DHCP发现报文

客户广播发送DHCP发现报文,源IP地址为0.0.0.0。因为目前用户主机还没有被分配IP地址。目标地址为255.255.255.255。因为目前主机并不知道网络中有哪些具体的服务

网络中的所有设备都会收到该IP数据报。并对其层层解封出有DHCP发送报文的UDP数据报:

  • 如果是其他客户进程监听到了,丢弃该报文,因为客户进程没有监听67端口。
  • 如果是服务进程监听到了,会接受该报文,并作出响应。

DHCP发现报文中,还带有事务ID和客户的MAC地址。

2.2、DHCP提供报文

服务接收到报文后,根据其中封装的客户的MAC地址,查找自己的数据库,查询是否有针对该MAC地址的配置信息。

  • 如果有,使用配置信息构建并发送DHCP提供报文。
  • 如果没有,就使用默认的配置信息构建并发送DHCP提供报文。

然后发送DHCP提供报文,该报文的源IP地址为服务的地址,目标IP地址为广播地址。(因为此时客户还没有获取IP地址,为了使客户收到只能使用广播)

同样地网络中的所有设备都会收到该IP数据报。并对其层层解封出有DHCP提供报文的UDP数据报。

  • 如果是其他客户进程监听到了,会接受该报文,并作出响应。
  • 如果是服务进程监听到了,会丢弃该报文,因为服务进程没有监听68端口。
      客户还会根据事务ID,判断该报文是否是自己发送的请求报文的响应,除了事务ID,DHCP提供报文还有其他信息:

      客户如果收到了多个服务的响应报文,则会从其中选择一个。(通常选择先到达的。)并向选择的服务发送DHCP请求报文

2.3、DHCP请求报文

源地址依旧是0.0.0.0,此时客户还不能使用服务DHCP提供报文中配置信息的IP地址,因为要再次向选择的服务发起确认。

这时客户不是已经知道具体选择了哪一台DHCP服务了吗,为什么还需要通过广播的方式?

此时的客户端无有效 IP,无法用单播发起定向通信,只能广播。这一点,RFC 2131 明确规定:客户端 在未完成 DHCP 过程前,不能单播通信。)(并且需要通知所有服务器,告诉所有 DHCP Server:我选定了谁,其他人请释放资源。有些网络拓扑中,中继或交换机需要广播才能正确处理

2.4、DHCP确认报文

假设客户选择服务1作为自己的服务。并且服务1接受该请求,则服务1会向客户发送请求的DHCP确认报文,源IP地址为自身的IP,目的IP地址依旧是广播地址, 这时客户才可以使用租用的IP地址。

如果客户通过ARP检测发现有占用的情况,客户就会给服务发送撤销报文,然后重新走DHCP发现报文的步骤:

2.5、DHCP的续约与终止

当租用期限过了一半时客户会向服务发送DHCP请求报文,请求更新租用期。这时的源IP地址为客户租用到的IP地址,目的IP地址为服务IP地址。

  • 如果服务同意续约,则发送DHCP确认报文客户得到新的租用期。
  • 如果服务不同意续约,则发送DHCP否认报文客户立即停止租用该IP,走DHCP发现报文的步骤。
  • 如果服务不响应,则在0.85的租用期时间,客户发送DHCP请求报文
    • 租用期满,服务依旧不响应,客户立即停止租用该IP,走DHCP发现报文的步骤。

并且客户可以随时停止DHCP的租用 ,需要发送DHCP释放报文

服务给客户挑选IP地址时,使用ARP保证地址不被占用。客户在使用该IP之前,也会再次使用ARP进行检查

总结

相关推荐
华科易迅2 小时前
人工智能学习38-VGG训练
人工智能·学习·人工智能学习38-vgg训练
m0_537437572 小时前
【深度学习基础与概念】笔记(一)深度学习革命
人工智能·笔记·深度学习
HollowKnightZ2 小时前
论文阅读笔记:Digging Into Self-Supervised Monocular Depth Estimation
论文阅读·笔记
输出>输入3 小时前
verilog HDLBits刷题“Module shift8”--模块 shift8---模块和向量
笔记
蓝胖子不会敲代码3 小时前
跟着AI学习C# Day27
开发语言·学习·c#
李明一.4 小时前
Java 全栈开发学习:从后端基石到前端灵动的成长之路
java·前端·学习
crary,记忆4 小时前
微前端MFE:(React 与 Angular)框架之间的通信方式
前端·javascript·学习·react.js·angular
星空寻流年5 小时前
javaScirpt学习第七章(数组)-第一部分
前端·javascript·学习
懒惰的bit6 小时前
STM32F103C8T6 学习笔记摘要(二)
笔记·stm32·学习