1.3 应用层
应用层位于TCP/IP最高层,该层的协议主要有以下几种:
(1)远程登录协议(Telnet)。
(2)文件传送协议(file transfer protocol,FTP)。
(3)简单邮件传送协议(simple mail transfer protocol,SMTP)。
(4)域名系统(domain name system,DNS)。
(5)简单网络管理协议(simple network management protocol,SNMP)。
(6)超文本传送协议(hyperText transfer protocol,HTTP)。
(7)邮局协议(POP3)。
其中,从网络上下载文件时使用的是FTP协议,上网游览网页时使用的是HTTP协议;在网络上访问一台主机时,通常不直接输入IP地址,而是输入域名,用的是DNS服务协议,它会将域名解析为IP地址;通过outlook发送电子邮件时,使用SMTP协议,接收电子邮件时会使用POP3协议。
1.3.1 DNS
因特网上的主机通过IP地址来标识自己,但由于IP地址是一串数字,人们记住这个数字去访问主机比较难,因此,因特网管理机构又采用了一串英文来标识一个主机,这串英文是有一定规则的,它的专业术语叫域名(Domain Name)。对用户来讲,用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言两者是等价的。例如,微软公司的Web服务器的域名是www.microsoft.com,不管用户在浏览器中输入的是www.microsoft.com还是Web服务器的IP地址,都可以访问其Web网站。
域名由因特网域名与地址管理机构(Internet Corporation for Assigned Names and Numbers,ICANN)管理,这是为承担域名系统管理、IP地址分配、协议参数配置,以及主服务器系统管理等职能而设立的非营利机构。ICANN为不同的国家或地区设置了相应的顶级域名,这些域名通常都由两个英文字母组成。例如,.uk代表英国、.fr代表法国、.jp代表日本。中国的顶级域名是.cn,.cn下的域名由CNNIC进行管理。
域名只是某个主机的别名,并不是真正的主机地址。主机地址只能是IP地址,为了通过域名来访问主机,就必须实现域名和IP地址之间的转换。这个转换工作就由域名系统(Domain Name System,DNS)来完成。DNS是因特网的一项核心服务。它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP数字串。一个需要域名解析的用户先将该解析请求发往本地的域名服务器,如果本地的域名服务器能够解析,就直接得到结果;否则本地的域名服务器将向根域名服务器发送请求;依据根域名服务器返回的指针再查询下一层的域名服务器;以此类推,最后得到所要解析域名的IP地址。
1.3.2 端口的概念
我们知道,网络上的主机通过IP地址来标识自己,方便其他主机上的程序和自己主机上的程序建立通信。主机上需要通信的程序有很多,那么如何才能找到对方主机上的目的程序呢?IP地址只是用来寻找目的主机的,最终通信还需要找到目的程序。为此,人们提出了端口这个概念,它就是用来标识目的程序的。有了端口,一台拥有IP地址的主机可以提供许多服务,比如Web服务进程用80端口提供Web服务、FTP进程通过21端口提供FTP服务、SMTP进程通过23端口提供SMTP服务,等等。
如果把IP地址比作一间旅馆的地址,那么端口就是这家旅馆内某个房间的房号。旅馆的地址只有一个,但房间却有很多个,因此端口也有很多个。端口是通过端口号来标记的,端口号是一个16位的无符号整数,范围是从0到65535(216-1),并且前面1024个端口号是留作操作系统使用的,我们自己的应用程序如果要使用端口,通常用1024后面的整数作为端口号。