欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

应用层协议小结

程序员文章站 2022-06-27 22:48:20
之前总结HTTP的时候也顺便总结了DNS的工作原理,这里就不多说了,来看看其他常用的应用层协议吧。 FTP FTP(文本传输协议)是因特网上使用得最狂饭的文件传送协议。FTP提供交互的访问...

之前总结HTTP的时候也顺便总结了DNS的工作原理,这里就不多说了,来看看其他常用的应用层协议吧。
FTP
FTP(文本传输协议)是因特网上使用得最狂饭的文件传送协议。FTP提供交互的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了个计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

FTP提供的功能:
1)提供不同种类主机系统
2)以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
3)以匿名FTP的方式提供公用文件共享能力

FTP采用客户/服务器工作方式,基于TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程有两大部分组成:一个主进程,负责接收心得请求;若干从属进程,负责处理单个请求。

FTP工作原理:

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。

被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTP服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

NOTE:
(1)PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是“主动模式。
(2)PASV也就是Passive的简写。中文就是“被动模式。

FTP在工作时使用两个并行的TCP连接,一个是控制连接(21端口),一个是数据连接(20端口)。使用两个不同的端口号可使协议更加简单和容易实现。

当NAT(Network Address Translation)设备以主动模式访问FTP服务器时,由于NAT设备不会聪明的变更FTP包中的IP地址,从而导致无法访问服务器。

电子邮件

简单介绍下电子邮件的发送过程:
1)发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP协议吧邮件传送给发送方邮件服务器。
2)发送方邮件服务器将邮件放入邮件缓存队列中,等待发送。
3)运行在发送方邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收方邮件服务器的SMTP服务器进程发起建立TCP连接。
4)TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器进程发送邮件。当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接。
5)运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。
6)收信人在打算收信时,调用用户代理,使用POP3协议将自己的邮件从接收方邮件服务器的用户邮箱中的取回。

SMTP

SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。基于TCP连接,端口号是25.

SMTP通信(如发送端邮件服务器与接收端服务器的通信)的过程如下。
1)发送端邮件服务器(以下简称客户端)与接收端邮件服务器(以下简称服务器)的25号端口建立TCP连接。
2)客户端向服务器发送各种命令,来请求各种服务(如认证、指定发送人和接收人)。
3) 服务器解析用户的命令,做出相应动作并返回给客户端一个响应。
4)2)和3)交替进行,直到所有邮件都发送完或两者的连接被意外中断。

POP3
基于TCP连接,端口号是110.

用户从邮件服务器上接收邮件的典型通信过程如下。
1)用户运行用户代理(如Foxmail, Outlook Express)。
2)用户代理(以下简称客户端)与邮件服务器(以下简称服务器端)的110端口建立TCP连接。
3)客户端向服务器端发出各种命令,来请求各种服务(如查询邮箱信息,下载某封邮件等)。
4)服务端解析用户的命令,做出相应动作并返回给客户端一个响应。
5)3)和4)交替进行,直到接收完所有邮件转到步骤6),或两者的连接被意外中断而直接退出。
6)用户代理解析从服务器端获得的邮件,以适当地形式(如可读)的形式呈现给用户。

IGMP

IGMP(Internet Group Management Protocol)作为因特网组管理协议,是TCP/IP 协议族中负责IP 组播成员管理的协议,它用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
IP 主机通过发送IGMP 报文宣布加入某组播组;本地组播路由器通过周期性的发送IGMP 报文轮询本地网络上的主机,确定本地组播组成员信息。

工作原理

IGMP 协议是IP 组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:主机侧和路由器侧。IGMP 工作机制如下所述:
1) 接收者主机向所在的共享网络报告组成员关系。
2)处于同一网段的所有使能了IGMP 功能的组播路由器选举出一台作为查询器,查询器周期性地向该共享网段发送组成员查询消息。
3) 接收者主机接收到该查询消息后进行响应以报告组成员关系。
4) 网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。如果超时无响应,组播路由器就认为网段中没有该组播组的成员,从而取消相应的组播数据转发。
5) 所有参与组播传输的接收者主机必须应用IGMP 协议。主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。
6)支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而各主机只需要保存自己加入了哪些组播组。

主机加入组播组的基本过程如下:
1)IGMP 查询器(RouterB)周期性地向共享网段内所有主机以组播方式(目的地址为组播地址)发送普遍组Query 查询消息。该报文的目的地址为224.0.0.1,表示该网段上的所有主机和路由器。
2)网段内所有主机都接收到该普遍组查询消息。如果主机(如HostB 和HostC)希望加入某组播组G1,则以组播方式发送Report 报告。该报文的目的地址为224.0.0.1,报文中携带组播组G1 的地址信息。
3) 网段中所有主机和路由器都接收到该Report 报告,并获知组播组G1 地址信息,此时网段中其它也希望加入该组播组G1 的主机将不再发送针对相同组播组的Report 报告。同时,网段中预备加入另一组播组G2 的主机发送针对组播组G2 的Report 报告以响应普遍组查询消息。
4)经过查询和响应过程后,IGMP 路由器了解到本网段内存在组播组G1 对应的组播组成员,则由组播路由协议生成(*,G1)组播转发项并以此作为组播数据的转发依据。之后,组播路由协议将发起上游路由更新以维护组播转发树。
5)组播源发出的组播数据经过组播路由到达IGMP 路由器,如果IGMP 路由器上存在(*,G1)组播转发项,则转发该组播数据到此共享网段,G1 组播组成员主机接收该数据。
6)IGMPv1 中没有专门定义离开组播组的消息。当主机离开某组播组后,将不再发送以此组播组地址为目的地址的Report 报告。当网段中不再存在该组播组成员后,IGMP 路由器将不能收到任何针对此组播组的Report 报告,则IGMP 路由器删除该组播组对应的转发项。