计算机网络学习笔记:应用层概述、动态主机配置协议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进行检查

总结

相关推荐
fengye20716124 分钟前
板凳-------Mysql cookbook学习 (十二--------1)
学习·mysql·adb
轩宇^_^41 分钟前
Qt CMake 学习文档
数据库·qt·学习
sohoAPI1 小时前
Docker入门笔记
笔记·docker·容器
Ylinnnnn2 小时前
二分查找法
c++·学习·算法·leetcode·力扣·c·入门
今天背单词了吗9802 小时前
算法学习笔记:26.二叉搜索树(生日限定版)——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·学习·算法··二叉搜索树
DKPT2 小时前
Java行为型模式(状态模式)实现方式与测试方法
java·笔记·学习·设计模式·状态模式
ouliten3 小时前
cuda编程笔记(7)--多GPU上的CUDA
笔记
Jay Kay5 小时前
CMake综合学习2: 构建高效可靠的C++中型服务项目以及现代CMake全链条指南
c++·学习
gyeolhada5 小时前
编译原理第六到七章(知识点学习/期末复习/笔试/面试)
学习
老神在在0018 小时前
SpringMVC1
java·前端·学习·spring