应用层协议之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 ...
随机推荐
- shell自动化脚本,启动、停止应用程序
#!/usr/bin/env bash # 常量初始化 set_runtime_vars(){ # 日期时间 Now_Date=`date +"%Y-%m-%d %H:%M:%S" ...
- 【Python基础】列表的基本使用
列表是由一系列元素组成的有序集合.列表可以包含任意类型的元素.它是可变的,可以随时添加.删除.替换元素.列表可以使用方括号([])括起来,并使用逗号分隔元素. list1 = [1, 2, 3, &q ...
- SVN添加新的用户
1.首先确定svn的文件夹的位置 find / -name svn 2.通过find找到svn地址之后,cd进入 /var/svn/ 下 cd /var/svn/ 3.修改/var/svn/下面的au ...
- 2022-12-25:etcd可以完全替代zookeeper,原因是k8s用的etcd,不用担心不成熟。请问etcd部署在k3s中,yaml如何写?
2022-12-25:etcd可以完全替代zookeeper,原因是k8s用的etcd,不用担心不成熟.请问etcd部署在k3s中,yaml如何写? 答案2022-12-25: 用户名:root 密码 ...
- 2022-08-05:以下go语言代码输出什么?A:65, string;B:A, string;C:65, int;D:报错。
2022-08-05:以下go语言代码输出什么?A:65, string:B:A, string:C:65, int:D:报错. package main import ( "fmt&quo ...
- 2021-05-18:Nim博弈。给定一个正数数组arr,先手和后手每次可以选择在一个位置拿走若干值, 值要大于0,但是要小于该处的剩余。谁最先拿空arr,谁赢。根据arr,返回谁赢 。
2021-05-18:Nim博弈.给定一个正数数组arr,先手和后手每次可以选择在一个位置拿走若干值, 值要大于0,但是要小于该处的剩余.谁最先拿空arr,谁赢.根据arr,返回谁赢 . 福大大 答案 ...
- 2021-11-29:给定一个单链表的头节点head,每个节点都有value(>0),给定一个正数m, value%m的值一样的节点算一类, 请把所有的类根据单链表的方式重新连接好,返回每一类的头节点
2021-11-29:给定一个单链表的头节点head,每个节点都有value(>0),给定一个正数m, value%m的值一样的节点算一类, 请把所有的类根据单链表的方式重新连接好,返回每一类的 ...
- .NET周报 【5月第2期 2023-05-14】
国内文章 XUnit数据共享与并行测试 https://www.cnblogs.com/podolski/p/17388602.html 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一 ...
- ESlint配置详解
开发中出现eslint提示代码格式错误,有时候不明白其配置规范,是件很头疼的事情到处找api又是半天:so记录一份配置详情便于开发中翻阅 { // 环境定义了预定义的全局变量. "env&q ...
- fofa搜索技巧
转载自:https://www.cnblogs.com/sunny11/p/14388508.html ` 目录 题记 技巧(我一般找国内的,所以下边一直加cn) 1.搜索HTTP响应头中含有&quo ...