《计算机网络 4》 应用层
计算机网络 之应用层
6.1 域名系统 DNS
6.1.1 域名系统概述
6.1.2 因特网的域名结构
6.1.3 域名服务器
6.2 文件传送协议
6.2.1 FTP 概述
6.2.2 FTP 的基本工作原理
6.2.3 简单文件传送协议 TFTP
6.3 远程终端协议 TELNET
6.4 万维网 WWW
6.4.1 概述
6.4.2 统一资源定位符 URL
6.4.3 超文本传送协议 HTTP
6.5 电子邮件
6.6 动态主机配置协议 DHCP
6.7 简单网络管理协议 SNMP
6.8 应用进程跨越网络的通信
6.8.1 系统调用和应用编程接口
6.8.2 几种常用的系统调用
应用层协议的特点
(1), 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
(2), 应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
6.1 域名系统 DNS
名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
6.1.2 因特网的域名结构 {
因特网采用了层次树状结构的命名方法。
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的结构由标号序列组成,各标号之间用点隔开:
… . 三级域名 . 二级域名 . 顶级域名
各标号分别代表不同级别的域名。
}
FTP 使用的两个 TCP 连接
FTP 客户端 <-- TCP 数据连接 ---> FTP 服务器端
两个不同的端口号 {
(1), 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
(2), 接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
(3), 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
使用两个不同端口号的好处 {
(1), 使协议更加简单和更容易实现。
(2), 在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)
}
6.4 万维网 WWW {
*1 万维网提供分布式服务
万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
*2 万维网的工作方式 {
万维网以客户服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
}
*3 万维网使用何种协议实现各种链接 {
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
}
*4 {
(0) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
}
}
Http, URL {
使用 HTTP 的 URL
使用 HTTP 的 URL 的一般形式 :
http://<主机>:<端口>/<路径>
若再省略文件的<路径>项,则 URL 就指到因特网上的某个主页(home page)。
HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
}
DHCP 动态主机配置协议 {
动态主机配置协议 DHCP 提供了即插即用连网(plug-and-play networking)的机制。
这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与
}
DHCP 使用客户服务器方式 {
需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为 DHCP 客户。
本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool)中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文(DHCPOFFER)。
}
DHCP 中继代理(relay agent) {
并不是每个网络上都有 DHCP 服务器,这样会使 DHCP 服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。
}
**应用进程通过套接字接入到网络**
套接字的作用 {
当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程。
操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。应用进程所进行的网络操作都必须使用这个号码。
通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源。
}
调用 socket 创建套接字
几种常用的系统调用
1. 连接建立阶段
当套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)来指明套接字的本地地址。在服务器端调用 bind 时就是把熟知端口号和本地IP地址填写到已创建的套接字中。这就叫做把本地地址绑定到套接字。
服务器在调用 bind 后,还必须调用 listen(收听)把套接字设置为被动方式,以便随时接受客户的服务请求。UDP服务器由于只提供无连接服务,不使用 listen 系统调用。
服务器紧接着就调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用 accept 的一个变量就是要指明从哪一个套接字发起的连接。
并发方式工作的服务器
图片(略)
系统调用使用顺序的例子
图片
6.1 域名系统 DNS
6.1.1 域名系统概述
6.1.2 因特网的域名结构
6.1.3 域名服务器
6.2 文件传送协议
6.2.1 FTP 概述
6.2.2 FTP 的基本工作原理
6.2.3 简单文件传送协议 TFTP
6.3 远程终端协议 TELNET
6.4 万维网 WWW
6.4.1 概述
6.4.2 统一资源定位符 URL
6.4.3 超文本传送协议 HTTP
6.5 电子邮件
6.6 动态主机配置协议 DHCP
6.7 简单网络管理协议 SNMP
6.8 应用进程跨越网络的通信
6.8.1 系统调用和应用编程接口
6.8.2 几种常用的系统调用
应用层协议的特点
(1), 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
(2), 应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
6.1 域名系统 DNS
名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
6.1.2 因特网的域名结构 {
因特网采用了层次树状结构的命名方法。
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的结构由标号序列组成,各标号之间用点隔开:
… . 三级域名 . 二级域名 . 顶级域名
各标号分别代表不同级别的域名。
}
FTP 使用的两个 TCP 连接
FTP 客户端 <-- TCP 数据连接 ---> FTP 服务器端
两个不同的端口号 {
(1), 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
(2), 接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
(3), 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
使用两个不同端口号的好处 {
(1), 使协议更加简单和更容易实现。
(2), 在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)
}
6.4 万维网 WWW {
*1 万维网提供分布式服务
万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
*2 万维网的工作方式 {
万维网以客户服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
}
*3 万维网使用何种协议实现各种链接 {
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
}
*4 {
(0) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
}
}
Http, URL {
使用 HTTP 的 URL
使用 HTTP 的 URL 的一般形式 :
http://<主机>:<端口>/<路径>
若再省略文件的<路径>项,则 URL 就指到因特网上的某个主页(home page)。
HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
}
DHCP 动态主机配置协议 {
动态主机配置协议 DHCP 提供了即插即用连网(plug-and-play networking)的机制。
这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与
}
DHCP 使用客户服务器方式 {
需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为 DHCP 客户。
本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池(address pool)中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文(DHCPOFFER)。
}
DHCP 中继代理(relay agent) {
并不是每个网络上都有 DHCP 服务器,这样会使 DHCP 服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。
}
**应用进程通过套接字接入到网络**
套接字的作用 {
当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程。
操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。应用进程所进行的网络操作都必须使用这个号码。
通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源。
}
调用 socket 创建套接字
几种常用的系统调用
1. 连接建立阶段
当套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)来指明套接字的本地地址。在服务器端调用 bind 时就是把熟知端口号和本地IP地址填写到已创建的套接字中。这就叫做把本地地址绑定到套接字。
服务器在调用 bind 后,还必须调用 listen(收听)把套接字设置为被动方式,以便随时接受客户的服务请求。UDP服务器由于只提供无连接服务,不使用 listen 系统调用。
服务器紧接着就调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用 accept 的一个变量就是要指明从哪一个套接字发起的连接。
并发方式工作的服务器
图片(略)
系统调用使用顺序的例子
图片