TCP-IP-part12-应用协议

前言

TCP/IP相关内容第十二部分,包含:

  • 远程登录
  • 文件传输
  • 电子邮件
  • WWW
  • 网络管理
  • 其他应用层协议

TCP/IP中的应用层包含了OSI的会话层、表示层、应用层三层功能。应用只需要关注功能的实现而不需要关注下层的传输过程,可以利用现有的应用协议,也可以自己定义一个新的应用协议。应用协议本质上就是定义一些字符串所对应的含义,并据此令计算机进行一系列响应。

一、远程登录

目的是在计算机网络上实现主机和终端的关系。典型的有TELNET和SSH协议。

TELNET

利用TCP连接,在服务器端设置好登录用户名和密码后,在本地机通过Telnet客户端发送文字命令给远程主机的Telnetd守护进程(23号端口),并通过SHELL告诉操作系统执行相应命令,并返回给客户端。通常用于连接路由器和交换机来进行设置。可采用行模式和透明模式(每输入一个字符都会发送到服务端)。

SSH

加密的远程登录系统。可实现端口转发功能。先通过SSH服务器再转发给目标服务器。

二、文件传输

FTP协议。一般的服务器同样需要先进行用户名密码身份验证。匿名服务器不用,其提供免费的拷贝服务。

FTP需要两条TCP连接,一条用来控制,一条用来数据传输。21号端口用于控制连接,通过字符串发送请求,接收应答,无法传输数据。常见的有USER用户名、PASS密码、RETR下载、STORE上传、APPE追加内容到已有文件、LIST文件一览操作,和响应200连接成功、220TCP连接之后的欢迎信息、227客户端申请被动模式时的返回、230提示输入密码等等,之后会建立传输连接传输数据。传输连接端口号为20。由于数据传输连接的建立是反过来的,通常由于NAT的存在可能无法成功建立连接,因此常使用PASV命令将主动模式切换为被动模式,由客户端申请建立数据传输连接。

FTP通过字符串作为命令和应答。采用此做法的还有SMTP、HTTP、POP3。字符串之间的空白表示标识之间的分割,换行表示不同的命令。

FTP用于断点续传功能。

三、电子邮件

SMTP协议。原始方法是两个机器直接用TCP传邮件到硬件上,最大缺点是必须两个主机必须同时插电和联网。因此采用一直连电源的邮件服务器和从邮件服务器获取邮件的POP3协议主机根据邮件地址通过DNS获得邮件服务器的地址

邮件地址

采用:名称(用户名)@通信地址(主机名+域名)的方式。通信地址与域名构造相同,由DNS进行管理,不同的邮件地址将对用特定的邮件服务器。这些映射信息成为MX记录

数据格式

采用MIME协议,起到表示层的功能。由于SMTP只能传输ASCII码,因此MIME会将任何二进制文件包括图片和音频转化为ASCII码再由SMTP传输并还原,以此达到传输多媒体作用。

发送协议

SMTP协议,使用TCP的25端口号。连接上将进行控制、应答和数据发送。客户端以文本形式发出请求,客户端返回一个3位数字作为应答。每个指令和应答后都是换行。

接收协议

POP协议

接收端从邮件服务器获取邮件用到的协议。同样通过一条TCP连接完成控制、应答和数据接收,采用字符串命令。

IMAP协议

在POP中邮件由客户端进行管理,而IMAP中邮件由服务器进行管理。在不同计算机客户端上邮箱的信息也是同步的。

四、WWW

万维网,信息以超文本的形式展现出来,也叫作WEB。WEB的客户端叫做WEB浏览器。

WWW基本概念

3个概念:标识资源URI、Web页数据格式HTML、信息转发HTTP。

URI

统一资源标识符,对任何一个抽象或物理资源进行标识的字符串。用于主页地址、电子邮件、电话号码等。
URL作为统一资源定位符,是URI在www中实现的具体方式,网络中任何资源都由URL标识,是使用资源的绝对位置来进行标示的。

URL的格式:

协议名://主机名:端口号/路径?访问内容#部分信息

其中协议名、主机名、路径是不可少的。
协议名可以是http、https、ftp、file…网络中的协议,主机名可以是IP地址或域名,端口号默认为80http,路径是主机上该资源的位置。访问内容是给CGI的。

例:http://www.bilibili.com/dasao/av1234

HTML

记述Web页的一种语言(数据格式)。其作为表示层,将数据转化为统一格式交付给HTTP协议传输。

HTTP

默认使用TCP80端口,在一条连接上进行请求、应答以及数据报文发送。主要命令有GET下载,PUT上传,肯定应答2xx,重定向请求3xx,客户端请求内容出错4xx,服务器错误5xx

JAVASCRIPT

客户端程序和服务器端程序将使网络内容更丰富。JAVASCRIPT是嵌入HTML中的编程语言,下载之后JAVASCRIPT程序就可以在客户端得到执行,可以用于检测用户输入,动态显示Web页面内容。

CGI

服务器调用外部程序时使用的规范。没有CGI服务器只能返回硬盘中的静态数据,有了CGI可以实现调用外部程序和访问数据库,返回动态信息(论坛和电商)。

Web服务器用Cookie在客户端保存登录信息或网购购物车信息。通过检查Cookie可以确认是否为同一对端通信,这样购物车信息就不用方服务器中了。

五、网络管理

SNMP协议,对连接到网络的设备进行远程管理,基于UDP协议。管理端叫管理器,被管理端叫代理。决定两者之间通信交互信息的正是SNMP。

SNMP的三个部分:

  1. 查询请求Fetch:要求设备返回信息,并从中读取数据,定期检查信息记录网络拥堵情况和设备异常。
  2. 设置修改Store:按照设置进行修改
  3. 事件通知Trap:遇到特殊情况时,代理将主动通知管理器。

SNMP中交互的信息即MIB,它起到表示层的作用。

RMON可以管理、监控多个设备。

六、其他应用层协议

多媒体通信

实时多媒体采用UDP传输。应用层呼叫控制采用SIP协议,数据传输控制采用RTP协议,数据格式采用压缩技术。

1、SIP

通话前要先拨通,相当于会话层的功能,起到呼叫控制的作用,其非常相似于HTTP的工作机制,根据字符串提供命令和返回响应(响应码与HTTP相似)。当连接建立,采用RTP规定传输方式,数据格式为压缩技术。

2、RTP

UDP不可靠,因此采用RTP给每个报文附加时间戳和序列号。接收端据此排序掌握是否丢包。

3、数据压缩

大量减少视频数据大小,相当于OSI表示层。

P2P

不再是客户端/服务器的形式,而是终端或主机不经过服务器直接1对1相互通信。互联网电话就用到了这个技术。

您的支持是我创造源源不断地动力