应用层
常见的应用层协议包括:
- 超文本传输: HTTP、HTTPS
- 文本传输: FTP
- 电子邮件: SMTP、POP3、IMAP
- 动态主机配置: DHCP
- 域名系统: DNS
DNS(Domain Name System)域名系统
- 利用DNS协议与DNS服务器通信,将域名解析成对应的IP地址
- DNS可以基于UDP协议,也可以基于TCP协议,服务器为53端口(DNS协议默认访问服务器的53端口)
- 客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器)
- 所有的DNS服务器都记录了DNS根域名服务器的IP地址
- 上级DNS服务器记录了下一级DNS服务器的IP地址
- 全球一共13台IPv4的DNS根域名服务器、25台IPv6的DNS根域名服务器
IP地址的分配
- IP地址按照分配方式,可以分为:静态IP地址、动态IP地址
静态IP地址
- 手动配置
- 适用于:不怎么挪动的台式机(比如学校机房中的台式机)、服务器等
动态IP地址
- 动态分配(从DHCP服务器获取IP地址)
- 适用于:移动设备、无线设备
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议
- DHCP协议基于UDP协议,客户端为68端口,服务器为67端口
- DHCP服务器会从IP地址池中,挑选一个IP地址“出租”给客户端一段时间,时间到期就回收它们
- 日常使用的路由器就可以充当DHCP服务器
DHCP分配IP地址的4个阶段
- DISCOVER:发现DHCP服务器
发广播包,源IP为0.0.0.0(未分配IP地址),目标IP为255.255.255.255,目标MAC为FF:FF:FF:FF:FF:FF(不知道DHCP服务器地址,全网需找DHCP服务器)
- OFFER:提供租约
服务器返回可以租用的IP地址,并附带租用期限、子网掩码、网关、DNS等信息
- REQUEST:选择Offer
发送REQUEST报文确认选择第一个DHCP服务器为它提供IP地址自动分配服务
- ACKNOWLEDGE:确认
被选中的DHCP服务器发送ACK报文,把在DHCP.Offer报文中准备的IP地址租约给对应DHCP主机
其他
- 自动续约
客户端会在租期不足的时候,自动向DHCP服务器发送REQUEST信息申请续约
- 跨网段分配IP地址
可以借助DHCP中继代理(DHCP Relay Agent)实现跨网段分配IP地址