计算机网络大纲总结

前述:课本基于《计算机网络》第7版 谢希仁编著,PPT基于西南交通大学计算机网络PPT

第一章-概述

一、综述
  1. 21世纪的重要特征:数字化、网络化、信息化,它是一个以网络为核心的信息时代
  2. “三网融合”:电信网络+有线电视网络+计算机网络
  3. 互联网具有两个重要特征:连通性共享性
二、互联网
  1. 计算机网络:由若干结点和连接这些结点的链路组成。(其中结点可以是计算机、集线器、交换机、路由器等)
  2. 网络之间可以通过路由器互联起来,构成互联网

总结:网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起;与网络相连的计算机常称为主机;一般用一朵云表示一个网络

  1. 【了解】互联网三个发展阶段:

    • 第一阶段:从单个网络ARPANET向互联网发展的过程。

    • 第二阶段:建成三级结构的互联网:校园网、地区网、主干网。

    • 第三阶段:形成多层次ISP(互联网服务提供商)结构的互联网:本地ISP、地区ISP、主干ISP。

    互联网交换点IXP的作用:允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。

  2. 互联网的标准化工作的一大特色:面向公众

    所有的互联网标准都是以RFC的形式在互联网上发表的,但并非所有的RFC文档都是互联网标准的。

    标准化过程:

  3. 互联网组成:

    • 边缘部分:由所有连接在互联网上的主机组成(主机),作用:通信、资源共享。
    • 核心部分:由大量网络和连接这些网络的路由器组成(网络+路由器),作用:为边缘部分提供服务(连通性、交换)。
  4. 网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)对等方式(P2P方式)

    • 客户-服务器方式:服务与被服务的关系,客户:服务请求方,服务器:服务提供方。(注意:客户程序需要知道服务器程序地址,但服务器程序不需要知道客户程序地址)
    • 对等方式:两台主机通信,不区分服务请求方和服务提供方。

    【个人理解就是:C/S就是一个给另一个提供服务,P2P就是两个都可以提供服务或者被服务】

  5. 互联网核心部分:采用分组交换,关键构建:路由器(任务是转发收到的分组,这也是互联网核心部分的重要功能)

    • 电路交换:建立连接—通话—释放连接。
    • 分组交换:存储转发(这也是报文交换的特点)【了解:优点:高效、灵活、迅速、可靠;缺点:排队时延、不保证带宽、增加开销】

    【补:主机:进行信息处理;路由器:用来转发分组,即分组交换

    计算机网络大纲总结_第1张图片
三、计算机网络
  1. 分类:

    1)按照网络的作用范围分类:

    ​ ◇ 广域网 ◇ 城域网 ◇ 局域网 ◇ 个人区域网

    2)按照网络的使用者分类:

    ​ ◇ 公用网 ◇ 专用网

    3)接入网AN:用来将用户接入到互联网的网络。

  2. 性能:

    1)速率(bit/s):数据传输速率/数据率/比特率
    数 据 传 输 速 率 = 单 位 时 间 比 特 量 单 位 时 间 数据传输速率=\frac{单位时间比特量}{单位时间} =

    2)带宽(bit/s):网络中某通道传输数据的能力(计算机网络中这么表示),“最高数据率”

    3)吞吐量(bit/s):单位时间内通过某个网络的实际数据量

    举个例子:

    计算机网络大纲总结_第2张图片

    4)时延:对应课后习题:1-17、1-19、1-28

    • 发送时延(也叫传输时延)是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间。
      发 送 时 延 = 数 据 帧 长 度 ( b i t ) 发 送 速 率 ( b i t / s ) [ 一 般 用 带 宽 来 计 算 ] 发送时延=\frac{数据帧长度(bit)}{发送速率(bit/s)[一般用带宽来计算]} =(bit/s)[](bit)

    • 传播时延是电磁波在信道中传播一定距离需要花费的时间
      传 播 时 延 = 信 道 长 度 ( m ) 电 磁 波 在 信 道 上 的 传 播 速 率 ( m / s ) 传播时延=\frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)} =(m/s)(m)
      注意发送时延发生在机器内部,与传输信道无关,只与传输的数据帧长度以及发送速率(带宽)有关;传播时延发生在传输信道上,主要与信道长度以及传播速率有关】

    • 处理时延主机或路由器处理分组花费的时间

    • 排队时延分组进入路由器后在输入输出队列中排队等候的时间

      总时延=发送时延+传播时延+处理时延+排队时延

      【注意: 1 M b i t / s = 1 × 1 0 6 b i t / s 1Mbit/s=1\times 10^6bit/s 1Mbit/s=1×106bit/s,但 1 M B = 1 × 2 10 K B = 1 × 2 20 B = 1 × 2 20 × 8 b i t 1MB=1\times 2^{10}KB=1\times 2^{20}B=1\times 2^{20}\times 8bit 1MB=1×210KB=1×220B=1×220×8bit B B B是字节, 1 1 1字节 = 8 =8 =8比特)】

    5)时延带宽积(bit):即传播时延与带宽的乘积(可以理解为信道中最多能塞下多少比特信息)。
    时 延 带 宽 积 = 传 播 时 延 × 带 宽 时延带宽积=传播时延 \times 带宽 =×

    6)往返时间RTT表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。【此图很重要]

    7)利用率:

    • 信道利用率:指某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道利用率是零。

    • 网络利用率:全网络的信道利用率的加权平均值

      D 0 D_{0} D0表示网络空闲时的时延, D D D表示当前网络的时延,利用率为 U U U,则:
      D = D 0 1 − U D=\frac{D_{0}}{1-U} D=1UD0
      因此并不是利用率越高越高,因为过高的利用率会产生非常大的时延

  3. 非性能特征:【了解】费用、质量、标准化、可靠性、可扩展性和可升级性、易于管理和维护。

  4. 网络协议由三个要素组成:语法、语义、同步。

  5. 具有五层协议的计算机网络体系结构【听说此图必考

    计算机网络大纲总结_第3张图片

    • 应用层:通过应用进程间的交互完成特定网络应用;数据单元:报文。【应用进程
    • 运输层:向两台主机中进程之间的通信提供通用的数据传输服务;具有复用和分用的功能;协议为:TCP(面向连接、可靠、数据单元为报文段)和UDP(无连接、不可靠、数据单元为用户数据报)。【进程
    • 网络层:为不同主机提供通信服务;具有路由选择和转发的功能;协议为:IP(无连接、不可靠);数据单元为:IP数据报。【主机
    • 数据链路层:实现两个相邻节点之间的通信;数据单元为:。【相邻节点
    • 物理层:实现比特传输;数据单元为:比特。【比特
  6. 【半期考试考过】 O S I OSI OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元(PDU),同层对等实体间进行信息交换时必须遵守的规则称为协议下层先上层提供服务,相邻层间通过服务原语提供服务,服务通过层接口来实现,层与层之间交换的数据单位称为服务数据单元(SDU)。(协议是”水平的“,服务是”垂直的“)


第二章-物理层

一、物理层的基本概念
  1. 【了解】计算机内部数据采用并行传输,通信线路上数据采用串行传输,因此物理层还要完成传输方式转换
二、数据通信的基础知识
  1. 一个数据通信系统可划分为三大部分,即源系统(或发送端、发送方)【包含:源点+发送器】、传输系统(或传输网络)和目的系统(或接收端、接收方)【包含:终点+接收器】。

  2. 【了解】通信的目的是传送消息数据是运送消息的实体,信号是数据的表现形式。

    • 模拟信号(或连续信号):消息参数取值连续。
    • 数字信号(或离散信号):消息参数取值离散。
  3. 三种通信基本方式:

    • 单向通信:即单工通信,只能收或只能发。
    • 双向交替通信:即半双工通信,既能收,也能发,但不能同时收和发。
    • 双向通信:即全双工通信,可以同时收和发。
  4. 调制分两大类:

    • 基带调制:仅波形变换,调制后的信号仍是基带信号。【也称为编码
    • 带通调制:使用载波调制,调制后的信号为带通信号。(如:AM,FM,PM)
  5. 常用的编码方式:【半期考试考过】

    • 不归零码:正电平—“1”,负电平—“0”。
    • 归零码:正电平—“1”,负电平—“0”,但占空比小于1。
    • 曼彻斯特编码:正电平—“10”,负电平—“01”。
    • 差分曼彻斯特码:每一位中心始终有跳变,判断电平正负要看位边界是否有跳变,正电平—“无”,负电平—“有”。

    计算机网络大纲总结_第4张图片

  6. 香农公式:
    C = W l o g 2 ( 1 + S / N ) C=Wlog_2(1+S/N) C=Wlog2(1+S/N)
    其中: C C C为信道的极限、无差错的信息传输速率, W W W为信道的带宽, S / N S/N S/N为信噪比。

    因此,影响信道上传输速率的因素就是:1、信道带宽(后果:码间串扰,准则:奈氏准则);2、信噪比( 信 噪 比 ( d B ) = 10 l o g 10 ( S / N ) 信噪比(dB)=10log_{10}(S/N) (dB)=10log10(S/N)

    【拓展】对于频带宽度已确定的信道,如果信噪比不能再提高了,并且码元传输速率也达到了上限值,那么还有办法提高信息的传输速率吗?有!用编码的方法让每一个码元携带更多比特的信息量。

三、物理层下的传输媒体
  1. 传输媒体分为两大类:

    • 导引型传输媒体:沿固体媒体(铜线或光纤)传播
    • 非导引型传输媒体:自由空间(即无线传输)
  2. 导引型传输媒体:【了解】双绞线、同轴电缆、光缆(光纤是光纤通信的传输媒介)。

    光纤通信:【了解】

    • 原理:当光线从高折射率的媒体射向低折射率的媒体时,其折射角将大于入射角,通过全反射,是光线在光纤中传输。
    • 光纤通信三个常用的中心波段: 850 n m , 1310 n m , 1550 n m 850nm,1310nm,1550nm 850nm,1310nm,1550nm
    • 优点:容量大、损耗小、中继距离长、抗干扰性能好、保密性好、重量轻、体积小。
四、信道复用技术
  1. 举例:

    • 频分复用( F D M FDM FDM):分频谱;
    • 时分复用( T D M TDM TDM):分时间;【又称为同步时分复用】
    • 统计时分复用( S T D M STDM STDM): 动态分配时隙,提高线路的利用率;【又称为异步时分复用】
    • 波分复用( W D M WDM WDM):分波。
    • 码分复用( C D M CDM CDM)。
  2. 码分复用( C D M CDM CDM):用在扩频里面。【课本57-58页/PPT:51-57页】对应课后习题:2-16

    C D M CDM CDM中,每一个比特时间再划分为 m m m个短的间隔,称为码片,每个码片序列需要满足的条件是:

    • 各不相同。
    • 相互正交。

    因此,两个不同站的码片序列正交,内积为零;自身码片向量与该码片向量的内积为1,自身码片向量与该反码向量的内积为-1。【故,求哪个基站发消息的时候,就是将收到的信号分别与每个站的码片序列求内积(相乘),结果为0:则该站没发送信号;结果为1:则该站发送信号“1”;结果为-1:则该站发送信号“0”

五、数字传输系统【了解】
  1. 早期的数字传输系统的主要缺点有:
    • 速率标准不统一。
    • 不是同步传输。
  2. 为了解决上述问题,采用同步光纤网:各级时钟都来自一个主时钟
六、宽带接入技术
  1. 从宽带接入的媒体来看,宽带接入技术可以划分为两大类:

    • 有线宽带接入。
    • 无线宽带接入。

    下面只讨论有线宽带接入

  2. 非对称数字用户线 ( A D S L ADSL ADSL):

    • 上行和下行带宽不对称,上行信道的带宽比下行信道的带宽要小。
    • 采用离散多音调( D M T DMT DMT):而次调制技术采用频分复用的方法。
  3. 光纤同轴混合网( H F C HFC HFC网):

    • 同轴电缆的主干部分改换为光纤。
    • 采用结点体系结构。
    • 具有双向传输功能,扩展了传输频带。
  4. F F T x FFTx FFTx技术:举例有:光纤到户 F T T H FTTH FTTH,光纤到大楼 F T T B FTTB FTTB,光纤到路边 F T T C FTTC FTTC

    光配线网采用波分复用,上行和下行分别使用不同的波长。

另外可以看看课后习题:2-08、2-12【挺新颖的】


第三章-数据链路层

一、数据链路层基本概念
  1. 数据链路层使用的信道分为两种类型:
  • 点对点信道:这种信道使用一对一的点对点通信方式。
  • 广播信道:这种信道使用一对多的通信方式。
  1. 数据链路 = = =物理链路 + + +通信协议。

  2. 数据链路层的协议数据单元是:

  3. 数据链路层协议的三个基本问题封装成帧透明传输和差错检测

  4. **封装成帧:**就是在一段数据的前后分别添加首部和尾部。

    首部和尾部的一个重要作用就是进行帧定界,还包括许多控制信息。

    最大传送单元(MTU):帧的数据部分长度上限。

计算机网络大纲总结_第5张图片

举例:数据是由可打印的ASCII码组成的文本文件时:

**帧定界符:**首部:SOH(Start Of Head);尾部:EOT(End Of Transmission)。

计算机网络大纲总结_第6张图片

  1. 透明传输:【前面的帧定界符(也叫控制字符)可以来判断帧的开始和结束,但当数据部分中也出现帧定界符,如果不进行处理,就会导致在数据部分误判,以为是某个帧的开始或结束,因此需要对数据中出现的帧定界符进行一定的处理,使得接收端不会把数据部分出现的帧定界符解释为帧的开始或结束的标志】

    具体方法:字节填充/字符填充(利用转义字符)

    • 在数据中出现的控制字符"SOH"和"EOT"前面插入转义字符ESC。
    • 如果数据中也出现了转义字符ESC,解决方法是在转义字符前面再插入一个转义字符。

    计算机网络大纲总结_第7张图片

  2. 差错检测:检错方法:循环冗余校验CRC;添加在数据后面的冗余码:帧检验序列FCS。【对应课后习题:3-07、3-08】

注意:

  • 数据链路层使用CRC校验,只能检错,不能纠错

  • 数据链路层使用CRC校验,只能做到对帧的无差错传输,即认为接收的帧都是无差错的,不能提供无差错传输/可靠传输

    无差错传输/可靠传输包括两方面:1.传输的帧没有比特出错;2.传输的帧没有顺序出错;只满足起一条叫做“无比特差错”,两条都满足才叫做“无传输差错”】

二、点对点协议PPP
  1. 对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议PPP

  2. PPP协议的首要满足条件是:简单

  3. PPP协议有三个组成部分:

    • 一个将IP数据报封装到串行链路的方法。
    • 一个用来建立、配置和测试数据链路连接的链路控制协议(LCP)。
    • 一套网络控制协议(NCP)。
  4. PPP帧结构:PPP帧的首部和尾部分别为四个字段和两个字段:

    • 首部的第一个字段和尾部的第二个字段都是标志字段F,规定为0x7E(0x表示是十六进制表示,7E的二进制为01111110),标志字段表示一个帧的开始或结束,即定界符。【都占一个字节】
    • 【了解】首部的地址字段A规定为0xFF(即:11111111),控制字段C规定为0x03(即:00000011),实际没携带信息。【都占一个字节】
    • 【了解】首部第四个字段为协议,其值:【占两个字节】
      • 若为 0x0021,则信息字段就是 IP 数据报。
      • 若为 0x8021,则信息字段是网络控制数据。
      • 若为 0xC021,则信息字段是PPP 链路控制数据。
      • 若为 0xC023,则信息字段是鉴别数据。
    • 尾部的第二个字段是使用CRC的帧检验序列FCS。【占两个字节】

    计算机网络大纲总结_第8张图片

  5. 为实现透明传输,PPP协议中的方法:

    • 异步传输时:字符填充,利用转义字符。
      • 信息段中:7E→7D5E
      • 信息段中:7D→7D5D
    • 同步传输时:零比特填充,发现5个连续的1,立即填入一个0。

    【(个人理解)异步传输和同步传输的区别:异步传输的意思可以理解为一帧一帧的传输,也就是接收端收到的是一个个整个的帧,这样可以对整个帧进行处理;而同步传输的意思是一连串比特的连续传送,也就是接收端收到的是一个个比特,这样就不能对整个帧处理,而是要对一个个比特进行处理】

  6. PPT:49页—57页/课本80页—82页

三、使用广播信道的数据链路层
  1. 局域网:

    1)【了解】最主要特点:网络为一个单位所拥有,且地理位置和站点数目均有限。

    2)局域网中的主流传输媒体:双绞线;但数据率很高时,往往需要使用光纤作为传输媒体。

    3)局域网工作的层次跨越了数据链路层和物理层。

    4)共享信道:

    • 静态划分信道:即复用技术。
    • 动态媒体接入控制:又称为多点接入,特点是:信道并非在用户通信时固定分配给用户,这里又分为以下两类:
      • 随机接入:所有用户随机发送信息,必须有解决碰撞的网络协议。
      • 受控接入:用户发送信息服从一定的控制。
  2. 适配器:

    1)功能:

    • 进行数据串行传输和并行传输的转换。
    • 【了解】对数据进行缓存,安装驱动程序。

    2)适配器所实现的功能包含了数据链路层和物理层。

  3. 【很重要的】CSMA/CD【名字巧记:ChiShiMA?ChiDe,仅供参考】建议还是看一下课本85—90页/PPT:70—90页【对应课后习题:3-20、3-24、3-25】

    • 多点接入:总线型网络,许多计算机以多点接入的方式连接在一起。协议的实质是:载波监听和碰撞检测。
    • 载波监听:在发送前、发送中,每个站都必须不停地检测信道。
    • 碰撞检测/冲突检测:即边发送边监听

    重要知识点:

    1)两倍的总线端到端的传播时延,也叫总线的端到端往返传播时延( 2 τ 2\tau 2τ)。【也称为争用期,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞】【争用期一般为51.2us,对于10Mbit/s的以太网,争用期可以说是512比特时间

    2)CSMA/CD协议的以太网是半双工通信,以太网发送数据采用曼彻斯特编码

    3)以太网的碰撞重传方法是:截断二进制指数退避算法课本88页下/PPT:82,83,84页【由于数据在中间发生碰撞,因此数据需要重传,就需要确定一个重传的时间,计k=min(重传次数,10),之后在集合 [ 0 , 1 , 2 , . . . , ( 2 k − 1 ) ] [0,1,2,...,(2^k-1)] [0,1,2,...,(2k1)]中随机取一个数字r,重传的时间就是r倍的争用期,即 2 τ r 2\tau r 2τr。注意一下:最多重传16次,再不成功就丢弃该帧】

    4)以太网规定的最短帧长为:64字节,即512比特。以太网规定的帧间最小间隔为:9.6us,即96比特时间

    5)课本90页要点归纳/PPT:90页

    计算机网络大纲总结_第9张图片

  4. 集线器的特点:

    • 在同一时刻至多只允许一个站发送数据。
    • 一个集线器有许多接口
    • 集线器工作在物理层,每个接口仅简单地转发比特,不进行碰撞检测
  5. 参数 a = τ T 0 a=\frac{\tau}{T_0} a=T0τ,反映信道利用率,其中: τ \tau τ表示以太网单程端到端时延, T 0 T_0 T0表示帧的发送时间;参数a越大,信道利用率越小。

    信道利用率 = T 0 T 0 + τ + 2 n τ =\frac{T_0}{T_0+\tau+2n\tau} =T0+τ+2nτT0

    极限信道利用率 S m a x = T 0 T 0 + τ S_{max}=\frac{T_0}{T_0+\tau} Smax=T0+τT0,即理想化:各站都不会发生碰撞。可以看出:只有当参数a远小于1时,才能得到尽可能高的极限信道利用率

    计算机网络大纲总结_第10张图片

  6. 硬件地址/物理地址:MAC地址。

  7. 发往本站的帧包括:

    • 单播帧。
    • 广播帧。
    • 多播帧。
  8. 以太网V2的MAC帧结构:有五个字段组成。前两个字段分别为6字节长的目的地址源地址字段;第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议;第四个字段是数据字段,其长度在46到1500字节之间(46字节是这样算出来的:最小长度64字节减去18字节的首部和尾部就得出数据段的最小长度)【长度不在这个范围内的直接舍去】;第五个字段是4字节的帧检验序列FCS

    计算机网络大纲总结_第11张图片

    ☆:为了达到比特同步,在传输媒体上实际传送的要比MAC帧还多8个字节。第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC

    无效MAC帧的情况(出现一种即为无效MAC帧):

    • 帧的长度不是整数个字节。
    • 用收到的帧检验序列FCS查出有差错。
    • 收到的帧的MAC客户数据字段长度不在46—1500字节之间。
四、扩展的以太网【对应课后习题:3-30、3-31、3-31】
  1. 在物理层扩展以太网的方法:

    • 使用光纤扩展。
    • 使用集线器扩展。

    注意:连接在同一个集线器的所有主机及其下级的集线器构成一个碰撞域,在任一时刻,每个碰撞域中只能有一个站发送数据。【详见:课本98页下图3-24讲解/PPT:127、128页

  2. 在数据链路层扩展以太网的方法:

    • 网桥:对收到的帧根据其 M A C MAC MAC帧的目的地址进行转发过滤
    • 以太网交换机。
  3. 以太网交换机:

    • 具有并行性,即能同时连通多对接口,使多对主机能同时通信,相互通信的主机都是独占传输媒体,无碰撞地传输数据
    • 内部有帧交换表,通过自学算法自动建立起来的。
    • 交换方式:存储转发方式(大部分)或直通交换方式(小部分)。
    • 工作方式:全双工。
  4. 以太网交换机的自学习功能【期中考过】【对应课后习题:3-33】

    课本100页/PPT:137—146页

    为了解决兜圈子问题,交换机采用了生成树协议(STP)

  5. 区别:

    1)总线形以太网和使用集线器的星形以太网:所有计算机都处于同一个碰撞域(或冲突域)中和同一个广播域中。

    2)使用交换机的星形以太网:每个接口都处于一个独立的碰撞域(或冲突域)中,但所有计算机都处于同一个广播域中。

    【也就是说:集线器:同一时刻只能服务一个设备】

  6. 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。

    虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记


第四章-网络层

一、网络层提供的服务
  1. 网络层可以提供的两种服务类型:虚电路服务和数据报服务。

  2. 互联网采用的设计思路是这样的:网络层向上提供简单灵活的、无连接的、尽最大努力交付(即不可靠)的数据报服务。

虚电路服务与数据报服务对比:

对比的方面 虚电路服务 数据报服务
思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证
连接的建立 必须有 不需要
终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址
分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发
当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序
端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责
二、网际协议IP
  1. 将网络互联起来可以使用的一些中间设备,按照层次不同分为:【建议记一下】

    • 物理层:转发器、集线器
    • 数据链路层:网桥或交换机
    • 网络层:路由器
    • 网络层以上:网关
  2. 注意一下:虚拟互联网络互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。

  3. IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一32位标识符。

  4. IP地址【重点】

    1)两级的IP地址可以记为
    I P 地 址 : : = < 网 络 号 > , < 主 机 号 > IP地址::={<网络号>,<主机号>} IP::=<>,<>

    2)IP地址进行分类,可分为A,B,C,D,E五类,其中A,B,C是单播地址,D是多播地址,E类地址暂时还没有使用。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egWqvAzn-1640614399013)(https://s2.loli.net/2021/12/22/TR78zGwuUYDX4gs.png)]

    • A类地址的网络号字段占1个字节(8bit),只有7位可用,但最大指派的网络数为 2 7 − 2 2^7-2 272个,这里减2的原因是:【了解】第一,IP地址中的全0表示**“这个”。网络号字段为全0的IP地址是一个保留地址,意思是“本网络”;第二,网络号为127(即01111111)保留作为本地软件环回测试**本主机的进程之间的通信之用。若主机发送一个目的地址为环回地址(例如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。
    • A类地址的主机号占3个字节(24bit),但A类网络的最大主机数为 2 24 − 2 2^{24}-2 2242,这里减2的原因是:【了解】全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0),而全1表示**“所有的(all)”**,因此全1的主机号字段表示该网络上的所有主机。
    • 根据上面可得:B类最大指派网络数: 2 14 2^{14} 214,最大主机数: 2 16 − 2 2^{16}-2 2162;C类最大指派网络数: 2 21 2^{21} 221,最大主机数: 2 8 − 2 2^8-2 282【这里PPT上写错了,看课本,课本上是对的(课本120页和121页上)】

    3)IP地址的特点:

    • IP地址是一种分等级的地址结构(网络号+主机号)。好处:【了解】①方便管理。②路由器转发只关注网络号,节约时间和内存。
    • 一个IP地址对应一个接口。(一台主机有多个接口时,将拥有多个IP地址)
    • 转发器、网桥连接起来的若干网络:仍为同一网络;而路由器连接起来的若干网络:不同网络。【注意:路由器是连接几个网络的,因此至少有两个接口,也就是说至少具有两个IP地址】

    4)PPT:51页—61页/课本122页—124页

    • IP地址:逻辑地址,是网络层和以上各层使用的地址。
    • MAC地址:硬件地址,是数据链路层和物理层使用的地址。
  5. 地址解析协议ARP【重点】

    1)ARP协议的作用就是:已知IP地址,找到其对应的硬件地址。

    2)【网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址】

    ARP协议:即每台主机的ARP高速缓存中存放一个从IP地址到硬件地址的映射表

    3)ARP高速缓存中的映射表的建立过程:当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。课本125-126页/PPT:65-68页

    ​ ① 如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往次硬件地址。

    ​ ② 如没有,则按以下步骤找到主机B的硬件地址:

    • ARP进程在本局域网上广播发送一个ARP请求分组,ARP请求分组的主要内容是:“我的IP地址是209.0.0.5,硬件地址是00-00-C0-15-AD-18.我想知道IP地址为209.0.0.6的主机的硬件地址。”
    • 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
    • 主机B的IP地址与ARP请求分组中查询的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组,在这个ARP响应分组中写入自己的硬件地址,同时主机B也把主机A的这一地址映射写入主机B自己的ARP高速缓存中(即:主机B也在自己的ARP高速缓存中记下来主机A的IP地址与硬件地址的映射关系);ARP响应分组的主要内容是:“我的IP地址是209.0.0.6,我的硬件地址是08-00-2B-00-EE-0A。”
    • 主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

    【这里注意一点:ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址】

    计算机网络大纲总结_第12张图片

    4)ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除掉。

    5)【注意:ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题的】

    6)ARP的四种典型情况:【理解就好】

    • 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。

    • 发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

    • 发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。

    • 发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。

  6. IP数据报的格式:一个IP数据报由首部数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

    这里挑几个重点字段分析:

  • 首部长度:占4位,注意,首部长度字段所表示数的单位是32位字(1个32位字长是4字节)【例如,如果首部长度为10的话,表示首部长度 10 × 32 10\times 32 10×32位字= 10 × 4 10 \times 4 10×4字节=40字节】,又由于首部的固定部分长度为20字节,也就是说首部长度至少20字节,所以首部长度字段的最小值为5。
  • 总长度:占16位,总长度指的是首部和数据之和的长度,单位为字节,故数据报最大长度为: 2 16 − 1 = 65535 2^{16}-1=65535 2161=65535字节。当一个IP数据报封装成链路层的帧时,此数据报的总长度一定不能超过下面的数据链路层所规定的最大传送单元MTU值。【也就是让总长度 ⩽ M T U \leqslant MTU MTU】当总长度超过MTU时,就需要分片。注意:在进行分片时,数据报首部中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和。
  • 标识:占16位,作为一个计数器使用,每产生一个数据报,值就加1。【注意:分片后的每一片标识任何没分片时一样,应便于在目的站可以知道哪些分片原属于一个数据报,从而可以无误地重装原来的数据报】
  • 标志:占3位,目前只有2位有意义。最低位记为MF,中间一位记为DF,最高位目前没使用。(MF=1表示“还有分片”,MF=0表示已是最后一个分片“;DF=1表示”不能分片“,DF=0表示”允许分片“)
  • 片偏移:占13位,片偏移以8个字节为偏移单位。
  • 【最好看一下课本129页例4-1】
  • 生存时间(TTL):占8位,表示跳数,路由器每次转发数据报之前就把TTL值减1,当TTL减为0时,丢弃这个数据报。
  • 协议:常见协议字段值:【了解】ICMP:协议字段值为1;TCP:6,;UDP:17。
  • 首部检验和:占16位,这个字段只检验数据报的首部,但不包括数据部分。
  • 源地址:占32位;目的地址:占32位。
  1. IP层转发分组的流程

    每个路由器中都有个路由表,在路由表中,对每一条路由最主要的是以下两个信息:**(目的网络地址,下一跳地址)。**需要路由表寻找下一跳的原因是:IP数据报的首部写上的IP地址是源IP地址和目的IP地址,并没有中间经过的路由器的IP地址,因此要通过在路由表中寻找下一跳的IP地址进行IP数据报的转发。

    分组转发算法如下:

    • (1)从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N
    • (2)若网络 N 与此路由器直接相连,则把数据报直接交付目的主机D(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则是间接交付,执行 (3)
    • (3)若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)
    • (4)若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)
    • (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)
    • (6)报告转发分组出错。
三、划分子网和构造超网
  1. 划分子网:划分子网纯属一个单位内部的事情,划分之后这个单位对外仍然表示为一个网络。划分子网的方法:从网络的主机号借用若干位作为子网号,这样减少了主机号,但将二级IP地址在本单位内部就变成了三级IP地址
    I P 地 址 : : = < 网 络 号 > , < 子 网 号 > , < 主 机 号 > IP地址::={<网络号>,<子网号>,<主机号>} IP::=<>,<>,<>

    1. **子网掩码:**可以找出IP地址中的子网部分,其性质有:
    • 长度为32位。
    • 左边部分有一连串的“1”,对应网络号和子网号。
    • 右边部分为一连串的“0”,对应主机号。

    使用子网掩码,不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的**”与“运算(AND),就可以立即得出其对应的网络地址。【课本139页例4-2】**对应课后习题:4-20、4-29

子网数是根据子网号计算出来的,若子网号有n位,则共有 2 n 2^n 2n种可能的排列,除去全0和全1这两种情况,就得出表中的子网数( 2 n − 2 2^n-2 2n2)。

  1. 使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。

    在划分子网的情况下,路由器转发分组的算法如下:【课本140页例4-4】

  • (1)从收到的分组的首部提取目的IP地址D。
  • (2)先用各网络的子网掩码和D逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
  • (3)若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。
  • (4)对路由表中的每一行,将子网掩码和D逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。
  • (5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
  • (6)报告转发分组出错。
  1. 无分类编制CIDR(构造超网):取消了传统的A,B,C类地址以及划分子网的概念,IP地址分为前后两部分,前面部分叫“网络前缀”,用来指明网络号,后面部分指明主机号。【也就是说主机号和网络号的长度没有固定位数的限制了】

    使用**”斜线记法“,以及32位地址掩码**。对应课后习题:4-35

    使用CIDR使,利用掩码进行路由选择时,采用**最长前缀匹配,即从匹配结果中选择具有最长网络前缀的路由。**例如:

四、网际控制报文协议ICMP
  1. ICMP作用:由于网络层没有反馈,因此需要对网络有监听,ICMP即干这个用的,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
  2. ICMP报文的种类有两种:ICMP差错报告报文ICMP询问报文
  3. 常用的ICMP询问报文有两种:
    • 回送请求和回答:【了解】用来测试目的站是否可达以及了解其有关状态。
    • 时间戳请求和回答:【了解】用于时间同步和时间测量。
  4. ICMP两个重要的应用:
  • 分组网间探测PING,用来测试两台主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。
  • traceroute,用来跟踪一个分组从源点到终点的路径。(利用TTL字段,PPT:161页/课本150页
五、互联网的路由选择协议
  1. 互联网采用的路由选择协议主要是自适应的(即动态的)、分布式路由选择协议。

  2. 可以把整个互联网划分为许多较小的自治系统AS,在目前的互联网中,一个大的ISP就是一个自治系统。这样,互联网就把路由选择协议划分为两大类:

    • 内部网关协议IGP:即在一个自治系统内部使用的路由选择协议,如RIP【重点】和OSPF【了解】等。
    • 外部网关协议EGP:即在两个自治系统之间使用的路由选择协议,如BGP【了解】
  3. 内部网关协议RIP:是一种分布式的基于距离向量的路由选择协议。这里“距离”定义为**”跳数“**,RIP就是在两个网络之间选择一条具有最少路由器(即跳数最小/距离最短)的路由,同时RIP允许一条路径最多只能包含15个路由器,因此“距离”等于16时即相当于不可达。RIP协议的特点是:

    • 仅和相邻路由器交换信息。
    • 路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
    • 按固定的时间间隔交换路由信息,即周期性地交换路由信息。

    RIP中路由表更新的原则是找出每个目的网络的最短距离,这种更新算法又称为距离向量算法【重点】

    【课本155页上以及下面的例4-5/PPT:179页】对应课后习题:4-41、4-55

    简单总结一下:

    • 首先将发来的路由信息里面的距离全加1。
    • 然后对于每一条:
      • 先看有无,没有的话加上去。
      • 若有,再看下一跳是否就是发来路由信息的那个路由器,若是,则更新。
      • 若不是,最后比较距离大小,接收小的。

    【了解】RIP存在的一个问题是:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器【即:好消息传播的快,而坏消息传播得慢】。

  4. 内部网关协议OSPF:只有当链路状态发生改变时,路由器才向所有路由器洪泛法发送信息,即采用的是触发式的;对比RIP第三条特点,RIP采用的是周期性的

  5. 外部网关协议BGP:力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由,BGP采用了路径向量路由选择协议。在配置BGP时,每一个自治系统选择至少一个路由器作为该自治系统的BGP发言人,之后BGP路由选择每个自治系统就以其选择的BGP发言人来代替,这样BGP协议交换路由信息的结点数量级是自治系统个数的量级。

  6. 路由器的构成:【不是很重点】

    1)路由器的任务是:转发分组。(多个输入端口、多个输出端口)

    2)路由器由两大部分组成:路由选择部分分组转发部分

    • 路由选择部分的核心构件是路由选择处理机。

    3)路由器的转发分组部分由三部分组成:交换结构、一组输入端口和一组输出端口。

    4)三种常用的交换结构:通过存储器、通过总线、通过互联网。

六、IPv6
  1. 【要记住】IPv6一共有128位。

  2. IPv6数据报的目的地址可以是以下三种基本类型地址之一:

    • 单播:点对点。
    • 多播:一点对多点。
    • 任播:这是IPv6增加的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是距离最近的一个。
  3. IPv6使用冒号十六进制记法,它把每个16位的值用十六进制值表示,128位分成了 128 16 = 8 \frac{128}{16}=8 16128=8块=组,各值之间用冒号分隔,如:
    68 E 6 : 8 C 64 : F F F F : F F F F : 0 : 1180 : 960 A : F F F F 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
    IPv6允许的几种省略表示方法:【重点】对应课后习题:4-64

    • 允许把数字前面的0省略,如上面就把0000中前三个0省略了。【这里一定要注意:数字前面的0可以省略,但数字后面的0是不能省略的】

    • 允许零压缩,即一连串连续的零可以为一对冒号所取代,如
      F F 05 : 0 : 0 : 0 : 0 : 0 : 0 : B 3 FF05:0:0:0:0:0:0:B3 FF05:0:0:0:0:0:0:B3
      可以压缩为:
      F F 05 : : B 3 FF05::B3 FF05::B3
      注意:为了保证零压缩有一个不含糊的解释,规定在任一地址中只能使用一次零压缩。

    • 冒号十六进制记法可结合使用点分十进制记法的后缀。

    常见的IPv6的地址分类:

    地址类型 二进制前缀
    未指明地址 00…0(128位),可记为::/128
    环回地址 00…1(128位),可记为::1/128
    多播地址 11111111(8位),可记为FF00::/8
    本地链路单播地址 1111111010(10位),可记为FE80::/10
    全球单播地址 (除上述四种外,所有其他的二进制前缀)
  4. 从IPv4向IPv6过渡的方法:逐步演进、向后兼容

    1)**双协议栈:**一部分主机(或路由器)装有双协议栈(一个IPv4和一个IPv6),它使用域名系统DNS来查询判断目的主机采用哪一种地址。

    2)**隧道技术:**在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报,使得整个的IPv6数据报变成了IPv4数据报的数据部分。【路由器将原IP打包,报头换为新的IP】

七、IP多播
  1. IP多播:目的IP与MAC地址都是多播地址,指向多播组。

  2. 当多播组的主机数很大时,采用多播方式就可明显地减轻网络中各种资源的消耗,能够运行多播协议的路由器称为多播路由器,在互联网上进行多播就叫做IP多播,IP多播所传送的分组需要使用多播IP地址。在多播数据报的目的地址写入的是多播组的标识符,也就是IP地址的D类地址。【即:多播数据报和一般的IP数据报的区别就是它使用D类IP地址作为目的地址,并且多播地址只能用于目的地址,而不能用于源地址,同时,对多播数据报不产生ICMP差错报文】

  3. D类IP地址与以太网多播地址的映射关系:

  4. IP多播需要的两种协议:

    • 网际组管理协议IGMP。 【具体内容了解一下即可】
    • 多播路由选择协议。 ** 【具体内容了解一下即可】**
八、虚拟专用网VPN和网络地址转换NAT
  1. 虚拟专用网VPN主要是用于解决IP地址紧缺的问题。
  2. 专用地址是只能用于一个机构的内部通信,而不能用于和互联网上的主机通信的地址,也就是说专用地址只能用作本地地址(本地地址:仅在本机构有效的IP地址),而不能用作全球地址(全球地址:不需要向互联网的管理机构申请的全球唯一的IP地址)。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。采用这样的专用IP地址的互联网称为专用互联网本地互联网。
  3. 虚拟专用网VPN即为两个专用网,同时通过互联网连接,其使用的是隧道技术。
  4. 网络地址转换NAT的作用是解决在专用网内部的一些主机本来已经分配到了本地IP地址,但现在又想和互联网上的主机通信的问题。方法是:在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它**至少有一个有效的外部全球IP地址。**这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换为全球IP地址,才能和互联网连接。
九、多协议标记交换MPLS:为了提高速度 【了解即可】

第五章-运输层(可靠传输)

一、运输层协议概述
  1. 运输层:两个主机的进程之间的通信。由于两台主机之间可能有多个进程之间同时通信,因此,运输层有个很重要的功能:复用和分用。【这里就可以看出,网络层和运输层有明显的区别:1)网络层主机之间提供逻辑通信;2)而运输层应用进程之间提供端到端的逻辑通信】

  2. 运输层的两个重要协议:

    • 用户数据报协议UDP:
      • 不需要提前建立连接;
      • 不可靠;
      • 支持单播、多播、广播。
    • 传输控制协议TCP:
      • 面向连接;
      • 可靠;
      • 支持点对点单播,不支持多播和广播。
  3. 运输层使用协议端口号(简称为端口),它用来标志本计算机应用层中的各个进程在和运输层交互时的层间接口。TCP和UDP的首部格式中都包含有源端口目的端口,当运输层收到IP层交上来的运输层报文时,就能够根据其首部中的目的端口号把数据交付应用层的目的应用进程。因此,两个计算机中的进程要相互通信,不仅需要知道对方的IP地址,而且要知道对方的端口号。常用的端口号分为下面两大类:【要记一下,能区分】

    • **服务器端使用的端口号:**又分为两类:【对应课后习题:5-14】

      • 熟知端口号/系统端口号:数值为0~1023.

      【这里课本207页下面表5-2(或PPT:31页)有常用的熟知端口号,大概看一下】

      • 登记端口号:数值为1024~49151.
    • 客户端使用的端口号:数值为49152~65535.通信结束后,刚才已使用过的客户端口号就不复存在了,这个端口号就可以供其他客户进程使用(即客户端口号是临时的)。

二、用户数据报协议UDP
  1. UDP只在IP的数据报服务上增加了很少一点的功能,这就是复用、分用和差错检测的功能,UDP的主要特点是:【要记住,并能与后面TCP的进行比较】
    • UDP是无连接的。(这样优点是开销少、延时短)
    • UDP使用尽最大努力交付,即不可靠交付。
    • **UDP是面向报文的。**对于应用层交下来的数据报,运输层只是在其首部加上UDP首部,就构成了UDP用户数据报,往下交给IP层。
    • UDP没有拥塞控制。
    • UDP支持一对一、一对多、多对一和多对多的交互通信。
    • UDP的首部开销小。(UDP首部只有8个字节,比TCP的20个字节的首部要短)
  2. 用户数据报UDP有两个字段:数据字段和首部字段。首部字段很简单,只有8个字节,有四个字段组成,每个字段的长度都是两个字节,各字段意义如下:
    • **源端口:**源端口号。在需要对方回信时选用,不需要时可用全0。
    • **目的端口:**目的端口号。这在终点交付报文时必须使用。
    • 长度:UDP用户数据报的长度,其最小值是8(仅有首部)。
    • **检验和:**检测UDP用户数据报在传输中是否有错,有错就丢弃。
  3. 在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部,同时注意UDP计算检验和的方法和计算IP数据报首部检验和的方法相似,但不同的是:IP数据报的检验和只检验IP数据报的首部,而UDP的检验和是把首部和数据部分一起都检验。
三、传输控制协议TCP
  1. TCP的主要特点:

    • TCP是面向连接的运输层协议。但注意,TCP连接是一条虚连接(也就是逻辑连接),而不是一条真正的物理连接。
    • TCP提供可靠交付的服务。
    • TCP面向字节流。
    • TCP具有拥塞控制和流量控制。
    • 每一条TCP连接只能由两个端口,每一条TCP连接只能是点对点的(一对一的)。
    • TCP提供全双工通信。

    TCP和UCP在发送报文时所采用的方式完全不同,TCP并不关心应用进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值当前网络拥塞的程度决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。

  2. TCP的连接:每一条TCP连接有两个端点,TCP连接的端点叫做套接字或插口。
    套 接 字   s o c k e t = ( I P 地 址 : 端 口 号 ) 套接字\ socket=(IP地址:端口号)  socket=(IP:)
    【其实也就是说,相当于每个套接字的IP地址可以先确定主机,然后套接字的端口号就可以确定交给主机应用层哪个端口进程了】

    每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定,即:
    T C P 连 接 : : = { s o c k e t 1 , s o c k e t 2 } = { ( I P 1 : p o r t 1 ) , ( I P 2 : p o r t 2 ) } TCP连接::=\{socket1,socket2\}=\{(IP1:port1),(IP2:port2)\} TCP::={socket1,socket2}={(IP1:port1),(IP2:port2)}
    同时要注意:同一个IP地址可以有多个不同的TCP连接,同一个端口号也可以出现在多个不同的TCP连接中。

四、可靠传输的工作原理
  1. 为了做到可靠传输,我们的思路是当出现差错时让发送方重传出现差错的数据,同时在接受房来不及处理收到的数据时,及时告诉发送方适当降低降低发送数据的速度。

  2. 停止等待协议——保证传输的可靠性

    “停止等待”就是每发送完一个分组就停止发送,等待对方的确认,在收到确认后在发送下一个分组。

    1)出现差错时:

    这里注意以下三点:

    • A在发送完一个分组后,必须暂时保留已发送的分组的副本。只有在收到相应的确认后才能清除暂时保留的分组副本。
    • 分组和确认分组都必须进行编号。这样才能明确是哪一个发送出去的分组收到了确认,而哪一个分组还没有收到确认。
    • 超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些

    2)确认丢失和确认迟到:

    B给A对分组M1的确认丢失时,会导致B又收到了重传的分组M1(M1并未丢失),这时B应采取两个行动:第一,丢弃这个重复的分组M1;第二,向A发送确认。

    B给A对分组M1的确认迟到时,A会收到重复的确认。对重传的确认处理很简单:A这边收下后就丢弃,B这边仍然会收到重复的M1,并且同样要丢弃重复的M1,并重传确认分组。

    3)信道利用率:

    停止等待协议优点是:简单,但缺点是:信道利用率太低。

    $$ 信道利用率\ U=\frac{T_D}{T_D+RTT+T_A} $$ **使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信,上述这种可靠传输协议常称为自动重传请求ARQ。**

    为了提高利用率,可采用流水线传输,就需要使用连续ARQ协议滑动窗口协议。

  3. 连续ARQ协议

    采用回退N方法进行重传。

    发送方维持发送窗口,接收方一般采用累计确认的方式,就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。

    优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。【举例见课本217页上/PPT:81页】

连续ARQ协议与停止等待协议

连续ARQ协议 停止等待协议
发送的分组数量 一次发送多个分组 一次发送一个分组
传输控制 滑动窗口协议 停等-等待
确认 单独确认 + 累积确认 单独确认
超时定时器 每个发送的分组 每个发送的分组
编号 每个发送的分组 每个发送的分组
重传 回退N,多个分组 一个分组
五、TCP报文段的首部格式【对应课后习题:5-23】
  1. 这里注意一下:TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。
  2. 一个TCP报文段分为首部和数据两部分。TCP报文段首部的前20个字节是固定的,后面有4n字节是根据需要而增加的选项(n是整数),因此TCP首部的最小长度是20字节。
  1. TCP报文段首部各字段的意义如下:
  • **源端口和目的端口:**各占2个字节。

  • 序号[重点]占4个字节。序号范围是 [ 0 , 2 32 − 1 ] [0,2^{32}-1] [0,2321] 2 32 2^{32} 232个序号。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。【例如:一报文段的序号字段值是301,而携带的数据共有100字节,这就表明:本报文段的数据的第一个字节的序号是301,最后一个字节的序号是400.显然,下一个报文段(如果还有的话)的数据序号应当从401开始,即下一个报文段的序号字段值应为401,这个字段的名称也叫作**“报文段序号”**。

  • 确认号[重点]占4字节,是期望收到对方下一个报文段的第一个数据字节的序号。

    [也就是说]若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。

  • 数据偏移:占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度

  • ……

  • 确认ACK[重点]仅当ACK=1时,确认号字段才有效;当ACK=0时,确认号无效。【这里,确认ACK要与确认号区分开,确认ACK只有一位,表示确认字号是否有效,而确认号的值表示希望对方下一报文段第一个数据字节的序号】

  • ……

  • **同步SYN:**在连接建立时用于同步序号的。连接请求和连接接受时都需要SYN=1。

  • **终止FIN:**用于释放一个链接。当要释放连接时,FIN=1。

  • 窗口:窗口指的是发送本报文段的一方的接收窗口(而不是自己的发送窗口),窗口值作为接收方让发送方设置其发送窗口的依据。

  • **检验和:**检验和字段检验的范围包括首部和数据这两部分。

六、TCP可靠传输的实现

【四句重要的话】

  • TCP连接的每一端都必须设有两个窗口 ——发送窗口和接收窗口(发送窗口大小由接收窗口决定,接收窗口大小由其缓存大小决定)
  • TCP的可靠传输机制用字节的序号进行控制,TCP所有的确认都是基于序列而不是基于报文段
  • TCP两端的四个窗口经常处于动态变化之中
  • TCP连接的往返时间RTT也不是固定不变的,需要使用特定的算法估算较为合理的重传时间
  1. 以字节为单位的滑动窗口:

课本221-224页/PPT:117-131页看一遍,挺好理解的,注意几点

  • 发送方A的发送窗口一定不能超过接收方B的接收窗口数值。【在同一时刻,A的发送窗口并不总是和B的接收窗口一样大】
  • 接收方B只能对按序收到的数据中的最高序号给出确认。
  • 以及P1、P2、P3分别代表的意义。
  • TCP要求接收方必须有累计确认的功能。
  1. 超时重传时间的选择:【重点】【对应课后习题:5-34】

由于TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段,因此涉及重传时间的选择问题。

TCP采用一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间,这两个时间之差就是报文段的往返时间RTT。TCP保留了RTT的一个加权平均往返时间 R T T s RTT_{s} RTTs。第一次测量时, R T T s RTT_{s} RTTs的值就取为所测量到的RTT样本值,之后更新如下:
新 的 R T T s = ( 1 − α ) × ( 旧 的 R T T s ) + α × ( 新 的 R T T 样 本 ) 新的RTT_{s}=(1-\alpha)\times (旧的RTT_{s})+\alpha \times (新的RTT样本) RTTs=(1α)×(RTTs)+α×(RTT)
上式的系数 α \alpha α取值在 [ 0 , 1 ] [0,1] [0,1],推荐值为 1 8 \frac{1}{8} 81

显然,超时计时器设置的超时重传时间RTO应略大于上面得出的加权平均往返时间 R T T s RTT_{s} RTTs,计算如下式:
R T O = R T T s + 4 × R T T D RTO=RTT_{s}+4\times RTT_{D} RTO=RTTs+4×RTTD
R T T D RTT_{D} RTTD R T T RTT RTT偏差的加权平均值。第一次测量时, R T T D RTT_{D} RTTD的值取为测量到的 R T T RTT RTT样本值的一半,之后更新如下:
新 的 R T T D = ( 1 − β ) × ( 旧 的 R T T D ) + β × ∣ R T T S − 新 的 R T T 样 本 ∣ 新的RTT_{D}=(1-\beta)\times (旧的RTT_{D})+\beta \times |RTT_{S}-新的RTT样本| RTTD=(1β)×(RTTD)+β×RTTSRTT
上式中的系数 β \beta β小于1,推荐值为 1 4 \frac{1}{4} 41

  1. 选择确认ACK:作用是:若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据,设法只传送缺少的数据而不重传已经正确到达接收方的数据。
七、TCP的流量控制

【注意区别TCP的流量控制和拥塞控制】

流量控制:解决端到端的问题。

拥塞控制:解决网络中的问题。

  1. 流量控制:就是让发送方的发送速率不要太快,要让接收方来得及接收。利用接收方返回的rwnd的值进行流量控制。同时TCP为每一个连接设有一个持续计时器,只要TCP连接的一放收到对方的零窗口通知,就启动持续计时器,若持续计时器设置的时间到期,就发送一个零窗口探测报文段,而对方就在确认这个探测报文段时给出了现在的窗口值。
  2. TCP的传输效率。 【了解】
八、TCP的拥塞控制【重点】

拥塞控制:为了解决网络拥堵的问题

  1. 网络拥堵产生的原因:【了解】
    • 链路不够多。
    • 处理能力不足。
    • 缓存空间有限,产生丢包问题。
  2. 拥塞控制就是**防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。**相反,流量控制往往是指点对点通信量的控制,是一个端到端的问题。
  3. 拥塞控制可以分为开环控制闭环控制两种方法:
    • **开环控制:**在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。但一旦整个系统运行起来,就不再中途进行改正了。
    • **闭环控制:**基于反馈环路的概念,不断动态变化。
  4. TCP的拥塞控制方法——【采用基于窗口的方法】【很重要,详看课本232-235页/PPT:174-204页】【对应课后习题:5-39】

TCP进行拥塞控制的算法有四种,即慢开始、拥塞避免、快重传和快恢复。

首先我们强调两个概念:1)这里我们使用报文段的个数作为窗口大小的单位。2)传输轮次:一个传输轮次所经历的时间其实就是往返时间RTT。

1)**慢开始:**主机刚开始发送数据时,由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口的数值。每经过一个传输轮次,拥塞窗口cwnd就加倍。【这里cwnd即从1到2再到4再到8……】。这里的“慢”就是指一开始设置cwnd=1。

为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh,慢开始门限ssthresh的用法如下:

  • 当cwnd
  • 当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法。
  • 当cwnd=ssthresh时,既可使用慢开始算法,又可使用拥塞避免算法。

2)**拥塞避免:**让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT(一个轮次)就将cwnd加1,而不是像慢开始阶段那样加倍增长。

3)快重传:接收方立即发送确认信息,快重传算法规定,发送方只要一脸收到3个重复确认,就知道接收方确实没有收到报文段M3,因而应当立即进行重传

4)**快恢复算法:**收到3-ACK时使用。

几个重要的时间点:

  • 一开始使用慢开始算法,cwnd倍数增加,ssthresh不变;
  • 当cwnd=ssthresh时,改为使用拥塞控制算法,cwnd和ssthresh都每一个轮次加1;
  • 当发生超时时,做出调整:cwnd变为1,ssthresh变为原来的ssthresh的一半,然后继续使用慢开始算法,即cwnd倍数增加,ssthresh不变;
  • 当发生3-ACK(收到3个重复确认)时,做出调整:cwnd=ssthresh=原来cwnd的一半,然后使用拥塞控制算法,即cwnd和ssthresh都每一个轮次加1。
  1. 主动队列管理AQM:主机主动地进行调整,以减轻网络拥塞。
九、TCP的运输连接管理【对应课后习题:5-41】
  1. TCP的运输连接有三个阶段:连接建立、数据传送和连接释放。

  2. TCP连接建立:三报文握手,TCP连接的建立采用客户服务器方式。【本例中:A主动打开连接,而B被动打开连接

    【重点,详看课本238-239页/PPT:222-228页】

  3. TCP连接释放:谁数据先发完之后,谁先发FIN来释放连接。

【重点,详看课本240-241页/PPT:230-237页】


至此,计算机网络的前五章知识大纲整理完毕!

你可能感兴趣的:(网络,服务器,计算机网络)