计算机网络-应用层(文件传输协议(FTP协议),电子邮件系统(SMTP协议,MIME,POP3,IMAP协议))

news2024/11/18 9:42:49

文章目录

  • 1. 文件传输协议
  • 2. 电子邮件系统

1. 文件传输协议

文件传输协议:

  1. 文件传送协议FTP:提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
  2. 简单文件传送协议TFTP:使用于UDP环境,代码块内存比较小。

FTP是基于客户/服务器(C/S)的协议。

用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

FTP协议工作原理

  1. ftp+用户名+密码登录ftp。或者也可以使用匿名用户来访问远程主机上公开的文件

  2. FTP使用TCP实现可靠传输。

  3. FTP服务器的进程分为两类,一个主进程,多个从属进程

    主进程:负责接受新的连接请求,打开21号端口,为连接的请求分配从属进程。
    从属进程:处理单个的用户连接请求。

在这里插入图片描述

FTP在传送数据时,控制连接在整个文件传输会话中都要保持。用户通过控制链接发送命令给服务器的控制进程。

控制进程收到用户数据传输命令后,创建数据传送进程,文件传输完毕后关闭数据传送链接。

这两个端口号不同。数据传送进程和控制进程都属于从属进程。
是否使用TCP20端口建立数据连接与传输模式有关

  • 主动方式使用TCP20端口
  • 被动方式由服务器和客户端自行协商决定(端口>1024)

FTP传输模式:

  1. 文本模式:ASCII模式,以文本序列传输数据
  2. 二进制模式:Binary模式,以二进制序列传输数据。

2. 电子邮件系统

电子邮件系统组成结构:
在这里插入图片描述
用户代理:用户与电子邮件之间的接口。(电子邮件的客户端软件)

邮件服务器:

  1. 发送、接收邮件
  2. 向发件人报告邮件传送结果
  3. 邮件服务器也可以作为客户。eg:当邮件服务器向另一台邮件服务器发送数据时,此时发送方邮件服务器就作为客户角色。
  4. STMP协议:发送数据协议
    POP3协议,IMAP协议:接受数据协议

在这里插入图片描述
SMIP协议:简单邮件发送协议
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。

SMTP进程包括:
1. 负责发送邮件的SMTP进程就是SMTP客户
2. 负责接收邮件的进程就是SMTP服务器。

SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
来达到控制SMTP进程的作用

SMTP是建立在TCP连接基础上,端口号25,使用客户服务器模型。

SMTP通信模型建立过程:

  1. 连接建立:
    发送方将邮件发送给发送邮件服务器。
    发送邮件服务器每个一段时间需要对自己的邮件缓存进行扫描,如果发现有邮件没有发送,SMTP会使用端口号25将邮件发送出去

    此时发送方邮件服务器需要向接收方邮件服务器建立TCP连接请求。
    接收方邮件服务器返回220Sever ready响应报文。
    SMTP客户向接收方发送HELLO命令。如果SMIP接收方可以接受邮件,则会返回250OK。如果不能接受邮件,就会返回421service not available

  2. 邮件发送:

    这里使用A代指发送邮件服务器,B代指接受邮件服务器。
    A:MAIL FROM <xxx.com> (发件人)
    B:250 OK (SMTP服务器已经准备好接收邮件)
    A:RCPT TO <xxx.com> (收件人,可以是多条)
    B:250 OK /550 No such user here (SMTP服务器确定是否有这个用户)
    A:DATA (要开始传输邮件的内容了)
    B : 354 start mail input;end with < CR >< LF >.< CR >< LF >(SMTP服务器同意传输)
    A:DATA (正式传输邮件)
    ……
    B:250 OK

  3. 连接释放:

    邮件发完,SMTP客户发送QUIT命令,SMTP服务器返回221,表示同意释放TCP连接。

SMTP协议不足:

  1. SMTP不能传送可执行文件或者其他二进制对象。
  2. SMTP仅限于传送7位ASCllI码,不能传送其他非英语国家的文字。
  3. SMTP服务器会拒绝超过一定长度的邮件。

针对上面的不足,又提出了通用因特网邮件扩充MIME
在这里插入图片描述

MIME使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。

POP3协议:
POP3协议负责将接受方的邮件服务器的邮件交给接收方用户代理。

POP3协议使用TCP连接,使用110端口,是客户端服务器模式。(服务器是接收方邮件服务器,客户端是接收方的用户代理)

POP3工作方式:

  1. 下载并保留(在服务器)
  2. 下载并删除

IMAP协议是在POP3协议上进行扩充:

IMAP协议比POP协议复杂。当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。

IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)。

基于万维网的电子邮件:
最大的改动是邮件服务器和客户之间的数据交换使用HTTP协议。

在这里插入图片描述
服务器与服务器之间的数据传输还是使用SMTP协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis-Plus入门案例

MybatisPlus&#xff08;简称MP&#xff09;是基于MyBatis框架基础上开发的增强型工具&#xff0c;旨在简化开发、提供效率。 开发方式 基于MyBatis使用MyBatisPlus基于Spring使用MyBatisPlus基于SpringBoot使用MyBatisPlus SpringBoot它能快速构建Spring开发环境用以整合其…

设计模式之美——看似面向对象,实则面向过程

常见的编程范式或者说编程风格有三种&#xff0c;面向过程编程、面向对象编程、函数式编程&#xff0c;而面向对象编程又是这其中最主流的编程范式。现如今&#xff0c;大部分编程语言都是面向对象编程语言&#xff0c;大部分软件都是基于面向对象编程这种编程范式来开发的。 …

《Redis设计与实现》笔记

第二章&#xff1a;简单动态字符串 1.Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串( simple dynamic string,SDS)的抽象类型,并将SDS用作 Redis的默认字符串表示。 Redis里面,C字符串只会作为字符串…

操作系统第三章习题及答案(汤子瀛第四版)

第三章 1&#xff0e;高级调度与低级调度的主要任务是什么&#xff1f;为什么要引入中级调度&#xff1f; 答&#xff1a;高级调度的主要任务是根据某种算法&#xff0c;把外存上处于后备队列中的那些作业调入内存。低级调度是保存处理机的现场信息&#xff0c;按某种算法先取…

【UE4】打包失败 Failed to build UATTempProj.proj

我抄我自己之 https://zhuanlan.zhihu.com/p/586117443 前两天编 UE4.27 源码内存和CPU直接全是100%爆满&#xff0c;甚至还报错&#xff1a;c1060, the compiler is out of heap&#xff0c;设置虚拟内存也不不好使&#xff0c;发现16GB内存不配编 UE&#xff0c;火速换了64G之…

Kotlin或将超越Go?

知名软件行业分析公司 RedMonk 发布了 2022 年 6 月&#xff08;第三季度&#xff09;编程语言排行榜。 RedMonk 编程语言排行榜通过追踪编程语言在 GitHub 和 Stack Overflow 上的代码使用情况与讨论数量&#xff0c;统计分析后进行排序&#xff0c;其旨在深入了解潜在的语言…

你真的知道Spring Security安全框架吗?

1、什么是安全管理框架&#xff1f; 解决系统安全问题的框架。如果没有安全框架&#xff0c;我们需要手动处理每个资源的访问控制&#xff0c;非常麻烦。使 用安全框架&#xff0c;我们可以通过配置的方式实现对资源的访问限制。 安全框架&#xff0c;简单说是对访问权限进行控…

Android Material Design之MaterialButton(一)

按规矩先上效果图 资源引入 implementation com.google.android.material:material:1.4.0关键属性 属性描述app:backgroundTint背景着色app:backgroundTintMode着色模式app:strokeColor描边颜色app:strokeWidth描边宽度app:cornerRadius圆角大小app:rippleColor按压水波纹颜色…

【Java八股文总结】之计算机网络

文章目录计算机网络一、基础1、网络体系结构2、HTTP协议、TCP协议、UDP协议比较3、网络协议4、WebSocket和Socket的区别&#xff1f;5、常见的端口及其对应的服务&#xff1f;6、从浏览器输入URL到页面展示发生了什么&#xff1f;&#xff08;★★★★★&#xff09;1、DNS域名…

MySQL纯代码复习(下)

前言 本文章的语言描述会比上篇多一些 数据库的创建修改与删除 标识符命名规则 数据库名、表名不得超过30个字符&#xff0c;变量限制为29个必须只能包含A-Z&#xff0c;a-z&#xff0c;0-9&#xff0c;_等63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个My…

Twitter引流如何开发客户

要想在twitter平台上取得效果&#xff0c;你需要先了解twitter的算法规则&#xff0c;去迎合平台&#xff0c;推特群推王给出以下5条建议&#xff0c;让你发布的帖子更容易被推荐。 这里Twitter群推王可以给大家讲一下&#xff0c;关于推特平台的算法排名&#xff1a; Twitter…

nginx降权+安装php

nginx降权 使用普通用户启动Nginx 为什么要让nginx服务使用普通用户 默认情况下&#xff0c;nginx的master进程使用的是root用户&#xff0c;worker进程使用的是nginx指定的普通用户&#xff0c;使用root用户跑nginx的master进程有两个大问题&#xff1a; &#xff08;1&#x…

课程设计-天天象棋作弊软件判别

目录 1.作弊开挂可能迹象 2.设计作弊检测系统灵感 3.设计作弊检测系统思路 3.1反作弊系统应对策略框架 4.感想体悟 1.作弊开挂可能迹象 1.非实名认证&#xff1b; 2.头像&#xff1a;美女&#xff1b; 3.名称&#xff1a; (1)一串英文字母&#xff1b; (2)非正常中文名…

【深度分解网络:显著性分析:IVIF】

Infrared and Visible Image Fusion Based on Deep Decomposition Network and Saliency Analysis &#xff08;基于深度分解网络和显著性分析的红外与可见光图像融合&#xff09; 传统的图像融合侧重于选择一种有效的分解方法从源图像中提取代表性特征&#xff0c;并试图找到…

2022年海运行业研究报告

第一章 行业概况 海洋运输又称“国际海洋运输”&#xff0c;提供海上客运或者货运服务的行业。是国际物流中最主要的运输方式。它是指使用船舶通过海上航道在不同国家和地区的港口之间运送货物的一种方式&#xff0c;在国际货物运输中使用最广泛。国际贸易总运量中的2/3以上&a…

功率放大器和电压放大器的区别是什么意思

很多人经常会在后台咨询小编功率放大器和电压放大器的区别有哪些&#xff1f;今天就来为大家科普一下功率放大器和电压放大器的知识内容&#xff0c;希望大家下次能够区分&#xff0c;并且可以正常地选择和使用功率放大器。 图&#xff1a;功率放大电路与电压放大电路对比 功率…

Opengl ES之YUV数据渲染

YUV回顾 记得在音视频基础知识介绍中&#xff0c;笔者专门介绍过YUV的相关知识&#xff0c;可以参考&#xff1a; 《音视频基础知识-YUV图像》 YUV数据量相比RGB较小&#xff0c;因此YUV适用于传输&#xff0c;但是YUV图不能直接用于显示&#xff0c;需要转换为RGB格式才能显…

简单的股票行情演示(一) - 实时标的数据

一、概述二、效果展示三、实现代码 1、行情数据中心2、数据拉取模块3、基础服务模块4、UI展示四、相关文章原文链接&#xff1a;简单的股票行情演示&#xff08;一&#xff09; - 实时标的数据 一、概述 很长一段时间都有一个想法&#xff0c;使用QCP去做一个行情展示小事例&…

TiDB Cloud

TiDB Cloud 为什么选择TiDB 分布式数据库-多租户混合工作负载-在同一个数据库中 事务型&#xff1a;基于行的数据分析型&#xff1a;基于列的数据 弹性比例&#xff1a; 缩小-减少节点横向扩展-添加节点 基于“RAFT”的高可用性 每个数据段的3个可用区进行复制 多租户 什么…

DataGridXL 2.0 for JavaScript Crack

你的web开发好了&#xff0c;客户说我习惯用excel这样的表格&#xff0c;你们是否能开发像电子表格一样的功能&#xff1f; Web 应用程序的类似 Excel 的体验---DataGridXL 2.0 for JavaScript Crack 你已经构建了一个 Web 应用程序&#xff0c;但你的用户坚持使用 Excel。 类似…