Email-FTP-RTSP协议实践研究
一、Email
1. 基本协议
- SMTP协议
- 简介
- SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。
- SMTP是一个“推”的协议,它不允许根据需要从远程服务器上“拉”来消息。要做到这点,邮件客户端必须使用POP3或IMAP。另一个SMTP服务器可以使用ETRN在SMTP上触发一个发送。
- 工作过程
- 建立连接:在这一阶段,SMTP客户请求与服务器的25端口建立一个TCP连接。一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。
- 邮件传送:利用命令,SMTP客户将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器,SMTP服务器进行相应的响应并接收邮件。
- 连接释放:SMTP客户发出退出命令,服务器在处理命令后进行响应,随后关闭TCP连接。
- POP3协议
- 简介
协议支持离线邮件处理,当邮件发送到服务器后,电子邮件客户端会调用邮件客户端程序,下载所有未阅读的电子邮件(这种离线访问模式是一种存储转发服务).当邮件从邮件服务器发送到个人计算机上,同时邮件服务器会删除该邮件(但是很多POP3服务器都支持“下载邮件,服务器并不删除邮件”
- 工作过程
- 邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。
- 一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。
- IMAP协议
- 简介
开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。
2. telent登录163/QQ发送邮件
- 实验中使用QQ邮箱作为实验,第一步需要开启SMTP和POP服务
- 登录QQ邮箱网页版
- 设置->账户
- 开启指定服务,并进行验证
- SMTP发送邮件
-
配置telnet client客户端,控制面板——程序——启动或关闭windows功能——勾上telnet client
-
配置POP3/SMTP的SSL加密方式,判断连接端口
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=369 -
打开命令行界面,输入 telnet smtp.qq.com 25,进入服务器,
默认端口号为25
-
helo qq.com验证身份
-
输入 auth login,登录账户
网页版QQ不掉线
-
输入邮箱的base编码
-
输入授权码的base64编码
-
设定发送方
mail from:<xxxxxxxxxx@qq.com>
-
设定接收方
rcpt to:<xxxxxxxxxx@qq.com>
-
输入data编辑邮件内容
-
From:<发送者的email>
To:<接受者的email>
Subject:<发送主题》
空一行
<发送内容>
. (输入点代表编辑结束)
3. POP服务阅读邮件
- 登录pop查看QQ邮箱,
telnet pop.qq.com 110
- 输入用户,
user+账户
- 输
pass +授权码
进行验证
- 输入stat统计邮件信息
- retr+序号选择邮件查看内容
- quit退出项目
二、FTP/HTTP1.1协议
1. FTP协议
- 简介
- FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。
- 它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,并且不时的必须执行一些冗长的登录进程。
- 工作原理
- FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序。
- FTP 是基于客户———服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。
2. HTTP1.1协议
- 简介
- 它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议簇之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。
- 任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由URL指定的IP地址。
- 驻留程序接收到请求,在进行必要的操作后回送所要求的文件。
3. Ubuntu配置Ftpd服务
- 安装VSFTPD
- sudo apt-get install vsftpd
- 启动vsftdp服务,
service vsftpd start
- 新建目录
- 新建用户uftp,制定用户主目录和所用shell,并设置密码
sudo useradd -d /home/uftp -s /bin/bash uftp
- 目录/home/uftp的所属者和所属组都改为uftp
sudo chown uftp:uftp /home/uftp
- 新建文件/etc/vsftpd.user_list,用于存放允许访问ftp的用户
sudo vi /etc/vsftpd.user_list
- 编辑VSFTPD配置文件
sudo vi /etc/vsftpd.conf
- 做如下修改:
- 打开注释 write_enable=YES
- 添加信息 userlist_file=/etc/vsftpd.user_list
- 添加信息 userlist_enable=YES
- 添加信息 userlist_deny=N
- 修改完成后保存退出。
- root 访问
sudo vi /etc/ftpusers
- 添加访问账号,增加用户组
sudo groupadd ftpgroup
创建该文件夹
sudo mkdir /ftp
sudo mkdir /ftp/ftpuser
增加用户ftpuser并设置其目录为/ftp/ftpuser
sudo useradd -g ftpgroup -d /ftp/ftpuser -M ftpuser
赋予访问/ftp/ftpuser的权限
sudo chmod 777 /ftp/ftpuser
设置ftpuser密码
sudo passwd ftpuser
重启vsftpd
sudo restart vsftpd
- 图片拼接
- 登陆服务器
sudo ftp 127.0.0.1
- 输入用户名,密码
- ls命令展开服务器
- 设定本地目录
lcd ~/source/ftp_test 设定本地目录,~代表的是home文件夹
put + 文件名
上传文件,检查存储状态get + 文件名
将服务器上的文件保存到本地
- 登陆服务器
- 文件分割与粘合
- 分割文件命令
split -b 1k -d + 文件名 pic
- 图片粘合
粘合操作,从基础图片依次向后粘合插件,完成所有图片拼接
cat pic00 pic01>t1
cat t1 pic02>1.png
- 查看粘合后的图片
- 分割文件命令
三、RTSP/MMS协议
1. RTSP协议
- 简介
- RTSP是基于文本的协议。行以CRLF中断,包括消息类型、消息头、消息体和消息长。但接收者本身可将CR和LF解释成行终止符。
- RTSP是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。
- RTSP建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。
- 操作方式
1)从媒体服务器上检索媒体
2)媒体服务器邀请进入会议
3)将媒体加到现成讲座中
2. MMS协议
- 简介
- MMS,中文“微软媒体服务器协议”,用来访问并流式接收 Windows Media 服务器中 .asf 文件的一种协议。
- MMS 协议用于访问 Windows Media 发布点上的单播内容。
- 连接方式
- 当使用 MMS 协议连接到发布点时,使用协议翻转以获得最佳连接。
四、VLC保存网络流视频
RTSP流媒体测试视频地址
rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
- 启动vlc -> 媒体 -> 网络串流
- url输入网址 -> 播放 -> 串流
- 默认next继续操作,添加文件
- 选择激活转码,配置文件
- 默认流,继续操作
- 运行效果
五、Fiddler下载视频
- 分析视频
- 启动Fiddler,并播放视频,抓取数据流
- composer,将刚刚的数据流拖入到框里,修改数据流范围,然后点击execute
- 通过execute执行获取的数据流,鼠标右键,Save→Response→Response Body保存为m4s文件就行
- 由于音频和视频是分开的,通过ffmpeg合成
- 下载https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z
- 解压,bin路径加到环境变量里,打开cmd,输入ffmpeg
- 合成
ffmpeg -i 测试1.m4s -i 测试2.m4s -vcodec copy -acodec copy -f mp4 绵羊料理.mp4
- 运行效果
六、总结
- 本阶段的学习中,对各种协议有了初步了解,对于邮箱信息收发操作,通过pop指令和smtp协议操作存在的优缺点可以有直观清晰的了解和操作
- 通过vlc流获取,需要对地址链接的有效性进行判定及存储文件流格式进行明确的划分
- Fiddler通过数据流抓取,并下载视频文件,在进行操作中会发生声音,视频文件分离,需要通过合成还原原视频文件,一定程度上会发生失真问题。
- ubuntu中实现图片分割和合成操作,在进行拼接不会产生较严重的图片大小或者图片失真,保持正常水平。
参考
telnet登录SMTP和pop收发邮件(QQ邮箱)
Email-FTP-RTSP协议实践研究
FTP文件传输和Linux分割粘合文件
SMTP
POP3
RTSP