应用层协议是多种多样的,比如 DNS、FTP、Telnet、SMTP、HTTP、RIP、NFS
一、DNS
DNS (Domain Name Service 域名服务) 协议基于 UDP,使用端口号 53。
由数字组成的 IP 地址很难记忆,所以我们上网使用网站 IP 地址的别名——域名。实际使用中,域名与 IP 地址是对应的,这种对应关系保存在DNS 服务器之中。
在浏览器中输入一个域名后,会有 DNS 服务器将域名解析为对应的 IP 地址。注意这和网络层的 ARP 协议的不同之处:DNS 提供的是域名与 IP 地址的对应关系,而 ARP 提供的是 IP 地址和 MAC 地址的对应关系。
DNS 服务器
DNS 服务器是个分层次的系统:
- (1)根 DNS 服务器 :全世界共有 13 台根域名服务器,编号 A 到 M,其中大部分位于美国。
- (2)顶级(TLD)DNS 服务器 :负责如 com 、org 、edu 等顶级域名和所有国家的顶级域名(如 cn 、uk 、jp )。
- (3)权威 DNS 服务器 :大型组织、大学、企业的域名解析服务。
- (4)本地 DNS 服务器 :通常与我们主机最近的 DNS 服务器。
在 linux 系统中,可以用 host 命令 进行 DNS 查询,查看一个指定域名的 IP
二、FTP
FTP (File Transfer Protocol 文件传输协议) 基于 TCP,使用端口号 20(数据)和 21(控制)。
它的主要功能是减少或消除在不同操作系统下处理文件的不兼容性,以达到便捷高效的文件传输效果。
- FTP 只提供文件传输的基本服务,它采用 客户端—服务器 的方式,一个 FTP 服务器可同时为多个客户端提供服务。
- 在进行文件传输时,FTP 的客户端和服务器之间会建立两个 TCP 连接:21 号端口建立控制连接,20 号端口建立数据连接。
- FTP 的传输有两种方式:ASCII 传输模式和二进制数据传输模式。
三、HTTP
HTTP (HyperText Transfer Protocol 超文本传输协议) 基于 TCP,使用端口号 80 或 8080。
每当你在浏览器里输入一个网址或点击一个链接时,浏览器就通过 HTTP 协议将网页信息从服务器提取再显示出来,这是现在使用频率最大的应用层协议。
这个原理很简单:
- 点击一个链接后,浏览器向服务器发起 TCP 连接;
- 连接建立后浏览器发送 HTTP 请求报文,然后服务器回复响应报文;
- 浏览器将收到的响应报文内容显示在网页上;
- 报文收发结束,关闭 TCP 连接。
HTTP 报文会被传输层封装为 TCP 报文段,然后再被 IP 层封装为 IP 数据报。HTTP 报文的结构:
- (1)开始行:用于区分是请求报文还是响应报文,请求报文中开始行叫做请求行,而响应报文中,开始行叫做状态行。在开始行的三个字段之间都用空格分开,结尾处 CRLF 表示回车和换行。
- (2)首部行:用于说明浏览器、服务器或报文主体的一些信息。
- (3)实体主体:请求报文中通常不用实体主体。
请求报文的方法字段是对所请求对象进行的操作,而响应报文的状态码是一个 3 位数字,分为 5 类 33 种:
- 1xx 表示通知信息,如收到或正在处理。
- 2xx 表示成功接收。
- 3xx 表示重定向。
- 4xx 表示客户的差错,如 404 表示网页未找到。
- 5xx表示服务器的差错,如常见的 502 Bad Gateway。
时间: 2024-10-29 19:06:18