0%

计算机网络复习大纲

第一章 概述

1.1 计算机网络(网络)

计算机网络:通用的、可编程的硬件互连而成,可用于不同目的,适应日益增长应用。
三大网络:电信网络、有线电视网络、计算机网络(三网融合)

1.2 互联网的概念

互联网(Internet):指由众多网络相互连接而成的特定计算机网络。
互连网(internet):由多个计算机网络通过路由器互连而成的网络。
基本特点:连通性、共享。网络的网络。
主机:与网络相连的计算机
万维网:方便了非专业人员使用网络

三个阶段:

  • 应用TCP/IP协议的ARPANET
  • 三级主结构互联网(主干网、地区网、校园网)
  • 多层次ISP结构的互联网 ISP:互联网服务提供商

计算机网络的标准化

1.3 互联网的组成

边缘部分:主机(系统)。为用户所用,通信和资源共享
核心部分:大量网络和路由器。为边缘提供服务

边缘部分
端系统之间的通信方式客户-服务器方式对等方式
计算机间通信的本质是进程通信

核心部分:书P17图
路由器:实现分组交换的核心部件
报文:发送的整块数据
存储转发:接收-暂存-查找-转发
电路交换:建立连接-通话-释放连接。独占物理通路,利用率很低。试用大量数据。
报文交换:整个报文传送到相邻节点,存储转发。
分组交换:将报文划分成数据段加上首部分组发送。
分组交换的特点:高效灵活迅速可靠;有时延,首部开销。

1.5 计算机网络的类别

按照作用范围分类:

  • 广域网WAN:互联网的核心部分,距离远,使用高速链路。
  • 城域网MAN:使用以太网技术。有时并入局域网讨论。
  • 局域网LAN:使用微型计算机/工作站连接。
  • 个人区域网PAN:使用个人电子设备无线技术连接。

按照网络使用者分类:

  • 公用网:国有或私有,缴费即可使用
  • 专用网:为特殊业务服务的网络(军队、铁路)

接入网(AN):用户端到互联网第一个路由器的网络。衔接边缘部分和核心部分。

1.6 计算机网络的性能

性能指标

  • 速率(数据率):数据的传送速率bit/s,1kbps=1000bps
  • 带宽:频带宽度/网络中通道传送数据的能力bit/s,数据率的上限
  • 吞吐量:单位时间内通过网络(信道等)的实际数据量,≤额定速率和带宽
  • 时延(latency):数据从网络的一端到另一端所需时间。
    总时延=发送时延+传播时延+处理时延+排队时延
    发送时延=数据帧长度(bit)/发送速率(bps)
    传播时延=信道长度/电磁波传播速率
  • 时延带宽积:bit,表示链路可容纳多少个比特
  • 往返时间RTT:从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。
    发送时间=数据长度/发送速率
    有效数据率=数据长度/(发送时间+RTT)
  • 利用率:空闲信道利用率为0。网络利用率为信道利用率的加权平均。实际时延与空闲时延的关系为:

注意:1Mbps=10^6bit/s,1MB=2^20B=8*2^20bit

高速链路提升了发送速率而非传播速率

非性能指标:
费用、质量、标准化、可靠性、可扩展升级性、易于管理和维护

1.7 计算机网络的体系结构

计算机网络的体系结构:计算机网络的各层及其协议的集合。
历史:OSI协议和TCP/IP协议

协议(网络协议)

  • 定义:为进行网络中的数据交换而建立的规则、标准、约定
  • 作用:明确规定所交换的数据格式以及有关的同步问题
  • 三要素:
    • 语法(数据与控制信息的格式)
    • 语义(发出何种控制信息,完成何种动作,做出什么响应)
    • 同步(事件顺序的详细说明)

网络协议划分层次的特点

  • 优点:各层独立,灵活性好,结构可分,易于维护,促进标准化
  • 缺点:出现额外开销

各层完成的主要功能(任务):

  • 差错控制:使相应层次对等方的通信更加可靠
  • 流量控制:发送端的速率必须来得及被接收端接收
  • 分段和重装:可将数据划分为更小单位,接收端还原
  • 复用和分用:发送端几个高层回话复用一条连接,在接收端再分用
  • 连接建立和释放:建立逻辑连接-交换数据-释放连接

TCP/IP四层体系结构
应用层:通过应用进程间的交互完成特定的网络应用(HTTP、SMTP)
运输层:向两台主机中进程间的通信提供通用的数据传输服务(TCP、UDP)
网际层(网络层):为分组交换上的主机提供服务,选择路由(IP、路由选择协议)
网络接口层(数据链路层和物理层):数据链路层负责两个相邻节点之间传送数据,物理层传输数据单位为比特。

实体:任何可发送和接收信息的硬件或软件进程。
协议(水平的):控制对等实体通信的规则的集合。(语法语义同步)
服务(垂直的):在协议的控制下,两个对等实体间的通信使得 本层能够向上一层提供服务。
服务访问点:上下层协议交换信息的接口。

第二章 物理层

2.1 基本概念

物理层考虑如何连接计算机媒体上传输的数据比特流,而非具体传输媒体。
尽可能屏蔽传输媒体和通信手段的差异

2.2 数据通信

数据通信系统:
源系统:信源、发送器(调制器
传输系统:传输线或网络系统(信道
目的系统:信宿、接收器(解调器

单工通信:只能有一个方向的通信(无线电广播) 1条信道
半双工通信:都能发送信息但无法同时发送 2条信道
全双工通信:可以同时发送和接受 2条信道

数据:消息的实体
信号:数据的电气电磁表现
模拟/数字:连续/离散
调制/解调:数字信号和模拟信号的相互转换
码元:在使用时间域的波形表示数字信号时,不同离散数值的基本波形
16种码元 —> 1码元携带4比特信息
基带信号:来自信源的信号

基带调制(编码):仅对基带信号波形变换
带通调制(调制):使用载波调制,提高频率,转化为模拟信号 —> 带通信号

编码(基带调制)方式:P44

  • 不归零码(信号频率低,无自同步能力)
  • 归零码
  • 曼彻斯特编码
  • 差分曼彻斯特编码

带通调制方式

  • 调幅(AM):简单,抗干扰差
  • 调频(FM):抗干扰,占用带宽
  • 调相(PM):抗干扰,有同步能力
  • 多元制混合调制:码元增加,出错率增加(如正交振幅调制QAM

脉冲编码调制PCM:模拟 —> 数字
采样、量化、编码

信道的极限容量
限制因素:信道能通过的频率范围、信噪比 码间串扰
理想低通信道:信号频率≤上限,则不失真
理想带通信道:下限≤信号频率≤上限,则不失真

奈氏准则理想信道极限传输速率
理想低通信道最高波特率=2W码元/秒,理想带通信道W码元/秒
比特率=波特率*log2(码元状态数)

信噪比:信号功率和噪声功率的比值,即S/N:
信噪比(带单位) = $ 10 \log_{10} \left( \frac{S}{N} \right) $ dB

香农公式:信道极限传输速率:
$ C = W \log_2 \left( 1 + \frac{S}{N} \right) $

提高传输速率的方法:提高频带宽度,提升信噪比,提升每个码元携带的信息量。

2.3 物理层下面的传输媒体

传输媒体:数据传输系统中在发送器和接收器之间的物理通路

导引型传输媒体:电磁波沿固体媒体传播(铜线、光纤)

  • 双绞线:绞合以减少对相邻双绞线的电磁干扰
    • 带宽依赖粗细和传输距离
    • 分为屏蔽双绞线(STP)和无屏蔽双绞线(UTP)
  • 同轴电缆:抗干扰性强,传输速率高
    • 带宽依赖电缆质量
  • 光缆:传输带宽极大,适合长距离传输,轻便抗干扰,昂贵
    • 多模光纤可以存在多条不同角度入射的光线同时传输

非导引型传输媒体:电磁波自由传输,无线传输,频段广,时延大

  • 短波通信:依靠电离层反射,质量差速率低
  • 微波通信:由于地表玩去,需要中继站(地面/卫星)

2.4 信道复用技术

复用:将多路信号组合在一条物理信道上进行传输,在接收端再分离(分用)。
频分复用(FDM):不同用户占用不同的带宽资源
时分复用(TDM):不同用户在不同时隙占用全部带宽,周期即TDM帧长
统计时分复用(STDM):根据需求动态分配时隙,提升线路利用率
波分复用(WDM):即光的频分复用,一根光纤同时传输多个载波信号
码分复用(CDM):不同用户同时使用同样频带通信。码型经过特殊挑选,不会相互干扰

码分多址(CDMA)
一个比特时间再划分成m个码片,即扩频
每个站拥有一个m bit码片序列。
发送1:发送码片序列;发送0:发送码片序列反码。
码片序列需要正交(±1点积为0),原码和原码点积为m,和反码点积为-m。
各站单独发送信号叠加,接收方求规格化内积。

2.5 数字传输系统

目前长途干线主要采用光纤(数字信号)
早期数字传输系统缺点:速度标准不统一,不是同步传输。
SONET/SDH实现数字传输体质上的世界性标准。

2.6 物理层协议举例

物理层主要任务:确定与传输媒体的接口的一些特性。

  • 机械特性:接线器形状、尺寸、数目等
  • 电气特性:电压范围
  • 功能特性:电压对应的意义
  • 过程特性:事件出现的顺序

EIA-232-E RS-449

第三章 数据链路层

物理链路(链路):无源的结点到相邻结点的物理线路,是通路的组成部分。
逻辑链路(数据链路):物理线路+通信协议。

数据链路层使用的信道

  • 点对点信道(PPP协议)
  • 广播信道(CSMA/CD协议)

3.1 使用点对点信道的数据链路层

数据链路层三个基本问题:封装成帧、透明传输、差错检测

封装成帧
首部和尾部的作用:帧定界(帧同步)
帧定界的方法:

  • 字节计数法:在帧头设置一个长度域,放置该帧的字节数,当长度域出错,帧完全失去同步,很少单独使用
  • 字符填充法:使用特殊ASCII码最为帧定界符(透明传输问题)
  • 比特填充法:使用连续比特填充,通用性更强(透明传输问题)
  • 违法编码法:使用物理介质上冗余码字定界,如曼彻斯特编码中“低-低”电平

透明传输

差错检测:P74
帧检测序列FCS
码距(海明距离):编码系统中任意两个码字的最小距离。
d个比特差错,检测码距d+1,纠正码距2d+1
差错编码技术

  • 检错码:
    • 奇偶校验码:让1的个数变为奇/偶个,水平/垂直/水平垂直奇偶校验
    • 循环冗余码CRC:k比特+n位冗余码,信息、冗余、生成、传输帧多项式,计算时使用bitwise xor
  • 纠错码:海明码 PPT P43
    • 信息位K,校验位r满足 $ 2^r - 1 \geq K + r $ ,则可以纠错1bit

差错检测技术

  • 前向纠错FEC:实时性好,但冗余码较多
  • 自动重发请求ARQ:设备简单,但实时性差

差错检测保证无比特差错,但帧传输依然可能出现帧丢失、重复、失序(无传输差错)

3.2 点对点协议PPP

高级数据链路控制HDLC:ISO制定的面向比特的链路层协议。
采用主从结构,主站发送命令,从站响应,能实现可靠传输。

PPP协议:Point-to-Point Protocol
特点:
封装成帧、透明性、支持多种网络层协议、差错检测、允许身份认证、允许网络层地址协商。
组成:

  • 一个将IP数据报分装到串行链路的方法
  • 一个链路控制协议LCP 8021
  • 一套网络控制协议NCP C021

帧格式:7E-FF-03-协议-IP数据报-FCS(CRC)-7E
7E —> 7D5E、7D —>7D5D

3.3 使用广播信道的数据链路层

局域网数据链路层
局域网特点:网络为一个单位拥有,数据率高误码率低延时低
局域网优点:广播功能,便于扩展和演变,提高系统可靠性可用性
拓扑结构:星形(集线器)、环形(干线耦合器)、总线、树形(匹配电阻)

媒体(介质)共享技术
静态:各类信道复用技术,代价高信道利用率低
动态:多点接入即动态媒体接入控制(有数据就发送,发生冲突后解决冲突)

媒体访问控制方法
ALOHA协议
载波监听多点接入/碰撞检测CSMA/CD协议

  • 多点接入:许多计算机接入同一根总线
  • 载波监听:发送数据前检测空闲
  • CSMA/CD协议进行半双工通信
  • 争用期:发送数据帧后两倍端往返时间 51.2微秒
  • 发生碰撞后采用二进制指数类型退避算法 $ rand \left( 0 , 2^k - 1 \right) \cdot 2 \tau $

强化碰撞:碰撞发生后继续发送若干人为干扰信号。
帧间最小间隔:信道空闲后等待9.6微秒使缓存来得及清理。
CSMA/CD特点:先听后发、边听边发、冲突停发、随机重发。
以太网信道极限利用率 $ S_{\max} = \frac{T_0}{T_0 + \tau} $ ,$ T_0 $ 为帧发送时间。

3.4 以太网

以太网是当今局域网采用的最通用的通信协议标准

以太网特点
采用无连接工作方式(不建立连接直接发送数据)
使用曼彻斯特编码发送

星形以太网10BASE-T
10Mbps基带双绞线,采用星型拓扑结构,中心设备为集线器

数据链路层的两个子层

  • 逻辑链路控制LLC:屏蔽物理网络差异,向上提供数据传输服务的统一接口
  • 媒体接入控制MAC:控制对传输介质的访问,并在物理层基础上实现无差错通信

适配器(网卡):串并转换、数据缓存、安装设备驱动程序、实现以太网协议
适配器从网络上收到MAC帧,并检查MAC帧中的MAC地址。

MAC帧格式:类型记录的是上一层使用的协议

扩展以太网
局域网互联设备:

  • 物理层:
    • 转发器:扩展地理覆盖范围
    • 集线器(多接口转发器):连接成更大的多级星形结构的以太网
  • 数据链路层:
    • 网桥:对收到的帧进行转发和过滤
      • 优点:过滤通信量、扩大物理范围、提高可靠性,互连MAC层速率可以不同
      • 缺点:额外时延、没有流量控制
      • 分类:固定路由网桥、透明网桥(网桥确定路由)、源路由网桥(站点确定路由)
    • 交换机(多接口网桥):
      • 特点:并行性、全双工、接口有存储器、自学习算法、硬件转发、生成树协议
      • 交换方式:存储转发方式(同网桥)、直通方式(直接转发,不差错检测)

虚拟局域网VLAN
是由一些局域网网段构成的与物理 位置无关的逻辑组
每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个VLAN

冲突域:连接在同一个网桥或交换机端口的计算机只能有一台计算机发送数据
广播域:网络中所有能接收到同样广播消息的设备的集合
虚拟局域网优点:安全性好、网络按照逻辑分段、灵活性好

高速以太网
全双工模式下工作不使用CSMA/CD协议,争用期、帧间时间间隔更短
载波延伸:最短帧长64字节,但争用时间增大为512字节,填充特殊字符
分组突发:多短帧发送时,第一个载波延伸,其余指留有必要间隔连续发送

第四章 网络层

4.1 网络层提供的两种服务

电信网:面向连接(真实连接,电话设计简单)
互联网:无连接(计算机有很强的差错处理能力)
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据包服务,不提供服务质量保证。降低了网络造价。

网络层提供的两种服务

  • 虚电路服务:不需要包含目的地址,分组信息比特数较少,差错可以由网络负责控制
  • 数据报服务:网络上报文长度相对较短,主机负责差错、流量控制

4.2 网际协议IP

与网际协议配套使用的三个协议

  • 地址解析协议ARP
  • 网际控制报文协议ICMP
  • 网际组管理协议IGMP

虚拟互连网络
将使用路由器连接起来的网络看成同一个虚拟的IP网络(互连网)

分类的IP地址
IP地址编址方式:分类的IP地址、子网划分、构成超网

分类IP地址(A-E类)由网络号net-id主机号host-id组成

  • A类:8-24,0开始,最大可指派网络数 $2^7-2$ ,每个网络最大主机数 $2^{24}-2$
  • B类:16-16,10开始,最大可指派网络数 $2^{14}-1$ ,每个网络最大主机数 $2^{16}-2$
  • C类:24-8,110开始,最大可指派网络数 $2^{21}-1$ ,每个网络最大主机数 $2^8-2$
  • D类:1110开始,多播地址
  • E类:1111开始,保留今后使用

IP地址分类的意义:

  • 单位分配主机号,方便单位管理
  • 路由器只根据网络号转发分组,减少了路由表所需存储空间

地址解析协议ARP
解决同一个局域网上主机或路由器IP和MAC地址映射问题
每个主机都设有一个ARP高速缓存,里面有所在局域网上的主机和路由器IP到硬件地址的映射表,并且能动态更新(设有TTL)。

  • 如有,则通过局域网将MAC帧发送到硬件地址
  • 如没有,发送ARP请求分组,等待ARP响应分组,写入ARP高速缓存

ARP请求/响应分组的内容:

  • 发送方硬件地址
  • 发送方IP地址
  • 目标方硬件地址(未知填0)
  • 目标方IP地址

请求分组广播,响应分组单播
不直接使用硬件地址通信的原因:硬件地址形式不统一

IP数据报格式
首部:定长20字节+可变选字段

  • 版本:ipv4、ipv6等
  • 首部长度:以字节为单位
  • 区分服务:不常用
  • 总长度:以字节为单位
  • 标识:计数器
  • 标志:MF more fragment,DF don’t fragment
  • 片偏移:以8字节为单位
  • 生存时间TTL(倒计时)
  • 协议:记录上层协议(TCP等)
  • 首部检验和:反码运算求和(高位溢出加低位)
  • 源地址和目的地址
  • 可选字段:不常用,不足1字节需要填充

特定主机路由:为特定的目的主机指明一个路由,便于管理人员测试
默认路由:用以减少路由表空间,除了表内内容一律走默认路由

4.3 划分子网和构造超网

划分子网
三级IP地址:网络号::子网号::主机号
转发数据报时,仍然先找到本网络上的路由器,路由器根据网络号和子网号找到子网,最后直接交付目的主机

优点:

  • 减少IP地址的浪费
  • 使网络组织更加灵活
  • 便于维护管理

划分子网对外部网络透明,对外表现仍然是一个网络
子网掩码可以找出IP地址中的子网部分

子网号全0或全1不使用

使用子网时分组的转发

  • 用各网络子网掩码和目的IP地址相与,结果一致直接交付
  • 检查是否有特定主机路由
  • 与路由表各项子网掩码相与,寻找匹配目的网络
  • 由默认路由转发

无分类地址CIDR:(无分类域间路由选择)
使用网络前缀代替分类地址中的网络号和子网号
使用斜线记法(CIDR记法),主机号全0全1一般不使用
CIDR地址块:将有相同网络前缀的连续IP地址组成CIDR地址块
路由聚合(构成超网):一个CIDR地址块表示很多地址以减少路由信息交换
最长前缀匹配:使用二叉线索存储(字典树)

4.4 网际控制报文协议ICMP

ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
种类:ICMP差错报告报文和ICMP询问报文
格式:类型、代码、校验和

  • 差错报告报文分类:终点不可达、时间超过、参数问题、改变路由(重定向)
  • 询问报文分类:回答请求和回答报文、时间戳请求和回答报文

应用举例:ping、tranceroute

4.5 互联网路由选择协议

静态路由选择:简单开销小,但不能适应网络动态和变化
动态路由选择:自适应但开销大
分层次路由选择协议的原因:
互联网规模大;许多单位不愿意外接了解内部网络细节

自制系统AS
内部网关协议IGP
在自制系统内部使用的路由选择协议(如RIP和OSPF)

  • 路由信息协议RIP:通过路由器数目最少
    • 距离16表示不可达
    • 只保存一条路由,跳数为唯一评判标准
    • 距离向量算法
      RIP特点:
    • 仅和相邻路由器交换信息
    • 交换全部信息(即自己的路由表)
    • 定期交换路由信息
      优点:简单开销小;缺点:坏消息传播的慢
      使用RIP2报文
  • 开放最短路径优先OSPF:最短路径优先
    • 采用分布式的链路状态协议
    • 采用洪泛法:每个路由器和相邻路由器交换链路状态
    • 直接使用IP数据报发送
    • 分类:问候、数据库描述、链路状态请求、链路状态更新、链路状态确认
      优点:收敛速度快,能用于大规模网络

外部网关协议BGP
将路由选择信息传递到另一个自制系统中的协议(BGP-4)
互联网 —> AS间比较好的路由(无环)
BGP发言人:建立TCP连接,并交换BGP报文以建立BGP会话
BGP刚运行时,邻站与其交换全部BGP路由表。此后只需更新变化部分即可。
BGP的四种报文:打开、更新、保活(周期性确认与邻站关系)、通知

路由器
一种具有多个输入端口和多个输出端口的专用计算机,任务是转发分组。
结构划分:路由选择部分、分组转发部分
分组丢弃:路由器处理分组的速率赶不上分组进入队列的速率,当进入队列的分组没有存储空间时被丢弃。输入输出队列溢出是造成分组丢弃的重要原因。
交换结构:通过存储器、通过总线、通过纵横交换结构

4.6 IP多播

目的:更好的支持一对多通信,节省网络资源。
方式:多播路由器传播D类IP地址数据报,不产生ICMP差错
需要的协议:网际组管理协议IGMP、多播路由选择协议

第五章 运输层

5.1 运输层协议概述

运输层属于面向通信部分的最高层,也是用户功能中的最底层。
网络层提供了主机间的逻辑通信,运输层为应用进程提供了逻辑通信。
运输层的重要功能:复用和分用
可靠交付:无差错、按序、无丢失、无重复

使用UDP的协议:路由选择协议RIP、多播IGMP、DNS
使用TCP的协议:电子邮件SMTP、远程终端接入TELNET、万维网HTTP、文件传送FTP

端口:为了使不同操作系统的进程能够相互通信,必须用统一的方法对应用进程进行标志
端口就是运输层服务访问点TSAP。
端口号:16位二进制数,只具有本地意义。

服务器端口号:

  • 熟知端口:0-1023,所有用户进程都知道
  • 登记端口号:1024-49151,需要在IANA登记,以防重复
    客户端端口号:短暂端口号49152-65535

常用熟知端口号:

  • DNS:53
  • SMTP:25
  • FTP:20、21
  • TELNET:23
  • HTTP:80
  • HTTPS:443

5.2 用户数据报协议UDP(无连接)

UDP在IP数据报上增加的功能:

  • 复用和分用功能
  • 差错检测功能

特点:

  • 无连接
  • 尽最大努力交付
  • 面向报文(不拆分报文也不合并报文)
  • 没有拥塞控制
  • 支持一对一、一对多、多对一、多对多通信
  • 首部开销小(8字节)
    面向报文:UDP不拆分或合并报文,应用程序必须选择合适大小的报文,以避免IP层过多分片或首部占比太大。

UDP首部:源端口、目的端口、长度、校验和

UDP校验和:与伪首部、数据一起计算二进制反码校验和,循环进位,最后取反。
检查:UDP源端口、UDP目的端口、UDP数据、IP数据报源地址、IP数据报目的地址

5.3 传输控制协议TCP概述(面向连接)

TCP特点:

  • 面向连接的传输层协议
  • 每条连接只有两个端点,只能一对一
  • 提供可靠交付服务(无差错、不丢失、不重复、按序)
  • 提供全双工通信
  • 面向字节流

面向字节流:不保证数据块对应大小关系(分组),但保证字节流完全一样
TCP根据对方给出的窗口值和当前网络拥塞成都决定报文段的长度。具有划分和累计的功能。TCP虽然面向字节流,但交换的仍然是报文段。

TCP报文格式:

  • 序号seq:TCP将每个字节编号,序号字段记录报文段发送的第一个字节序号
  • 确认号ack:期望收到对方下一个报文段的数据的第一个字节序号
  • 数据偏移(首部长度):4字节为单位,记录数据部分的位置(即首部长度)
  • 紧急URG:1表明有紧急数据,应当尽快发送
  • 确认ACK:1时确认字号段有效,0时无效
  • 推送PSH:1表示不必等待缓存填满再向上交付
  • 复位RST:1表示连接严重问题,必须释放连接
  • 同步SYN:1表示这是一个请求连接或者连接接受报文
  • 终止FIN:表示此发送端数据已经发送完毕,要求释放连接
  • 窗口:接收窗口的字节大小
  • 检验和:加上伪首部计算校验和
  • 紧急指针:URG为1时有意义,指出紧急数据一共多少字节
  • 选项:最大报文段长度MSS(数据字段的最大长度)

套接字:IP地址:端口
TCP连接:套接字,套接字

三个阶段:连接建立、数据传送、连接释放
三个问题:每一方要能够确知对方存在,允许协商参数,能够对运输实体资源进行分配
采用方式:客户-服务器方式

TCP连接的建立:三报文握手

  • 客户:同步SYN=1,seq=x
  • 服务器:SYN=1,ACK=1,seq=y,ack=x+1
  • 客户:seq=x+1,ack=y+1

作用:防止已经失效的连接请求报文突然又传送到了

TCP连接的释放:四报文握手

  • 客户:FIN=1,seq=u
  • 服务器:ACK=1,seq=v,ack=u+1

服务器单向数据传送

  • 服务器:FIN=1,ACK=1,seq=w,ack=u+1
  • 客户:ACK=1,seq=u+1,ack=w+1

TCP连接必须经过两倍最长报文段寿命(MSL)后才真正释放
为了保证A的ACK报文到达B,并防止已失效的连接请求已经消失

5.4 TCP可靠传输的实现

停止等待协议:发送完一个分组就停止发送等待确认
一旦出现传输差错(检测差错被丢弃或丢失),则超时重传
确认丢失:A重传,B丢弃,并再次确认
确认迟到:A(已)重传,A丢弃,B丢弃,并再次确认
信道利用率 $ U = \frac{T_D}{T_D + RTT + T_A} $

自动重传请求ARQ
使用确认和重传机制,就可以在不可靠的传输网络上实现可靠通信

连续ARQ协议
发送方每收到一个确认,就把发送窗口向前滑动一个分组位置
累计确认:对按序到达的最后一个分组发送确认

  • 优点:容易实现,即使确认丢失也不必重传(因为后续确认已经发送)
  • 缺点:不能向发送方反映所有正确收到的分组(回退),序号位数多,重传代价高

n比特分组编号,则发送窗口和接收窗口大小满足 $ W_r + W_R \leq 2^n $
小窗口ARQ信道利用率 $ U = \frac{n \cdot T_D}{T_D + RTT + T_A} $ ,大窗口信道利用率为1
通常连续ARQ的接收窗口大小 $ W_r $ 为1

滑动窗口协议:停等协议和ARQ协议的折衷

  • 允许发送方连续发送多个分组而不需要等待应答
  • 一次连续发送未经确认的分组个数是有限的
  • 发送端和接收端分别设定发送窗口和接收窗口

发送方发送到窗口序号用完就停止发送,一旦超时自动重传
接收方每收到一个序号正确的分组,接收窗口就向右滑动一个位置,同时发送分组确认。
接收方窗口滑动时,发送方才可能滑动发送窗口

发送缓存存储:准备发送但尚未发送的TCP数据、已经发送但未确认的数据
接收缓存存储:按序到达但尚未被读取的TCP数据、未按序到达的数据

TCP超时重传时间设置
运输层RTT(往返时间)方差很大
如果时长设置太短,就会引起太多不必要的重传,网络负荷增大
如果时长设置太长,则空闲时间增大,降低了传输效率

TCP采用自适应算法,记录报文发出时间和收到确认的时间(RTT)

加权平均往返时间:

超时重传时间RTO

其中,RTTD为RTT的偏差加权平均值:

Karn算法:报文一旦重传,不计入RTT计算
修正的Karn算法:一旦发生重传,RTO翻倍;否则正常更新RTO

选择确认SACK:selective ACK
在TCP首部加上允许SACK选项,首部选项长度40字节,指明首部需要4字节
左闭右开存放已经收到的分组

5.5 TCP的流量控制

流量控制
让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞

利用可变窗口进行流量控制
在发送端ACK中添加接收窗口rwnd告知大小,即可实现流量控制

持续计数器:
只要TCP一方收到对方的零窗口通知,就启动持续计数器,一旦到期就发送1字节探测报文段,对方确认这个报文段时给出当前窗口值。

发送方糊涂窗口综合征和接收方糊涂窗口综合征

Nagle算法
若应用进程需要发送数据,则先只发送第一个字节,将后面到达的数据缓存,收到确认后继续发送。
若缓存数据已经达到MSS或已经达到发送窗口大小的一半时,立即发送下一个报文段。

5.6 TCP的拥塞控制

拥塞
在某段时间,对网络中的某资源的需求超过了该资源所能提供的可用部分。
拥塞常常趋于恶化,并使网络性能变坏。
拥塞控制设计全部主机路由器,而流量控制只关注某一条链路

开环控制和闭环控制
开环控制:在设计时将发生拥塞的因素考虑周到,力求不发生拥塞
闭环控制:基于反馈环路的概念

  • 监控网络系统检测拥塞
  • 将拥塞信息传递到可采取行动的地方
  • 调整网络系统的运行解决拥塞

监测网络拥塞的指标:

  • 由于缺少缓存空间而丢弃的分组占比
  • 平均队列长度
  • 超时重传分组数
  • 平均分组时延与标准差

TCP拥塞控制方法:基于窗口的方法,属于闭环控制法
除了接收窗口,TCP发送方还维持拥塞窗口cwnd
真正的发送窗口值 $\min \left( rwnd , cwnd \right) $
拥塞判断:重传定时器超时、收到三个重复的ACK
TCP四种拥塞控制方法:慢开始、拥塞避免、快重传、快恢复

慢开始
在报文开始发送时,cwnd初始值设置为1-4个SMSS
慢开始门限ssthresh:防止cwnd增长过大引起网络拥塞
在每收到一个新的报文段确认后,cwnd增加min(新确认字节数,SMSS)
指数级别增加直至SMSS!

当 $cwnd \geq ssthresh$ 时,转变使用拥塞避免算法
拥塞避免算法
每经过一个RTT就将cwnd加1,实现缓慢增长

当网络产生拥塞(重传定时器超时)时,就设置
$ssthresh=\max\left(\frac{cwnd}{2},2\right)$ 和 $cwnd=1$ 并执行慢开始算法

快重传FR算法
接收方每收到一个失序报文就立即发送确认
可以让发送方尽早知道发生了个别报文段的丢失,三个重复确认都收到,则很可能没有发生网络拥塞,执行快恢复算法。
$ cwnd=ssthresh=\frac{cwnd}{2} $