首页 > 代码库 > TCP-IP之应用层协议

TCP-IP之应用层协议

应用层协议是多种多样的,比如 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。

 

TCP-IP之应用层协议