应用层
这章节比较的重要的内容:
- DNS域名系统
- WWW万维网
- 电子邮件
- FTP文件传输协议
- DHCP动态主机配置协议
动态主机配置协议DHCP
这个协议就是用来动态的给主机分配计算机网络的相关信息,比如
- IP地址
- 子网掩码
- 默认网关
- DNS服务器
主机和DHCP服务器建立的是UDP连接,客户端建立连接的端口是67,服务器建立连接的端口是68
工作过程
工作过程如下图所示:
口头描述:
客户端主机先采用广播通信的方式发送DHCP DISCOVER报文寻找DHCP服务器,找到之后,由DHCP服务器提供IP地址租用,在租用某个IP地址前,会先使用ARP协议去验证该IP地址有没有已经租用出去,没有租用出去的话就使用DHCP OFFER报文广播发给客户端主机,客户端主机会根据报文中的信息识别是不是自己该收到的报文(如果收到多个服务器发来的报文,就选取最先收到的),客户端收到提供的报文之后,客户端主机再给服务器端发送DHCP REQUEST报文,接收IP地址租约,DHCP服务器收到后,就会发送DHCP ACK给客户端主机,确认IP地址租约。
客户端主机分配了IP地址后,还要确定是否要继续续约IP地址。再0.5倍租用期后会发送DHCP REQUEST询问DHCP服务器是否续约IP地址,如果继续续约,服务器发送DHCP ACK确认报文,否则发送DHCP NACK拒绝报文,如果客户端未收到相应,则在0.875租约期后,再次发送REQUEST报文询问,如果还是没反应,在租约期到达的时候,解除租约,当然,只要客户端想,它可以随时解除IP地址租约
域名系统DNS
DNS其实就是IP地址的别名,为了方便人们的记忆和使用。
客户端和DNS服务器之间建立的是UDP协议,端口号为熟知端口号:53
DNS是一个分布式数据库系统
DNS的结构
根据DNS查找IP地址
DNS是一个分布式数据库系统,提供DNS服务的服务器分为:
- 根域名服务器:管理顶级域名服务器的域名和ip地址
- 顶级域名服务器:管理在该顶级域名服务器上注册的所有二级域名,当收到DNS查询请求时,就会给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)
- 权限域名服务器:负责管理某个区的域名
- 本地域名服务器:主机发送DNS请求报文时,该报文会先被送到本地域名服务器,由该域名服务器将该报文转发到上述的域名服务器的等级结构中,本地的域名服务器设有域名缓存,方便之后的查询
两种查询方式
- 递归查询:一查就查到尾,从最后的域名服务器将信息一路又返回到本机(dfs咯)
- 迭代查询: 查一次,返回一次信息,根据返回的信息再接着查
文件传输协议FTP
客户端可以把文件上传到FTP服务器上,也可以从FTP服务器上下载文件。
FTP协议采用的是TCP连接方式,提供控制连接的端口号为21
口头描述:
主动连接:先建立控制控制连接,在根据传送的控制报文确定是否进行数据传输,有数据传输时,告知FTP服务器与自己的另一个临时端口建立TCP连接,建立数据通道。此时FTP服务器会用自己的20号端口进行连接
被动传输:建立控制连接和主动方式是一样的,之所以说是被动,就是等着客户端主动连接自己的端口。
数据连接在每次数据传输完毕后就关闭
电子邮件
TCP连接,提供SMTP服务的端口号为:25
邮件的发送和接收过程如图所示:
感觉挺好理解的,就不想再描述一遍了
简单邮件传送协议SMTP
简略版
关于多用途因特网邮件拓展MIME
常见的邮件读取协议
基于万维网的电子邮件
万维网WWW
并非某种特殊的计算机网络,而是一个大规模的、联机式的信息存储所,是运行在因特网上的一个分布式应用。
利用网页之间的超链接将不同的网站的网页连接成为一张逻辑上的信息网。
工作过程
客户在浏览器上输入URL,浏览器根据URL去寻找并连接(TCP连接) 对应的万维网服务器,然后,由该服务器将资源传输给客户的浏览器进行解析渲染。
统一资源定位符URL
为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网山任何种类资源
组成形式
<协议>://<主机>:<端口>/<路径>
万维网的文档
万维网的协议
超文本传输协议
HTTP1.0版本是非持续连接:传输一次资源就断开一次
HTTP1.1版本是持续连接:传输完所有资源才会断开连接
一个html网页上有三张图片需要传输
如果采用的是http1.0版本的传输协议,那么从连接开始到传输完三张图片需要的时间至少为 2 R R T (建立 T C P 连接和 H T T P 请求和相应) + 2 × 3 R R T (三张图片传输的时间) = 8 R R T 2RRT(建立TCP连接和HTTP请求和相应) + 2 \times 3 RRT(三张图片传输的时间)= 8RRT 2RRT(建立TCP连接和HTTP请求和相应)+2×3RRT(三张图片传输的时间)=8RRT
如果采用的是http1.1版本的传输协议,那么从连接开始到传输完三张图片需要的时间至少为 2 R R T (建立 T C P 连接和 H T T P 请求和相应) + 1 × 3 R R T (三张图片传输的时间) = 5 R R T 2RRT(建立TCP连接和HTTP请求和相应) + 1 \times 3 RRT(三张图片传输的时间)= 5RRT 2RRT(建立TCP连接和HTTP请求和相应)+1×3RRT(三张图片传输的时间)=5RRT
HTTP1.1有两种工作方式:
- 非流水线(就是等待传输,收到确认后,才会发下一个)
- 流水线线方式(在收到确认之前可以发送多个数据)
HTTP报文结构
以一道题目来理解一下请求报文
代理服务器
Web缓存(代理服务器)把最近的一些请求和相应暂存在本地磁盘中,当新请求到达时,先查看本地有没有缓存记录,如果有就返回暂存的相应,不然就按URL查找。
简单文件传送协议TFTP
远程终端协议TELNET
简单网络管理协议SNMP