应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文,比方说,交换的报文类型,如请求报文和响应报文;各种报文类型的语法,如报文中的各个字段及其详细描述;字段的语义,即包含在字段中的信息的含义;进程何时、如何发送报文及对报文进行响应的规则
为什么有了IP地址,还需要域名?
域名 — 用字符表示的网络主机名,是一种主机标识符;
IP地址 — 数字型,难于记忆与理解;域名 — 字符型,直观,便于记忆与理解;
IP地址 — 用于网络层;域名 — 用于应用层;IP地址与域名都应该是全网唯一的,并且它们之间具有对应关系。
域名结构
因特网采用了层次树状结构的命名方法。
域名的结构由标号序列组成,各标号之间用点隔开
就是这样的:… . 三级域名 . 二级域名 . *域名
域名服务器
域名系统在设计了层次的域名的同时,提出了与其相对应的域名服务器系统
整个域名系统是以一个大型的分布式数据库的方式工作的
大多数具有Internet连接的组织都有一个域名服务器,每个服务器包含连向其他域名服务器的信息,这些服务器形成了一个大的协同工作的域名数据库。
DNS服务器的层次是与域名的层次相适应的
每一个域名服务器都只对域名体系中的一部分进行管辖
一个根服务器在这个层次体系的顶部,它是顶层域的管辖者
DNS服务器的层次对应着域名的层次,但是这两者并不是对等的。一个公司网络或校园网可以选择将它所有的域名都放在一个域名服务器上,也可以选择运行几个域名服务器。
根域名服务器
最高层次的服务器,也是最重要的域名服务器。所有的根域名服务器知道所有的*域名服务器的域名和IP地址。
不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
共有13个不同IP地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。
a.rootservers.net
b.rootservers.net
…
m.rootservers.net
需要注意的是,在许多情况下,根域名服务器并不直接把待查询的域名直接转换成IP地址(根域名服务器也没有存放这种信息),而是告诉本地域名服务器下一步应当找哪一个*域名服务器进行查询。
域名解析
将域名转换为对应的IP地址的过程称为域名解析。
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
域名解析的两种方式(比较重要哦,我们期末还考了)
迭代查询
递归查询
DNS缓存
一个DNS服务器接收一个DNS回答时,将回答中的信息缓存在本地。
主机名与IP地址间的映射不是永久的,所以DNS服务器在一段时间后(通常设置为两天)丢弃缓存的信息
本地DNS server也可以缓存TLD server的IP地址,因而允许本地DNS绕过查询链中的根DNS服务器
电子邮件协议
在电子邮件程序向邮件服务器中发送邮件时,使用的是简单邮件传输协议SMTP
在电子邮件程序从邮件服务器中读取邮件时,可以使用邮局协议POP3或交互式邮件存取协议IMAP,它取决于邮件服务器支持的协议类型
发送和接收电子邮件的步骤
发件人调用 PC 机中的用户代理撰写和编辑要发送的邮件。
发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器,
SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
运行在接收方邮件服务器中的SMTP服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。
SMTP 通信的三个阶段
1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
2. 邮件传送
3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
文件传输协议FTP
提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 的可靠的传输服务。
FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
FTP的工作步骤
打开熟知端口(端口号为 21),使客户进程能够连接上。等待客户进程发出连接请求。启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
FTP 使用的两个 TCP 连接
控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
两个不同的端口号
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。