第二章 应用层(一) 应用层概览

前言

  该章节主要是应用层的笔记,包括HTTP超文本传输协议、FTP文件传输协议、SMTP邮件协议、DNS服务、TCP和UDP套接字。

应用层协议原理

  这一小节的名字是这么叫的,但实际上是应用层的概览,应用层的东西,首先应当从网络应用程序的体系结构开始。

  网络应用程序的体系结构:一种是客户机/服务器体系结构(client-server architecture),及有一个总是打开的主机称为服务器,它服务于其他称为客户机的主机请求,我们经常玩的网络游戏大部分都是这种结构。另一种是P2P体系结构(P2P architecture),不用总是打开服务器,任意间断连接的主机对——称为对等方,直接相互通信,这些对等方大部分是家庭主机,最具体现P2P结构的应用就是大家耳熟能详的迅雷了。

  那么问题来了,不同的程序对网络有不同的需求。举个例子,迅雷下载肯定是要求越快越好的,而这个快其实说的是吞吐量的大小。而网络游戏我们则希望它不要有卡顿,这个卡顿则是信息不要有延时,也就是有个定时保证。当然啦还有使用网银的时候我们希望信息是安全的之类。下面还是列出一个表格,更直观的看这些对网络的不同要求:

  相关术语 说明 此要求较高的应用
可靠性 可靠数据传输(reliable data transfer)、容忍丢失的应用(loss-tolerant application) 及保证分组不会损坏,不会丢失 邮件传输、文件传输、远程主机访问
吞吐量

敏感应用(bandwidth-sensitive application)、弹性应用(elastic application)

及单位时间内能快速的传输分组 多媒体应用
定时   及传输分组到对方接收分组的间隔越短越好 因特网电话、交互式游戏
安全性   及传输的分组不会被第三方获取,或者获取了也不能解析信息 银行方面的web应用

  程序对运输服务的要求就这样了。然而在网络中还不是直接运输这些数据,而是把这些数据给一个应用程序接口(Application Programming Interface),也就是大家熟知的套接字(socket)。然而根据可靠性要求的不同,所使用的套接字分为两种,TCP套接字和UDP套接字,然后根据安全性要求的不同,我们还得考虑是否给TCP套接字添加SSL代码等等。

  下面给出我们常用应用的应用层协议和运输层协议的概览:

  应用层协议 对应运输层协议
电子邮件 SMTP[RFC 2821] TCP
远程终端访问者 Telnet[RFC 854] TCP
Web HTTP[RFC 2616] TCP
文件传输 FTP[RFC 959] TCP
流媒体 HTTP、RTP TCP或者UDP
因特网电话 SIP、RTP 通常是UDP

  由于应用层部分的东西感觉比较重要,而且实用,还是分几篇来做笔记吧,实用的东西会多记录些,并用相关的软件做下实验。

你可能感兴趣的:(应用)