图解TCP/IP:应用协议

应用层协议概要

利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登录、文件传输、网络管理等,能够让这些应用进行特定通信处理的正是应用协议。TCP/IP的应用层涵盖了OSI参考模型中第5、第6、第7层的所有功能,不仅包含了管理通信连接的会话层功能、转换数据格式的表示层功能,还包括与对端主机交互的应用层功能在内的所有功能。

远程登录

远程登录是为了实现分时系统TSS环境,是将主机和终端的关系应用到计算机网络上的一个结果。TSS中通常有一个处理能力非常强的主机,围绕着这台主机的是处理能力没有那么强的多个终端机器。这些终端通过专线与主机相连。

# 远程登陆

主机A的用户A通过远程登陆到主机B,就好像坐在主机B跟前一样,可以利用主机B上各种功能。

类似地,实现从自己的本地计算机登录到网络另一端计算功能的应用就叫做远程登陆。通过远程登陆到通用计算机或UNIX工作站以后,不仅可以直接使用这些主机上的应用,还可以对这些计算机进行参数设置。远程登陆主要使用TELNET和SSH两种协议。

TELNET

TELNET利用TCP的一条连接,通过这一条连接向主机发送文字命令并在主机上执行。本地用户好像直接与远程主机内部的Shell相连着似的,直接在本地进行操作。TELNET可以分为两类基本服务:仿真终端功能、协商选项机制。

# TELNET中输入命令、运行、展示结果的过程

键入文字命令
进行行模式或透明模式处理后将前一步中的命令传送给telnetd守护进程
向Shell发送文字命令(严格来说这一步要经过操作系统内部)
解释从Shell收到的命令、执行程序、获取结果
获取从Shell返回的结果(严格来说这一步要经过操作系统内部)
进行行模式或透明模式等处理后将结果返回给TELNET客户端
根据NVT的设置回显在屏幕上

TELNET经常用于登录路由器或高性能交换机等网络设备进行相应的设置。通过TELNET登录主机或路由器等设备时需要将自己的登录用户名和密码注册到服务端。

# 行模式与透明模式

行模式:每从键盘输入一个换行,就将该行的数据作为1整行发送给服务端B。
透明模式:客户端A每输入一个字符都要发送给服务端B。

TELNET客户端是指利用TELNET协议实现远程登录的客户端程序。很多情况下,它的程序名就是telnet命令。TELNET客户端通常与目标主机的23号端口建立连接,并与监听这个端口的服务端程序telnetd进行交互。当然,也可以与其他的TCP端口号连接,只要在该端口上有监听程序能够处理telnet请求即可。

# 指定端口号

telnet 主机名 TCP端口号

TCP端口号为21时可以连接FTP应用,为25时可以连接到SMTP,为80时可连接到HTTP,为110时可连接到POP3。

# 以下两个命令可以视为相同
ftp 主机名
telnet 主机名 21
SSH

SSH(Secure SHell)是加密的远程登录系统。TELNET中登录时无需输入密码就可以发送,容易造成通信窃听和非法入侵的危险。使用SSH后可以加密通信内容。即使信息被窃听也无法破解所发送的密码、具体命令以及命令返回的结果是什么。SSH还包括很多非常方便的功能:

  • 可以使用更强的认证机制

  • 可以转发文件

  • 可以使用端口转发功能。端口转发是指将特定端口号所收到的消息转发到特定的IP地址和端口号的一种机制。由于经过SSH连接的那部分内容被加密,确保了信息安全,提供了更为灵活的通信。

# SSH的端口转发

使用端口转发的情况下,SSH客户端程序、SSH服务端程序都起着一个网关的作用。
邮件程序使用“一般TCP通信”连接ssh客户端
SSH客户端则通过“SSH加密的通信”转发给SSH服务端程序
SSH服务端程序使用“一般TCP通信”连接POP3服务端程序

文件传输

文件传输FTP是在两个相连的计算机之间进行文件传输时使用的协议。

# 文件传输FTP

网络上相连的两台主机之间可以进行文件传输

FTP使用两条TCP连接实现文件传输:

  • 用来控制。利用这个连接可以通过ASCII码字符串发送请求和接收应答,在这个连接上无法发送数据。

  • 用于数据(文件)的传输。在TCP21号端口上进行文件GET(RETR)、PUT(STOR)以及文件一览(LIST)等操作时,每次都会建立一个用于数据传输的TCP连接。当数据传送完毕之后,传输数据的这条连接也会被断开,然后会在控制用的连接上继续进行命令或应答的处理。

通常,用于数据传输的TCP连接是按照与控制用的连接相反的方向建立的。因此,在通过NAT连接外部FTP服务器的时候,无法直接建立传输数据时使用的TCP连接,此时,必须使用PASV命令修改建立连接的方向才行。

# FTP主要命令

访问控制命令:USER 用户名、PASS 密码、CWD 目录名、QUIT
设置传输参数的命令:PORT h1,h2,h3,h4,p1,p2、PASV、TYPE 类型名、STRU
FTP服务命令:RETR/STOR/STOU/APPE 文件名、REFR/RETO 文件名、ABOR、DELE 文件名、RMD/MKD 目录名、PWD、LIST、
    NLIST、SITE 字符串、SYST、STAT、HELP、NOOP
# FTP的主要应答消息

提供消息:120(Service ready in nnn minutes)、125(Data Connection already open;transfer staring)、
    150(File status okay;about to open data connection)
连接管理相关应答:200(Command okay)、211(System status, or system help reply)、212(Directory status)、
    213(File status)、220(Service ready for new user)、221(Service closing control connection)、
    225(Data connection open)、226(Closing data connection)、227(Entering Passive Mode)、
    230(User logged in)、250(Requested file action okay)
验证与用户相关应答:331(User name okay,need password)、332(Need account for login)
不固定的错误:421(Service not available,closing control connection)、425(Can't open data connection)、
    426(Connection closed.transfer aborted)
文件系统相关应答:530(Not logged in)

电子邮件

电子邮件是指网络上的邮政。通过电子邮件人们可以发送编写的文字内容、数码相片,还可以发送各种报表计算得出的数据等所有计算机可以存储的信息,而且提供邮件组服务。邮件组服务是指向邮件组中的所有用户同时发送邮件的功能。

# 电子邮件E-mail

只要连着网,即使相隔很远,也可以发送邮件。

提供电子邮件服务的协议叫做SMTP(Simple Mail Transfer Protocol)。SMTP为了实现高效发送邮件内容,在其传输层使用了TCP协议。

# 早期的电子邮件发送过程

早期的电子邮件,发送端主机与接收端主机之间会建立一个直接的TCP连接,再进行邮件的收发。
然而,这种方法要求两端主机都必须插电,且一直处于连网的状态才行,否则可能会收不到邮件。

发送和接收端通过邮件服务器进行收发邮件。接收端从邮件服务器接收邮件时使用POP3(Post Office Protocol)协议。

# 现在互联网中电子邮件的发送过程

根据邮件软件的设置,发送邮件给邮件服务器A。
参考DNS的MX记录,发送邮件给邮件服务器B。
根据邮件软件的设置,从邮件服务器B接收邮件。

电子邮件的机制由3部分组成,它们分别是邮件地址、数据格式以及发送协议。

使用电子邮件时需要拥有的地址叫做邮件地址,相当于通信地址和姓名。电子邮件的发送地址由DNS进行管理,DNS中注册有邮件地址及其作为发送地址的邮件服务器的域名,这些映射信息被称作MX记录(Mail Exchange)。根据MX记录中指定的邮件服务器,可以管理不同邮件地址与特定邮件服务器之间的映射关系。

# 互联网中电子邮件地址的格式

名称@通信地址

电子邮件所能发送的数据类型MIME(Multipurpose Internet Mail Extensions),可以发送静态图像、动画、声音、程序等各种形式的数据。鉴于MIME规定了应用消息的格式,因此在OSI参考模型中它相当于第6层表示层。MIME基本上由首部和正文两部分组成。首部不能是空行,因为一旦出现空行,其后的部分将被视为正文。如果MIME首部的"Content-Type"中指定"Multipart/Mixed",并以"boundary="后面字符作为分隔符,那么可以将多个MIME消息组合成为一个MIME消息,这就叫做multipart。即各个部分都由MIME首部和正文组成。"Content-Type"定义了紧随首部信息的数据类型。

# MIME具有代表性的Content-Type

text/plain、message/rfc822、multipart/mixed、application/postscript、application/octet-stream、
image/gif、image/jpeg、audio/basic、video/mpeg、message/external-body

SMTP是发送电子邮件的协议,它使用的是TCP的25号端口。SMTP建立一个TCP连接以后,在这个连接上进行控制和应答以及数据的发送。客户端以文本的形式发出请求,服务端返回一个3位数字的应答。每个指令和应答的最后都必须追加换行指令(CR、LF)。

# SMTP主要的命令

HELLO<domain>、EHLO<domain>、MAIL FROM: <reverse-path>、RCPT TO: <forward-path>、DATA、RSET、
VRFY<string>、EXPN<string>、NOOP、QUIT
# SMTP应答

针对请求进行肯定确认应答:211(系统状态或求助回答)、214(求助信息)、220<domain>(服务就绪)、
    221<domain>(服务结束)、250(完成请求命令)、251(非本地用户,报文将被转发)
数据输入:354(开始邮件输入。以“.”结束一行)
发送错误消息:421<domain>(服务不可用,关闭连接)、450(邮箱不可用)、451(命令异常终止:本地差错)、
    452(命令异常终止:存储容量不足)
无法继续处理的错误应答:500(语法错误,不能识别的命令)、501(语法错误,不能识别参数或变量)、502(命令未实现)、
    503(命令序列不正确)、504(命令参数暂时未实现)、550(邮箱不可用,请求未实现)、551(非本地用户,不接受请求)、
    552(存储容量不足,请求异常终止)、553(邮箱不可用,请求异常终止)、554(其他错误)

POP协议是一种用于接收电子邮件的协议,发送端的邮件根据SMTP协议将被转发给一直处于插电状态的POP服务器,客户端再根据POP协议从POP服务器接收对方发来的邮件。在这个过程中,为了防止他人盗窃邮件内容,还要进行用户验证。

# POP主要命令

认证时的有效命令:USER 用户名、PASS 密码、QUIT、APOP name digest
应答:+OK、-ERR
事务状态命令:STAT、LIST/RETR/DELE [msg]、RSET、QUIT、TOP msg n、UIDL [msg]

IMAP(Internet Message Access Protocol)与POP类似,也是接收电子邮件的协议。在POP中邮件由客户端进行管理,而在IMAP中邮件则由服务器进行管理。使用IMAP时,可以不必从服务器上下载所有的邮件也可以阅读。由于IMAP是在服务器端处理MIME信息,所有它可以实现当某一封邮件含有10个附件时“只下载其中的第7个附件”的功能,这在带宽较窄的线路上起着非常重要的作用。而且IMAP在服务器上对“已读/未读”信息和邮件分类进行管理,因此即使在不同的计算机上打开邮箱,也能保持同步,使用起来非常方便。如此一来,使用IMAP,在服务器上保存和管理邮件信息,就如同在自己本地客户端的某个闪存中管理自己的信息一样简单。

SNMP

在TCP/IP的网络管理中可以使用SNMP(Simple Network Management Protocol)收集必要的信息,它是一款基于UDP/IP的协议。

# 网络管理

利用SNMP,可以对连接到网络的设备进行远程管理,如修改设置和确认是否运行正常等。
动作检查,修改设置
信息通知、设置内容通知、故障通知

通常,根据查询请求和应答可以定期检查设备的运行动作,根据设置请求可以修改设备的参数。SNMP的处理可以分为从设备读取数据和向设备写入数据两种,采用Fetch和Store模式。

# SNMP工作机制

动作检查:定期检查信息记录网络拥堵情况以及检查设备异常
修改设置:按照设置要求进行修改,并确认设置正确与否。
事件通知:遇到某些特殊情况时,还可以设置为从代理端主动通知。

SNMP中交互的信息是MIB(Management Information Base),MIB是在树形结构的数据库中为每个项目附加编号的一种信息结构。SNMP访问MIB信息时使用数字序列。MIB相当于SNMP的表示层,它是一种能够在网络上传输的结构。SNMP中可以将MIB值写入代理,也可以从代理中读取MIB值。通过这些操作可以收集冲突的次数和流量统计等信息,可以修改接口的IP地址,还可以进行路由器的启停、设备的启动和关闭等处理。

RMON是Remote Monitoring MIB的缩写,MIB由监控网络中某个设备接口(某个点)的众多参数构成,相比之下,RMON则由监控网络上线路的众多参数构成。RMON中可监控的信息从原来的一个点扩展到了一条线上,通过RMON可以监控某个特定的主机在哪里通过什么样的协议正在与谁进行通信的统计信息,从而可以更加详细地了解网路上成为负荷的主体并进行后续分析。RMON中从当前使用状况到通信方向性为止,可以以终端为单位也可以以协议为单位进行监控。此外,它不仅可以用于网络监控,以后还可以用于收集网络扩展和变更时期更为有意义的数据。尤其是通过WAN线路或服务器段部分的网络流量信息,可以统计网络利用率,还可以定位负载较大的主机及其协议相关信息。因此,RMON是判断当前网络是否被充分利用的重要资料。

(最近更新:2019年09月18日)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值