应用层

应用层是最靠近用户的一层,参考模型中唯一的一层,不需为它的上层服务,向应用程序(TCP/IP模型外)提供网络通信。

网络应用程序可被分为两大类:

  • 直接网络应用程序:Browser, e-mail, FTP, Telnet
  • 间接网络应用程序:Word , resource manager, (通过 Redirector,置于应用中的一种透明的小软件,将服务转到直接网络应用)

下面介绍几种应用。

域名系统DNS

在互联网中,使用IP地址作为机器的绝对地址,是行不通的,有两个原因:

  1. 计算机可能常常地更换IP地址
  2. IP地址难于记忆

但是,我们的报文里面没有域名。ARPANET时代,有一个文件hosts.txt,列出了当时网络上所有的主机和它们对应的IP地址,现在则通过 DNS(Domain Name System) 去查询。

DNS的使用方法:

  1. 为了将一个名字映射为IP地址,应用程序调用一个叫解析器( resolver )的库过程,把名字作为参数传递给这个过程
  2. 解析器发送一个UDP分组给本地DNS服务器,它会负责查找该名字,然后将对应的IP地址返回给解析器
  3. 解析器返回结果给应用程序,然后应用程序即可开始工作了

DNS 名字空间:

  • 互联网被分成200多个顶级域
  • 每个域被分成若干子域,子域还可进一步划分
  • 一个叶子节点可以只包含一台主机,也可以代表一个公司,包含上千台主机

顶级域有两种(需要向 ICANN 申请)

  • 通用域( generic ):.com.edu
  • 国家域( country ):.uk.cn

二级域名:只需要向顶级域名的注册机构申请缴费即可,比如 .edu.cn.gov.cn

域名:

  • 每个域的名字是:从它向上到根(未命名)的路径,各个部分间用圆点隔开
  • 域名可以是绝对的,也可以是相对的,绝对域名总是以圆点结束,比如 eng.sun.com.
    • 相对域名必须在一定的上下文环境中被解释出来才有意义,从而唯一地确定其真实的含义
    • 绝对域名和相对域名都引用了域名树中一个特定的节点,以及它下面的所有节点
  • 域名是大小写无关的
  • 各组成部分的名字最多有 63 个字符长,整个路径不超过 255 个字符
  • 每个域自己控制它下面的域(子域)的划分
  • 要创建一个新的域,创建者必须得到该新域的上级域的许可,一旦创建成功,该新域可以创建子域,而无需征得上级域的同意
  • 域名遵循的是组织的边界而不是物理网络的边界

每个域,无论是单主机域还是顶级域,都可以有一组跟它相关联的资源记录( Resource Records ),一个资源记录包括5个部分:

  1. 域名(Domain name):指出这条记录适用于哪个域
  2. 生存期(Time to Live):指示该条记录的稳定程度
  3. 类别(Class):对于互联网信息,它总是 IN
  4. 类型(Type):指出了这是什么类型的记录(见下表)
  5. 值(Value):就是 IP 地址

资源记录 类型

屏幕截图 2020-12-22 150932

域名服务器负责储存资源记录。整个互联网有很多域名服务器,但只有13 根域服务器,负责存储所有顶级域名的名字和IP,它们的名字分别是(a to m.rootservers.net)

域名解析的过程如下:

  1. 当一个解析器收到一个域名查询时,它将该查询传递给本地的一个域名服务器
  2. 如果待查询的域名落在该名字服务器的管辖范围内,它将返回权威资源记录(来自于管理该记录的权威机构,因此总是正确的)
  3. 如果被请求的域名是远程的,且本地没有关于它的信息,那么本地名字服务器向根域服务器发送一条查询此域的消息
    • 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
    • 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

域名解析

  • 优化方法:高速缓存—减少查询环节,提高效率
  • 缺点:缓存中的内容不具有权威性

email

电子邮件系统通常由两部分组成:

  • 用户代理(UA):让用户能够阅读和发送邮件
  • 消息传输代理 (MTA):将消息从源端送到目标端

email

电子邮件消息格式:

  1. ASCII 电子邮件信息通常采用 RFC 822
  2. MIME – the Multipurpose Internet Mail Extensions,多用途互联网邮件扩展,可传输 非 ASCII 码(Base64 编码)

传输则使用 SMPT (Simple Mail Transfer Protocol),SMPT 只能传输ASCII消息(所以需要用 Base64编码),并且邮件是明文

屏幕截图 2020-12-22 153122

在ISP的一台机器上运行一个消息传输代理(message transfer agent); 这台机器可以一天24小时运行,随时都可以接收邮件,然后用户通过 POP3 (Post Office Protocol Version 3)IMAP (InternetMessage Access Protocol) 拷贝邮件。

屏幕截图 2020-12-22 153347

WWW

万维网(World Wide Web)的组成部分:

  • 资源,web页面,Resource (html)
  • 统一资源定位器:URL(Uniform Resource Locators)
  • 通信协议HTTP

屏幕截图 2020-12-22 153707

客户端:

  1. 浏览器检查URL (读取浏览器的输入)
  2. 浏览器向 DNS 服务器询问域名的IP地址
  3. DNS 返回对应的 IP 地址
  4. 浏览器和Web服务器建立TCP 连接(在端口 80)
  5. 浏览器发送请求,要求获取文件products.html
  6. Web服务器返回被请求的文件
  7. TCP 连接被释放
  8. 浏览器解释显示下载到本地的文件

客户端:

  1. 接收来自客户的TCP连接
  2. 获取所需文件的名字
  3. 从本地磁盘上获取文件(静态页面)
  4. 将文件返回给客户
  5. 释放TCP连接

Cookie

  • 一个小于4kB的命名串
  • 当客户请求时,web服务器除了应答外,附送一个cookie,存储在客户机磁盘
  • 客户再访问同一个web服务器时,同时发送cookie
  • 服务器辨识出该用户,并得到它关心的一些信息

文件传输

  • FTP:一种可靠的面向连接的服务,采用TCP在支持FTP的系统间传输文件,它支持双向二进制文件和ASCII文件传输(20端口负责控制,21端口传输数据)
  • TFTP:一种无连接的不可靠的服务,采用UDP在支持TFTP的系统间传输文件。

远程登陆

Telnet:

  • 本地用户在本地终端对远地系统进行远程登陆,该远程登陆的内部视图实际上是一个TCP连接(服务器端口:23);
  • 将本地终端上的键盘输入逐键传到远地机;
  • 将远地机输出送回本地终端

SSH 为 Secure Shell,在22端口,为远程登陆提供安全的传输。