运输层为应用进程提供了端对端的通信服务,但不同的网络应用的应用进程之间,还需要有不同的通信规则。因此在运输层协议之上,还需要有应用层协议。
应用层中有这些常见的协议
- 域名系统: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
的内容 , 更多有关 前端
、网络协议
的内容可以参考我其它的博文,持续更新中~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。