各层网络协议加面试拓展(全网最细)

正文开始


1.各层计算机网络协议综述

协议,就是规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol), 它是控制两个(或多个)对等实体进行通信的规则的集合,是水平的。不对等实体之间是没有协议的,比如用TCP/IP 协议栈通信的两个结点,结点A 的传输层和结点B 的传输层之间存在协议,但结点A 的传输层和结点B 的网络层之间不存在协议。

协议由语法、语义和同步三部分组成。语法规定了传输数据的格式;语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作及做出何种应答;同步规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。


【参考图】:

2.物理层协议

【注意】本层协议不怎么问和考,就说一下奈奎斯特定理与香农定理吧!

  1. 奈奎斯特定理

奈奎斯特(Nyquist)定理又称奈氏准则,它指出在理想低通(没有噪声、带宽有限)的信道中,极限码元传输率为2W 波特,其中W 是理想低通信道的带宽,单位为Hz 。若用V 表示每个码元离散电平的数目(码元的离散电平数目是指有多少种不同的码元,比如有16 种不同的码元,则需要4 位二进制位,因此数据传输率是码元传输率的4 倍),则极限数据率为理想低通信道下的极限数据传输率= 2Wlog2V (单位为b/s)

对于奈氏准则,可以得出以下结论:

  1. 在任何信道中,码元传输的速率是有上限的。若传输速率超过此上限,就会出现严重的码间串扰问题(指在接收端收到的信号波形失去了码元之间的清晰界限),使得接收端不可能完全正确识别码元。
  2. 信道的频带越宽(即通过的信号高频分量越多),就可用更高的速率进行码元的有效传输。
  3. 奈氏准则给出了码元传输速率的限制,但并未对信息传输速率给出限制,即未对一个码元可以对应多少个二进制位给出限制。

由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元携带更多个比特的信息量,此时就需要采用多元制的调制方法。

  1. 香农定理

香农(Shannon) 定理给出了带宽受限且有高斯白噪声于扰的信道的极限数据传输率,当用此速率进行传输时,可以做到不产生误差。香农定理定义为信道的极限数据传输率=Wlog2(1 + S/N) (单位为b/s)
式中, W为信道的带宽, S为信道所传输信号的平均功率, N为信道内部的高斯噪声功率。S/N为信噪比,即信号的平均功率与噪声的平均功率之比,信噪比= 10log10(S/N) (单位为dB), 例如如当S/N= 10 时,信噪比为l0dB, 而当S/N= 1000 时,信噪比为30dB 。

对于香农定理,可以得出以下结论:

  1. 信道的带宽或信道中的信噪比越大,信息的极限传输速率越高。
  2. 对一定的传输带宽和一定的信噪比,信息传输速率的上限是确定的。
  3. 只要信息的传输速率低于信道的极限传输速率,就能找到某种方法来实现无差错的传输。
  4. 香农定理得出的是极限信息传输速率,实际信道能达到的传输速率要比它低不少。

从香农定理可以看出,若信道带宽W 或信噪比S/N 没有上限(实际信道当然不可能这样),则信道的极限信息传输速率也没有上限。

奈氏准则只考虑了带宽与极限码元传输速率的关系,而香农定理不仅考虑到了带宽,也考虑到了信噪比。这从另一个侧面表明,一个码元对应的二进制位数是有限的。

3.数据链路层协议

PPP 协议和HDLC 协议是目前最常用的两种广域网数据链路层控制协议。

一、PPP 协议

PPP (Point-to-Point Protocol) 是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。设计的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使
其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。

PPP协议是在SLIP协议的基础上发展而来的,它既可以在异步线路上传输,又可在同步线路上使用;不仅用于Modem 链路,也用于租用的路由器到路由器的线路。

【背景】: SLIP 主要完成数据报的传送,但没有寻址、数据检验、分组类型识别和数据压缩等功
能,只能传送IP 分组。如果上层不是IP 协议,那么无法传输,并且此协议对一些高层应用也不
支持,但实现比较简单。为了改进SLIP 的缺点,于是制定了点对点协议(PPP) 。

PPP 协议有三个组成部分:

  1. 链路控制协议(LCP) 。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。
  2. 网络控制协议(NCP) 。PPP 协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
  3. 一个将IP数据报封装到串行链路的方法。IP 数据报在PPP 帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU) 的限制。

二、HDLC 协议

高级数据链路控制(High-level Data Link Control, HDLC) 协议是ISO制定的面向比特(记
住PPP协议是面向字节的)的数据链路层协议。该协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的"0 比特插入法”易于硬件实现;全双工通信,有较高的数据链路传输效率;所有帧采用CRC 检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;传输控制功能与处理功能分离,具有较大的灵活性。

HDLC 适用于链路的两种基本配置:非平衡配置和平衡配置。

  1. 非平衡配置的特点是由一个主站控制整个链路的工作。
  2. 平衡配置的特点是链路两端的两个站都是复合站,每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的允许。

【站】
HDLC有3种站类型:主站、从站和复合站。主站负责控制链路的操作,主站发出的帧称为命令帧。从站受控主站,按主站的命令进行操作;发出的帧称为响应帧。另外,有些站既具有主站的功能又具有从站的功能,所以这类站称为复合站,它可以发出命令帧和响应帧。

【HDLC有3种数据操作方式】:1) 正常响应方式。这是一种非平衡结构操作方式,即主站向从站传输数据,从站响应传输,但从站只有在收到主站的许可后,才可进行响应。2) 异步平衡方式。这是一种平衡结构操作方式。在这种方式中,每个复合站都可以进行对另一站的数据传输。3) 异步响应方式。这是一种非平衡结构操作方式。在这种方式中,从站即使未受到主站的允许,也可进行传输。

4.网络层协议

一、网络地址转换(NAT) 是指通过将专用网络地址(如Intranet) 转换为公用地址(如Internet),从而对外隐藏内部管理的IP 地址。它使得整个专用网只需要一个全球IP 地址就可以与因特网连
通,由于专用网本地IP 地址是可重用的,所以NAT 大大节省了IP 地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

使用NAT 时需要在专用网连接到因特网的路由器上安装NAT 软件, NAT 路由器至少有一个
有效的外部全球地址。使用本地地址的主机和外界通信时, NAT 路由器使用NAT 转换表将本地
地址转换成全球地址,或将全球地址转换成本地地址。NAT 转换表中存放着{本地IP 地址:端口}
到{全球IP 地址端口}的映射。通过{ip 地址:端口}这样的映射方式,可让多个私有IP 地址映射到同一个全球IP 地址。

【注意】:普通路由器在转发IP 数据报时,不改变其源IP 地址和目的IP 地址。而NAT 路由器
在转发IP 数据报时,一定要更换其IP 地址(转换源IP 地址或目的IP 地址)。普通路由器仅工作
在网络层,而NAT 路由器转发数据报时需要查看和转换传输层的端口号。


二、地址解析协议(ARP)

无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP 地址到MAC 地址的映射,这就是地址解析协议(Address Resolution
Protocol, ARP)。每台主机都设有一个ARP 高速缓存,用来存放本局域网上各主机和路由器的IP
地址到MAC 地址的映射表,称ARP 表。使用ARP 来动态维护此ARP 表。

ARP 工作在网络层,其【工作原理】如下:主机A 欲向本局域网上的某台主机B 发送IP 数据报
时,先在其ARP 高速缓存中查看有无主机B 的IP 地址。如有,就可查出其对应的硬件地址,再
将此硬件地址写入MAC 帧,然后通过局域网将该MAC 帧发往此硬件地址。如果没有,那么就
通过使用目的MAC 地址为FF-FF-FF-FF-FF-FF 的帧来封装并广播ARP 请求分组,使同一个局域
网里的所有主机收到ARP 请求。主机B 收到该ARP 请求后,向主机A 发出响应ARP 分组,分
组中包含主机B 的IP 与MAC 地址的映射关系,主机A 在收到后将此映射写入ARP 缓存,然后
按查询到的硬件地址发送MAC 帧。

【注意】: ARP 用于解决同一个局域网上的主机或路由器的IP 地址和硬件地址的映射问题。如
果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP 找到一个位于本局域网上的某
个路由器的硬件地址(网关),然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管ARP 请求分组是广播发送的,但ARP 响应分组是普通的
单播,即从一个源地址发送到一个目的地址。


三、动态主机配置协议(DHCP)

动态主机配置协议(Dynamic Host Configuration Protocol, DHCP) 常用于给主机动态地分配IP 地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP 地址
而不用手工参与。DHCP 是应用层协议,它是基于UDP的。

【DHCP 的工作原理】如下:使用客户/服务器方式。需要IP 地址的主机在启动时就向DHCP 服
务器广播发送发现报文,这时该主机就成为DHCP 客户。本地网络上所有主机都能收到此广播报
文,但只有DHCP 服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置
信息。若找到,则返回找到的信息。若找不到,则从服务器的IP 地址池中取一个地址分配给该计
算机。DHCP 服务器的回答报文称为提供报文。

DHCP 服务器聚合DHCP 客户端的交换过程如下:

  1. DHCP 客户机广播"DHCP 发现“消息,试图找到网络中的DHCP 服务器,以便从DHCP
    服务器获得一个IP 地址。
  2. DHCP 服务器收到"DHCP 发现“消息后,向网络中广播"DHCP 提供“消息,其中包括
    提供DHCP 客户机的IP 地址和相关配置信息。
  3. DHCP 客户机收到"DHCP 提供“消息,如果接收DHCP 服务器所提供的相关参数,那
    么通过广播"DHCP 请求“消息向DHCP 服务器请求提供IP 地址。
  4. DHCP 服务器广播"DHCP 确认“消息,将IP 地址分配给DHCP 客户机。
    DHCP 允许网络上配置多台DHCP 服务器,当DHCP 客户机发出DHCP 请求时,有可能收
    到多个应答消息。这时, DHCP 客户机只会挑选其中的一个,通常挑选最先到达的。
    DHCP 服务器分配给DHCP 客户的IP 地址是临时的,因此DHCP 客户只能在一段有限的时
    间内使用这个分配到的IP 地址。DHCP 称这段时间为租用期。租用期的数值应由DHCP 服务器
    自己决定, DHCP 客户也可在自已发送的报文中提出对租用期的要求。

【注意】DHCP 的客户端和服务器端需要通过广播方式来进行交互,原因是在DHCP 执行期间,客户
端和服务器端都没有标识自己身份的IP 地址,因此不可能通过单播的形式进行交互。采用UDP
而不采用TCP 的原因也很明显: TCP 需要建立连接,如果连对方的IP 地址都不知道,那么更不
可能通过双方的套接字建立连接。


四、网际控制报文协议(ICMP)

为了提高IP 数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol, ICMP) 来让主机或路由器报告差错和异常情况。ICMP 报文作为IP 层数据报
的数据,加上数据报的首部,组成IP 数据报发送出去。ICMP 是IP 层协议。ICMP 报文的种类有两种,即ICMP 差错报告报文和ICMP 询问报文。

五种差错报告报文

  1. 终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
  2. 源点抑制。当路由器或主机由千拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
  3. 时间超过。当路由器收到生存时间(TTL) 为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
  4. 参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  5. 改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

五、IGMP 与组播路由算法

要使路由器知道组播组成员的信息,需要利用因特网组管理协议(Internet Group Management
Protocol, IGMP) 。连接到局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,
以便把组播数据报用最小代价传送给所有组成员,这就需要使用组播路由选择协议。
IGMP 并不是在因特网范围内对所有组播组成员进行管理的协议。IGMP 不知道IP 组播组包
含的成员数,也不知道这些成员分布在哪些网络上。IGMP 让连接到本地局域网上的组播路由器
知道本局域网上是否有主机参加或退出了某个组播组。

IGMP 应视为TCP/IP 的一部分,其工作可分为两个阶段。

第一阶段当某台主机加入新的组播组时,该主机应向组播组的组播地址发送一个IGMP 报
文,声明自己要成为该组的成员。本地的组播路由器收到IGMP 报文后,将组成员关系转发给因
特网上的其他组播路由器。

第二阶段因为组成员关系是动态的,本地组播路由器要周期性地探询本地局域网上的主机,
以便知道这些主机是否仍继续是组的成员。只要对某个组有一台主机响应,那么组播路由器就认
为这个组是活跃的。但一个组在经过儿次的探询后仍然没有一台主机响应时,则不再将该组的成
员关系转发给其他的组播路由器。

组播路由选择实际上就是要找出以源主机为根结点的组播转发树,其中每个分组在每条链路
上只传送一次(即在组播转发树上的路由器不会收到重复的组播数据报)。不同的多播组对应于
不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

5.传输层

  • TCP 提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP 不提供广播或组播服务。由于TCP 提供面向连接的可靠传输服务,因此不可避免地增加了许多开销,如确认、流量控制、计时器及连接管理等。这不仅使协议数据单元的头部增大很多,还要占用许多的处理机资源。因此TCP 主要适用于可靠性更重要的场合,如文件传输协议(FTP) 、超文本传输协议(HTTP) 、远程登录(TELNET) 等。

  • UDP 是一个无连接的非可靠传输层协议。它在IP 之上仅提供两个附加服务:多路复用和对数据的错误检查。IP 知道怎样把分组投递给一台主机,但不知道怎样把它们投递给主机上的具体应用。UDP 在传送数据之前不需要先建立连接,远程主机的传输层收到UDP 报文后,不需要给出任何确认。由于UDP 比较简单,因此执行速度比较快、实时性好。使用UDP 的应用主要包括小文件传送协议(TFTP) 、DNS 、SNMP 和实时传输协议(RTP) 。

UDP 提供尽最大努力的交付,即不保证可靠交付,但这并不意味着应用对数据的要求是不可
靠的,因此所有维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用的需求
来灵活设计自己的可靠性机制。

UDP 是面向报文的。发送方UDP 对应用层交下来的报文,在添加首部后就向下交付给IP 层,
既不合并,也不拆分,而是保留这些报文的边界;接收方UDP 对IP 层交上来UDP 用户数据报,
在去除首部后就原封不动地交付给上层应用进程,一次交付一个完整的报文。因此报文不可分割,
是UDP 数据报处理的最小单位。

【注意】:1) IP 数据报和UDP 数据报的区别: IP 数据报在网络层要经过路由的存储转发;而UDP 数据报在传输层的端到瑞的逻辑信道中传输,封装成IP 数据报在网络层传输时, UDP数据
报的信息对路由是不可见的。2) TCP 和网络层虚电路的区别: TCP 报文段在传输层抽象的逻辑信道中传输,对路由器不可见;虚电路所经过的交换结点都必须保存虚电路状态信息。在网络层若采用虚电路万式,则无法提供无连接服务,而传输层采用TCP 不影响网络层提供元连接服务。

6.应用层

一、域名系统(DNS)

域名系统(Domain Name System, DNS) 是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.cskaoyan.com) 转换为便于机器处理的IP 地址。相对于IP 地址,
人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。值得注意的是, DNS 系统采用
客户/服务器模型,其协议运行在UDP 之上,使用53 号端口。

从概念上可将DNS 分为3 部分:层次域名空间、域名服务器和解析器。

  • 层次域名空间
    因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或
    路由器,都有一个唯一的层次结构名称,即域名(Domain Name) 。域(Domain) 是名字空间中
    一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,而各标号之间用点(". ")隔开。

  • 域名服务器
    因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到
    IP 地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)
    范围称为区(不以“域”为单位),各单位根据具体情况来划分自己管辖范围的区,但在一个区
    中的所有结点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主
    机的域名到IP 地址的映射。每个域名服务器不但能够进行一些域名到IP 地址的解析,而且还必
    须具有连向其他域名服务器的信息。当自己不能进行域名到IP 地址的转换时,能够知道到什么地
    方去找其他域名服务器。
    DNS 使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所
    有主机的映射,相反,该映射分布在所有的DNS 上。采用分布式设计的DNS, 是一个在因特网
    上实现分布式数据库的精彩范例。主要有4 种类型的域名服务器:
  1. 根域名服务器
    根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器
    的IP 地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网
    上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。

需要注意的是,根域名服务器用来管
辖顶级域(如com), 通常它并不直接把待查询的域名直接转换成IP 地址,而是告诉本地域名服
务器下一步应当找哪个顶级域名服务器进行查询。

  1. 顶级域名服务器
    这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到DNS 查询请求时,
    就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP 地址)。
  2. 授权域名服务器(权限域名服务器)
    每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个
    授权域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授权
    域名服务器总能将其管辖的主机名转换为该主机的IP 地址。
  3. 本地域名服务器
    本地域名服务器对域名系统非常重要。每个因特网服务提供者(ISP), 或一所大学,甚至一
    所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出DNS 查询请求时,这个
    查询请求报文就发送给该主机的本地域名服务器。事实上,我们在Windows 系统中配置“本地连
    接”时,就需要填写DNS 地址,这个地址就是本地DNS (域名服务器)的地址。

  • 域名解析过程
    域名解析是指把域名映射成为IP 地址或把IP 地址映射成域名的过程。前者称为正向解析,
    后者称为反向解析。当客户端需要域名解析时,通过本机的DNS 客户端构造一个DNS 请求报文,
    以UDP 数据报方式发往本地域名服务器。域名解析有两种方式:递归查询和递归与迭代相结合
    的查询。

下面举例说明域名解析的过程。假定某客户机想获知域名为y.abc.com 主机的IP 地址,域名
解析的过程(共使用8 个UDP 报文)如下:
1)客户机向其本地域名服务器发出DNS 请求报文。
2)本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS 客户的身份向根
域名服务器发出解析请求。
3)根域名服务器收到请求后,判断该域名属于com 域,将对应的顶级域名服务器dns.com
的IP 地址返回给本地域名服务器。
4)本地域名服务器向顶级域名服务器dns.com 发出解析请求报文。
5)顶级域名服务器dns.com 收到请求后,判断该域名属于abc.com 域,因此将对应的授权域名服务器dns.abc.com 的IP 地址返回给本地域名服务器。
6)本地域名服务器向授权域名服务器dns.abc.com 发起解析请求报文。
7)授权域名服务器dns.abc.com 收到请求后,将查询结果返回给本地域名服务器。
8)本地域名服务器将查询结果保存到本地缓存,同时返回给客户机。

【注意】:为了提高DNS 的查询效率,并减少因特网上的DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。当一个DNS 服务器接收到DNS 查询结果时,它能将该DNS 信息缓存在高速
缓存中。这样,当另一个相同的域名查询到达该DNS 服务器时,该服务器就能够直接提供所要
求的IP 地址,而不需要再去向其他DNS 服务器询问。因为主机名和IP 地址之间的映射不是永久
的,所以DNS 服务器将在一段时间后丢弃高速缓存中的信息。


二、文件传输协议(FTP)
文件传输协议(File Transfer Protocol, FTP) 是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。
FTP 提供以下功能:

  1. 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
  2. 以用户权限管理的方式提供用户对远程FTP 服务器上的文件管理能力。
  3. 以匿名FTP 的方式提供公用文件共享的能力。

FTP 采用客户/服务器的工作方式,它使用TCP 可靠的传输服务。一个FTP 服务器进程可同
时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求。其工作步骤如下:

  1. 打开熟知端口21 (控制端口),使客户进程能够连接上。
  2. 等待客户进程发连接请求。
  3. 启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
  4. 回到等待状态,继续接收其他客户进程的请求。

FTP 服务器必须在整个会话期间保留用户的状态信息。特别是服务器必须把指定的用户账户
与控制连接联系起来,服务器必须追踪用户在远程目录树上的当前位置。


三、电子邮件系统
自从有了因特网,电子邮件就在因特网上流行起来。电子邮件是一种异步通信方式,通信时
不需要双方同时在场。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可以随时上网到自己使用的邮件服务器进行读取。

一个电子邮件系统应具有图所示的三个最主要的组成构件,即用户代理(User Agent) 、
邮件服务器和电子邮件使用的协议,如SMTP 、POP3等。

下面简单介绍电子邮件的收发过程。
1)发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP 把邮件传送给发送
方邮件服务器。
2)发送方邮件服务器将邮件放入邮件缓存队列中,等待发送。
3)运行在发送方邮件服务器的SMTP 客户进程,发现邮件缓存中有待发送的邮件,就向运
行在接收方邮件服务器的SMTP 服务器进程发起建立TCP 连接。
4)TCP 连接建立后, SMTP 客户进程开始向远程SMTP 服务器进程发送邮件。当所有待发送邮件发完后, SMTP 就关闭所建立的TCP 连接。
5)运行在接收方邮件服务器中的SMTP 服务器进程收到邮件后,将邮件放入收信人的用户
邮箱,等待收信人在方便时进行读取。
6)收信人打算收信时,调用用户代理,使用POP3 (或IMAP) 协议将自己的邮件从接收方
邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。


四、超文本传输协议(HTTP)

HTTP 定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器
怎样把文档传送给浏览器。从层次的角度看, HTTP 是面向事务的(Transaction-oriented) 应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

  • HTTP 的操作过程
    从协议执行过程来说,浏览器要访问WWW 服务器时,首先要完成对WWW 服务器的域名
    解析。一旦获得了服务器的IP 地址,浏览器就通过TCP 向服务器发送连接建立请求。TCP 连接建立后,
    浏览器就向服务器发送请求获取某个Web 页面
    的HTTP 请求。服务器收到HTTP 请求后,将
    构建所请求Web 页的必需信息,并通过HTTP
    响应返回给浏览器。浏览器再将信息进行解释,然后将Web页显示给用户。最后, TCP 连接释放。

【举个栗子】用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例):

  1. 浏览器分析链接指向页面的URL (http://www.tsinghua.edu.cn /chn/index.htm) 。
  2. 浏览器向DNS 请求解析www.tsinghuaa.edu.cn 的IP 地址。
  3. 域名系统DNS解析出清华大学服务器的IP 地址。
  4. 浏览器与该服务器建立TCP 连接(默认端口号为80) 。
  5. 浏览器发出HTTP 请求: GET /chn/index.htm 。
  6. 服务器通过HTTP 响应把文件index.htm 发送给浏览器。
  7. TCP 连接释放。8) 浏览器解释文件index.htm, 并将Web 页显示给用户。

HTTP 既可以使用非持久连接,也可以使用持久连接(HTTP/1.1 支持)。
对于非持久连接,每个网页元素对象(如JPEG 图形、Flash 等)的传输都需要单独建立一个
TCP 连接,(第三次握手的报文段中捎带了客户对万维网文档的请求)。也就是说,
请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT 用于TCP 连接,另一个RTT 用于请求和接收文档)。
所谓持久连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器
可以继续在这条连接上传送后续的HTTP 请求与响应报文,

我在复习过程中整理的面试系列文章,全部免费分享给大家,适合保研和考研,需要的请移步我的个人原创gong主号:程序员宝藏(号如其名,诚不欺你),回复关键字:复试上岸,即可获取!在这里插入图片描述

原创文章 26 获赞 372 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_42648261/article/details/105938310