8.1应用层协议概要
- TCP和IP等下层协议是不依赖与上层应用类型、适用性非常广的协议。而应用协议是为了实现某种应用而设计和创造的协议。
- TCP/IP的应用层涵盖了OSI参考模型中的第5、6、7层的所有功能,不仅包含了管理通信连接的会话层功能、转换数据格式的表示层功能,还包含与对端主机交互的应用层功能在内的所有功能。
8.2远程登录
实现从自己的本地计算机登录到网络另一端计算功能的应用就叫做远程登录。远程登录主要使用TELNET和SSH两种协议。
TELNET
- TELNET利用TCP的一条连接向主机发送文字命令并在主机上执行。TELNET提供两类服务:仿真终端功能、协商选项机制。
- Shell是操作系统提供给用户的,便于使用该系统中各种功能的一种用户接口。
- TELNET客户端通常与目标主机的23号端口建立连接,并与监听这个端口的服务端程序telnetd进行交互,也可与其他TCP端口号连接,只要该端口上有监听程序能够处理telnet请求即可。如:“ftp 主机名” 与“telnet 主机名 21”可视为相同的。
SSH
- SSH是加密的远程登录系统。
-
端口转发是指特定端口号所收到的消息转发到特定IP地址和端口号码的一种机制。由于经过SSH连接的部分内容被加密,确保了信息安全提供了灵活的通信,可用来实现VPN。
8.3文件传输
- FTP是在两个相连的计算机之间进行文件传输时使用的协议,它使用两条TCP连接:一条用来控制,另一条用于数据传输。
- FTP中请求命令使用“RETR”等ASCII码字符串,而针对这些命令的应答则使用“200”等3位数字的ASCII码字符串。
8.4电子邮件
电子邮件的机制由3部分构成:邮件地址、数据格式及发送协议。
邮件地址
名称@通信地址
电子邮件的发送地址有DNS进行管理,DNS中注册有邮件地址及其作为发送地址时对应的邮件服务器的域名。这些映射信息被称作MX记录。
MIME
早期的电子邮件只能处理文本格式,现在其所能发送的数据类型已经扩展到MIME(Multipurpose Internet Mail Extensions),可以发送静态图像、动画、声音、程序等各种形式的数据。鉴于MIME规定了应用消息的格式,因此在OSI参考模型中它相当于第6层表示层。
SMTP
SMTP是发送电子邮件的协议,它使用的是TCP的25号端口。SMTP建立一个TCP连接以后,在这个连接上进行控制和应答以及数据的发送,客户端以文本的形式发出请求,服务端返回一个3位数字的应答。
SMTP本身没有验证发送者的功能,不过现在的“POP before SMTP”以及“SMTP认证”等功能可以进行验证,并且很多供应商已将网络设置为除自己本域的邮件服务器外不与其他网络的25号端口进行通信。
当允许使用TELNET登录SMTP服务器时,可使用如下命令:
telnet 服务器名或其IP地址 25
POP
SMTP的缺点在于它支持的是发送端主机的行为,而不是根据接收端的请求发送邮件。
POP是用于接收电子邮件的协议,发送端的邮件根据SMTP协议将被转发给一直处于插电状态的POP服务器,客户端再更具POP协议从POP服务器接收对方发来的邮件,在这个过程中,还要进行用户验证。
POP与SMTP一样也是建立一个TCP连接完成操作。其命令都是较短的ASCII码字符串,应答只有“+OK”和“ERR”两种。
当允许使用TELNET登录POP服务器时,可使用如下命令:
telnet 服务器名或其IP地址 110
IMAP
IMAP(Internet Message Access Protocol)与POP类似也是接收电子邮件的协议,在POP中邮件由客户端进行管理,而在IMAP中则由服务器进行管理,它可以不用从服务器下载所有的邮件也可以阅读,即在服务器上保存和管理邮件信息。
8.5WWW
万维网(WWW,World Wide Web)是将互联网中的信息以超文本形式展现的系统,也叫做Web。WWW定义了3个重要的概念:
- URI(Uniform Resource Identifier)访问信息的手段和位置
- HTML(HyperText Markup Language)信息的表现形式
- HTTP(HyperText Transfer Protocol)信息转发
URI
URI(Uniform Resource Identifier)是一种除WWW之外的用于标识资源的高效识别码,URL常被人们用来表示互联网中资源文件的具体位置,但是URI不局限于标识互联网资源,它可以作为所有资源的识别码。
URI的http方案的具体格式如下:
http: //主机名/路径
http: //主机名:端口号/路径
http: //主机名:端口号/路径?访问内容#部分信息
省略端口号时,则采用http的默认端口80。
HTML
HTML是记述Web页的一种语言(数据格式),它可以指定浏览器中显示的文字、文字颜色、大小等,还可以对图像或动画、音视频内容进行设置。
HTML具有纯文本的功能,可以说是WWW通用的数据表现协议,对应到OSI参考模型,可以认为HTML属于WWW的表示层。
HTTP
它的工作机制是首先客户端向服务器的80端口建立一个TCP连接,然后再这个TCP连接上进行请求和应答以及数据报文的发送
HTTP常用两个版本:HTTP1.0与HTTP1.1,在HTTP1.0中每一个命令和应答都会触发一次TCP连接的建立和断开。而从HTTP1.1开始,允许在一个TCP连接上发送多个命令和应答,因此大量减少了TCP连接的建立和断开操作,从而提高了效率。
当允许HTTP服务器和TELNET连接时,可以如下形式登陆HTTP服务器:
telnet 服务器名或其IP地址 80
JavaScript、CGI、Cookie
JavaScript是一种嵌入在HTML中的编程语言,作为客户端程序可以运行于多种类型的浏览器中。Javascript还可以用于操作HTML或XML的逻辑结构(DOM,Document Object Model)以及动态显示Web页的内容和页面风格上。
CGI(Common Gateway Interface)是Web服务器调用外部程序时所使用的一种服务端应用的规范,引入CGI后客户端请求会触发Web服务器运行另一个程序,客户端所输入的数据也会传给这个外部程序。该程序运行结束后会将生成的HTML和其他数据再返回给客户端。
Web应用中为了获取用户信息使用一个叫做Cookie的机制,Web服务器用Cookie在客户端保存信息,通过检查Cookie可以确认是否为同一对端的通信。
8.6网络管理
SNMP
在TCP/IP的网络管理中可以使用SNMP(Simple Network Management Protocol)收集必要的信息,它是一款基于UDP/IP的协议。
SNMP中管理端叫做管理器,被管理端叫做代理(路由器、交换机等)。
MIB
SNMP中交互的信息是MIB(Management Information Base)。MIB是在树形结构的数据库中为每个项目附加编号的一种信息结构。SNMP中可以将MIB值写入代理,也可以从代理中读取MIB值,通过这些操作可以收集冲突次数和流量统计等信息,可以修改IP地址,也可进行路由器的启厅,设备启动关闭等处理。
RMON
RMON是Remote Monitoring MIB的缩写,MIB由监控网络中某个设备接口的众多参数构成,RMON则由监控网络上线路的众多参数构成,它将原来的监控信息从一个点扩展到了一条线上。
8.7其他应用层协议
多媒体通信实现技术
通过UDP来提高即时性,H.323与SIP协议提供呼叫控制、RTP协议(结合多媒体数据本身的特性进行传输的一种协议)和压缩技术等众多技术可以实现实时多媒体通信。
- H.323是用于IP网上传输音频、视频的一种协议。
-
与H.323相对的TCP/IP协议是SIP(Session Initiation Protocol)协议,终端之间进行多媒体通信时,需要具备事先解析对方地址,呼出对方号码并对所要传输的媒体信息进行处理等功能,还有具备中断对话和数据转发的功能,这些功能都被统一于SIP协议中。
- UDP不是一种可靠性传输协议,因此有可能发生丢包或乱序等现象,因此采用UDP实现实时的多媒体通信需要附加一个表示报文顺序的序列号字段,还需对其发送时间进行管理,这些正是RTP(Real-Time Protocol)的主要职责。RTP为每个报文添加时间戳和序列号。
P2P
互联网上的通信普遍属于一台服务器对应多个客户端的C/S模式,与之不同的是网络上的终端或主机不经服务器直接1对1相互通信的情况叫做P2P(Peer to Peer),它可以分散数据给网络带来的负荷,实现更高效的应用。
LDAP
LDAP(lightweight Directory Access Protocol)是访问目录服务的一种协议,就像DNS是为了更简单的对网络上的各个主机进行管理一样,LDAP是为了更简单的管理网络上的各种资源。