目录
应用层常见协议
- 超文本传输协议:http、https
- 文件传输协议:FTP
- 电子邮件:SMTP、POP3、IMAP
- 动态主机配置协议:DHCP
- 域名系统:DNS
DNS协议
前言
- DNS(domain name system)协议是建立在UDP协议之上的,某些情况下可以切换到TCP,使用端口号为53,是一种客户/服务器服务模式
- 我们在上网进行DNS解析请求时用的是UDP协议,而两台DNS服务器同步解析时使用TCP协议(辅助域名服务器更新数据)
URL
含义:(uniform resoure locator)统一资源定位符,完整的他能标识一个网页甚至网页中的元素(锚)
url组成:protocol://hostname[:port]/path/filename/[?query][#fragment]
域名:网站的网址,每个域名背后都对应着一个IP地址(因为IP地址不便记忆),用户输入域名,经过dns服务器解析成IP地址来获取该服务。
域名结构
含义:域名是一个树状层次结构,联机分布式数据库系统,最高的根域名服务器维护最高级别域名服务器记录,后者维护下一级域名服务器的记录
DNS服务器分类
- 主要名称服务器:存放区域(二级区域)中的相关设置,存放区域文件中的正本数据
- 辅助域名服务器:存放的是副本数据,是从主要名称服务器中复制出来的,不能修改
- 主控名称服务器:提供数据复制(可以简单理解成DNS服务器中的某一个角色)
- 缓存域名服务器:里面没有区域文件,需要配置转发器
注意:
- 使用DNS服务器时,客户端首先会访问最近的一台DNS服务器(也就是客户端自己配置的DNS服务器)
- 所有的DNS服务器都记录了DNS根服务器的IP地址
- 上级DNS服务器记录了下一级DNS服务器的IP地址
- 全球一共13台IPV4的DNS根域名服务器,25台IPV6的DNS根域名服务器
- 开启DNS服务器后对应的端口TCP和UDP的53号端口将被打开
DNS的工作原理
前言:DNS查询以各种不同的方式进行解析,客户机可以通过使用从前查询获得的缓存信息就地应答查询,DNS服务器也可以使用其自身的资源记录信息缓存来应答查询,但更多是以下两种方式
- 迭代解析:DNS服务器收到解析请求,首先在本地的数据库中查找是否有相应的资源记录,若没有,则向客户提供另外一个DNS服务器地址,客户负责把解析请求发送给新的DNS服务器地址
- 递归解析:DNS服务器收到一个域名解析请求时,若所要检索的资源记录不在本地,DNS服务器将和自己的上一层服务器交互,获得最终答案(IP),并将其返回给客户
DNS工作原理实例
- 当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关系,有则直接使用IP进行通信
- 若浏览器没有缓存,则操作系统检查本地hosts文件是否有域名IP的映射关系,有则直接使用IP进行通信
- 若hosts没有这个域名的映射,首先会找TCP/IP参数中设置的首选DNS服务器,若服务器已缓存了映射关系,则使用这个IP地址映射返回域名解析,此时解析不具有权威性
- 若首选DNS服务器没有完成映射则就会将请求转发到根服务器,根域服务器收到请求后,由于根域服务器只是维护顶域服务器信息,会响应顶域服务器IP,首选DNS根据根域响应的信息,将请求发送到顶级域
- 顶域服务器收到请求,由于顶域只是维护二级域信息,会响应二级域服务器IP,首选DNS根据顶级域响应的信息,将请求发送到二级域
- 二级域收到请求,该DNS服务器内维护的是这个区域内所有的主机信息,包含了要找的域名信息的IP,直接将该IP地址响应给首选DNS
- 首选DNS将该记录缓存后响应给客户机
DNS记录
- A:主机记录,域名和IP地址的记录
- CNAME:别名记录(针对我们现有的域名取一个绰号)
- SOA:权威名称服务器
- NS:名称服务器
- MX:邮件交换记录,一般有邮件服务器时使用
- SRV:正在提供特定服务的服务器
- PTR:反向指针
DNS解析类型
- 正向解析:已知域名,解析IP地址
- 反向解析:已知IP地址,解析域名
DHCP协议
含义:(动态主机配置协议)主要用于给客户机提供TCP/IP参数(IP地址、子网掩码、网关、DNS等)
静态IP与动态IP
- 静态ip:又称固定ip,是运营商指定的永久ip地址,有固定的地址,一般来说,固定的网站应该是固定ip的,其他特殊网络也会指定用户ip方便用户上网行为的管理。
- 动态ip:在有互联网连接请求时分配ip地址,连接中断后运营商回收该ip,下次连接互联网时再分配ip,IP地址不确定。
理解:dhcp协议开启后,当电脑插上网线或手机连上wifi,则操作系统网络协议栈会自动向外发送一包dhcp请求请求为其分配ip地址,路由器获取到dhcp请求后会为其分配一个ip地址,并通过dhcp回复报文发送回去,操作系统收到dhcp回复报文后将其分配的ip配置到网卡上。
总结:静态IP是自己配置的,动态IP是动态获取的
DHCP协议好处
- 减少管理员的工作量
- 避免输入错误
- 避免IP冲突
- 提高IP地址的利用率
注意:
- DHCP是一个应用层协议,基于UDP,主机向服务器67号端口发送请求,服务器给客户机的68号端口进行响应
- DHCP服务器中含有地址池,地址池内容包括(IP地址、子网掩码、网关、DNS地址、租期)
DHCP分配IP地址的4阶段
- 客户机以广播的方式发送discover向dhcp服务器(源ip:0.0.0.0,源MAC,目的ip:255.255.255.255,目标mac:FF:FF:FF:FF:FF:FF)
- 此时网络中的所有dhcp服务器都会收到该报文,都会进行响应;返回可以租用的IP地址,但无子网掩码,网关等信息
- 客户机会向第一个offer报文的服务器发送request报文(request会携带客户需要的ip地址)
- 服务器确认了租约并提供给客户机完整的TCP/IP参数
抓包分析
注意
- DHCP服务器会从IP地址池中挑选一个IP地址“出租”给客户端一段时间,时间到期就回收他们;平时家里上网的路由就就可以充当DHCP服务器
- 没有被请求的DHCP服务器最终会将提供的IP放入地址池
- DHCP服务器的地址要和其提供的IP地址处于同一网段(服务器会根据客户端IP在对应网段的地址池查找来发送TCP/IP参数)
- DHCP服务器若想跨网段分配IP地址,可以借助DHCP中继代理实现跨网段分配IP地址
DHCP续约
当租期过50%的时候,客户机会再此发送DHCP Request包申请续约,若无服务器响应,则继续使用并在87.5%再此发送DHCP Request包进行续约;若仍然无响应,则客户机会释放IP地址,及重新发送DHCP Discovery广播包来获取IP地址,当无任何数据响应时,则会自动给自己分配一个169.254.x.x/16的IP地址
注意:
- 这里的续约计算时间是从续约开始时开始的
- 169.254.x.x/16是全球统一的无效地址,不能用于上网,用于临时内网通信
电子邮件
邮件的过程
- 发件人将邮件发送到自己使用的邮件服务器
- 发件人的邮件服务器将收到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱
- 收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取收到的电子邮件
注意:
- 电子邮件系统采用客户/服务器的方式
- 电子邮件使用方便,传递迅速、费用低廉。它不仅可以传送文字信息,而且还可以附上声音和图像
- 用户代理是用户与电子邮件系统的接口,又称电子邮件客户端软件
- 邮件服务器是电子邮件系统的基础设施,因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱
- 邮件相关协议:发送邮件使用的协议:SMTP;收邮件使用的协议:POP、IMAP
电子邮件发送过程
- 发送方的邮件代理作为SMTP客户与发送方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP发送邮件给发送方邮件服务器
- 发送方邮件服务器中的SMTP客户与接收方的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP协议发送之前收到的待转发邮件给接收方邮件服务器
- 接收方的用户代理作为POP3客户与接收方邮件服务器中的POP3服务器进行TCP连接然后基于这条连接使用POP3协议从接收方邮件服务器读取邮件
pop协议特点
IMAP协议的特点
FTP协议
前言
含义:(文件传输协议)由两部分组成:服务器/客户端,其是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。
注意:
- FTP协议是基于TCP协议的,FTP服务器默认端口号(20号端口一般用于传输数据,21号端口用于传输控制信息)但是,是否使用20号端口作为传输数据端口和FTP的传输模式有关系
- FTP的传输格式:ftp://[user[:password]@]host[:port]/url-path
- 具体流程:FTP服务器里面放着文件,FTP客户端可以连接该服务器上传或下载文件
FTP数据传输方式
FTP的2种连接模式:主动模式(Active)和被动模式(Passive)
注意:
- 主动与被动模式的选择权在客户机
- 主动和被动是相对服务器来说的,传输数据时服务器主动连接则为主动模式,反之为被动模式
- 不管是那种模式,都需要客户端和服务器建立2个连接
- 控制连接:用于传输状态信息(命令,cmd)
- 数据连接:用于传输文件和目录信息(data)
主动模式
建立连接使用21号端口,客户端通过此通道向服务器发送port命令,服务器从20号端口主动向客户端发起连接
理解:
- 客户端打开一个随机的命令端口(端口号大于1024)假设4242(N);同时连接至服务器的命令端口21
- 客户端开始监听N+1端口,同时在N端口向服务器发送一个port命令到服务器的21号端口(此命令是告诉服务器——客户端正在监听的数据端口为N+1,并且已经准备好从此端口接收数据)
- 服务器打开20号端口,并且创建和客户端数据端口(N+1)的连接
- 双方进行数据传输,传输完毕后发送数据的一方主动关闭数据连接
被动模式
建立连接使用21号端口,客户端向服务器发送pasv命令,服务器收到会随机打开一个高端端口(大于1024),服务器在指定范围内的某个端口被动等待客户机连接
理解:
- 客户端通过两个随机端口与服务器建立连接(命令端口N(连接服务器21号端口),数据端口N+1)
- 客户端通过命令端口N发送PASV命令给服务器的命令端口21
- 服务器打开一个随机的数据端口P,并告知客户端该端口号P
- 客户端数据端口N+1发起与服务器数据端口P的连接
- 双方进行数据传输,传输完毕后发送数据的一方主动关闭数据连接
FTP文件传输模式
- 文本模式:ASCII码模式,主要以文本序列传输
- 二进制模式:binary模式,(视频、图片、应用程序等等)