计算机网络之应用层

应用层规定了应用进程在通信时所遵循的协议。本文主要介绍 DNS ,FTP ,HTTP 和 DHCP 这几种协议。

DNS

域名解析系统负责把域名翻译成对应的 IP 地址,并且是一个分布式系统。

DNS

域名与 IP 地址的对应关系存在 DNS 服务器中,这些服务器都有自己的 IP 地址,DNS 服务器构成了一个分级的树状体系,每个节点都是一个 DNS 服务器,每个服务器都有自己的 IP 地址。

  1. 根域名服务器:解析顶级域名;
  2. 顶级域名服务器:解析二级域名;
  3. 权限域名服务器:解析区内的域名;
  4. 本地域名服务器:也称为默认域名服务器。可以在其中配置高速缓存。

计算机根据 DNS 服务器的反馈,依次与下一层的 DNS 服务器建立通信。计算机经过递归查询,最终和末端节点通信,并获得 IP 地址。

FTP

FTP 在运输层使用 TCP,并且需要建立两个并行的 TCP 连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,而数据连接在数据传送完毕之后就关闭。控制连接使用端口号 21,数据连接使用端口号 20。

FTP

WWW

简单介绍 HTTP 协议

格式

HTTP 协议是一次 request-responce 交流,客户端发起请求,服务器回复客户端。请求与回复的格式主要分成三个部分:起始行只有一行,它包含请求或者回复的最重要的信息。头信息可以是多行,每一行都是一对键值对。主体包含具体的请求或者回复的资源。

请求

1
2
GET /index.html HTTP/1.1
Host: www.example.com

起始行中表明了请求方法,请求资源的路径,以及 HTTP 协议的版本。
头信息中表明了服务器的地址和端口。HTTP 的默认端口是 80 端口。

回复

1
2
3
4
5
HTTP/1.1 200 OK
Content-type: text/plain
Content-length: 12

Hello World!

起始行中表明了 HTTP 的版本,状态码,已经状态描述。
头信息中表明了主体包含资源的类型,以及主体部分的长度。
主体中是一段普通的文本。

无状态

早期的 HTTP 协议,每次 request-response 都需要重新建立 TCP 连接。所以 HTTP 通信是无状态的。后期 HTTTP 协议允许了 TCP 连接复用,但依然保持无状态特性。

DHCP

DHCP 提供了即插即用的连网方式,用户不再需要去手动配置 IP 地址等信息。DHCP 配置的内容不仅是 IP 地址,还包括子网掩码、默认路由器 IP 地址、域名服务器的 IP 地址。

DHCP 服务器的首要任务是分配 IP 地址。分配的 IP 需要满足下面两点。

  1. 地址合法,即对应该局域网的IP地址和子网掩码。
  2. 地址空闲,同一网络下没有其他设备使用该地址。

通信过程

DHCP 协议的底层是 UDP 协议,除了点对点通信,UDP 协议还允许广播通信。

  1. Discovery:客户机发广播,搜寻 DHCP 服务器。
  2. Offer:DHCP 服务器发出邀请,提供一个可用的 IP 地址。
  3. Request:客户机正式请求使用该 IP 地址。
  4. Acknowledge:DHCP 服务器确认,并提供其他配置参数。

常用端口与协议

应用层协议 端口号 运输层协议
DNS 53 UDP
FTP 控制连接 21,数据连接 20 TCP
DHCP 67 和 68 UDP
HTTP 80 TCP
SMTP 25 TCP
POP3 110 TCP
IMAP 143 TCP

相关文章