1
0
mirror of https://github.com/Didnelpsun/CS408.git synced 2026-02-04 19:34:19 +08:00
Files
CS408/Computer-Network/5-application-layer.md
2021-08-01 23:12:36 +08:00

1.5 MiB
Raw Blame History

应用层

应用层对应用程序的通信提供服务。

传输层功能:

  1. 文件传输、访问和管理。
  2. 电子邮件。
  3. 虚拟终端。
  4. 查询服务与远程作业登陆。

网络应用模型

C/S模型

客户/服务器模型中服务器提供计算服务的设备,而客户指请求计算服务的主机。

服务器的特点:

  1. 永久提供服务。
  2. 永久访问地址/域名。

客户机的特点:

  1. 与服务器通信,使用服务器提供的服务。
  2. 间歇接入网络。
  3. 可能使用动态IP地址。
  4. 不能直接与其他客户机通信。

应用Web、FTP、电子邮件等。

P2P模型

对等模型也可以看作C/S模型的变形

对等模型的特点:

  1. 不存在永远在线的服务器。
  2. 每个主机既提供服务也可以提供服务。
  3. 任意端系统或结点之间可以直接通信。
  4. 结点间歇接入网络。
  5. 结点可能改变IP地址。
  6. 扩展性好。
  7. 网络健壮性强。

DNS

域名系统将域名转换为IP地址。域名方便记忆。

域名

域名从右到左级别降低,最右边的是顶级域名,如<www.baidu.com>com就是顶级域名baidu就是二级域名www就是三级域名。其实com后面应该有一个点这个点就是根。

顶级域名分为:

  • 国家顶级域名cnus等。
  • 通用顶级域名com商业组织net信息服务提供机构org非盈利机构gov政府int国际组织aero航空企业museum博物馆travel旅游业等。
  • 基础结构域名/反向域名arpa。

二级域名分为:

  • 类别域名ac科研机构com盈利机构edu教育机构net信息服务提供机构org非盈利机构gov政府mil国防机构
  • 行政区域名用于省市如bj等。
  • 自主注册域名,要求全球唯一。

DNS服务器

  • 根域名服务器知道所有顶级域名服务器域名与IP地址一共13个根域名服务器A到M。
  • 顶级域名服务器:管理该顶级域名服务器注册的所有二级域名。
  • 权限域名服务器:负责一个区(域)的域名服务器。
  • 本地域名服务器当一个主机发出DNS查询请求时这个请求报文就发送给本地域名服务器是最近的服务器。

域名解析过程

  • 递归查询:本地域名服务器查找根域名服务器,根域名服务器查找顶级域名服务器,顶级域名服务器查找权限域名服务器,最后得到的结果再由权限域名服务器到顶级域名服务器到根域名服务器到本地域名服务器最后到主机。(靠别人)
  • 迭代查询:本地域名服务器查找根域名服务器,本地域名服务器查找顶级域名服务器,本地域名服务器查找权限域名服务器。(靠自己)

域名解析过程

为了解决查询速度过慢高速缓存可以存储域名与IP地址值。

文件传送协议

分为文件传送协议FTP和简单文件传送协议TFTP。

FTP协议

  • 提供不同种类主机系统之间的文件传输能力。
  • FTP基于C/S模型。用户通过一个客户机程序连接至远程计算机上运行的服务器程序。依照FTP协议提供服务进行文件传输的计算机就是FTP服务器连接FTP服务器遵循FTP协议与服务器传送文件的电脑就是FTP服务端。

FTP协议工作原理

  • 登录(用户名+密码或匿名登录)。
  • 使用TCP协议提供可靠传输。
  • 服务器进程1个主进程与n个从属进程提供服务。

为什么有匿名登陆对于一些公共服务器来说增加验证阶段就是增加资源开销减少验证阶段就可以节省资源来更好地服务使用特殊用户名anonymous。

主进程和从属进程的区别:主进程是打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配各从属进程。从属进程则是单独为这些数据服务。

FTP协议工作原理

FTP协议连接流程

  • 客户端和服务器端先建立TCP连接端口是21称为控制连接。
  • 然后看情况是主动建立连接还是被动建立连接。
  • 主动建立连接是指服务器端主动发送请求和客户端进行连接此时端口号固定是20。
  • 被动连接是指客户端发送请求和服务器端建立数据传送连接此时端口号是不确定有两者协商得到一般大于1024。
  • 数据传输完成之后,数据连接断开,控制连接继续保持,直至两边发送断开请求。

数据连接与控制连接都属于从属进行,控制连接始终保持,数据连接只保持一会。

FTP协议传输模式

  • 文本模式ASCII模式以文本序列传输数据。
  • 二进制模式Binary模式以二进制序列传输数据。

TFTP协议

TFTP协议了解即可。

特点

  • 简单文件传送协议端口号为69。
  • 每次传输的数据报文中包含512字节最后一次可不足512字节。
  • 数据报按序编号从1开始。
  • 支持ASCII码或二进制传输。
  • 可对文件进行读写。
  • 首部简单。
  • 使用C/S模型。
  • 使用UDP数据报。

优点

  • 适用于只支持UDP协议的环境可以同时向许多机器下载。
  • 占用的内存很小且很容易实现,对于小型计算机或特殊设备非常有利。

缺点

  • 需要自己实现差错改正。
  • 只支持文件传输而不支持交互。
  • 没有很大的命令集,无法列目录,也无法用户身份鉴定。

TFTP协议工作流程

  • 客户进程发送一个读/写请求报文给TFTP服务器进程端口号为69。
  • TFTP服务器选择另一个端口和客户进程通信。
  • 传输文件长度若正好是512的整数倍则传输完毕后还要发送一个只含有首部而无数据的报文。
  • 传输文件长度若不是512的整数倍则最后一个报文数据部分不满512字节正好作为文件结束标志。

TELNET协议

远程终端协议终端仿真协议让用户使用TCP连接登录到远地主机。其定义了数据和命令应该如何通过互联网即网络虚拟终端NVT。

现在这个协议很少使用了。

WWW与HTTP

WWW

  • 万维网WWW是一个大规模联机式的信息储藏所是无数个网络结点与网页的集合。
  • 是以C/S方式工作浏览器就是客户端文档所在的主机允许服务器程序。
  • 用户可以点击超链接获取资源是通过超文本传输协议HTTP传输。
  • 万维网使用超文本标记语言HTML使得网页设计者可以从一个页面跳转到另一个页面并能显示页面。

URL

统一资源定位符唯一标识资源,一般形式是:<协议>://<主机>:<端口>/<路径>。

URL不区分大小写。

URL可以使用HTTP也可以使用FTP。

HTTP协议

  • 超文本传输协议定义了浏览器怎样向万维网服务器请求文档,以及服务器如何传输文档。
  • 服务器监听TCP运行于80端口。
  • HTTP可以不一次性下载完页面的所有资源可以只下载文本部分其他音频视频等待用户下一步请求之后再传输。

HTTP协议工作流程

  1. 浏览器分析URL。
  2. 浏览器向DNS请求解析IP地址。
  3. DNS解析出IP地址。
  4. 浏览器与服务器建立TCP连接。
  5. 浏览器发出取文件命令。
  6. 服务器响应。
  7. 释放TCP连接。
  8. 浏览器显示。

HTTP协议的特点

  1. 无状态即无法记忆用户如果需要记忆就需要使用Cookie是存储在用户主机的文本协议。
  2. HTTP协议采用TCP连接但是HTTP协议本身无连接即交换HTTP报文之前不需要先建立HTTP连接。

HTTP协议的连接

HTTP连接包括

  • 持久连接Keep-alive
    • 非流水线。
    • 流水线。
  • 非持久连接Close。

HTTP非持久连接

时间连接较长每次需要2RTT+文档接收时间。

HTTP持久连接

这个图片是非流水线式,如果是流水线则一次性可以发送多个请求。

HTTP协议报文

HTTP报文分为请求报文和响应报文因为其面向文本所以报文中的每一个字段都是ASCII码串。

HTTPformat

  • 请求报文与响应报文的第一行叫做开始行,用于互相区分。
  • 请求报文的方法是指命令,就是对所请求的对象进行什么操作,如获取/删除等等。
  • URL就是资源标识符。
  • 版本是指使用的是什么版本的HTTP协议。
  • CRLF标识一行的结束。同时在整个首部行结束时为了区别首部行和实体主体还会有一行单独的CRLF。
  • 首部行用于说明浏览器、服务器和报文主体的一些信息。
  • 状态码,表明服务器当前的状态:
    • 1xx表示通知信息的如请求收到了或正在处理。
    • 2xx表示成功如接受或知道了。
    • 3xx表示重定向如要完成请求还必须采取进一步的行动。
    • 4xx表示客户的差错如请求中有错误的语法或不能完成。
    • 5xx表示服务器的差错如服务器失效无法完成请求。

电子邮件

电子邮件格式

  • 信封:收件人的邮箱等。
  • 内容:
    • 首部:发送人的邮箱;主题等。
    • 主体:邮件内容。

电子邮件系统组成结构

emailstructure

用户代理的四个功能:

  • 撰写就是给用户编辑信件的环境。
  • 显示就是可以看到自己写的和自己收的信件内容。
  • 处理就是对信件进行操作,包括删除,打印,转发等等。
  • 通信就是可以将邮件发送到邮件服务器当中,同时可以从邮件服务器当中读取邮件。

邮件服务器的功能:

  • 邮件服务器端的发送和接受是指从自己的用户代理处接收邮件,之后向对面的邮件服务器发送邮件。
  • 邮件服务器的报告邮件发送结果就是投递是否成功这种情况。
  • 邮件服务器既可以作为客户端又可以作为服务器端使用的是C/S方式。

协议:

  • 发邮件用的是SMTP。
  • 收邮件的是POP3或者IMAP。

SMTP协议

简单邮件传送协议规定了两个互相通信的SMTP进程之间应该如何交换信息。

建立在TCP连接上使用的端口号为25。

使用C/S模型负责发送邮件的SMTP进程就是SMTP客户负责接收邮件的进程就是SMTP服务器。

这里STMP客户和服务器不是固定死的可以也可以成为服务器服务器也可以成为用户由发送方和接收方决定发送方就是客户接收方就是服务器。

SMTP协议通信

SMTP规定了14条命令几个字母和21种应答信息三位数字代码+简单文字说明)。具体的过程了解就可以。

令发送方邮件服务器为A接收方邮件服务器为B。

  1. 连接建立:
    1. 发送方将邮件发送给A客户的邮件缓存中。
    2. 每隔一段时间A就会扫描缓存如果有邮件就准备使用SMTP协议与25号发送与B建立TCP连接。
    3. B发出应答信息220 Service ready表明可以发送。
    4. 然后A向B发送一个HELLO命令并附上发送方的主机名。
    5. 如果B有能力接收邮件就应答250 OK。否则就应答421 Service not available。
  2. 邮件发送:
    1. A会向B发送一个命令MAIL FORM:<邮件发送者地址>。
    2. 如果B能接收就返回250 OK如果不能接收就返回不能返回的原因的数字代码和英文说明。
    3. A收到允许发送的命令后会发送多个RCPT命令RCPT TO:<邮件接收者地址>,表示发送给谁。
    4. 如果B接收到并确认就返回250 OK如果B不能接收就返回550 No such user here。
    5. A发送B一个DATA命令表示要开始传输数据了。
    6. B返回354 start mail input;end with <CR><LF>.<CR><LF>。表示B同意传输。
    7. A开始传输数据。
    8. A发送命令<CR><LF>.<CR><LF>表示数据传输已经结束。
    9. B返回250 OK表示明白传输已经结束。
  3. 连接释放:
    1. 邮件发完A发送QUIT命令表示要释放连接。
    2. B返回221表示同意释放TCP连接。

MIME协议

SMTP的缺点

  1. 不能传送可执行文件或其他二进制对象。
  2. 仅限于传送7位ASCII码不能传送其他非英语国家的文字。
  3. SMMTP服务器会拒绝超过一定长度的邮件。

通用因特网邮件扩充协议改善SMTP发送数据的缺点是SMTP的功能性扩展。

MIME协议

MIME协议已经逐渐开始应用到浏览器当中通过对不同文件类型用不同的标识符标识来让浏览器读取通过MIME的相关文件。

POP协议

邮局协议现在一般是POP3。建立于TCP连接上端口号是110使用C/S模型。

工作方式:

  • 下载并保存在服务器。
  • 下载并删除。

IMAP协议

网际报文存取协议比POP协议更复杂。

当客户端打开IMAP服务器邮箱时用户可以看到邮件的首部只有打开某个邮件时才上传到用户本地计算机上。

可以在不同地方不同的计算机上随时处理邮件,还可以只读取邮件的一部分。

DHCP协议

动态主机配置协议用于动态分配$IP$地址、子网掩码与默认网关等,使用客户/服务器方式,客户端与服务端通过广播方式进行交互,基于$UDP$协议(因为没有$IP$地址所以无法建立连接)。

提供即插即用机制,允许地址重用、移动用户加入网络、在用地址续租。

工作流程:

  1. 主机广播“$DHCP$发现报文”,寻找网络中的$DHCP$服务器,从其中获得一个$IP$地址。
  2. $DHCP$服务器收到“$DHCP$发现报文”后,广播“$DHCP$提供报文”,其中包括提供$DHCP$客户机的$IP$地址与配置信息。
  3. $DHCP$客户机收到“$DHCP$提供报文”,接收$DHCP$服务器所提供的相关参数,客户机广播“$DHCP$请求报文”,向$DHCP$服务器请求提供$IP$地址。
  4. $DHCP$服务器广播$DHCP$确认报文,将$IP$地址分配给$DHCP$客户机。