Posted on 

计算机网络概论

计算机网络

概念

计算机网络是一个分散的、具有独立功能的计算机系统,通过通讯设备与线路连接起来由功能完善的软件实现资源共享和信息共享的系统。

组成

1.组成部分

硬件、软件、协议

2.工作方式

边缘部分 用户直接使用

  • C/S方式
  • P2P方式

核心部分 为边缘部分服务

3.功能组成

  • 通信子网 实现数据通信
  • 资源子网 实现资源共享/数据处理

分类

1.按分布范围分:广域网WAN,城域网MAN,局域网LAN,个人区域网PAN

2.按使用者分: 公用网(中国电信), 专用网(军事)

3.按交换技术分:电路交换、报文交换、分组交换

4.按拓扑结构分:

5.按传输技术来分:

广播式网络:共享公共通信信道

点对点网络:使用分组存储转发和路由选择机制

标准化工作

要实现不同厂商的硬、软件之间相互连通,必须遵从统一的标准。

标准的分类

法定标准

由权威机构制定的正式的、合法的标准 OSI

事实标准

某些公司的产品在竞争中占据了主流,时间长了

这些产品中的协议和技术就成了标准 TCP/IP

性能指标

速率

速率即数据率或称数据传输率或比特率

比特

数据传输单位 1/0 位

连接在计算机网络上的主机在数字信道上传送数据位数的速率

单位是b/s,kb/s,Mb/s,Gb/s,Tb/s

1kb/s = 10三次方b/s

存储容量

1Byte(字节)=8bit(比特)

1KB=2十次方B=1024B=1024*8b

1MB=2十次方KB=1024KB

带宽

  • 带宽原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)。

  • 计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是 比特每秒 。b/s,kb/s,Mb/s,Gb/s。 网络设备所支持的最高速度。

吞吐量

表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。

吞吐量受网络的带宽或网络的额定速率的限制。

  • 带宽可以理解为链路的理论传输速率上限,吞吐量是某时间内链路实际的数据量

时延

指数据(报文/分组/比特流)从网络上(或链路)的一端传送到另一端所需要的时间。也叫延迟或迟延。单位是s。

时延

发送时延(传播时延): 从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。发生在网络设配器上。

                数据长度
 发送时延:  ---------------
             信道带宽(发送速率)

传播时延:取决于电磁波传播速度和链路长度。发生在信道上的。

            信道长度
传播时延: ————————————————————
         电磁波在信道上的传播速率

排队时延:等待输出/入 链路可用

处理时延

处理时延(海水提取盐) 发送时延(运盐到城里)排队时延(买盐)传播时延(给你盐)

时延带宽积

时延带宽积 = 传播时延 + 带宽

时延带宽积又称为以比特位单位的链路长度

即“塞满链路时候的比特长度”。 容量

往返时延RTT

从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。

RTT越大,在收到确认之前,可以发送的数据越多。

RTT包括

往返传播时延=传播时延*2

末端处理时间

利用率

信道利用率

     有数据通过的时间
= ---------------------
   (有+无)数据通过的时间

网络利用率

信道利用率加权平均值

分层

为什么要分层?

发送文件前要完成的工作:

1)发起通信的计算机必须将数据通信的通路进行激活。

2)要告诉网络如何识别目标主机

3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。

4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。

5)确保差错和意外可以解决

。。。。

分层的基本原则

分层结构

概念

OSI参考模型

物联网输会示用

通信过程

应用层

用户与网络的界面

所有能和用户交互产生网络流量的程序

应用层服务:

文件传输(FTP)

电子邮件(SMTP)

万维网(HTTP)

表示层

用于处理在两个通信系统中交换信息的表示方式(语法和语义)

功能一: 数据格式交换

功能二: 数据加密解密

功能三: 数据压缩和恢复

会话层

向表示层实体/用户进程提供建立连接并在连接上有序地传输数据. 这是会话,也是建立同步(SYN)

功能:

一. 建立,管理,终止会话

二. 使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步. 适用于传输大文件.

传输层

负责主机中两个进程的通信,即端到端的通信. 传输单位时报文段或用户数据报.

上面三层的都是主机应用交流 下面三层都是设备转发数据

功能:

一.可靠传输,不可靠传输

发的文字消息是不可靠传输,发出去后就不管了

二. 差错控制

发送的报文段丢失了, 传输层负责纠正错误.

三. 流量控制

四. 复用分用

复用:多个应用层进程可同时使用下面运输层的服务.

分用: 运输层把收到的信息分别交付给上面应用层的相应的进程.

网络层

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据报

功能:

一.路由选择. 最佳路径

二.流量控制

三.差错控制

四.拥塞控制 若所有节点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态.因此要采取一定措施,缓解这种拥塞.

数据链路层

主要任务是把网络层传下来的数据报组装成帧.

数据链路层/链路层的传输单位是帧.

物理层

主要任务是在物理媒体上实现比特流的透明传输.

物理层传输单位是比特.

半双工(回合制)

TCP/IP模型

相同点:

1.都分层

2.基于独立的协议栈的概念

3.可以实现异构网络互联

不同点:

5层参考模型

物理层

物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。

数据通信

三种通讯方式

两种数据传输方式

码元

速率,波特,带宽

奈式准则(Nyquist)

是在理想状态下得出的结论

香农公式(Shannon)

是在有噪声的信道中得出的结论

基带信号和宽带/带通信号(Base band,pass band)

计算机网络中用的基带信号是数字信号

编码

将数据转化为数字信号

数字数据(digtal data)通过 数字发送器(digit emitter) 转化为 数字信号(digtal signal)

模拟数据(analog data)通过 PCM编码器(PCM coder) 转化为 数字信号 (digtal signal)

单极性不归零编码:只使用一个电压值,高电平表示1,低电平表示0.

双极性不归零编码:用幅值相等的正负电平表示二进制数1和0.

单极性归零编码:发送码1时高电平在整个码元期间只持续一段时间,其余时间返回零电平。

双极性归零编码:正负零三个电平,信号本身携带同步信息。

曼彻斯特编码:单极性编码的缺点是没有办法区分此时是没有信号,还是有信号,但是信号是0.
这种编码方式是bit中间有信号,低-高跳转表示0,高-低跳转表示1,一个时钟周期只可以表示一个bit,并且必须通过两次采样才能得到一个bit。它能携带时钟信号,而且能区分此时是没有信号还是信号为0.

差分曼彻斯特编码:抗干扰能力比曼彻斯特编码更强。bit与bit之间有信号跳变,表示下一个bit为0,bit与bit之间没有信号跳变,表示下一个bit为1。

调制:数据转化为模拟信号(了解)

常用的调制方法:调频(AM),调频(FM),调相(PM)

模拟数据(analog data)通过 调制器(modulaotr) 转化为 模拟信号 (analog signal)

数字数据(digtal data)通过 调制器(modulaotr) 转化为 模拟信号 (analog signal)

物理层传输介质

传输介质分为导向性传输介质和非导向性传输介质

导向性传输介质 电磁波沿着固体媒介(铜线or光纤)被导向传播
非导向性传输介质 自由空间,如空气,水等等

常见的导向性传输介质

双绞线

根据有无屏蔽层分为屏蔽双绞线(STP) 无屏蔽双绞线(UTP)

同轴电缆(Coaxial Cable)

光纤(Optical fiber)

根据入射角不同,又分为单模光纤和多模光纤

常见的非导向性传输介质

包括无线电波微波红外线激光

物理层设备

中继器(RP repeater)

注释:5-4-3规则是为了限制中继器使用次数的,理由可见图
5是指不能超过5个网段
4是指在这些网段中的物理层网络设备(中继器,集线器)最多不超过4个
3是指这些网段中最多只有三个网段挂有计算机

集线器(Hub)

集线器是个大的冲突域,同时只能有两个设备进行通讯,只会传输信号,没有智能。

基本概念

封装成帧与透明传输

封装成帧就是加将数据加头加尾,相当于将数据打包
透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况

透明传输的应用

字符计数法

就是在帧的首部做计数,看看数据是否错误
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误

字符填充法

就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样
但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况


解决方法:添加转义字符

零比特填充法
违规编码法

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突

差错控制

差错是什么,从哪来的

数据链路层的差错检测的是比特的错误

为什么要在数据链路层进行差错控制?

因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费

检错编码(奇偶校验码,循环冗余码CRC)

奇偶校验码

缺点:只能检测出1,3,5,7…等等奇位数错误,检测成功率位50%

循环冗余码CRC

就是用传输数据除以生成多项式得到冗余码

实际例子
注释:
1.阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3
2.异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001
3.出书和最后的余数添加到要发送的数据后面,称为帧检验序列FCS

接收方收到数据后进行检测


需要注意的地方

纠错编码(海明码)

分为四步

第一步 确认校验码位数r
第二步 确定校验码和数据的位置

注释:
1.为什么是10为数据位?因为4位校验码+6位信息位=10位
2.校验码放到2的几次方的位置,其他的地方按顺序放已知的信息位

第三步 求出校验码的值

注释
1.先是通过二进制位确定有几位。本题中因为最大位10的二进制是1010,所以是4为,将其标注
2.然后从p1开始看,看p1的二进制位的数值和所有信息位的对应位置的数值是否相同,然后找出来这些位
这里有点难理解,这里以p1为例辅助理解,这里找出来的就是P1,D1,D2,D4,D5

然后计算异或值,比如说这里D1=1,D2=0,D4=1,D5=0,就是p1要同时和0,1,0,1进行异或之后得到0,为了标识我加粗原始计算数据
举例:0和1异或得1,1和0异或得1,1和1异或得0,那么p1和0异或得0,p1就是0了
3.其他同理,按顺序计算出P2,P3,P4,然后填入表格

第四步 检测并纠错

就是和上面一样,将所有校验位进行运算,得出的结果的值就是错误的位

数据链路层的流量控制和可靠传输

流量控制与可靠传输

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费
可靠传输是发送端发送什么,接收端就要受到什么

停止等待协议(Stop-and-Wait)

停止等待协议的无差错情况
注释:因为一次就一个,所以用0和1标记ack就行

停止等待协议的特点

1.简单
2.信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

·
后退N帧协议(GBN)

因为停止等待协议太浪费时间了,所以尝试采用GBN,发送连续多个数据帧,以增大信道利用率
注释:
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到,反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传

下图是一个实例
注释:此图发送2帧时丢失,所以接收方几首收到后面的帧也是直接丢弃并且发送最晚收到的有效帧1的ACK,直至2帧的超时重传机制被触发进行重传并得到ACK之后,接收方才会接受2帧以及后面的帧

网络层

网络层概述

  • 网络层主要任务:设法将源节点发出的数据包传送到目的节点,从而向传输层提供最基本的端到端的数据传送服务。
    概括如下:
    为传输层提供服务:面向连接的网络服务(虚电路服务)和无连接的网络服务(数据包服务)
    组包和拆包:数据传输的基本单位是数据包(分组)
    路由选择:(也叫路径选择)根据一定的原则和路由选择算法在多节点的通信子网中选择一条最佳路径
    流量控制:控制阻塞,避免死锁
    方法有4种:滑动窗口、预约缓冲区、许可证、分组丢弃
  • 路由选择算法
    1. 静态路由算法(非自适应算法)
      (1) 最短路由选择
      (2) 扩散式路由选择
      (3) 随机路由选择
      (4) 集中路由选择
    2. 动态路由算法(自适应算法)
      (1) 分布式路由选择策略
      (2) 集中路由选择策略
  • 网络层的连接设备
    1. 路由器
    2. 第三次交换机

IP地址

  • IP地址及分类
    Internet上基于TCP/IP的网络中每台设备既有IP地址(即逻辑地址),也有MAC地址(即物理地址)
  1. IP地址结构: 网络ID + 主机ID
  2. IP地址分类
A类 0 - - - (网络号8位)
B类 1 0 - - (网络号16位)
C类 1 1 0 - (网络号24位)
D类 1 1 1 0 -多播地址
E类 1 1 1 1 0 - 保留为今后使用

子网掩码
子网掩码定义:
(1)对应于IP地址的网络ID的所有位都设为”1”。1必须是连续的
(2)对应于主机ID的所有位都设为0
注意:IP分类的标准只有一个,即第一个8位数组是哪个范围,并不看子网掩码。
例如IP为2.1.1.1的子网掩码为255.255.255.0,属于A类地址。该子网掩码仅仅是借用了主机ID的16位作为子网ID
子网划分
原因:为了解决IP地址资源短缺的问题,同时为了提高IP地址资源的利用率
子网划分方法:网络管理员需要从原有IP地址的主机位中借出连续的若干高位作为子网络标识
无分类编址
CIDR(Classless Inter Domain Routing):无类别的域间路由,不受地址类别划分的约束,任何有效的IP地址一律对待,区别网络ID仅仅依赖于子网掩码。
CIDR确定了3个网络地址范围保留为内部网络使用,即公网主机不能使用这3个地址范围的IP地址:

A类 10.0.0.0 - 10.255.255.255
B类 172.16.0.0 - 172.31.255.255
C类 192.168.0.0 - 192.168.255.255

可变长子网掩码(VLSM)
解决在一个网络系统中使用多种层次的子网化IP地址的问题

IP数据报格式
TCP/IP协议

IP封装、分片与重组
IP封装:一个网络帧携带一个数据报的传输方式叫做封装(Encapsulation)。
IP数据报被封装到以太网的MAC数据帧。
报文分片:将IP报文分段成两个或更多的报文以满足最大传输单元的要求。(不同的物理网络允许的最大帧长度MTU各不相同)
IP数据报重组:在接收到所有分片的基础上,主机对分片进行重新组装的过程叫做IP数据报的重组。

网络设备

路由器

是一种具有多个输入端口和多个输出端口的专用计算机,任务是转发分组。
路由器结构分为两大部分:

  1. 路由选择部分(控制部分)
    核心部件路由选择处理器,任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换信息而不断地更新和维护路由表。
  2. 分组转发部分
    组成:
    (1) 交换结构:根据路由表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。
    (2) 一组输入端口:查找和转发功能的路由器的交换功能
    (3) 一组输出端口

总结:路由器的功能如下:

路由选择
协议转换
实现网络层的一些功能
网络管理和安全
多协议路由选择网关

又称网间连接器或协议转换器。
与网桥只是简单的传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关提供过滤和安全功能。大多数网关运行在应用层。

路由选择协议

虚拟专用网和网络地址转换

虚拟专用网VPN

网络地址转换NAT

IPv6

ICMP

ARP和RARP

应用层

域名系统DNS

概述

  • DNS(Domain Name System)域名系统

  • DNS可以为计算机服务器以及介入互联网或局域网中的任何资源进行分层次的名称解析功能

  • DNS主要功能为域名和ip地址之间的解析

  • DNS结构

    1.命名方法:层次树状结构(类似于全球邮政系统和电话系统)
    域名系统分级:一般分为:主机名.三级域名.二级域名.顶级域名.
    2.最后一个.代表根域,根域是所有域的起点.例如:service.example.com.

顶级域名:代表国家或者组织机构,由ICANN管理
- cn 中国
- com 商业公司
- edu 教育机构
二级域名:代表组织或公司名称
三级域名:代表组织或公司内部的主机
四级域名:mail/www

域名查询方式

1.递归查询
如果客户端准备访问百度,客户端首先会查询本地缓存中是否有之前的查询记录,如果有,直接读取结果,如果没有则向本地DNS服务器发起查询请求[递归查询],本地DNS服务器如果有答案,就会将答案直接返回给客户端,但本地DNS服务器没有答案时,这时候就向根域服务器查询,根域服务器并不会返回www.baidu.com主机的ip地址,返回的是.com的ip地址,然后本地DNS到com服务器区查询baidu的地址,查询完成后,会将结果缓存到本地。
2.迭代查询
迭代查询每次由客户端发起请求,域名服务器提供需要查询的信息则返回ip地址信息,如不能则引导客户端到其他域名服务器查询

两者区别:递归查询由别人查找告诉自己答案,迭代查询由自己亲自去查。

DNS服务器分类

高速缓存服务器:将每次域名查询结果缓存到本地
主DNS服务器:提供权威的域名信息,可信赖
辅助DNS服务器:DNS信息来源于主DNS服务器

DNS服务器搭建

unbound
bind

DNS查询流程

为什么机器在处理IP数据报时要使用IP地址而不使用域名呢?

因为IP地址的长度是固定的32位,而域名的长度并不是固定的,机器处理起来比较困难
理论上整个因特网可以只使用一个域名服务器,使它装入因特网上所有主机名,并回答所有对IP地址的查询。但因特网规模太大,域名服务器负荷过大,一旦域名服务器出现故障,整个因特网就会瘫痪。
因此1983年因特网采用层次树状结构的命名方法,并使用分布式的域名系统DNS。

域名到IP地址的解析过程

当一个应用进程需要把主机名解析为IP地址时,该应用进程就调用解析程序(resolver),并称为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器(UDP减小了开销).本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
若本地域名服务器不能回答该请求,则此域名服务器就暂时称为DNS中的另一个客户,并向其他域名服务器发出查询请求。直到找到能够回答该请求的域名服务器为止。

文件传输协议

文件共享协议有两类:

1.复制整个文件,如基于TCP的FTP和基于UDP的TFTP

特点:
若要存取一个文件,就必须先获得一个本地的文件副本。如果要修改文件,只能对文件的副本进行修改,然后 再将修改后的文件副本传回到原节点。

2.联机访问(on-line access):允许多个程序同时对一个文件进行存取。

如网络文件系统NFS(Network-File-System),其可使本地计算机共享远地的资源,就像这些资源在本地一样。
NFS允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。网络上传送的指数少量的修改数据。

FTP的基本原理

主要功能:减少或消除在不同操作系统下处理文件的不兼容性。
FTP服务器进程由两部分组成:

  • 主进程:负责接受新的请求。工作步骤:
    1.打开21端口,使客户进程能够连接上
    2.等待客户进程发出连接请求
    3.启动从属进程来处理客户进程发来的请求。
    4.回到等待状态,继续接受其他客户进程发来的请求。
  • 若干个从属进程:负责处理单个请求

在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:

控制连接

整个会话期间一直保持打开。服务器端的控制进程在接收到FTP客户发来的文件传输请求后就创建”数据传送进程”和”数据连接”,用来连接客户端和服务器端的数据传送进程。

数据连接

由于FTP使用了一个分离的控制连接,因此FTP的控制信息是带外传送的。

简单文件传输协议TFTP

使用UDP数据报,因此TFTP需要有自己的差错改正措施。端口69
特点

  1. 每次传送的数据报文中有512字节的数据,最后一次不足512字节
  2. 数据报文按序编号,从1开始
  3. 支持ASCII码或二进制传送
  4. 可对文件进行读或写
  5. 使用很简单的首部

电子邮件

历史

1982年,ARPANET的电子邮件问世,即简单邮件传送协议SMTP和因特网文本报文格式
1993年,由于SMTP只能传送可打印的7位ASCII码邮件,于是提出了通用因特网邮件扩充MIME(Multipurpose Internet Mail Extensions)
MIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等);MIME邮件可同时传送多种类型数据。

概述

用户代理(UA)

用户与电子邮件系统的接口,通常为运行在用户PC机的程序。又称电子邮件客户端软件。例如微软的Outlook和张小龙的Foxmail
具备四个功能:撰写、显示、处理、通信
邮件服务器

发送和接收邮件,同时要向发件人报告邮件传送的结果(已交付、被拒绝、丢失)
邮件服务器使用两种不同的协议(即邮件服务器同时充当客户和服务器):
1用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP协议
2用于用户代理从邮件服务器读取邮件,如邮局协议POP3
电子邮件

由信封(envelope)和内容(content)两部分组成。信封最重要的是收件人的地址。
TCP/IP体系的电子邮件系统规定电子邮件格式(收件人邮箱名即用户名):
收件人邮箱名@邮箱所在主机的域名

简单邮件传送协议SMTP

-规定了在两个相互通信的SMTP进程之间应如何交换信息。
-SMTP规定了14条命令和21种应答信息
-发送方和接收方的邮件服务器之间的SMTP通信分三个阶段:

连接建立

SMTP客户每隔一定时间对邮件缓存扫描一次,发现有邮件就使用SMTP端口号(25)与接收方建立TCP连接。
建立连接后接收方发出“220 Service ready”
SMTP客户向SMTP服务器发送HELO命令
SMTP服务器接收邮件后回复”250 OK”(表示准备好接收);若不可以回复”421 Service not available”(服务不可用)

邮件传送

从MAIL命令开始。
SMTP服务器准备好接收邮件,返回”250 OK”,否则,返回451(处理时出错),452(存储空间不够),500(命令无法识别)
RCPT命令:发送给一个/多个收件人

连接释放

邮件发送完毕后,SMTP客户发送QUIT命令。服务器返回”221(服务关闭)”,邮件传送的全部过程即结束。

邮件读取协议POP3和网际报文存取协议IMAP

IMAP(Internet Message Access Protocol)

IMAP最大的好处就是:用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。还允许收件人只读取邮件中的某一个部分。
IMAP的缺点:如果用户没有将邮件复制到自己的PC机上,则邮件一直是存放在IMAP服务器上。

基于万维网的电子邮件

20世纪90年代中期,Hotmail引入基于万维网的电子邮件。

1.电子邮件从A的浏览器发送到网易邮件服务器时,不是使用SMTP协议,而是使用HTTP协议。
2.电子邮件从网易邮件服务器发送到新浪的邮件服务器,使用SMTP协议,而不是HTTP协议。
3.B用浏览器从新浪邮件服务器读取A发来的邮件时,使用HTTP协议,不是使用POP3或IMAP协议。
流程如图

通用因特网邮件扩充MIME

电子邮件协议SMTP缺点:
1.SMTP不能传送可执行文件或其他的二进制对象
2.SMTP限于传送7位ASCII码;其他非英语国家的文字(如中文)就无法传送。
3.SMTP服务器会拒绝超过一定长度的邮件
4.某些SMTP的实现没有按照SMTP的因特网标准,如回车、换行的删除和增加、超过76字符时的处理、多余空格的删除等
通用因特网邮件扩充MIME:

增加了邮件主体的结构,并定义传送非ASCII码的编码规则
在现有的电子邮件程序和协议下传送
包含三部分内容:

  • 1.5个新的邮件首部字段,提供主体信息
    MIME-Version:MIME的版本
    Content-Description:说明邮件是否有图像、音频或视频
    Content-Id:邮件的唯一标识符
    Content-Transfer-Encoding:内容传送编码,邮件主题是如何编码的。三种常用的是7位ASCII码、quoted-printable编码、base64编码
    Content-Type:内容类型,邮件主体的数据类型(7个)和子类型(15种)
  • 定义许多邮件内容的格式
  • 定义了传送编码(每个MIME报文包含告知收件人数据类型和使用编码的信息)

    MIME示例邮件如下: