OSI七大模型 --- 发送邮件

我想通过电子邮件发送一张照片给我的朋友。从我开始写邮件到发送成功,按照这个顺序讲一下我都经历了OSI模型的哪一层,对应的层使用了什么样的协议?

完整流程示例(补充物理层细节)
假设你通过Wi-Fi发送邮件:
应用层:邮件客户端生成邮件数据(含照片附件)。
表示层:照片被Base64编码,邮件内容通过TLS加密。
会话层:建立SMTP会话,协商加密参数。
传输层:TCP将数据分段,添加端口号。
网络层:IP协议封装数据包,标记源和目的IP地址。
数据链路层:封装为Wi-Fi帧(含MAC地址),通过网卡准备发送。
物理层:网卡将帧转换为2.4GHz无线电波信号;信号通过Wi-Fi天线发送到无线路由器;路由器通过光纤调制解调器将信号转换为光脉冲;光脉冲经光纤传输至邮件服务器(如Gmail)。
  1. 应用层(Application Layer)
    功能:直接与用户交互,提供邮件服务的应用逻辑(写邮件、添加附件、点击发送)。

协议:

SMTP(Simple Mail Transfer Protocol):负责将邮件从客户端发送到邮件服务器。

MIME(Multipurpose Internet Mail Extensions):将照片(二进制文件)编码为文本格式,以便通过邮件传输。

  1. 表示层(Presentation Layer)
    功能:数据格式转换、加密/解密、压缩。

协议:

MIME:继续在此层处理附件的编码(如将图片转为 Base64 格式)。

SSL/TLS(可选):如果使用加密邮件(如 Gmail 的 HTTPS),负责加密邮件内容。

  1. 会话层(Session Layer)
    功能:建立、管理、终止通信会话。

协议:

SMTP 会话管理:客户端与邮件服务器之间通过 SMTP 命令(如 HELO、MAIL FROM、RCPT TO)建立会话。

TLS 握手(可选):在加密通信前协商加密参数。

  1. 传输层(Transport Layer)
    功能:确保端到端的可靠数据传输。

协议:

TCP(Transmission Control Protocol):为 SMTP 提供可靠连接,确保邮件数据包按序到达。

  1. 网络层(Network Layer)
    功能:逻辑寻址和路由选择。

协议:

IP(Internet Protocol):将数据包从你的设备路由到邮件服务器(如 smtp.gmail.com 的 IP 地址)。

  1. 数据链路层(Data Link Layer)
    功能:在局域网或相邻节点间传输数据帧。

协议:

以太网(Ethernet)(有线)或 Wi-Fi(IEEE 802.11)(无线):将 IP 数据包封装为帧,通过物理网络传输。

  1. 物理层(Physical Layer)
    功能:通过物理介质(电缆、光纤、无线电波)传输比特流。

协议:

物理介质标准:如双绞线(Cat6)、光纤(GPON)、Wi-Fi 信号(2.4GHz/5GHz 频段)。

完整流程示例
应用层:你在邮件客户端(如 Outlook)中撰写邮件,添加照片附件,点击发送。

表示层:照片被 MIME 编码为 Base64 文本,邮件内容通过 TLS 加密。

会话层:客户端与邮件服务器建立 SMTP 会话,发送 MAIL FROM 和 RCPT TO 命令。

传输层:TCP 将邮件数据分割为段,添加端口号(SMTP 默认端口 25 或 587)。

网络层:IP 协议将 TCP 段封装为数据包,附上源和目的 IP 地址。

数据链路层:数据包封装为帧,通过以太网或 Wi-Fi 发送到路由器。

物理层:路由器将帧转为电信号/光信号,经光纤或电缆传输到互联网。

总结
从写邮件到发送成功,数据逐层封装并通过协议协作完成传输。关键协议包括 SMTP(应用层)、TCP(传输层)、IP(网络层),底层依赖物理介质实现最终传输。



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

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

相关文章

LINUX网络基础 [一] - 初识网络,理解网络协议

目录 前言 一. 计算机网络背景 1.1 发展历程 1.1.1 独立模式 1.1.2 网络互联 1.1.3 局域网LAN 1.1.4 广域网WAN 1.2 总结 二. "协议" 2.1 什么是协议 2.2 网络协议的理解 2.3 网络协议的分层结构 三. OSI七层模型(理论标准) …

【LLms】关键词提取

1. 停用词 在文本处理和信息检索领域,停用词(Stop Words)是指在文本中出现频率较高,但通常不包含实际语义信息或对语义理解贡献较小的词汇。这些词汇通常是一些常见的功能词,如冠词、介词、连词、代词、感叹词、助动词…

1998-2022年各地级市三次产业占比/地级市国内生产总值构成/地级市第一产业占比、第二产业占比、第三产业占比数据(全市)

1998-2022年各地级市三次产业占比/地级市国内生产总值构成/地级市第一产业占比、第二产业占比、第三产业占比数据(全市) 1、时间:1998-2022年 2、指标:第一产业占比、第二产业占比、第三产业占比 3、来源:城市统计年…

基于STM32的简易出租车计费设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)

这里写目录标题 1.主要功能资料下载链接:2.仿真3. 程序4. 原理图PCB5. 实物图6. 设计报告7. 下载链接 基于STM32的简易出租车计费设计(Proteus仿真程序设计报告原理图PCB讲解视频) 仿真图proteus 8.9 程序编译器:keil 5 编程语言&#xff1…

HAL库启动ADC的三个函数的区别

HAL_ADC_Start 应该是启动ADC转换的最基本函数。只是启动一次转换,然后需要用户自己去查询转换是否完成,或者可能只是单次转换。比如,当调用这个函数后,ADC开始转换,但程序需要不断检查某个标志位来看转换是否完成&am…

EXIT原理和使用

要用到的控制器NVIC(中断总控制器)、EXIT(外部中断控制器) (EXIT是NVIC是下属) GPIO外部中断简图 EXIT的基本概念 EXIT主要特性 EXTI工作原理框图(从输入线开始看) 6个寄存器 EXTI和IO的映射关系 AFIO简介 EXTI与IO对应关系 如…

经典核密度估计(Kernel Density Estimation):从直觉到数学

经典核密度估计(Kernel Density Estimation):从直觉到数学 作为一名在大模型时代进入深度学习领域的研究者,你可能对 Transformer、扩散模型等现代技术驾轻就熟。然而,在阅读一些生成模型的文献(如 Explic…

Halcon 算子 一维码检测识别、项目案例

首先我们要明白码的识别思路 把窗口全部关闭读取新的图片图像预处理创建条码模型设置模型参数搜索模型获取条码结果显示条码结果 图像预处理和条码增强 对比度太低: scale_image(或使用外部程序scale_image_range),增强图像的对比度图像模糊…

vue-cli3+vue2+elementUI+avue升级到vite+vue3+elementPlus+avue总结

上一个新公司接手了一个vue-cli3vue2vue-router3.0elementUI2.15avue2.6的后台管理项目,因为vue2在2023年底已经不更新维护了,elementUI也只支持到vue2,然后总结了一下vue3的优势,最后批准升级成为了vitevue3vue-router4.5element…

SpringBoot实战(三十五)微服务集成OAuth2.0(UAA)

目录 一、知识回顾1.1 什么是 OAuth2 协议?1.2 OAuth2 的4个角色1.3 OAuth2 的3种令牌1.4 OAuth2 的5种认证方式1.5 OAuth2 内置接口地址 二、UAA介绍2.1 概述2.2 UAA的主要功能2.3 UAA 的应用场景 三、微服务集成3.1 集成示例介绍3.2 集成测试 一、知识回顾 在进行…

红果短剧安卓+IOS双端源码,专业短剧开发公司

给大家拆解一下红果短剧/河马短剧,这种看光解锁视频,可以挣金币的短剧APP。给大家分享一个相似的短剧APP源码,这个系统已接入穿山甲广告、百度广告、快手广告、腾讯广告等,类似红果短剧的玩法,可以看剧赚钱&#xff0c…

从0开始的操作系统手搓教程23:构建输入子系统——实现键盘驱动1——热身驱动

目录 所以,键盘是如何工作的 说一说我们的8042 输出缓冲区寄存器 状态寄存器 控制寄存器 动手! 注册中断 简单整个键盘驱动 Reference ScanCode Table 我们下一步就是准备进一步完善我们系统的交互性。基于这个,我们想到的第一个可以…

百度SEO关键词布局从堆砌到场景化的转型指南

百度SEO关键词布局:从“堆砌”到“场景化”的转型指南 引言 在搜索引擎优化(SEO)领域,关键词布局一直是核心策略之一。然而,随着搜索引擎算法的不断升级和用户需求的多样化,传统的“关键词堆砌”策略已经…

Python ❀ Unix时间戳转日期或日期转时间戳工具分享

设计一款Unix时间戳和日期转换工具,其代码如下: from datetime import datetimeclass Change_Date_Time(object):def __init__(self, date_strNone, date_numNone):self.date_str date_strself.date_num date_num# 转时间戳def datetime2timestamp(s…

【目标检测】【NeuralPS 2023】Gold-YOLO:通过收集与分发机制实现的高效目标检测器

Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism Gold-YOLO:通过收集与分发机制实现的高效目标检测器 0.论文摘要 在过去的几年中,YOLO系列模型已成为实时目标检测领域的领先方法。许多研究通过修改架构、增强数…

π0源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司的部分落地实践

前言 ChatGPT出来后的两年多,也是我疯狂写博的两年多(年初deepseek更引爆了下),比如从创业起步时的15年到后来22年之间 每年2-6篇的,干到了23年30篇、24年65篇、25年前两月18篇,成了我在大模型和具身的原始技术积累 如今一转眼…

K8s 1.27.1 实战系列(六)Pod

一、Pod介绍 1、Pod 的定义与核心设计 Pod 是 Kubernetes 的最小调度单元,由一个或多个容器组成,这些容器共享网络、存储、进程命名空间等资源,形成紧密协作的应用单元。Pod 的设计灵感来源于“豌豆荚”模型,容器如同豆子,共享同一环境但保持隔离性。其核心设计目标包括…

企业日常工作中常用的 Linux 操作系统命令整理

Linux 操作系统命令整理 在企业级运维、开发和日常工作中,Linux 命令是绕不开的核心技能。不论是日志排查、进程管理,还是高效运维优化,掌握这些命令都能让你事半功倍!本篇文章整理了自己在日常工作中积累最常用的 Linux 命令&am…

实现NTLM relay攻击工具的Python代码示例

以下是一个实现NTLM relay攻击工具的Python代码示例,该工具可以完成自动扫描IP、配置相关协议、获取hash、自动化设置和执行攻击步骤等功能。 代码思路 IP扫描:使用scapy库进行IP扫描,找出活跃的IP地址。Responder配置:自动配置…

Kotlin和Java区别

哈哈哈,前段时间,面试的时候,突然问到我Kotlin和Java的区别,一下子把我问懵逼了,确实没遇到问这个的,想了下,说了下Kotlin的编译时空检查机制,代码更简洁,很多封装好的AP…