应用层协议之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 ...
随机推荐
- 安装scss版本号(不报错)
npm install sass-loader@8.0.2 node-sass@4.14.1
- 2022-05-16:A -> B,表示A认为B是红人, A -> B -> C,表示A认为B是红人,B认为C是红人,规定“认为”关系有传递性,所以A也认为C是红人, 给定一张有向图,方式是给定M个有
2022-05-16:A -> B,表示A认为B是红人, A -> B -> C,表示A认为B是红人,B认为C是红人,规定"认为"关系有传递性,所以A也认为C是红 ...
- 2021-05-23:给定一个字符串str,str表示一个公式,公式里可能有整数、加减乘除符号和左右括号。返回公式的计算结果,难点在于括号可能嵌套很多层。str=“48*((70-65)-43)+8*
2021-05-23:给定一个字符串str,str表示一个公式,公式里可能有整数.加减乘除符号和左右括号.返回公式的计算结果,难点在于括号可能嵌套很多层.str="48*((70-65)-4 ...
- Django context must be a dict rather than UserProfile.
context must be a dict rather than UserProfile. # 主页@login_requireddef index(request): data={} data ...
- PHP反序列化常用魔术方法
PHP反序列化 php序列化(serialize):是将变量转换为可保存或传输的字符串的过程 php反序列化(unserialize):就是在适当的时候把这个字符串再转化成原来的变量使用 PHP反序列 ...
- 蓝桥杯真题 k倍区间
考点: - 利用前缀和求子列和 - 同余作差是模的倍数 题目概要 给定一个长度为N的数列,A1, A2, - AN,如果其中一段连续的子序列Ai, Ai+1, - Aj(i <= j)之和是K的 ...
- Singleton 单例模式简介与 C# 示例【创建型】【设计模式来了】
〇.简介 1.什么是单例模式? 一句话解释: 单一的类,只能自己来创建唯一的一个对象. 单例模式(Singleton Pattern)是日常开发中最简单的设计模式之一.这种类型的设计模式属于创建型 ...
- 单例bean与类加载过程
构造单例bean的方式有很多种,我们来看一下其中一种,饿汉式 public class Singleton1 implements Serializable { //1.构造函数私有 private ...
- SYCTF2023 WEB writeup
CarelessPy 一进来就是个任意文件下载功能,不过做了些限制,这题从头到尾都在骂杂鱼...(虽然我确实是(bushi) 查看页面源代码,给了个/eval /login 两个路由,/eval是个目 ...
- MySQL中都有哪些锁?
MySQL中都有哪些锁 为什么需要锁 在计算机系统中,锁(Lock)是一种同步机制,用于控制对共享资源的访问.它确保在任何给定时间内只有一个线程能够访问受保护的共享资源,从而避免了由并发访问导致的数据 ...