应用层协议之DNS、DHCP
运输层为应用进程提供了端对端的通信服务,但不同的网络应用的应用进程之间,还需要有不同的通信规则。因此在运输层协议之上,还需要有应用层协议。
应用层中有这些常见的协议
- 域名系统:DNS
- 动态主机配置:DHCP
- 超文本传输:HTTP、HTTPS
- 文件传输:FTP
- 电子邮件:SMTP、POP3、IMAP
这篇文章先来说说域名系统 DNS、动态主机配置 DHCP
域名
根据级别不同,域名系统可以划分为顶级域名、二级域名、三级域名,每一个域名都由标号序列组成,各标号之间用点隔开,如:mail.cctv.com
顶级域名(Top-level Domain) 分为以下三类。
- 国家顶级域名(Country Code Top-level Domain):如 cn(中国)、us(美国)、uk(英国)
- 通用顶级域名(General Top-level Domain):如 com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(教育机构)、gov(政府部门)
- 新通用顶级域名(New Generic Top-level Domain):如 vip、xyz、top、club、shop
二级域名 指顶级域名之下的域名
- 在通用顶级域名下,它一般指域名注册人的名称,如 google、baidu、microsoft
- 在国家及地区顶级域名下,它一般指注册类别的,如 com、edu、gov、net
域名最上层是根,用一个点(.)表示,然后依次往下是顶级域名、二级域名、三级域名、四级域名,类似树状结构。

如域名 mail.cctv.com 中,com 是顶级域名,cctv 是二级域名,mail 是三级域名。
DNS
DNS(Domain Name System)可以基于UDP协议,也可以基于TCP协议,服务器占用53端口。
用户与互联网上某台主机通信时,需要知道对方的IP地址,但用户很难记住长达32位的二进制主机地址,所以在应用层为了便于记忆各种网络应用,除了IP地址,还有主机地址。域名系统DNS能够把互联网上的主机名字转换为IP地址。
- 客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器)
- 所有的DNS服务器都记录了DNS根域名服务器的IP地址
- 上级DNS服务器记录了下一级DNS服务器的IP地址(比如顶级域名服务器记录了二级域名服务器的地址)
当我们需要查找 example.microsoft.com 这个域名地址时,按照查找规则
- 首先会在本地名称查找,找不到返回根域名服务器的IP地址(Q1-A1过程)
- 接着去根域名服务器查找,找不到返回com顶级域名服务器的IP地址(Q2-A2过程)
- 再去com顶级域名服务器查找,找不到返回microsoft.com二级域名服务器地址(Q3-A3过程)
- 然后去microsoft.com 二级域名服务器查找,找不到返回 example.microsoft.com三级域名服务器地址(Q4-A4过程)
- 最后去example.microsoft.com三级域名服务器查找,终于找着了!(Q5-A5过程)

我们的计算机中也会缓存dns记录,通过 ipconfig/displaydns可以查看

也可以通过 ipconfig/flushdns 清除缓存
IP地址
IP地址按照分配方式,可以分为静态IP地址、动态IP地址。
静态IP地址需要手动设置,适用于不常移动的台式机(如学校机房中台式机),优点是便于维护和管理,可以针对指定的IP地址做一些设置,如禁用网络等。
动态IP地址从DHCP服务器自动获取IP地址,适合无线设备。比如带着笔记本到全是台式机的机房时,分配已有的静态IP地址可能会与其它台式机冲突,如果另外指定静态IP地址,那么笔记本到另外一个机房又不可用。
DHCP
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,基于UDP协议,客户端是68端口,服务器是67端口。
DHCP服务器会从IP地址池中,挑选一个IP地址“出租”给客户端一段时间,时间到期就回收它们,平时家里上网的路由器就可以充当DHCP服务器。
DHCP发送IP地址存在四个阶段
① DISCOVER:发现服务器
发广播包(此时源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FF:FF:FF:FF:FF:FF)
② OFFER:提供租约
服务器返回可以租用的IP地址,以及租用期限、子网掩码、网关、DNS等信息(可能会有多个服务器提供租约)
③ RRQUEST: 选择IP地址
客户端选择一个OFFER,发送广播包进行回应
④ ACKNOWLEDGE:确认
被选中的服务器发送ACK数据包给客户端,此时IP地址分配完成

在终端输入 ipconfig/renew 重新连接网络,可以抓包到数据

DHCP存在自动续约的机制,它分配的IP地址比如时间限制一天,在当客户端租期不足时,会自动向DHCP服务器发送REQUEST信息申请续约。
以上就是 应用层协议之DNS、DHCP的内容 , 更多有关 前端、网络协议 的内容可以参考我其它的博文,持续更新中~
应用层协议之DNS、DHCP的更多相关文章
- 第二次作业:使用Packet Tracer分析应用层协议(DNS、FTP、DHCP、SMTP、POP3)
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序. 2 实验内容 ...
- 应用层协议——DHCP
常见协议分层 网洛层协议:包括:IP协议.ICMP协议.ARP协议.RARP协议. 传输层协议:TCP协议.UDP协议. 应用层协议:FTP.Telnet.SMTP.HTTP.RIP.NFS.DNS ...
- Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- 第五章Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- 涨知识-VI 基于TCP/UDP的应用层协议
基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Trans ...
- 第二次实验报告:使用Packet Tracer分析应用层协议
个人信息: • 姓名:李微微 • 班级:计算1811 • 学号:201821121001 一.摘要 本文描述使用Packet Tracer,正确配置网络参数,抓 ...
- 第二次实验报告:使用 Packet Tracer 分析应用层协议
个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...
- 协议分析 - DHCP协议解码详解
协议分析 - DHCP协议解码详解 [DHCP协议简介] DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...
- DHCP协议格式、DHCP服务搭建、DHCP协商交互过程入门学习
相关学习资料 http://www.rfc-editor.org/rfc/rfc2131.txt http://baike.baidu.com/view/7992.htm?fromtitle=DHCP ...
- SMB2 Protocol – 简介(应用层协议主要用于在计算机间共享文件、打印机、串口等)
SMB2 Protocol – 简介 SMB协议简介: 服务器信息块(SMB)协议是一个应用层协议主要用于在计算机间共享文件.打印机.串口等. 在介绍SMB协议的时候,一般提到使用的端口为139,44 ...
随机推荐
- boot-admin整合Liquibase实现数据库版本管理
Liquibase 和 Flyway 是两款成熟的.优秀的.开源/商业版的数据库版本管理工具,鉴于 Flyway 的社区版本对 Oracle 数据库支持存在限制,所以 boot-admin 选择整合 ...
- flask接口参数校验 jsonschema 的使用
开头 flask接口开发中参数校验可以用到的方法有很多,但是我比较喜欢跟前端的js检验类似,故选用到了 jsonschema 这个参数校验的库 Demo 下面是一个比较全的参数校验的接口,日后方便参考 ...
- 2023-03-04:定义一个二维数组N*M,比如5*5数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
2023-03-04:定义一个二维数组NM,比如55数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 ...
- 2020-11-26:go中,map的创建流程是什么?
福哥答案2020-11-26: [答案来自此链接:](https://www.bilibili.com/video/BV1Nr4y1w7aa?p=10)源码位于runtime/map.go文件中的ma ...
- Django-2:创建项目Project
命令:django-admin startproject mysite PS C:\Users\liujun> cd e:\pyapp\cmdbPS E:\pyapp\cmdb> djan ...
- group_concat 自定义聚合查询
group_concat
- ENVI5.6 安装教程,新手入门(超详细)附安装包和常见问题
ENVI是一个完整的遥感图像处理平台,广泛应用于科研.环境保护.气象.农业.林业.地球科学.遥感工程.水利.海洋等领域.目前ENVI已成为遥感影像处理的必备软件,包含辐射定标.大气校正.镶嵌裁剪.分类 ...
- ChatGPT玩法(三):AI玩转PPT
前言 在线免费体验ChatGpt:https://www.topgpt.one 作为许多职场人士的必备工具,PPT制作一直是一个琐碎而费时的任务.但最近我发现了一个非常有用的工具网站,它可以通过人工智 ...
- WPF中小的技能点 1
图片圆角的处理方式 采用boder里background背景设置图片并设置对应的圆角 <Border CornerRadius="20"> < ...
- 一分钟学一个 Linux 命令 - tar
前言 大家好,我是 god23bin.今天给大家带来的是 Linux 命令系列,每天只需一分钟,记住一个 Linux 命令不成问题.今天,我们要介绍的是一个常用且强大的命令:tar. 什么是 tar ...