计算机网络的分层结构:沙漏结构

网络层不可靠传递:尽力而为,可能丢包
第1章 Introduction
1.1 计算机网络与互联网
-
计算机网络:通过通信技术连接的独立计算机的互连集合
-
计算机网络提供的服务:通信、资源共享
-
从“螺栓螺母”视角看互联网:
- 设备:主机、终端
- 连接:光纤、铜、无线电、卫星
- 路由器:通过网络转发数据包
- 协议:控制收发消息的规定
-
从服务视角看互联网:
- 使用通信设施进行通讯的分布式应用
- 通信服务分为无连接与面向连接的服务
-
TCP可靠性:三次握手(建立链接)+四次挥手(双向确认结束)
<!-- 图片已丢失 -->
1.2 网络边缘与网络核心
-
互联网结构:
- 网络边缘:应用程序、主机、资源
- 网络核心:路由器、通讯设备等网络交换节点
- 接入网和物理媒体
-
网络边缘:
- 端系统(主机):运行应用程序
- 端对端通信
- 客户/服务器模式(C/S):客户端向服务器发送请求,服务器为客户端提供服务
- 对等模式(P2P):无固定的客户端或服务器
-
网络核心:
-
结构:网状结构的互联路由器
-
功能:支持终端通讯
-
信息传输方式:线路交换(circuit switch)、报文交换(message switch)、分组交换(packet switch)
<!-- 图片已丢失 -->
-
-
线路交换:
-
端到端的资源被分配给从源端到目标端的呼叫
-
优点:性能好
-
缺点:资源独占,不共享;不适合计算机之间的通信(呼叫方式建立连接时间长,计算机之间的通信由突发性,如果使用电路交换,则浪费的片多)
-
电话网络中的线路交换:直接建立线路连接、交换机
-
计算机网络中的线路交换:
- 三阶段:建立线路连接、数据传输、线路释放 <!-- 图片已丢失 -->
-
共享连接:将连接的片段分给呼叫,以减少叫后不用带来的浪费
- 频分FDM
- 时分TDM
- 空分 <!-- 图片已丢失 -->
-
-
分组交换:将端到端的数据流分组,每组按固定格式传输
<!-- 图片已丢失 -->
-
分组是定长的,且必须加上报头(Header)
- 报头(Header)中包含控制信息,包括:源地址与目的地址、序列号、协议版本、分组总长等
-
传输:每个分组在网络中按照报头(Header)中路线传输,每次传一跳(hop,即一个路由器)
-
存储转发网络(store and forward):路由器接收到完整分组后,先存储,再转发
-
时延:
传输时延(Transmission delay):一个站点从开始发送数据到数据发送完毕所需要的全部时间
传播时延(Propagation delay):发送端开始发送数据到接收端收到数据所需要的全部时间
-
分类:
数据包网络:每个分组的目的地址决定下一跳(hop),通信前无需建立连接,路由器根据当前分组的目的地址路由,类似问路,动态可变
虚电路网络:每个分组自带标签(虚电路标识 virtual circuit),建立呼叫时确定路径,不可改变,由路由器维持呼叫状态信息,静态不可变
-
流水线技术:每个环节并行工作
-
<!-- 图片已丢失 -->
-
优点:分组传输时采用链路最大带宽传输
-
统计多路复用技术:在一条线路上同时传递多个包时,包间没有固定顺序
<!-- 图片已丢失 -->
-
线路交换与分组交换的对比
优点 缺点 适用场景 线路交换 带宽有保证,通信性能可靠简单抽象,无需担心数据包无序或丢失转发简单,开销少 带宽浪费连接阻塞,资源不足无法服务网络节点需存储所有连接的信息存在连接延迟 分组交换 可靠性优势,错误不传递统计多路复用提高效率可部署性优势,更容易建立网络 存在阻塞问题,路由器结构更复杂,难以提供良好的网络服务难以保证可靠数据传输 突发式数据传输
1.3 网络接入与物理媒体
-
端系统与边缘路由器的连接方式:住宅接入网络、单位接入网络、无线接入网络
-
住宅接入网络:
- 点对点传输:调制解调器拨号(不能同时启动多个设备)、非对称数字用户线路ADSL(上行下行速度不同)
- 电缆调制解调器:混合光纤同轴电缆HFC
- 光纤到户FTTP:结构:光线分配中心FDH - 光线分配终端FDT - 光纤线路中断OLT,FTTP有单位用户的最高理论容量:1G bps
-
单位接入网络:有线局域网,仍为电缆连接
-
无线接入网络:无线局域网
-
-
物理媒体
-
分类:引导型媒体(有线,如同轴电缆、光纤、双绞线)、非引导型媒体(无线,如无线电)
-
双绞线:两根绝缘铜线拧合
- 通用标准:T568A、T568B
-
<!-- 图片已丢失 -->
- 连接方式:直通线(对应位相连,计算机-交换机/设备)、交叉线(12-36,45-78,设备-设备)<!-- 图片已丢失 -->
-
同轴电缆:两根同轴铜导线
-
光缆:高速、低误码率
-
无线电:用开放空间的电磁波传输数据,双向
- 地面微波:直线传播,中继站转发
- 广域网LAN
- 广域wide-area,eg:蜂窝
- 卫星:适合广播通信
-
对比:
<!-- 图片已丢失 -->
-
理论极限容量:香农定理:
,其中 为信噪比, 传播速度极限:光纤理论最高速度为
-
1.4 传输技术
- 消息传播方式:单播、多播、广播
- 单播:计算机成对连接,严格从发送端传输到接收端
- 多播:一个发送端,多个接收端
- 广播:所有计算机使用同一通信频道
1.5 类型与拓扑结构
-
按地理分类:局域网LAN、城域网MAN、广域网WAN
-
局域网:使用广播技术,拓扑结构简单:总线、环形、星形、树形拓扑结构
-
城域网:使用广播技术,可拓展性好:分布式队列,双总线结构DQDB(Distributed Queue, Dual Bus)
-
<!-- 图片已丢失 -->
-
广域网:网状拓扑结构,包括两个子网络:资源子网、通信子网
- 资源子网:负责信息加工,包括计算机、终端、程序等
- 通信子网:负责信息传递与分发,包括路由与交换机
- 计算机网络拓扑结构:网络中各种组件的排列方式
<!-- 图片已丢失 -->
- 总线拓扑:所有网络设备连接到公共电缆,一个主机故障则整个网络故障
- 星形拓扑:所有设备连接到交换机,一条电缆故障不会影响整个网络
-
因特网拓扑结构:网络的网络
- 特点:分层,每层由运营商ISP构成,层内彼此平等,低层ISP可视为高层ISP的用户
<!-- 图片已丢失 -->
1.6 网络性能
-
连接的属性:
-
延迟Latency:数据在连接上传输的时间
-
带宽Bandwidth:单位时间传送数据量
-
带宽延迟积BDP Bandwidth-delay product:单位时间线路上的总比特数
-
利用率 Utilization:单位时间到达比特数Arrival除以传输比特数Bandwidth,
-
-
延迟:数据包到达链路的速度超过输出链路速度
丢包:路由器中自由缓冲区满时到达的数据包丢掉
-
数据包延迟 = 节点处理时间Nodal processing + 排队时间Queuing + 传输时间Transmission + 传播时间Propagation
<!-- 图片已丢失 -->
- 往返时间RTT:从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间
<!-- 图片已丢失 -->
1.7 协议层与服务模型
-
协议:规定同层之间如何通信,包括语法Syntax(协议结构)和语义semantics(表示信息)
-
特点:分层结构
-
优点:模块化、抽象方法、可重用
-
层封装:
-
<!-- 图片已丢失 -->
-
服务:由低层提供给高层的一组通信能力和操作,通过服务原语定义
类型:面向连接服务(eg:线路交换、虚电路分组交换)、无连接服务(eg:数据包分组交换)
接口:进行相邻层间的数据的解析与封装
<!-- 图片已丢失 -->
-
服务vs协议:
-
服务:低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直关系
协议:对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平关系
-
本层协议的实现要靠下层提供的服务来实现;本层实体通过协议为上层提供更高级的服务
-
1.8 体系结构、OSI、TCP/IP模型
-
定义:
- 网络架构:一组层 + 协议 + 层间接口
- 协议层次结构:按照层次结构构建网络必须提供的服务
- 协议栈:特定系统使用的协议列表
-
ISO/OSI参考模型
- 七层结构:
<!-- 图片已丢失 -->
-
物理层:在通过单个物理链路连接的两个系统之间传输比特流bits,eg: 光纤、无线
数据链路层:允许直接相连(物理连接)主机间通过帧frame交换信息,实现了点到点传输
- 协议:路由、媒体访问控制MAC
网络层:实现源主机到目标主机之间多转接结点的传输,数据单元为数据包package,通信子网最高层
-
协议任务:构建路由表,eg:IP
-
特点:不可靠传输
运输层:从会话层获取数据,必要时对数据进行分割,然后将数据传递给网络层,提供主机两个进程之间数据的可靠传输,数据单元为数据段Segment
-
协议:可靠性、流量控制、大信息打包、框架,eg:TCP、UDP
-
特点:可靠传输
会话层:管理会话之间逻辑连接,组织、协调两个会话进程之间的通信
表示层:数据转换,协商和建立数据交换的格式,解决各应用程序之间数据表示上的差异
应用层:提供给用户的各种服务,eg: HTTP,email
-
数据封装过程:
<!-- 图片已丢失 -->
-
TCP/IP参考模型
- 四层结构:
<!-- 图片已丢失 -->
第2章 The Physical Layer
2.1 物理层介绍
-
功能:在传输线路上进行透明的、可靠的比特流收发
物理特性:机械特性mechanical、电气特性electrical、功能特性functional、过程特性timing
2.2 数据通信基础
-
两种转换:信源编码、信道编码
-
物理层传输的问题:衰减attenuation、失真distortion、噪声noise
-
带宽B:信道允许通过的频率范围、每秒传输的比特数
-
波特率/码元速率/信号率baud rate:信号每秒变化的次数,单位
比特率bit rate:每秒传输的比特数,单位
,S为比特率,B为波特率,T为频率周期,v为码元数 -
奈奎斯特准则:对无噪声干扰的低通信道,带宽
Hz,进行 采样时可以重建信号 , -
香农公式:对有噪声信道,
2.3 传输介质
2.4 调制与数据编码
-
信号类型:模拟信号(调制-解调)、数字信号(编码-解码)
-
数字数据传输:
- 基带数据传输base-band:不改变数字信号直接传输,要求低通信道,
0~HHz - 通带数据传输pass-band:高频载波信号传输数据
- 基带数据传输base-band:不改变数字信号直接传输,要求低通信道,
-
数字数据-数字信号编码:
-
传输方式:
-
不归零编码
NRZ-L: 0低电平,1高电平 -
不归零翻转编码
NRZI: 0不变,1翻转 -
曼彻斯特编码: 中心跳变,周期内0由低到高,1由高到低
-
差分曼彻斯特编码:中心跳变,0边界翻转,1边界不翻转
-
块编码
mB/nB:将mB块组映射为nB块组,一般与前面的编码方式联合使用,eg:4B/5B encoding -> NRZ-I encoding -> transmit -> NRZ-I decoding -> 4B/5B decoding(插图未导入)
-
-
对比:曼彻斯特编码产生信号的频率高于不归零制,曼彻斯特编码有自同步能力(中间位用于时钟同步)
-
-
带通传输:
-
用特定频率做载波信号传输,需要调制,传输数字信号
-
数字信号调制:
-
调幅 ASK、调频 FSK、调相 PSK
(插图未导入)
-
调制,增加码元信号值: 、 、 , (插图未导入)
-
正交幅度调制 QAM
-
-
-
模数转换:
- 数字信号抗噪声效果更好,易恢复、校正、放大,因此一般将模拟信号转化成数字信号传输
- 脉冲编码调制 PCM :采样-量化-编码
- 采样:对原始模拟信号采样,采样频率
- 量化:均匀量化
- 编码:对每个量化值分配编码,码元比特数
- 采样:对原始模拟信号采样,采样频率
- 增量传输 Delta Modulation :DPCM
-
数据传输:
- 并行:所有比特位同时传出
- 串行:异步(按字节传输,每个字节需要start/stop位)、同步(按帧传输,每个帧需要start/stop位)、等时(固定间隔,不需要start/stop位)
2.5 多路复用
- 分类:
- 模拟信号:
- FDM:频分多路复用,多个信号在不相交的频段上传输
- WDM:波分多路复用
- 数字信号:
- TDM:时分多路复用,每个时间框分成多个时间槽,分配给每个通道使用
- 同步时分多路复用 Synchronous :每个通道划分固定时间槽,每个时间框同时传输
- 统计时分多路复用 Statistical :根据需求动态分配时间槽
- 异步时分多路复用 Asynchronous
- CDMA:码分多路复用,每个bit位对应一个k位码片,码片互相正交
- TDM:时分多路复用,每个时间框分成多个时间槽,分配给每个通道使用
- 模拟信号:
- 扩频技术:
- 跳频扩频 FHSS :一个码元一个传输频率
- 直接序列扩频 DSSS :将数字信号与更高数据速率的位序列(伪随机数 PN )组合(称为削片码)来传播信号
- 跳时扩频 THSS
- 宽带线性调频 CSS
第3章 数据链路层
3.1 介绍与服务
- 功能:在两台物理连接(相邻)的机器之间传送数据链路帧,在不可靠的物理层连接上实现可靠传输
- 连接类型:点对点链路、广播链路
- 向网络层提供的服务类型:
- 不确认的无连接的服务:不建立连接,源计算机发送给目的计算机,目的计算机不确认,传输失败不恢复
- 确认的无连接的服务:不建立连接,需确认,失败重传
- 确认的面向连接的服务:建立连接,传输的每个帧都编号,需确认
3.2 帧
- 帧是数据链路层的传输单元
- 帧的同步化
- 字符计数:每一帧的开头指出字符数
- 用字节或字符填充标记字节:特殊ASCII码字符序列标记帧的开始和结束,透明传输,eg:ESC
- 带位填充的起始和结束标志:使用特定比特序列标记帧的开始和结束,eg:01111110
- 物理层编码冲突
- 帧间插入时间间隔
3.3 错误检测与纠正
-
差错类型:比特错误、传输错误(帧损坏、帧丢失)
-
比特错误纠正方法:
- 纠错码:向前纠错FEC(forward error correction)
- 检错码 + 纠错技术
-
纠错码:能够检测与纠正错误,依靠发送端的冗余信息
- 海明码:
- m位信息码,r位纠错码,海明码有1位纠错能力条件:
- 海明距离:两个二进制数不同位的个数
- d个错,海明码检错条件:海明距离至少d+1,海明码纠错条件:海明距离至少2d+1
- m位信息码,r位纠错码,海明码有1位纠错能力条件:
- 二进制卷积码 binary convolution code
- 海明码:
-
检错码:
-
奇偶校验 Parity check :奇数位错误可检出,偶数位错误不可检出,无校验能力
- 二维奇偶校验:1位纠错能力,2/3位检错能力,4及以上无法检错
-
循环冗余校验 CRC Cyclic Redundancy Check
-
基本原理:在p位二进制数据序列后面附加r位二进制检验码,检验码由原始数据与生成多项式做除法生成,可检测传输错误,生成多项式是二进制数,由发送方和接收方约定
-
接收方用收到的二进制数除生成多项式,等于0则没有错误
<!-- 图片已丢失 -->
-
-
校验和 Checksum
-
-
错误控制
- 纠错码 FEC :不保证可靠传输
- 错误检测+自动重传请求 Error Detection + ARQ Automatic Repeat Request :
- ED:二维奇偶校验、循环冗余校验、校验和、确认、序列
- ARQ作用:无差错、无冗余、无损失、顺序不变 -> 将数据链路由不可靠转化为可靠
- 类型:Stop-and-Wait ARQ、Go-Back-N ARQ、Selective Repeat ARQ
-
流量控制
- 停止等待协议:发送方收到接收方确认后传输下一帧
- 滑动窗口协议:发送方一次发W帧
3.4 停等协议
-
协议定义:发送一帧之后需等待确认,之后发下一帧
-
乌托邦单工协议:
- 假设:数据单向传递,信道无差错,无限缓存空间,发送方接收方始终在线,处理时间可以忽略
- 特点:无Ack、Seq,无差错控制、流量控制,唯一事件是 frame_arrival
-
无差错信道上的单工停止等待协议:
- 假设:数据单向传递,信道无差错,接收方缓存有限,发送方需确认Ack,超时重传
- 特点:有Ack、无Seq,帧损坏或帧丢失接收方不反馈Ack,重传
- 过程:发送方发送帧 -> 接收方收到并发送Ack -> 发送发收到Ack后发送下一帧
-
有噪声信道上的单工停止等待协议:
- 假设:数据单向传递,信道不可靠,接收方缓存有限,需确认Ack、Seq,超时重传
- 特点:有Ack、Seq,Seq只有0/1,帧损坏、帧丢失、乱序帧需重传
- 过程:发送方发送帧 -> 接收方收到并发送Ack+Seq -> 发送发收到Ack+Seq后发送下一帧
-
链路利用率
,忽略处理时间、接收方Ack传输时间 提升效率:滑动窗口协议,流水线
3.5 滑动窗口协议
-
内容:允许一次传输多帧,发送方与接收方各维护一个等大缓冲区(滑动窗口),帧有编号
-
发送窗口维护允许发送的帧的范围,包括发送指针(右)和接收确认指针(左),大小不固定
-
接收窗口维护允许接收的帧的范围,包括接收指针(右)和发送确认指针(左),大小固定
-
-
累计确认:Ack n 表示已累计收到n帧,即一次Ack可确认多帧
-
全双工通信:两个独立信道,可同时在两个方向传输
-
滑动窗口协议分类:
-
1 bit sliding window protocol ARQ:发送窗口大小为1,接收窗口大小为1
- 链路利用率:
- 改进:流水线技术,一次传w帧,
- 链路利用率:
-
go back n ARQ(GBN):发送窗口大小大于1(
),接收窗口大小为1,接受方必须按发送顺序确认 出错处理:接收方丢弃从出错帧开始的所有帧,直到出错帧正确传输;发送方回退至出错帧全部重传
-
Selective Repeat ARQ:发送窗口大小大于1(
),接收窗口大小大于1,只有出错帧重传 - 接收端发出Ack i后窗口移动到第i位,Ack i表示前i帧已收到
<!-- 图片已丢失 -->
- 流水线技术:提高信道利用率
-
-
序列字段大小n、滑动窗口最大尺寸W、通道最大利用率U的关系
, ,
3.6 HDLC 与 PPP 协议
-
高级数据链路控制HDLC, High-Level Data Link Control:ISO标准的数据链路协议,针对点对点链路
- 数据帧格式:
<!-- 图片已丢失 -->
- 标志字段:01111110(7EH)
- 控制字段:前两位帧类型:信息帧、监督帧、无编号帧,后六位根据帧类型定义
- 帧校验序列:16位CRC校验,多项式为
-
点对点协议PPP, Point-to-Point Protocol,为因特网数据链路层协议,针对点对点链路
-
将IP数据包封装到串行链路的方法
-
子协议:
- 链路控制协议LCP(link control protocol):发送端和接收端通过发送LCP包来确定在数据传输中的必要信息,用于建立点对点链路
- 网络控制协议NCP(Network Control Protocol):用于对多种网络协议进行配置协商
-
帧格式:
<!-- 图片已丢失 -->
- 不提供的功能:无错误控制与恢复、无流量控制、无序传输、不支持多点链路
-
4. 介质访问控制MAC Medium Access Control
4.1 MAC
-
共享信道的广播网络的数据链路层使用介质访问控制子协议MAC
- 关键技术:信道分配(效率、公平、浪费时间最小)
- 静态信道分配:用户静态分配带宽FDM或时间槽TDM,低效、性能差
- 动态信道分配:MAC
- 关键技术:信道分配(效率、公平、浪费时间最小)
-
MAC:
- 位置:数据链路层靠近物理层的子层,上一个子层为逻辑链路层
(插图未导入)
- 分类:信道划分、随机接入、受控接入协议
- 信道划分介质访问控制 Channel partitioning:时分、频分、码分
- 随机访问介质访问控制 Random access:不划分信道,允许冲突,冲突时恢复
- 轮询访问介质访问控制 Controlled-access protocols:节点按顺序共享介质,公平
-
随机接入 Random Access:
-
关键问题:如何检测冲突、冲突后如何恢复
-
分类:纯AlOHA协议 pure ALOHA,时隙ALOHA slotted ALOHA,CSMA,CSMA/CD,CSMA/CA
-
纯ALOHA协议 pure ALOHA:允许用户自由发送数据,发生碰撞时冲突帧丢弃,利用回退机制返回帧状态,丢弃帧重传
- 吞吐率:
, ,G是每秒发送帧的个数,实际发送成功的帧的个数等于G*S
- 吞吐率:
-
时隙ALOHA协议 slotted ALOHA:将时间划分为时间槽,时间槽大小等于帧传输时间,仅时间槽开头可发送帧
- 吞吐率:
, ,G是每秒发送帧的个数,实际发送成功的帧的个数等于G*S
- 吞吐率:
-
载波监听多路访问 CSMA, Carrier Sense Multiple Access:监听信道,空闲时可发送帧,信道忙时不可发送帧
- 冲突原因:传播时延,传播时延越长性能越差
- 分类:无坚持CSMA,1坚持CSMA,p坚持CSMA
- Non-persistent:信道忙则等待随机时间后重新监听信道,空闲立刻传输,由于推迟监听,冲突减少,核心是减少冲突
- 1-persistent:信道忙则持续监听信道,空闲立刻传输,冲突则等待随机时间后重传,核心是减少传输时间
- p-persistent:信道忙则持续监听信道,空闲时以概率p发送,1-p时等待
到下一时隙,下一时隙仍按概率p发送
-
含冲突检测的载波监听多路访问 CSMA/CD CSMA with Collision Detection:传输时发送方仍然监听是否冲突,有冲突则停止发送并发出干扰序列 jam sequence,告知所有站点发生冲突,等待一段随机时间后恢复
-
CSMA/CD广泛用于总线结构LANs
-
检测冲突:收发器检测信号,观测到信号超过传输功率则说明冲突发生
(插图未导入)
-
争用期:最差情况下需要两倍传播时延才能检出冲突
-
约束:
-
最小帧长
,R为数据传输速率, 为物理层延迟
-
-
含冲突避免的载波监听多路访问 CSMA/CA CSMA with Collision Avoid:
- CSMA/CA常用于**无线网络 **Wireless networking,CSMA/CD不可用于无线局域网
- 解决了隐蔽站点问题 hidden terminal problem
- 过程:
- A监听到信道空闲,等待DIFS后仍空闲则发送B一个RTS
- B收到RTS后等待SIFS,之后发送A一个CTS,成功建立连接
- AB之间互发信息之前需等待SIFS
-
4.2 LANs and IEEE 802
-
局域网 LANs:
-
特点:私人拥有、小空间、高速度、高可靠性
-
拓扑结构:物理拓扑结构、逻辑拓扑结构
-
-
IEEE 802 参考模型:规定了数据链路层分2层协议层次结构,MAC、LLC(logical link control)
4.3 以太网 Ethernet
-
基本信息:
- 拓扑结构:总线结构、星形结构、树形结构
- 信号:数字信号,基带传输
- 基于协议:IEEE 802.3 MAC,即CSMA/CD
- 传输媒体:同轴电缆、双绞线、光缆
-
以太网帧结构:
<!-- 图片已丢失 -->
-
帧内元素:
-
前置字段 Preamble:同步时钟频率,包括7个字节的10101010和1个字节的10101011
-
地址 Address:6个字节,物理硬件地址MAC,需要适配器进行物理地址到逻辑地址的转换
-
类型 Type:指出高层协议的类型
- 大小:64B - 1518B
-
-
以太网使用1-persistent CSMA/CD:线路理想则立即发送,线路忙则等待随机时间后再检测,发生冲突则广播jam信号,等待随机时间后恢复,等待时间由指数回退算法确定
-
指数回退算法:
-
失败16次后会放弃,并报告失败
-
无冲突时最大吞吐率
,最大效率 ,R为数据传输速率
-
-
Switched Ethernet:将网络划分为多个子网络,之间由高速交换机switch连接
(插图未导入)
- 交换机代替主机:解决了Ethernet Hubs结构冲突传播的问题,冲突只在冲突域内传播
4.4 无线局域网 Wireless LAN
-
MAC功能:
-
可靠数据传输:
- 帧交换协议:Ack
- 一次交换4帧
-
访问控制:
- 分布式协调功能DCF:基于竞争,CSMA/CA
- 点协调功能PCF:无争用,集中式访问协议
DCF、PCF被集成在一个超帧中
-
安全
-
4.5 局域网互联 LAN Interconnection
- 网络互连:不同设备在不同层次进行交换
- 物理层:电信号,中继器repeater和集线器hub
- 数据链路层:帧,网桥bridge和交换机switch
- 网络层:数据包,路由器router
- 传输层及以上:消息,网关gateway
- 中继器Repeater和集线器Hub:存在冲突传播,不支持不同局域网设备,对最大节点数和距离有限制
- 网桥Bridge:通过MAC连接两个或多个局域网,并传输帧
- 路由器Router:连接不同子网,对主机不透明
- 网关Gateway:连接不同体系结构的网络,进行地址映射、报文格式转换、网络协议转换
- 网桥/交换机和路由器的结合:网桥自学习算法learning bridge algorithm、生成树算法spanning tree algorithm
4.6 LAN Switching
- 网桥:连接两个或多个局域网,并传输帧,每个局域网有自己的冲突域,网桥连接的局域网称为扩展局域网
<!-- 图片已丢失 -->
-
交换机:基于硬件的交换结构构成专用通道,分割冲突域
(插图未导入)
- 交通隔离:交换机将子网划分为局域网段,每个局域网段为一个冲突域collision domain,不同网段间通常不传输帧
-
直通交换 Cut-Through Switching:
-
提出原因:缓冲帧花费的时间占总延迟的很大一部分
-
要求:尽早开始传输,重叠传输
-
特点:延迟为传输帧头的时间,即检查帧头后开始传输
-
自学习机制:辅助确定帧传播路径
-
交换机维护一个交换机表switch table**(MAC Address, Port, Age)**
MAC address:目标地址,Port:输出端口,Age:该条记录存在的时间
-
原理:若目的MAC地址有记录则按照记录的路径传输,否则洪泛(向交换机所有接口广播),并更新交换机表
-
-
缺点:洪泛会导致消息循环loop -> 生成树算法Spanning Trees
-
-
IEEE 802.1d规定生成树协议STP,网桥通过网桥协议数据单元BPDU构建生成树,称为透明网桥
- 网桥ID BID:标识每个网桥,包括(Bridge Priority(2B), MAC Address(6B)),优先级越小越容易选中
- 根网桥Root Bridge:最小ID的网桥,ID相同时选MAC地址最小的
- 根端口root port:非根网桥到根网桥距离最小的端口
- 工作原理:选出根网桥,所有非根网桥选择到达根网桥的最短路径,之后选择根端口和指定端口,完成生成树建立,当网络拓扑结构变化时,交换机自动启动备份链路
- 无广播风暴,无MAC表震荡,无多帧复制
4.7 虚拟局域网VLAN
<!-- 图片已丢失 -->
-
优点:可划分广播域、更高的安全性、软件配置
-
虚拟局域网中继VLAN Trunk:点到点链路,一个端口可以承载多个VLAN的流量
<!-- 图片已丢失 -->
- 使用帧标记Frame tagging区分VLAN,由交换机自动插入删除
<!-- 图片已丢失 -->
- 虚拟局域网中继协议 VLAN Trunk Protocol
5. Network Layer
5.1 网络层与设计问题
-
网络层工作结构:
-
网络层任务:了解子网拓扑结构,选择正确路径传输数据包,源主机与目的主机不同网络时处理
-
网络层功能:
- 异构网络互联
- 转发与路由
-
包交换方式:分组交换,包括虚电路分组交换(面向连接)、数据报分组交换(无连接)
- 虚电路分组交换virtual circuit:建立虚电路表(入端口,入虚电路号,出端口,出虚电路号),第一个分组探索、建立虚电路表,后续分组按虚电路表传输而不需要目的地址,传输路径固定
- 数据包分组交换datagram:路由表(目的地址,输出端口),不需要建立连接,传输路径不固定,可能乱序到达
- 目的地址选择:最长前缀匹配
5.2 路由算法
-
转发:将包从路由器输入传输到合适的路由器输出,本地动作
路由:建立与维护源地址到目的地址的路由表,由路由算法决定,全局规划
-
路由算法:确定与维护路由表,决定源地址到目的地址的最佳路径
- 分类:非自适应路由选择算法(静态路由)、自适应路由选择算法(动态路由)
- 非自适应路由选择算法:最短路径优先算法Dijkstra、洪泛算法flooding
- 自适应路由选择算法:距离向量路由算法Distance Vector Routing、链路状态路由算法Link State Routing、层次化路由算法
- 自适应路由选择算法分类:集中的、独立的、分布式的
- 汇集树:从源到给定目的地的一组最优路由形成的树
- 分类:非自适应路由选择算法(静态路由)、自适应路由选择算法(动态路由)
-
洪泛算法Flooding:广播,利用跳步计数器/生存期限制一个包的广播次数,避免广播风暴(在数据链路层,交换机无法使用这一技术,必须预先去除环结构)
-
距离向量路由算法:基于Bellman-Ford算法,每个结点维护一个距离向量表(目的地,下一跳,距离)
-
Bellman-Ford算法:
- 特点:迭代、异步、分布式
-
距离向量表更新:每个结点周期性地将自己的距离向量表发送给相邻结点,用于更新距离
-
存在无穷计数问题:一个节点断开后,其他节点距离会逐渐增大到无穷大
-
慢收敛问题的解决:
-
有限计数:使用有限数代表无穷大(不可达)
-
水平分割split horizon:如果 Z 通过 Y 到达 X,则 Z 不将X通告给Y
-
毒性逆转poisoned reverse:如果 Z 通过 Y 到达 X,则 Z 将X通告给 Y, 但X的距离为无穷大
- 不能完全消除路由回路问题
-
-
-
链路状态路由算法Link State Routing:每个路由器维护整个网络的拓扑图,将直接连接信息定期洪泛,在收到距离向量后,路由器更新本地拓扑图并重新计算最短路径
-
层次化路由算法:路由器分区,每个路由器维护包括区内路由器与其他区域距离的路由表
5.3 拥塞控制算法congestion
- 拥塞控制方法:增加传输能力/减少通信量
- 分类:开环:事先预防,不利用反馈,闭环:反馈后解决
- 虚电路拥塞控制:拥塞时拒绝建立虚电路,选择替代路由建立新的虚电路,预先协商电路以流出缓冲区
- 数据包拥塞控制:抑制包(choke packet):拥塞时向拥塞数据包的源主机返回一个抑制包,源主机收到后按一定比例减少发向特定目的地的流量,并在固定时间间隔内忽略指示同一目的地的抑制包
5.4 IP
-
因特网可视为许多自治系统AS Autonomous System的集合,网络IP协议将这些网络连接起来
-
IP数据包格式:IP header(最少20字节)+data
(插图未导入)
-
IP数据包分段与重组:
-
最大传输单元MTU:IP数据包的最大长度
-
分段传输:一个数据包划分为若干段数据包,包头每个数据包都复制一份,只在目的地址重组
-
offset字段13位,以8字节块为单位,表示当前数据包相对未分段数据包的偏移量
-
<!-- 图片已丢失 -->
-
IP地址:
- 32位,用于标识主机和路由器的接口,主机1个IP,路由器多个IP,因特网设备IP无重复
- 地址表示:二进制、十进制,点号分隔4个字节
- IP地址分配方案:有类寻址、子网、无类寻址、网络地址转换
-
有类寻址classful addressing:IPv4地址划分方案
-
将32位地址按照第一个字节内容划分为5类:A(0-127块,每块16777216个地址)、B(128-191块,每块65536个地址)、C(192-223块,每块256个地址)、D(224-239块)、E(240-255块)
(插图未导入)
-
IP地址分两层:网络号netid、主机号hostid,路由器鉴别位置在netid、hostid之间
-
一个局域网上主机或路由器的IP地址网络号一样,路由器每个接口都有一个不同网络号的IP地址,唯一标识一个子网
-
IPv4的问题:B类网不够用,C类网没人用;小网络的路由表太大,浪费资源
- 解决:划分子网Subnet,无类别域间路由CIDR,网络地址转换NAT
-
-
子网subnetting:
-
方法:将一个网络划分为多个子网,解决网络IP浪费的问题
-
IP地址分三层:网络号netid、子网号subnetid、主机号hostid,路由器鉴别位置在netid、subnetid之间
(插图未导入)
-
子网掩码:将IP地址划分为网络号(netid+subnetid)和主机号(hostid),
- 子网掩码不需要与字节边界对齐
- 子网掩码可以不连续
- 全0子网与全1子网不可用
-
子网转发报文:
- 用掩码取出目的地址网络号,若
,则在同一个子网上传输;否则将报文转发给路由器 - 路由器根据路由转发表传输,转发表结构:(subnet, mask, nextHop)
- 用掩码取出目的地址网络号,若
-
-
无类寻址classless addressing:无类别域间路由CIDR Classless InterDomain Routing
- 目标:在最小化路由器需要知道的路由数量与高效分发地址之间取得平衡
- 内容:不再按5类划分网络,IP地址子网长度任意,地址格式:
a.b.c.d/x,x表示IP地址中子网位数- IP地址根据x划分为Prefix+Suffix,总长32位,Prefix:块中所有地址共用,用于区分块,Suffix:区分块中地址
- 作用:将多个网络合并成一个大的网络,称为超网
- 路由汇聚route aggregation:将路由表中prefix相同且nextHop相同的地址合并成一个CIDR地址,以减小路由表大小
- 当一个IP在路由表中有多个prefix匹配时,按最长匹配原则选择
- 分层寻址:prefix逐层汇聚,形成树状结构
- 优点:灵活分配不同块的大小
-
网络地址转换NAT Network Address Translation
-
意义:快速修复IP地址耗尽的问题
-
内容:为每个公司分配唯一的IP地址(NAT IP Address),公司内部每个主机都有一个唯一内部IP地址,当数据包到达公司IP时进行地址转换,传给内部某主机IP
- 三个地址域被声明为私有,用于该分配方案:10.0.0.0-10.255.255.255/8、172.16.0.0-172.31.255.255/12、192.168.0.0-192.168.255.255/16
- 对外部世界,公司内部的IP分配时不可见的;公司内部数据传输到外界时,都使用公司的唯一IP
-
NAT路由转发表记录每个((source IP address, port #), (NAT IP address, new port #))对,NAT路由表进行替换:
- 输出数据包:(source IP address, port #) -> (NAT IP address, new port #)
- 输入数据包:(NAT IP address, new port #) -> (source IP address, port #)
(插图未导入)
-
缺点:违反端到端的观点,两个NAT主机难以建立连接
-
-
IP数据包的路由与转发:
- 按照是否在同一子网分类:直接交付direct delivery、间接交付indirect delivery
- 路由根据路由表中内容分类:
- 下一跳路由Next-hop routing:(host destination, next hop),当前子网
- 网络特定路由Network-specific routing:(network destination, next hop),mask不是全1
- 特定主机路由Host specific routing:(host destination, next hop),mask全1
- 路由表包括default routing,只有这个位置允许路由0.0.0.0/0
- 路由表至少四项内容:(mask, destination network address, next hop address, interface)
-
互联网控制报文协议ICMP Internet Control Message Protocols
-
作用:在主机和路由器之间传输IP状态和错误消息
-
ICMP是IP数据包的有效负载:
(插图未导入)
-
ICMP主要类型:
(插图未导入)
- 目的地址不可达Destination Unreachable(3):路由器发送至源主机
- 源点抑制Source Quench(4):路由器或目标主机具有源主机的传输速率时发送至源主机,源主机限制传输速率直到quench结束
- 重定向Redirect(5):对于直达的数据包,路由器向源地址发送报文,指出最佳的first hop,提高网络效率
- 回送请求Echo Request(8) / 回送应答Echo Reply(0):
- 格式:ICMP header (4 bytes) + identifier (2 bytes) + sequence number (2 bytes) + data (4 bytes),identifier、sequence用于回送请求与应答之间匹配
- 作用:确认主机是否可达
- 工作过程:
- 源主机发送echo request报文
- 目的主机收到报文,交换IP报文源地址和目的地址,ICMP类型设置为0,计算ICMP的checksum,identifier、sequence、data不变
- 目的主机发送echo reply报文
- 超时(11):数据包超出生存期TTL,或重组时间内未收到完整数据包
-
地址解析协议ARP Address Resolution Protocol:
-
作用:IP地址和MAC地址之间的转换,建立从IP地址到相应硬件地址的动态映射
(插图未导入)
-
每个IP结点都有ARP表:(IP address, MAC address, TTL)
-
ARP工作过程:
- 询问:某主机广播,向所有LAN中结点发送ARP请求包,询问目的IP主机的MAC地址
- 应答:拥有目的IP的MAC地址的主机单播返回该主机目的IP的MAC地址
-
ARP报文格式:
(插图未导入)
-
IP转发算法 IP Forwarding Algorithm:ARP解决是位于子网内的地址转换问题,对于不在一个子网的情况,需要发送给缺省路由器,转交到下一个网络解决
-
-
反向地址转换协议RARP Reverse Address Resolution Protocol:
- 作用:主机根据自身MAC地址查询自身IP地址
- 工作过程:
- 主机发出受限广播(本地广播),询问本地网段的RARP服务器子集的IP地址
- 本地网段的RARP服务器收到请求后检查RARP列表,查询该MAC地址对应的IP地址,存在则返回一个响应数据包,提供该MAC地址的IP地址
- RARP服务器:维护映射表(data link address, IP address)
-
路由协议:将路由器聚合成一个自治系统AS Autonomous Systems
- Intra-AS:域内路由,运行内部网关协议IGP,AS内路由器运行相同的AS内部路由协议
- Inter-AS:域间路由,运行外部网关协议EGP,不同AS内路由器可以运行不同的AS内部路由协议
<!-- 图片已丢失 -->
- **内部网关协议IGP Interior Gateway Protocols**
- 常见协议:RIP(应用层协议,UDP)、OSPF(网络层协议,IP)、IGRP(应用层协议,TCP)
- **路由信息协议RIP** (Routing Information Protocol):
- 基于**距离向量算法**,距离用跳步数(max = 15 hops)计算
- 维护:每30秒邻居之间使用UDP交换一次通告advertisement,包括该AS内最多25个目的子网
- 每个路由器维护**RIP表**(destination network, next router, hops),根据advertisement更新
- **RIP是应用层协议,通过UDP数据段维护**
- 链路失效:超过180秒未收到邻居advertisement时认为邻居失效,将该信息通过advertisement迅速广播,使用**毒性逆转技术**避免环路
- **开放式最短路径优先协议OSPF** (Open Shortest Path First)
- 链路状态算法:路由器使用**Dijkstra算法**确定以自身为根结点到所有子网的最短路径树,链路发生变化时**洪泛**消息,根据广播的链路状态包更新链路状态信息
- 层次结构:分为局部区域local area和主干区域backbone
- **内部网关路由协议IGRP** (Interior Gateway Routing Protocol)
- 基于**距离向量算法**,是应用层协议,通过TCP维护
- **外部网关协议EGP** Exterior Gateway Protocols
- **边界网关协议BGP** (Border Gateway Protocol)
- 基于**路径向量协议**Path Vector Protocol,获取相邻AS的可达信息并传播给其他AS
- BGP目标是找到一条能够到达目的网络且较好的路由,而不是最优路由
- 应用层协议,基于TCP
14. IPv6:
- 采用**128位**IP地址,解决了IPv4地址耗尽的问题
- IPv6 header格式:
<!-- 图片已丢失 -->
- 使用8个16进制数表示IPv6地址
- 缩写:前导0可以不写,连续为0的一组或多组可以缩写为::(只能缩写一次)
第6章 传输层
6.1 传输服务
- 传输层为不同主机上的进程间提供端到端的逻辑通信
- 服务分类:面向连接的服务TCP、不可信无连接的服务UDP
6.2 传输协议元素
- 寻址:对于网络层提交上来的报文段,传输层根据报文段首部的目的端口号将报文提交给相应的应用进程
- 传输服务访问点TSAP transport service access point,面向应用层,通常指端口Port,用于区分进程
- 网络服务访问点NSAP network service access point,面向网络层
- 建立连接:遗忘域Forbidden region,三次握手
- 连接释放:将连接视为两个单向连接,由发送方关闭
- 流量控制与缓存
- 复用
- 错误恢复
6.3 简单传输协议
- 基于连接,使用原语
6.4 因特网传输层
- 传输层寻址:端口号port,16位,用于标识进程
- 端口号划分为三段:0-1023(用户可用),1024-49151(已注册),49152-65535(动态)
- 套接字地址socket address:(IP address, port number)
- 传输层建立TCP连接需要一对套接字,(Local IP address, Local port, Remote IP address, Remote port)
- 复用Multiplexing:多个进程使用同一协议,解复用Demultiplexing:接收方将数据分解发送给对应进程
6.4.1 用户数据报协议UDP User Datagram Protocol
-
特点:
- 基于数据包datagram
- 不可靠的无连接
- 支持单播、多播,复用、解复用
- 应用:域名解析协议DNS、SNMP
-
UDP数据包格式:
<!-- 图片已丢失 -->
-
总长8-65535字节,头部8个字节
-
计算校验和时要添加12个字节的伪首部,如果数据部分不是偶数个字节,还要在尾部填充一个全0字节,对整个UDP序列计算每16位和的反码
<!-- 图片已丢失 -->
6.4.2 传输控制协议TCP Transmission Control Protocol
-
特点:
- 基于字节流,传输基本单位是TCP报文段Segment
- 可靠的面向连接、有序
- 只支持单播
- 复用与解复用:使用端口,建立虚电路连接
- TCP连接的端点:socket -> (host, port)
- TCP连接用四元组表示:(src, src port, dest, dest port)
-
TCP支持可靠传输:
- 校验和 checksum
- 序号 sequence number
- TCP将数据流划分为片段,每段有一个32位序列号,初始序号随机生成
- 序号中Ack字段指出下一个期望接收的字节序号,Ack字段是累积的
- 重传 retransmission
-
TCP报文段格式:
(插图未导入)
-
控制字段:
(插图未导入)
-
TCP追踪校验和checksum是必须的,计算checksum时添加12个字节的伪首部
-
-
TCP建立连接过程:
- 建立连接:三次握手:SYN(seq x) -> SYN+ACK(seq y, ack x+1) -> ACK(seq x+1, ack y+1)
<!-- 图片已丢失 -->
* **ACTIVE OPEN**:client发送,初始化client序列号ISN,不携带数据,消耗一个序列号
* **PASSIVE OPEN**:server发送,初始化server序列号ISN,确认client序列号,不携带数据,消耗一个序列号
* **Client ACK**:client发送,确认client序列号ISN,若不包括数据则不消耗序列号
-
数据传输:每次交换双方的SEQ、ACK,表示收到对方的ACK请求作为发送给对方的新SEQ,收到对方的SEQ+length作为我方确认的ACK
-
连接终止:四次挥手:FIN(seq x, ack y) -> ACK(seq y, ack x+1) -> Client断开连接-> FIN(seq z, ack x+1) -> ACK(seq x+1, ACK z+1) -> Server断开连接
<!-- 图片已丢失 -->
- FIN不携带信息时,消费一个序列号
- **2MSL等待**:避免最后一次ACK发送失败,TCP要求等待2MSL的时间,确认关闭当前连接
- 2MSL等待状态:TIME_WAIT,$2MSL = 2*段最长生存周期$
<img src=".\img\TCP中2MSL.png" alt="image-20220601105048037" style="zoom: 67%;" />
- 连接重置:发送RST标记
-
TCP可靠传输:checksum(解决比特级错误)、sequence numbers(解决序列级错误)、acknowledgement(累计确认)、timeouts、retransmission
-
timeouts
-
估算RTT:SampleRTT:从段传输到ACK接收的时间
-
, ,
-
-
-
TCP滑动窗口技术实现错误控制、流量控制、拥塞控制
-
滑动窗口:发送窗口+接收窗口,发送窗口<=接收窗口
-
糊涂窗口综合症:
- 问题:发送端接收端速度不匹配,导致网络上产生很多小包(报头长数据少),数据传输效率低
- 解决:
- 发送端:Nagle算法,数据够多再发
- 接收端:延迟确认,Clark算法:有足够空间再通告ACK
-
拥塞控制:拥塞窗口+拥塞策略AIMD(Additive Increase Multiplicative Decrease)
-
拥塞控制参数:拥塞窗口cwnd + 慢速启动阈值ssthresh
- 拥塞窗口:
- 慢速启动阈值:慢启动指数增长到阈值,初值
- 拥塞窗口:
-
发送端拥塞检测:丢包或收到3个重复ACK
-
动作:减小拥塞窗口大小,从而限制发送的数据量
-
拥塞控制两阶段:慢启动阶段(swnd < ssthresh)、拥塞避免阶段(swnd >= ssthresh)
-
拥塞窗口大小从1开始,每收到一个ACK就窗口大小+1,每个RTT发送窗口大小*2
-
增长至阈值后每次+
,每个RTT发送窗口+1 -
遇到网络拥塞后,ssthresh更新为拥塞窗口大小的一半,拥塞窗口大小减为1
(插图未导入)
- 快速恢复:遇到拥塞后,ssthresh更新为拥塞窗口大小的一半,拥塞窗口大小减为ssthresh
-
-
-
第7章 应用层
7.1 应用与应用层
- 应用层是用户与网络的接口,定义了进程process如何发送与回应消息message
- 开放域协议:HTTP、SMTP
- 专有协议:Skype
- 应用层通过API (application programming interface)访问传输层
7.2 C/S与P2P应用模型
- 客户-服务器模型 C/S:
- 服务器server:固定IP地址
- 客户client:动态IP地址,通过server与其他client交流
- 应用:HTTP、FTP、Web service
- 点对点模型 P2P:
- 每个结点都可以发起连接,可以提供、消费数据
7.3 域名系统DNS
-
域名系统DNS Domain Name System:一种基于域的分层命名方案和分布式数据库系统,用于将主机名和电子邮件目的地址映射到IP地址
- 主机名:一种助记名称,eg: www.baidu.com,IP地址:路由器能够识别的设备的数字地址
- 一个主机名可以映射到多个IP地址,多个主机名可以映射到一个IP地址
-
DNS名称空间:层次化命名方式
<!-- 图片已丢失 -->
- 域是指这一命名空间中的子树
- 域名是从叶结点到根结点的一条路径
- 全称域名FQDN Fully Qualified Domain Name
- 区域Zone:可以被直接管理的名称空间
- 授权Delegation:给区域设置一个名称服务器name server,可以管理主机名和子域
- DNS服务器的层次结构:根服务器、最高级域TLD服务器、授权DNS服务器
<!-- 图片已丢失 -->
- 每个服务器都知道根服务器地址,每个服务器都知道其直接子节点的地址
-
DNS使用:
- 部件:本地DNS服务器、主机解析软件
- 请求方式:
- 递归请求:从本地DNS服务器经过根服务器沿着链状传递请求和地址解析结果
- 迭代请求:由本地DNS服务器直接进行多次查询,根据查询结果迭代查找下一个路由器
- 名称服务器会缓存、更新域名与ip的映射
-
DNS数据库资源记录结构:(name, TTL, class, type, value)
-
DNS协议消息格式:
<!-- 图片已丢失 -->
7.4 文件传输协议FTP
- 特点:
- 用于向远程主机收发文件,使用C/S模型
- 使用TCP协议,建立两个TCP连接,port 21用于控制连接,port 20用于数据连接
- 控制连接建立过程:
- 服务器打开21端口,被动等待客户进程发起连接请求
- 处理客户端请求,并行开启数据连接
- 关闭数据连接,回到等待状态
- 数据连接建立过程(已建立控制连接):
- 客户端打开临时端口(ephemeral port)x,发送PORT请求告知服务端x
- 服务端通过20端口与客户端x端口建立数据连接
- 匿名FTP:可使用匿名FTP登陆获取公共文件
-
用户名:annonymous
-
口令:guest或邮件地址
-
7.5 E-mail与SMTP/POP/IMAP
-
电子邮件Email三个主要组成部分
- 用户代理UA:给用户提供发送和接收邮件的接口
- 邮件传输代理MTA:邮件服务器,核心组件,发送和接收邮件,可分为client MTA(发送端邮件服务器)和server MTA(接收端邮件服务器),eg: SMTP
- 邮件访问代理MAA,eg: POP、IMAP
-
简单邮件传输协议SMTP Simple Mail Transfer Protocol:C/S协议
- 发送方 -> 发送方邮件服务器 -> 接收方邮件服务器 -> 接收方
- 采用TCP端口25或2525
- 负责push
- 传输过程:
-
连接建立:发信方定期扫描邮件缓存,如果有邮件,则使用SMTP的25端口号与接收方的SMTP服务器建立连接。建立完成后,接收方发送服务就绪,发送方发送HELO指令
-
邮件传送:发送方SMTP发送MAIL命令,若接收方准备好则返回“250 OK”,开始发送,<CtrlF>.<CtrlF>表示结束
-
连接释放:SMTP客户发送QUIT命令,服务器返回221服务器关闭,释放TCP连接
-
-
邮局通讯协议POP3 Post Office Protocol version 3:
- 用户代理向邮件服务器发送请求,获取邮箱内的邮件,采用TCP端口号110
- 负责pull
- 两个阶段:认证(客户端与服务器之间需要身份认证)、下载
-
因特网邮件访问协议IMAP Internet Mail Access Protocol:
- 支持有连接和无连接的模式,基于TCP协议
-
多用途Internet邮件扩展MIME Multipurpose Internet Mail Extensions:
- 发送非文本数据
- 用于非ASCII码到ASCII码的转换,方便传输
7.6 WWW与HTTP
-
万维网WWW:World Wide Web
-
使用超文本传输协议HTTP Hypertext Transport Protocol
-
每个Web页由对象组成,包含基本的HTML文件,定义了文本格式
-
统一资源定位器URL Uniform Resource Locators:
-
指定网页资源
-
格式:protocol://hostname[:port]/directorypath/resource
-
-
<!-- 图片已丢失 -->
-
超文本传输协议HTTP HyperText Transfer Protocol:
- 用于访问万维网数据
- 使用C/S模型,使用TCP端口80
- 无状态协议,服务器不保留客户端过去请求信息
- 工作过程:
- 客户端在80端口初始化TCP连接,服务器接受客户端连接
- 客户端发送HTTP请求,服务器返回HTTP响应
- 释放此次TCP连接
- HTTP连接分类:
- 非持久HTTP:一个TCP连接至多发送一个对象
- 持久HTTP:一个TCP连接可以发送多个对象
7.7 DHCP
- 动态主机配置协议DHCP Dynamic Host Configuration Protocol
- 基于UDP协议
- 自动配置主机连接,包括含子网掩码的IP地址、默认网关、DNS服务器的IP地址