开始时间:2022年2月25日20:07:53
6.1 应用层概述
各层解决的问题
应用层:解决通过应用进程的交互来实现特定网络应用的问题
应用层是设计和建立计算机网络的最终目的
小结
6.2 客户/服务器方式 和 对等方式
引入
客户/服务器方式(C/S方式)
对等方式(P2P方式 Peer-to-Peer)
客户/服务器方式(C/S方式)
服务器总是处在运行状态,并等待客户的服务请求
有固定的端口号
运行服务器的主机也要有固定的IP地址

对等方式(P2P方式 Peer-to-Peer)

小结
6.3 DHCP(动态主机配置协议)
引入
在众多PC的局域网内,所有主机的IP地址,子网掩码,默认网关,DNS服务器等信息,都靠手工配置是一件无趣且痛苦的事情。
故此,希望有 可为其他各主机配置网络的服务器——DHCP服务器
DHCP介绍
DHCP是TCP/IP体系中应用层的协议
使用运输层的UDP所提供的服务
(即,DHCP报文在运输层会被封装成UDP报文)
DHCP服务器 使用的UDP端口号为 67
DHCP客户 使用的UDP端口号为 68
举例说明DHCP的工作过程
DHCP客户寻找DHCP服务器
当客户主机启用DHCP,DHCP客户将广播 DHCP发现报文
DHCP发现报文:
源地址0.0.0.0
目的地址255.255.255.255
事物ID
DHCP客户端的MAC地址 等…
广播发送DHCP发现报文的原因:
主机并不知道有几哪个DHCP服务器及其IP地址
DHCP用户广播DHCP发现报文,所有主机和服务器都会收到
其他DHCP客户会丢弃该报文
(因为所有DHCP客户的应用层都不会监听UDP67端口的进程【DHCP服务器进程】)
DHCP服务器提供IP租用
所有DHCP服务器收到该报文后,层层解封装,接收并做出响应
(因为DHCP服务器的应用层始终运行着DHCP服务器进程UDP67)
DHCP服务器根据DHCP发现报文内的DHCP客户的MAC地址,在自身的数据库查看是否有针对该MAC的配置信息
if 有
采用已匹配的配置信息构建并发送DHCP提供报文
else
采用默认配置信息构建并发送DHCP提供报文
DHCP提供报文:
源IP地址:服务器的IP
目的地址:255.255.255.255
事物ID
配置信息【IP,子网掩码,地址租期,默认网关,DNS服务器等】
关于DHCP提供报文的目的地址仍使用广播地址的原因:
DHCP客户还没有配置IP地址,
所以DHCP客户此时只能根据事物ID来辨识是否该接收
其他DHCP服务器会接受到该报文但会丢弃(原因上述类似)
DHCP客户接受IP租约
当存在多个DHCP服务器,每个服务器受到DHCP发现报文后都会广播自己的DHCP提供报文,DHCP客户的选取原则是:先到先用
DHCP客户端,选择了某一DHCP服务器的DHCP提供报文,并向其发送DHCP请求报文 ,请求对分配下来的配置信息的使用
DHCP请求报文:
源IP地址:0.0.0.0
目的IP地址:255.255.255.255
{目的地址为广播地址的原因是:不用向所有DHCP服务器单播发送
DHCP请求报文}
事物ID
DHCP客户的MAC地址
配置信息内的IP地址
DHCP服务器的IP地址
DHCP服务器确认IP地址租约
若DHCP服务器愿意提供IP租赁
则返回 DHCP确认报文{源IP:DHCP服务器自身的IP
目的IP:255.255.255.255}
DHCP客户会使用ARP检测该IP是否被网络中其他主机占用,
未被占用则开始使用,
若被占用,发送DHCP谢绝报文给服务器,重新开始新一轮的DHCP获取过程
DHCP客户续约IP的情况
【
DHCP客户成功租赁后,当到达0.5倍租用期,DHCP客户会再次发送DHCP请求报文
if DHCP服务器愿意继续提供租赁
return DHCP ACK DHCP客户无忧继续使用
else
if 不愿意
return DHCP NACK DHCP客户立即停止使用,重新DHCP获取
else
DHCP服务器不做响应 DHCP客户在0.875倍租用期再次发送DHCP请求
】
若DHCP不愿意提供IP租赁
则返回 DHCP否认报文
DHCP客户收到后,重新开始新一轮的DHCP获取过程
DHCP客户随时解约
DHCP客户可以随时提前终止DHCP服务器提供的IP租赁服务,发送DHCP释放报文给服务器即可
DHCP释放报文{
源IP:0.0.0.0
目的IP:255.255.255.255
}
DHCP客户在租用期到期后必须立即停止使用租用的IP地址,开始新一轮的DHCP获取
DHCP中继代理
引入
PC如何向处在不同子网的DHCP服务器请求IP地址(配置信息)?
前文回顾
路由器既隔离广播域又隔离冲突域
DHCP客户首先是广播DHCP发现报文
实现
将与该网络相关联的路由器配置上DHCP服务器的IP,使之成为DHCP中继代理
6.4 DNS(域名系统)
DNS介绍
DNS:域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网 


DNS服务器类型
1.根域名服务器
2.顶级域名服务器
3.权限域名服务器
4.本地域名服务器
域名解析过程
迭代查询
递归查询
提高DNS的查询效率
域名服务器上使用高速缓存
高速缓存用来存储
最近查询过的域名,及何处获得域名信息

题目
6.5 FTP(文件传输协议)
引入
文件传输协议FTP的常见应用
1.在计算机间传输文件,尤其是用于批量传输文件
2.让Web设计者将构成网站内容的大量文件批量上传到他们的Web服务器
FTP的基本工作原理
1.建立控制连接通道
[控制连接在整个会话期间一直保持打开,传送FTP相关控制命令]
FTP服务器 持续监听熟知端口号21
FTP客户 随机选择一个临时端口号,与FTP服务器建立TCP连接
这条TCP连接用于FTP客户与服务器之间传送FTP相关控制命令
2.来自FTP客户的通知
FTP客户有数据要传输时,FTP客户通过命令通道,告知FTP服务器来与自己的另一临时端口建立TCP连接,建立数据通道【主动模式】
FTP客户有数据要传输时,FTP客户通过命令通道,告知FTP服务器开启某个临时端口被动等待TCP连接,建立数据通道【被动模式】
3.建立数据连接通道
【数据连接用于文件传输,在每次传输文件时才建立,传输结束就关闭】
主动模式(建立数据通道时,FTP服务器主动连接FTP客户)
被动模式(建立数据通道时,FTP服务器被动等待FTP客户的连接)

可以这样理解主/被动模式
主:你和快递员说,必须送货上门
被:你和快递员说,先放在驿站,等会我自取
主被动一说是对于服务器而言的
客户都是在下达命令
6.6 电子邮件
引入
介绍电子邮件
电子邮件系统
采用C/S方式
组成构件:用户代理 邮件服务器 电子邮件所需的协议
用户代理(又称电子邮件客户端软件):用户与电子邮件系统的接口
邮件服务器:发送和接收邮件,同时负责维护用户的邮箱的服务器
电子邮件所需的协议:分为邮件发送协议(如:SMTP)和邮件读取协议(如:POP3,IMAP)
邮件发送和接收的过程
邮件发送的SMTP(简单邮件传送协议)
基本工作原理
以发送方邮件服务器给接收方邮件服务器发送待转发的邮件为例
发送方邮件服务器周期性地扫描邮件缓存
if 存在待转发的邮件
发送方的服务器与接收方邮件服务器进行TCP连接(端口号25)
STMP客户(处在发生方邮件服务器)给接收方发送14种SMTP命令
STMP服务器(处在接收方邮件服务器)回复21种STMP应答
else
下一周期继续扫描邮件缓存
电子邮件的信息格式
电子邮件的信息格式不是有SMTP定义,而是RFC标准文档所规定
电子邮件{
信封{ 邮件系统从首部自动提取相关信息到信封 }
内容{ 首部 主体 }
}
SMTP的缺点及解决
SMTP协议只能传输ASCII码文本数据
不能满足传输多媒体文件邮件(音、视频,图片)
为解决smtp无法传输非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME
MIME对接收双方的STMP类的邮件中的非ASCII码文本进行格式转化,将非ASCII码文本转换为ASCII码文本
使得SMTP协议上也可以传输非ASCII码文本数据
邮件接收的协议 POP3 IMAP4
两者均是邮件读取协议,均是基于TCP连接的C/S方式
{
POP3
采用 TCP的110端口
简单,功能有限
用户只能在服务器上以下载并删除方式或下载并保留方式进行操作
不允许用户在邮件服务器上管理自己的邮件
IMAP
采用TCP的143端口
功能强大,是一个联机协议
用户在自己的计算机上就可以操控邮件服务器中的邮箱
}
基于万维网的电子邮件
6.7 WWW(万维网)
介绍WWW
WWW是一个大规模的,联机式的信息储藏所,是运行在因特网上的一个分布式应用
为了方便的访问世界范围的文档,万维网使用URL来指明因特网上任何种类“资源”的位置
统一资源定位符URL:
{
由协议 主机 端口 路径 四部分组成
}
<协议>://<主机>:<端口>/<路径>
如:http://www.hnust.cn:80/ggtz/119945.html
万维网的文档
前端三件套 HTML,CSS,JS。。。。
超文本传输协议HTTP
HTTP是面向文本的,其报文中的每一个字段都是一些ASCII码串,且每个字段的长度都不确定
HTTP定义了浏览器(即万维网客户进程)如何向万维网服务器请求万维网文档(前端页面),以及万维网服务器怎么把万维网文档传给浏览器
HTTP1.0
采用非持续连接方式
浏览器每要请求一个文件都要与服务器建立一次TCP连接,且收到响应后便立即关闭TCP连接
由下图可知,每次请求都要2RTT+文档的传输时延
为了减小时延,浏览器同时向服务器建立多个并行的TCP连接同时请求多个对象
大大加重了服务器端的负担
注意:
TCP三报文握手建立连接时
第三个报文(TCP普通确认报文)的数据载荷部分就是HTTP请求报文

HTTP1.1
采用持续连接方式
万维网服务器发送了响应后,仍保持这条连接,使同一个客户和和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文
为提高效率,HTTP1.1还可以使用流水线方式工作
连续发,连续收。。节省很多个RTT时间
HTTP的报文格式
HTTP请求报文格式
请求行
方法:主要是GET和POST两种
URL:资源所在位置
版本:http/1.0 http/1.1
首部行
键值对形式存在的相关信息
空行
实体主体(通常不用)
HTTP响应报文格式
状态行
版本:http1.0 or http1.1
状态码:服务器的返回给用户的消息类型的符号代表意
短语:对出现的状态码进行解释
首部行
相关信息
空行
实体主体(有些响应把稳不用)
Cookie
引入
早期:人们上网就是看看新闻,浏览咨询等并不需要登录,保持登录状
态等。因此HTTP被设计成一种无状态的协议,简化服务器的设计
现在,各大购物平台,视频平台都要登录,确认并维持身份
需要万维网服务器能够识别用户
Cookie提供一种机制使得万维网服务器能够“记住”用户,而无需用户主动提供用户标识信息
也就是说:Cookie是一种对无状态的HTTP进行状态化的技术
举例说明
如图
题目

