应用层(三)

参考链接:【FTP】详解 - peterYong - 博客园 (cnblogs.com)

FTP(File transfer protocol)

传输过程

请输入图片描述

可以向远程主机传输文件或传来文件

  • 用户首先提供远程主机名字,使本地的FTP客户进程与远程FTP服务器进程建立TCP命令连接(端口:21)
  • 用户接着提供用户标识和密码,通过TCP连接作为FTP指令传给服务器
  • 服务器授权用户控制连接,用户浏览和发送指令到远程文件系统
  • 服务器接收到传输指令,打开第二个与客户端的TCP数据连接(端口:20)
  • 传输完一个文件,服务器就关闭数据连接(非持久性,而控制连接始终保持开启,是持久性);当再需要文件传输就再打开一个传输连接

image-20220324095326017.png

FTP VS HTTP

FTPHTTP
作为支撑的运输层协议TCPTCP
协议类型文件传输协议超文本传输协议
面向对象文件网页
默认端口21、2080
使用连接2个:控制和数据连接1个
持久性控制连接持久
数据连接非持久
既可持久也可非持久
默认持久连接
控制信息带外(out of band)传送带内(in band)传送
状态状态协议(整个会话期间必
须持续追踪用户状态信息)
无状态协议

FTP命令

  • USER username
  • PASS password
  • LIST 返回当前目录的文件
  • RETR filename:取出远程主机的当前目录下的文件(建立data connection)
  • STOR filename:存储文件到远程主机的当前目录

FTP回复

状态码+短语(类似HTTP)

  • 331 Username OK, password required
  • 125 data connection already open; transfer starting
  • 425 Can't open data connection
  • 452 Error writing file

补充

  • 在FTP中,文件组织为records、pages或a stream of bytes,它们属于FTP的数据结构
  • 在FTP中,有三类transmission modes:stream、block和compressed
  • In FTP, ASCII, EBCDIC, and image define an attribute called file type

因特网中的电子邮件

最早发展的流行应用程序,当今因特网最重要和实用的应用程序之一

电子邮件是一种异步(asychronous)通信媒介,方便时就可以收发邮件,更加快捷便宜分发;现今的电子邮件还包括有许多强大的特性,包括具有附件、超链接、HTML格式文本和图片的报文

3大主要组成部分

  • 用户代理(user agents):相当于邮件阅读器,具有撰写、编辑、阅读、回复、转发、保存邮件报文的功能
  • 邮件服务器(mail server):形成了电子邮件系统的核心,邮箱(mailbox)管理和维护发送到的报文,报文队列(message queue)存放要发送的邮件消息
  • 简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)

当一个邮件服务器向其他邮件服务器发送邮件,其作为SMTP的客户;当邮件服务器从其他邮件服务器接收邮件时,其作为SMTP的服务器

SMTP

使用TCP传输邮件报文,端口为25,持久连接,报文必须用7位ASCII码标识

image-20220325172856807.png

传输过程:

握手$\rightarrow$报文传输$\rightarrow$关闭

  • A使用邮件代理程序编写邮件,填写接收人B的邮箱地址
  • A的用户代理将报文发给它的邮件服务器,报文放在报文队列
  • A的SMTP客户端创建到B的邮件服务器的TCP连接
  • SMTP握手后发送A的报文
  • B的SMTP服务器端接收报文后放在B的邮箱中
  • B方便时就可以使用用户代理来阅读邮件

image-20220325174935434.png

SMTP命令:HELO、MAIL FROM、RCPT TO、DATA、CRLF.CRLF、QUIT

实操

telnet连接邮箱端口25

image-20220325185053541.png

向smtp发送helo指令,返回250 OK

image-20220325185216331.png

登录smtp服务器,账号和授权码均需要base64编码

image-20220325190857827.png

写邮件发送和接收方

image-20220325200334665.png

输入data进入邮件报文撰写,显示header lines的发送方、接收方和主题,接着空一行写邮件内容,写完后换行输入点号结束,发送即可成功

image-20220325200326568.png

QQ图片20220325200520.png

貌似有些字符乱了……

与HTTP的对比

SMTPHTTP
功能(传送文件)从一个邮件服务器向另一个传送电子邮件报文从Web服务器向Web客户传送对象
拉/推协议推协议:发送邮件服务器把文件推向接收邮件服务器拉协议:从服务器拉取文件
数据格式7-bit ASCII无所谓
封装所有报文对象放在一个报文之中把每个对象封装到自己的HTTP响应报文
状态状态协议无状态协议
连接持久连接持久、非持久均可

邮件报文格式

image-20220325181309418.png

类似信件格式

header lines:

  • To:(required)
  • From:(required)
  • Subject:(optional)

body:

  • ASCII
  • MIME(Multiple Internet Mail Extensions,多用途互联网邮件扩展):通过添加额外的头部行信息实现内容的扩展

eg:MIME-Version、Content-Transfer-Encoding、Content-Type

邮件访问协议

邮件由A交给B,B肯定不可能一直开着PC,所以邮件服务器交由ISP进行维护,保持开机。但是用户代理不能使用SMTP得到报文,因为取报文是一个拉操作,而SMTP是一个推协议。因此引入一个特殊的邮件访问协议来解决,eg:POP3、IMAP、HTTP

POP3(Post Office Protocol——Version 3,第三版邮局协议)

端口110,三个阶段:认证(authorization)——事务处理(transaction)——更新(update)

认证:用户代理发送用户名和密码鉴别用户

user 账户

pass 密码

server response:+OK/-ERR

事务处理:用户代理取回报文(同时可以对报文进行删除标记,取消标记以及获取邮件的统计信息)

list:列出报文号和大小

retr 报文号:根据报文号显示报文全部内容

dele 报文号:删除

quit

在这个阶段,用户代理通常被用户配置为“下载并删除”或“下载并保留

下载并删除:邮件接收方可能是移动的,客户端变化后无法查看和访问邮件

下载并保留:不同客户端都存储着报文

更新:出现在quit命令后,结束POP3会话,邮件服务器删除被标记为删除的报文

POP3会话期间不携带状态信息,属于无状态协议

IMAP(Internet Mail Access Protocol,因特网邮件访问协议)

POP3无法建立远程文件夹存放报文,因此有了IMAP;IMAP会话期间始终保持状态信息

HTTP

基于浏览器的邮件管理,现在qq邮箱等就是这样的

最后修改:2022 年 06 月 13 日
如果觉得我的文章对你有用,请随意赞赏