【北航软院+保研复习】计算机网络复习笔记

基于王道计网

1.0版本 北航软院大三上计网课程复习笔记

2.0版本 保研复习笔记

文章目录

  • 第一章
    • 1.1 计算机网络概述
      • 1.1.1 计算机网络的概念
      • 1.1.2 计算机网络的组成
      • 1.1.4 计算机网络的分类
      • 1.1.6 计算机网络的性能指标
        • 带宽
        • 时延
        • 时延带宽积
        • 吞吐量
        • 往返时延 - RTT
        • 利用率
        • 丢包率
    • 1.2 计算机网络体系结构
      • 1.2.1 计算机网络分层结构
      • 1.2.2 计算机网络常见概念
      • 1.2.3 计算机网络模型
  • 第二章 物理层
    • 2.1 基本概念
      • 数据/信号
      • 码元
      • 信源、信道与信宿
      • 速率、波特与带宽
    • 2.2 奈奎斯特定理与香农定理
    • 2.3 编码与调制
    • 2.4 物理层设备
  • 第三章 数据链路层
      • 3.1 封装成帧
      • 3.2 透明传输
          • 字符计数法
          • 字符填充的首尾定界符法
          • 零比特填充的首尾标志法
          • 违规编码法
      • 3.3 差错控制
        • 检错编码
          • 奇偶校验码
          • 循环冗余码(CRC)
        • 纠错编码
          • 海明码
      • 3.4 流量控制
        • 滑动窗口机制
        • 单帧滑动窗口与停止-等待协议
        • 多帧滑动窗口与后退N帧协议(GBN)
        • 选择重传协议(SR)
        • 信道利用率
      • 3.5 介质访问控制
        • 信道划分介质访问控制
          • 频分多路复用(FDM)
          • 时分多路复用(TDM)
          • 波分多路复用(WDM)
          • 码分多路复用(CDM)
        • 随机访问介质访问控制
          • ALOHA协议
          • CSMA协议
          • CSMA/CD协议
          • CSMA/CA协议
        • 轮询访问介质访问控制:令牌传递协议
      • 3.6 局域网
      • 3.7 广域网
        • PPP协议:点对点
        • HDLC协议
        • PPP和HDLC的区别
      • 3.8 数据链路层设备
        • 网桥
        • 以太网交换机(局域网交换机)
  • 第四章 网络层
    • 4.1 网络层功能
      • 4.1.1 异构网络互联
      • 4.1.2 路由与转发
        • 路由选择
        • 路由转发
      • 4.1.3 拥塞控制
    • 4.2 路由算法
      • 静态路由和动态路由
      • ① 距离-向量路由算法
        • RIP算法
      • ② 链路状态路由算法
        • OSPF算法
      • 层次路由
    • 4.3 IPv4
      • 4.3.1 IPv4分组
        • IPv4分组的格式
        • IP数据报分片
        • 网络层转发分组的流程
      • 4.3.2 IPv4与NAT
      • 4.3.3 子网划分与CIDR
      • 4.3.4 ARP、DHCP、ICMP
        • 1. ARP
        • 2. DHCP
        • 3. ICMP
    • 4.4 IPv6
    • 4.5 路由协议
      • 内部:RIP
      • 内部:OSPF
      • 外部:边界网关协议BGP
    • 4.6 IP组播
    • 4.7 移动IP
    • 4.8 网络层设备
  • 5 传输层
    • 5.1 传输层提供的服务
      • 1 传输层的功能
      • 2 端口
        • 端口号
    • 5.2 无连接的UDP
      • 1 UDP数据报
        • ① 优点
        • ② 常用于
        • ③ 不可靠服务
        • ④ 对应用层数据的处理
        • ⑤ UDP首部格式
      • 2 UDP校验
    • 5.3 面向连接的TCP
      • 5.3.1 TCP特点
      • 5.3.2 TCP报文段
      • 5.3.3 TCP连接管理
        • 建立TCP连接-三次握手
        • 释放TCP连接-四次挥手
      • 5.3.4 可靠传输
      • 5.3.5 TCP流量控制
      • 5.3.6 TCP拥塞控制
  • 6 应用层
    • 6.1 应用层模型
      • 客户机服务器模型
      • P2P模型
    • 6.2 DNS域名系统
    • 6.3 文件传输协议FTP

第一章

1.1 计算机网络概述

1.1.1 计算机网络的概念

分布在不同地理位置的独立计算机系统,使用统一的网络协议组织起来,以实现资源共享,这些计算机系统的集合称为计算机网络

1.1.2 计算机网络的组成

  1. 硬件(主机、通信链路、交换设备等)、软件(应用层程序,如FTP程序、邮件收发程序等)、协议(网络传输数据时遵循的规范)
  2. 边缘部分(连接到网络上供用户使用的主机)、核心部分(网络和路由器等)
  3. 通信子网和资源子网(通信子网由各种传输介质、通信设备和网络协议组成,它的作用是实现计算机之间的联网通信;资源子网是实现资源共享功能的设备及其软件的集合,向网络提供共享其他计算机上硬件资源、软件资源、数据资源的服务)

1.1.4 计算机网络的分类

  1. 按分布范围可以分为广域网、城域网、局域网、个人区域网四类
  2. 按传输技术可以分为广播式网络和点对点网络两种。广播式网络是指所有计算机共享一个公共通信信道,一台计算机发送报文时所有计算机都能收到,局域网一般使用广播式网络;点对点网络是指每条物理链路连接的是一对计算机(但并不是每一对计算机之间都有链路),如果通信双方之间没有链路,需要经过中间结点的转发,广域网一般使用这种网络。
  3. 按拓扑结构分类可以分为总线形、星形、环形、网状四类(拓扑结构是指网中结点与通信线路之间的几何关系)
  4. 按使用者分类可以分为公有网和私有网两类
  5. 按交换技术分类可以分为电路交换网络、报文交换网络、分组交换网络(电路交换:每次传输时在源节点和目的节点之间建立一条连接;报文交换:需要发送的数据加上源地址和目的地址等信息,然后整个报文在网络中不断转发,直到达到目的节点,这种方法需要很大的缓冲区;分组交换:将报文交换中的数据进行分组,这种方法不需要很大的缓冲区)
  6. 按传输介质分类可以分为有线和无线两类,有线网络有双绞线网络、同轴电缆网络等,无线网络有蓝牙、微波、无线电等

广播式网络一般用于局域网,工作在数据链路层,所以可以不要网络层。

广域网的拓扑结构通常采用网状结构。

1.1.6 计算机网络的性能指标

带宽

即发送端的宽度,指发送端最大传输速率(发送速率),单位比特/秒(b/s)

时延

发送时延:发送端发送数据所用时间,等于分组长度(b)/信道宽度(b/s)

传播时延:一个比特从起点到终点所用时间,信道长度(m)/电磁波传播速率(m/s) 传播速率与传播介质有关

处理时延:数据在交换节点为存储转发而进行的一些必要处理所需的时间

排队时延:分组在路由器中排队所用时间

时延带宽积

第一个比特从起点到终点的时间内(一个传播时延内),发送端发送的比特数

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

传播时延相当于传播链路以时间衡量的链路长度,带宽相当于链路的横截面积,所以时延带宽积也可以理解为链路的体积

也可以理解为以比特为单位的链路长度。

吞吐量

单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络带宽或额定速率的限制。

往返时延 - RTT

从发送端发送数据开始,到发送端收到接收端的确认帧结束所需时间

利用率

信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)

网络利用率:表示全网络的信道利用率的加权平均

当某信道的利用率增大时,该信道引起的时延也会迅速增加;因此信道利用率并非越高越好。

丢包率

丢包率就是分组丢失率,指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率。

分组丢失的两种情况:

  1. 分组在传输过程中出现误码,被结点交换机检测出误码后而丢弃。
  2. 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时可能造成网络阻塞

丢包率反映了网络的拥塞情况。

1.2 计算机网络体系结构

1.2.1 计算机网络分层结构

计算机网络的体系结构:计算机网络的各层及其协议的集合

各层之间功能独立,上层使用下层提供的服务

分层的目的:

分层后能使各层之间相互独立,灵活性好,因而分层的体系结构更容易更新、易于调试、易于交流、易于抽象、易于标准化

计算机网络各层的报文都可以分为两部分,一部分是数据部分,即SDU(服务数据单元),一部分是控制部分PCI(协议控制信息),这两部分共同组成协议数据单元PDU

当两台主机通信时,每个对等层之间都有一条逻辑信道

1.2.2 计算机网络常见概念

协议:为进行网络中的数据交换而建立的规则、标准等(存在于不同节点的对等层之间)

接口:同一结点相邻两层之间交换信息的连接点,又称服务访问点(Service Access Point, SAP)(存在于同一结点的相邻层之间);第N层的SAP指的是第N+1层访问第N层服务的地方,例如应用层的SAP指的是用户界面。

服务:指下层为紧邻的上层提供的功能调用,上层只能看到下层的服务,而不能看到下层的具体协议

面向连接服务与无连接服务

面向连接的服务中,通信双方必须先建立连接,分配相应资源(如缓冲区),并在传输结束后释放连接和相应资源。这种服务可以分为连接建立、数据传输和连接释放三个阶段,例如TCP协议。

无连接服务中,通信双方不需要建立连接,而是直接将数据发送到线路上,这种方法又被称为“尽最大努力交付”,因为它并不保证通信的可靠性,例如IP协议、UDP协议。

可靠服务与不可靠服务

可靠服务是指具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。而不可靠服务只是尽力而为。

对于不提供可靠服务的网络,其信息的正确性、可靠性需要应用或用户去判断。

有应答服务与无应答服务

有应答服务是指接收方在收到数据后向发送方给出应答,其应答可以是肯定应答,也可以是否定应答,例如文件传输服务。

无应答服务是指接收方收到数据后不会给出应答,例如WWW服务。

1.2.3 计算机网络模型

为了使各种结构的计算机都能相连而设置了国际标准的计算机网络体系结构。

法律上的国际标准:OSI体系结构

低三层属于通信子网,高三层属于资源子网。在源节点和目的节点之间的中间结点只需要关注通信子网的低三层,完成寻址转发等即可,而不需要再向上关注传输层中目的主机的进程(端口号)。

分层 单位 功能 协议
应用层 应用协议数据单元 是用户与网络交互的界面 用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP
表示层 表示协议数据单元 定义标准数据结构、标准编码形式,并提供数据压缩、加密、解密等 -
会话层 会话协议数据单元 利用传输的端到端服务,为不同主机间进程提供会话,并通过设置校验点等方式实现数据同步 -
传输层 报文段(TCP)或用户数据报(UDP) 实现端到端连接,并为端到端连接提供差错控制、流量控制、服务质量、数据传输管理 面向连接
网络层 数据报 路由选择、差错控制、流量控制、拥塞控制、网际互连 数据报和虚电路
数据链路层 组装成帧、物理寻址、差错控制、流量控制、介质访问控制 PPP、HDLC等
物理层 比特 通过物理媒介传输比特流,确定机械及电气规范 -

OSI在网络层支持无连接(数据报)和面向连接(虚电路)两种方式,而在传输层只有面向连接一种方式;TCP/IP模型认为可靠性是传输层的任务,其在网络层只有无连接的方式(IP协议),而在传输层有面向连接(TCP)和无连接(UDP)两种方式。

实际上的国际标准:TCP/IP体系结构

分层 功能 协议栈
应用层 - -
传输层 - TCP、UDP
网际层 - IP协议
网络接口层 表示与物理网络的接口,类似于OSI模型中的物理层加数据链路层 多个网络接口

综合两种体系结构,计算机网络学习采用如下结构进行:

分层 协议
应用层 DNS、FTP、电子邮件协议、WWW、HTTP
传输层 TCP、UDP
网络层 IPv4、IPv6、ARP、DHCP、ICMP、RIP、OSPF、BGP
数据链路层 MAC、PPP、HDLC
物理层

第二章 物理层

2.1 基本概念

数据/信号

​ 连续的数据/信号称为模拟数据/模拟信号

​ 离散的数据/信号称为数字数据/数字信号

码元

码元是指用一个固定时长的信号波形表示一位k进制数字,代表不同离散数值的基本波形。1码元可以携带若干比特的信息量。

k取决于码元有几种,例如,某规则中有16种码元,则一个码元表示一个16进制数字,携带4比特的信息量

信源、信道与信宿

信源指发送数据的源头,信宿是接收数据的终点

信道是信号的传输媒介,信道是一个逻辑概念,一条通信线路(物理)往往包含一条发送信道和一条接收信道(逻辑)

对于下面三种信息交互方式,需要的信道数量不同:

  1. 单向通信:只能单向发送信息,只需要一条信道
  2. 半双工通信:可以双向发送但不能同时,需要两条信道
  3. 全双工通信:可以双向同时发送信息,需要两条信道

速率、波特与带宽

速率指数据传输速率(发送速率)

  1. 用码元表示,即为波特率,表示单位时间内发送的码元数量,单位是波特(Baud)
  2. 用比特来表示,即位带宽,表示单位时间内发送的比特数量,单位是比特/秒(b/s)

若一个码元携带n比特的信息,则 带宽 = 波特率 × n

2.2 奈奎斯特定理与香农定理

奈奎斯特定理(W:带宽,V:一个码元携带的信息量,即离散电平数量)

理想低通信道的极限数据传输速率 = 2Wlog2V

香农定理(W:带宽)

存在噪声的信道极限数据传输速率 = Wlog2(1 + S/N)

信噪比 = 10log10(S/N)

2.3 编码与调制

把数据变为数字信号:编码

把数据变为模拟信号:调制

将数字数据编码为数字信号:见下

将数字数据调制为模拟信号:略

将模拟数据编码为数字信号:略

将模拟数据调制为模拟信号:略

将数字数据编码为数字信号的方式:

  1. 归零编码:每个时钟周期的前半段代表高低电平,后半段跳回低电平用于调整时钟
  2. 非归零编码:整个周期都用来传输数据,不能传递时钟信号
  3. 反向非归零编码:信号翻转代表0,不变代表1,可以传递时钟信号
  4. 曼彻斯特编码:每个时钟周期的中间都发生一次跳变,下降跳变代表1,上升跳变代表0,既可以表示信息又可以传递时钟
  5. 差分曼彻斯特编码:某个码元的前半段与上一个码元的后半段,相同为1,不同为0
  6. 4B/5B编码

2.4 物理层设备

中继器

集线器(Hub)

中继器和集线器的作用都是放大信号,不具备改变信号传输方向的作用,集线器是多接口的中继器

第三章 数据链路层

功能:将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

为网络层提供的服务

①无确认的无连接服务;无需建立连接,无需发回确认,快但不安全;适用于实时通信或误码率较低的通信信道,如以太网。

②有确认的无连接服务;无需建立连接,但需要发回确认,提高了可靠性;适用于误码率较高的信道,如无线通信。

③有确认的面向连接服务;帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路;需要给出确认,可靠性最高,适用于通信要求(可靠性、实时性)较高的场合。

有连接就必须有确认

3.1 封装成帧

数据链路层为数据分组添加帧头和帧尾成为帧。组帧的意义是为了在出错时只需要重传出错的帧,而不需要重传全部数据,从而提高效率。

帧定界:首部和尾部包含许多控制信息,他们的作用是确定帧的界限,即帧定界

帧同步:指接收方能从接收到的二进制比特流中区分出帧的起始和终止

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

3.2 透明传输

透明传输即任何比特组合都可以在链路上传输,即可以区分数据部分中与帧头帧尾相同的比特组合。

字符计数法

在帧头部使用一个计数字段标明帧的长度(包括计数字段)。

如:5 1 2 3 4 3 1 2 4 1 2 3

字符填充的首尾定界符法

使用特定字符作为帧的开始(SOH)和结束(EOT)。

当数据部分出现SOH或EOT时,在前面加上转义字符EOF作为区分。

需要注意的是,SOH、EOT、ESC都是一段二进制数,只是用这种方式描述,他们并不是三个字母。

如:SOH和EOT都是01111110,ESC是11100000,A是01000111,则要传输SOH A ESC,比特流应为:

SOH ESC SOH A ESC ESC EOT

01111110 11100000 01111110 01000111 11100000 11100000 01111110

零比特填充的首尾标志法

帧头帧尾确定为01111110,为了区分数据部分的相同字段,发送端在数据部分每遇到5个连续的1就在其后加一个0,接收端每遇到5个1就去掉后面的0.

违规编码法

使用编码规定中的冗余编码方式来区分,如曼彻斯特编码中只用到了高-低和低-高两种,则高-高和低-低可以用来作为帧头和帧尾。

但它只适用于采用冗余编码的特殊编码环境。

3.3 差错控制

一般来说,数据传输差错是由噪声引起的。通信信道的噪声可以分为热噪声和冲击造成。热噪声是信道固有的,引起随机差错,可以通过提高信道的信噪比来降低它的影响。而冲击噪声是由外界电磁干扰引起的,引起的是突发差错,它是引起传输差错的主要原因,无法通过提高信噪比来避免。

检错编码
奇偶校验码

发送方和接收方商定采用奇校验还是偶校验,例如采用奇校验,发送方在发送之前计算数据中1的数量,将其补成奇数个发出。接收方同样计算1的数量,如果同样为奇数,认为没有发生错误。

这种校验方式只能判断奇数个位出现差错的情况,不能判断偶数个位出现差错的情况,也不能知道是哪些位错了。

循环冗余码(CRC)

发送方和接收方商定一个多项式。发送方在发送之前根据该多项式计算出余数(校验码)并补在数据末尾,接收方根据接收到的数据对多项式取余,如果余数为0,认为没有发生错误。

CRC其实是有纠错功能的,只是数据链路层只用到了它的纠错功能,遇到错误帧直接丢弃。

纠错编码
海明码

海明码相当于分组进行的奇偶校验。

· 海明码只能检测出2位错,纠1位错。

· 海明码默认进行偶校验(除非特殊说明使用奇校验)。

发送方:

  1. 计算校验位位数k

需满足k+n≤2k-1

  1. 2i的位置放校验码
  2. 数据分组(**1在一组,*1*在2组,1**在3组)
  3. 将每一组中1的数量凑成偶数

接收方:

检错:检查每一组1的数量是否都为偶数

纠错:如果出现错误,即为P3P2P1位置,取反即可

海明码检错d位,可以采用海明距为d+1的编码方案,纠错d位,需要采用海明距为2d+1的编码方案

3.4 流量控制

停止-等待协议:发送窗口大小=1,接收窗口大小=1

后退N帧协议:发送窗口大小>1,接收窗口大小=1

选择重传协议:发送窗口大小>1,接收窗口大小>1

接收窗口大小为1,可以保证帧的有序接收

滑动窗口机制

发送端维持一组发送窗口,每接收到一个ACK,发送窗口向前滑动一格。

自动重传请求ARQ

单帧滑动窗口与停止-等待协议

发送方每发送一帧,都要等待接收方的应答信号才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可以接收下一帧。

多帧滑动窗口与后退N帧协议(GBN)

发送方可以一次发送多个帧,而接收窗口大小为1,接收方必须按顺序接收帧并发送确认,发送方收到某一个帧的确认信息,表示这个帧以及它前面的所有帧都发送成功。

若采用n比特对帧编号,发送窗口的大小必须满足1 <= Wt <= 2^n-1,否则会导致接收方无法分辨新帧和旧帧。

后退N帧协议一方面因为连续发送数据帧而提高了信道利用率,另一方面在重传时有可能需要重传发送正确的帧,又降低了传送效率,因此若信道质量很差导致误码率很大时,后退N帧协议不一定优于停止等待协议。

选择重传协议(SR)

条件:接收窗口Wr+发送窗口Wt<=2n

信道利用率

发送方从开始发送数据到收到第一个确认帧为止,称为一个发送周期,设为T,发送方在这个周期内共发送L比特的数据,发送方的数据传输速率为C,则发送方用于发送有效数据的时间为L/C,信道利用率为(L/C)/T

信道吞吐率:信道利用率x发送方的发送速率

3.5 介质访问控制

目的:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。

用来决定广播信道中信道分配的协议属于数据链路层的一个子层,成为介质访问控制(MAC)子层。

访问控制方式主要有信道划分介质访问控制、随机访问介质访问控和轮询访问介质访问控制。信道划分介质访问控制是静态划分信道的方法,不会发生碰撞;第二种是动态分配信道的方法,有可能会发生碰撞;第三种适用令牌控制访问,由于令牌只有一个,因此不会发生碰撞。

信道划分介质访问控制

多路复用技术:当传输介质的带宽超过传输单个信号所需的带宽时,可以通过在一条介质上同时携带多个传输信号的方法来提高传输系统的利用率。

频分多路复用(FDM)

将物理信道的总带宽划分为多个子带宽。

优点:充分利用了传输介质的带宽,系统效率较高。

时分多路复用(TDM)

将一条物理信道按时间分成若干时间片,轮流分配给多个信号使用,每个时间片由复用的一个信号占用。

统计时分多路复用(STDM)是TDM的一种改进,它采用STDM帧,STDM帧并不固定分配时隙,而按需动态分配时隙,当终端有数据要传送时,才会分配到时间片,从而提高了线路利用率。

波分多路复用(WDM)

波分多路复用即光的频分多路复用。

码分多路复用(CDM)

采用不同的编码区分各路原始信号的一种复用方式,既共享信道频率,又共享时间。

码分多址CDMA:每个比特时间再划分为m个短的时间槽,成为码片。

当发送比特1时,发送码片序列;当发送比特0时,发送码片序列的反码。

要求两个发送站点的码片序列相互正交,且内积为0.

当收到序列后,根据2或-2来确定两个发送站发送的原始序列,一个码片或反码片代表一个比特。

随机访问介质访问控制

所有用户根据自己的意愿随机发送信息,当在总线型信道中发送帧的冲突时,所有冲突用户均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复重传它的协议。

ALOHA协议
  1. 纯ALOHA协议

发送时不需要进行检测,当发送帧后在一段时间内没有收到确认,就认为该帧发生了冲突,需要等待一段时间后重传。

  1. 时隙ALOHA协议

将站点时间同步,并将时间划分为一段段等长的时隙,规定只能在每个时隙开始时才能发送帧,避免了用户发送数据的随意性,减少了数据产生冲突的可能,提高了信道利用率。

CSMA协议
  1. 1-坚持CSMA协议

发送前先侦听信道,如果信道忙,继续坚持侦听,直到侦听到空闲。

  1. 非坚持CSMA协议

发送前先侦听信道,如果信道忙,放弃侦听,等待一个随机时间再开始侦听。

  1. p-坚持CSMA协议

用于时分信道。

发送前先侦听信道,如果信道忙,继续坚持侦听,直到侦听到空闲;如果信道空闲,以概率p发送数据,以概率1-p推迟到下一个时隙。

CSMA/CD协议

适用于总线型网络或半双工网络环境,目前应用于有限局域网。CSMA/CD协议包括载波侦听和碰撞检测。

载波侦听:发送前先侦听信道,如果信道忙,则暂时先不发送数据;等待信道空闲再发送。

碰撞检测:边发送边侦听,如果一直没有检测到碰撞,则顺利地将这个帧发送完;如果检测到碰撞,中止发送,并发送一个拥塞信号。中止发送后,适配器执行一个退避算法,等待一段随机的时间后继续边发送边侦听。

争用期:以太网端到端的往返时间

最小帧长=总线传播时延x数据发送速率x2

二进制指数退避算法:

  1. 确定基本退避时间为一个争用期2t
  2. 定义参数k=min[k, 10]
  3. 从离散的整数集合[0, 1, ……, 2k-1]中随机取出一个数r,重传所需的退避时间即为2rt
  4. 当重传次数达16次仍不成功,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告
CSMA/CA协议

CSMA/CD主要应用于有线局域网,而CSMA/CA主要应用于无线局域网。

CSMA/CA将碰撞检测修改为了碰撞避免。因为无线信道的通信质量不如有限信道,需要适用链路层的ARQ协议。为了尽量避免碰撞,所有的站发送完后必须等一段时间才能继续发送下一帧。

  1. 若站点最初有数据要发送,且检测到信道空闲,在等到时间DIFS后,发送整个数据帧
  2. 否则,站点执行CSMA/CA退避算法,选取一个随机回退值,一旦检测到信道忙,退避计时器就保持不变;只要信道空闲,退避计时器就进行倒计时
  3. 当退避计数器减到0时,这时信道只可能是空闲的,站点发送整个帧并等待确认
  4. 发送站若收到确认ACK,就知道已发送的帧被目的站正确接收,这时若要发送第二帧,就从步骤2开始
  5. 若发送站在规定时间内没有收到确认帧ACK,就重传该帧,再次使用CSMA/CA协议争用该信道,直到收到确认,或经过若干次重传后放弃发送。

隐蔽站问题:

发送站A和B距离太远,彼此听不见对方,当A和B检测到信道空闲时,都向C发送数据导致产生碰撞。

解决方案:对信道进行预约

预约RTS控制帧,同意预约CTS控制帧。

CSDA/CD与CSDA/CA的区别:

  1. CSDA/CD是碰撞检测,CSDA/CA不能检测,只能尽量避免。
  2. CSDA/CD用于总线型以太网,CSDA/CA用于无线局域网802.11
  3. 检测方式不同,CSDA/CD是通过电压检测,CSDA/CA是通过能量检测
轮询访问介质访问控制:令牌传递协议

在轮询访问中,用户不能随意地发送信息,而是通过一个集中控制的监控站,以循环的方式轮询每个结点,再决定信道分配,即拿到令牌后才能使用信道,由于令牌只有一个,因此不会发生冲突。

轮询介质访问控制非常适合负载很高的广播信道,因为负载高的信道使用随机介质访问控制的话产生冲突的概率会很高。

3.6 局域网

局域网LAN

拓扑结构:星形结构、环形结构、总线形结构、星形和总线形结合的复合型结构

传输介质:双绞线、铜缆、光纤

介质访问控制方式:CSDA/CD、令牌总线和令牌环

三种特殊的局域网拓扑实现:以太网、令牌环、FDDI

以太网:逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构

考虑到局域网信道质量好,以太网的MAC协议采用的是无连接的不可靠服务

局域网仅工作在物理层和数据链路层,因此以太网参考模型一般只包括物理层和数据链路层

以太网的MAC帧:

8字节前导码:使接收端和发送端时钟同步,可再分为两个字段:第一个字段共7字节,是前同步码;第二个字段是帧开始定界符。

6字节目的地址

6字节源地址

类型:2字节,指出数据域中携带的数据应交给哪个协议实体来处理

数据:46~1500字节

填充:当数据量太少,帧长太短时使用,大小为0~46字节,负责将帧填充为最小64字节

FCS:4字节,CRC产生的校验码

高速以太网:

  1. 100BASE-T以太网

允许在100Mb/s下用全双工或半双工两种方式工作。在半双工下使用CSDA/CD协议检测冲突,在全双工下保证无冲突。

  1. 吉比特以太网

即Gbit以太网,又称千兆以太网,允许在1Gb/s下用全双工或半双工两种方式工作。在半双工下使用CSDA/CD协议检测冲突,在全双工下保证无冲突。

  1. 10吉比特以太网

3.7 广域网

广域网是大范围的网络,局域网是小范围的网络,二者之间并非包含关系。对互联网而言,广域网和局域网是平等的,它既能连接广域网也能连接局域网(通过路由器)。

而广域网内部是通过结点交换机连接的。

从层次上考虑,广域网的协议主要在网络层,而局域网的协议主要在数据链路层。

物理层、数据链路层、网络层

PPP协议:点对点

不可靠传输协议,没有确认机制,只支持全双工链路

首部:1字节F标志字段+1字节A地址字段+1字节C控制字段

信息部分:不超过1500B。因为PPP是点对点的,所以无须采用CSMA/CD协议,因此没有最短帧的限制

尾部:2字节帧检验序列FCS+1字节F标志字段

HDLC协议

可靠传输

不属于TCP/IP协议族

8位标志F 8位地址A 8位控制C 长度可变的信息info 16位帧检验序列FCS 8位标志F

两个F中间是透明传输区间

A C info三个区间是FCS的校验区间

PPP和HDLC的区别

PPP是面向字节的,HDLC是面向比特的

PPP比HDLC多一个2字节的协议字段,如果协议字段值位0x0021,表示信息字段是IP数据报

PPP协议是不可靠传输,HDLC是可靠传输

3.8 数据链路层设备

网桥

两个或多个以太网通过网桥连接后构成更大范围的以太网,原来的每个以太网称为网段。

网络1和网络2通过网桥相连后,网桥接收网络1发送的数据帧,检查数据帧中的地址,如果是网络2中的地址,就转发给网络2;如果是网络1中的地址,就将其丢弃,因为当源站和目的站处于同一个网段时,目的站不需要经过网桥,可以直接收到这个帧。

物理层设备集线器和放大器既不能隔离冲突域,也不能隔离广播域。数据链路层设备网桥和以太网交换机可以隔离冲突域,但不能隔离广播域。网络层设备路由器可以隔离广播域。

网桥的基本特点:

  1. 具备寻址和路径选择能力
  2. 从源网络接收帧,以目的网络的介质访问控制协议向目的网络转发该帧
  3. 网桥在不同类型或相同类型的LAN之间存储并转发帧,必要时还要进行链路层上的协议转换
  4. 对收到的帧不做任何修改或修改很少
  5. 可以执行帧翻译互联不同类型的局域网
  6. 具有足够大的缓冲空间,因为短时间内帧的到达速率可能高于转发速率
以太网交换机(局域网交换机)

网桥在一个时刻只能执行一个帧的转发操作,而以太网交换机相当于多个端口的网桥。

以太网交换机同样只能隔离冲突域,不能隔离广播域。但是利用以太网交换机还可以方便的实现虚拟局域网(VLAN),VLAN不但可以隔离冲突域,还可以隔离广播域。

原理:检测从以太端口传来的数据帧的源MAC地址和目的MAC地址,然后与系统内部的动态查找表进行比较,如果数据帧的源MAC地址不在查找表中,则将该地址加入查找表,并将数据帧发送给相应的目的端口。

对于普通的共享式以太网,N个用户共用W的带宽,每个用户占用的平均带宽只有W/N,而对于使用交换机的以太网,由于交换机有多个端口,每个用户仍然可以占用W的带宽。且整个交换机的总带宽会随着端口结点的增加而增加。

第四章 网络层

4.1 网络层功能

4.1.1 异构网络互联

中继系统

  • 物理层中继系统:中继器、集线器(Hub)
  • 数据链路层中继系统:网桥或交换机
  • 网络层中继系统:路由器
  • 网络层以上的中继系统:网关

物理层和数据链路层的中继系统本质上只是将一个网络扩大了,从网络层角度看,他们使用的仍然是一个网络。

TCP/IP协议在网络互联上采用的做法是在网络层采用标准化协议,但允许相互连接的网络是异构的。

(异构指的是物理层和数据链路层均不同)

注意,这是TCP/IP协议的要求,其实由路由器连接的多个局域网结构允许物理层、数据链路层、网络层协议都不同,但网络层以上的协议必须相同。路由器能够处理网络层协议不同的情况,通过特定的路由器将ipv4和ipv6相连就是例子。

4.1.2 路由与转发

路由器主要完成路由选择和分组转发两个功能。

路由选择

维护最优化的路由表

路由转发

生成最优化的转发表,并根据转发表将用户的IP数据报从合适的端口转发出去

4.1.3 拥塞控制

进入拥塞状态的标志:随着网络负载的增加,网络吞吐量反而下降。

4.2 路由算法

静态路由和动态路由

静态路由:由网络管理员手工配置的路由信息,当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工修改路由表中相关的静态路由信息。适用于简单的小心网络。

动态路由:根据一定的算法优化生成出来的,有助于流量控制,但算法复杂,会增加网络负担。

① 距离-向量路由算法

所有结点定期将它们的整个路由选择表传送给所有与之直接相邻的结点,路由选择表包含:

  1. 每条路径的目的地
  2. 路径的代价(距离)

所有结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:

  1. 被通告一条新的路由,此时本地系统加入这条新路由
  2. 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比距离更短,此时用该路由信息替换当前路由信息
RIP算法

使用跳数作为距离的度量

② 链路状态路由算法

要求每个结点都具有完全的网络拓扑信息。

  1. 主动测试所有邻接结点的状态
  2. 定期将链路状态传播给所有其他结点

即向系统中所有路由器发送本结点的相邻结点的信息

适用于大型的或路由信息变化聚敛的互联网环境

OSPF算法

层次路由

将整个互联网划分为多个较小的自治系统。

  1. 一个自治系统内部使用的路由选择协议成为内部网关协议(IGP),有RIP、OSPF等

  2. 自治系统之间所使用的路由选择协议称为外部网关协议(EGP),具体协议有BGP。

4.3 IPv4

4.3.1 IPv4分组

IPv4分组的格式

分为首部和数据部分。

首部有:固定部分为20B(五行),可选部分不确定;二者相加最多60B(十五行)。

固定部分有:

版本:4位,ipv4版本即为4

首部长度:4位,最大值为15,以32位(4B)为一个单位,因此首部最多60B.

区分服务

总长度:16位,最大总长度为216-1,但还要满足数据链路层的MTU限制

标识:16位,是一个计数器,每产生一个数据报就加一,但它并不是序号,因为IP是无连接服务

标志:3位,但只有后两位有意义。最低位是MF,中间是DF。MF=1表示后面还有分片,MF=0表示是最后一个分片。只有DF=0时才允许分片。

片偏移:13位,表示较长的分组分片后,某片在原分组中的位置。以8个字节为偏移单位,即每个分片的长度一定是8B(64位)的整数倍。

生存时间TTL:8位,数据报在网络中可以被转发的最大次数,防止数据报在网络中循环,每次转发前减一,若TTL为0,必须丢弃。

协议:8位,表示此分组携带的数据使用何种上层协议,TCP为6,UDP为17

首部校验和:16位,首部校验只校验分组的首部,不校验数据部分

源地址:32位,发送方IP地址

目的地址:32位,发送方IP地址

可选字段和填充

IP数据报分片

分片原因:数据链路层对IP数据报长度的限制(MTU)

当源主机需要分片时且标志位的DF位为0允许分片时,可以进行分片,每一个片都要复制原始数据报的标识号。

当目的主机收到来自同一发送主机的一批数据报时,通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片,并通过片偏移和标志位中的MF位将其组装起来。

网络层转发分组的流程
  1. 从数据报的首部提取目的主机的IP地址D,得出目的网络地址N
  2. 若网络N与此路由器直接相连,则把数据报直接交付给D**(直接交付)**
  3. 若路由表中有目的地址为D的特定主机路由(通常是为了控制或测试网络,或因为安全因素采用的),则把数据报传送给路由表中所指明的下一跳路由器,否则执行4
  4. 若路由表中有达到网络N的路由,则把数据报传送给路由表指明的下一跳路由器,否则执行5
  5. 若路由表中存在默认路由,传给默认路由,否则执行6
  6. 报告转发分组出错

4.3.2 IPv4与NAT

IP地址=网络号+主机号

IP地址分类

  • A类地址 = 8位网络号 + 24位主机号; 第一位默认为0
  • B类地址 = 16位网络号 + 16位主机号;前两位默认为10
  • C类地址 = 24位网络号 + 8位主机号; 前三位默认为110
  • D类地址 :多播地址
  • E类地址 :保留以后使用

除前几位固定位外其他网络号位全为0的网络号是不可指派的。

不能用于做主机的IP地址:

  • 主机号全为0表示网络本身
  • 主机号全为1表示本网络的广播地址
  • 32位全为0表示本网络上的本主机
  • 32位全为1表示整个TCP/IP网络的广播地址
  • 127.x.x.x保留为环回自检地址
网络类别 可用网络数 第一个可用网络号 最后一个可用网络号 可用主机数
A 28-1-2=27-2 0 126(127是保留的) 224-2
B 216-2-1=214-1 128.1 191.255 216-2
C 224-3-1=221-1 192.0.1 223.255.255 28-2

网络地址转换**(NAT)**,是通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。

优点:专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗;隐藏了内部网络结构,降低了内部网络受到攻击的风险。

划分出了部分IP地址为私有IP地址,只用于LAN,不用于WAN

IP分组在网络上转发的时候会更新MAC源地址/目的地址,因为MAC地址只在本地有意义;普通路由器不会更新IP源地址/目的地址,NAT路由器会更新IP源地址/目的地址

NAT规定的私有网段:

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

4.3.3 子网划分与CIDR

选择题中计算子网数量可以包括全0或全1的子网号,大题中用的时候不行

CIDR:网络前缀,将小型网络聚合为超网

4.3.4 ARP、DHCP、ICMP

1. ARP

地址解析协议,在ARP高速缓存中保存本局域网IP地址到MAC地址的映射表。

主机A欲向本局域网内主机B发送IP数据,先在ARP表中查询B的IP地址。如果有,查出其硬件地址,将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址;如果没有,使用MAC地址为ff-ff-ff-ff-ff-ff的MAC地址广播ARP请求分组,B收到该ARP请求后发送ARP响应,响应分组中包含B的IP地址与MAC地址的映射关系,A收到后将其添加进ARP表中。

ARP请求:广播发送

ARP响应:单播发送

2. DHCP

动态主机配置协议,是应用层协议,基于UDP

工作原理是客户/服务器方式,需要IP地址的主机在启动时向DHCP服务器发送发现报文,DHCP收到后分配IP地址,并回答此报文。

3. ICMP

网际控制报文协议

ICMP报文类型有两种:ICMP差错报告报文、ICMP询问报文

ICMP差错报告报文:

  1. 终点不可达报文,路由器或主机不能交付数据报
  2. 源点抑制,路由器或主机因为拥塞丢弃报文
  3. 时间超过,TTL超时
  4. 参数问题,首部字段值不正确
  5. 改变路由,路由器路由改变时发送该报文到主机,让主机更新路由表

ICMP询问报文:回送请求和回答报文、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文。

PING使用ICMP回送请求和回答报文。

4.4 IPv6

128位地址(16B)

没有首部校验和字段

IPv6的双冒号零压缩法

首部长度不可变

不允许分片,如果IPv6数据报太大,直接丢弃

4.5 路由协议

自治系统AS

内部网关协议IGP(RIP、OSPF)

外部网关协议EGP(BGP)

内部:RIP

路由信息协议。应用层协议,使用UDP传送数据。不一定是时间最短的,是具有最少路由器的。

距离向量算法

最多15跳,距离等于16表示网络不可达。因此RIP只适用于小型互联网。

默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息。

RIP中不支持子网掩码的RIP广播,因此RIP中每个网络的子网掩码必须相同。

优点:简单,开销小,收敛过程较快

缺点:限制了网络规模,网络出现故障时会出现慢收敛现象,俗称坏消息传的慢

内部:OSPF

开放最短路径优先协议,网络层协议,使用IP数据报传送。

向本自治系统中所有路由器发送信息,洪泛法。

每隔10秒与相邻路由器交换一次问候分组,当发现链路状态发生变化时,使用洪泛法向所有路由器更新信息。

  1. 问候分组:发现和维持链路可达性
  2. 数据库描述分组:向邻站发送自己的路由表摘要
  3. 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
  4. 链路状态更新分组:洪泛法对全网更新链路状态
  5. 链路状态确认分组:对链路更新分组的确认信息

外部:边界网关协议BGP

不同自治系统的路由器交换路由信息。

应用层协议,基于TCP。

每个自治系统选择一个BGP发言人,各自治系统的BGP发言人之间交换可达性信息。他们交换的可达性信息是要到达某个网络所有经过的一系列AS

BGP寻找的不是最佳路由,而是一条能够到达目的网络的比较好的路由。

RIP OSPF BGP
类型 AS内部协议 AS内部协议 AS外部协议
所在层 传输层 网络层 应用层
传递协议 UDP协议 IP协议 TCP协议
所用算法 距离-向量算法 链路状态算法 路径-向量算法
路径选择 跳数最少 代价最小 选择一条较好的路径
交换对象和内容 向相邻路由器交换当前本路由器知道的全部信息,即自己的全部路由表 向整个AS广播与本路由器相邻的所有路由器的链路状态 首次:整个路由表;非首次:有变化的部分
信息交换的触发条件 定时交换(每30秒) 当链路状态发生变化时向全网发送链路状态更新分组,每隔一段时间(如30分钟)更新一次自己的链路状态数据库
补充 存在慢收敛的问题,慢收敛会导致路由回路的问题 会给自治系统划分区域

4.6 IP组播

即源主机向多个目的主机发送IP数据报,只需要向其组播地址发送一次。

需要组播路由器才能实现。

组播地址是D类地址(1110XXXX.X.X.X)

组播数据报的首部协议字段值是2,组播数据报不提供可靠服务,不产生ICMP差错报告报文(因此若PING命令后键入组播地址,将用户不会收到响应)。

D类IP地址的后23位用于与MAC地址的映射(转换为16进制)。

ICMP:因特网组管理协议

4.7 移动IP

移动结点:IP地址固定,位置移动

本地代理(归属代理):移动结点在原LAN中的代理

外部代理(外埠代理):移动结点在新LAN中的代理

移动IP技术的接收IP数据报的流程:

  1. 如果在本地网中,按照正常的TCP/IP协议通信
  2. 如果漫游到外地网中,IP地址仍然固定。移动结点需要向本地代理注册一个转交地址
  3. 本地代理接收来自转交地址的注册后,会建立一条通向转交地址的隧道
  4. 当需要与移动结点通信时,IP数据报被转给本地代理,本地代理将截获的报文发给隧道
  5. 在转交地址处解除隧道封装,恢复原始的IP分组,最后送给移动结点

移动IP技术发送IP数据报的流程:

  1. 移动结点在外网通过外网的路由器或外部代理直接向通信对端发送IP数据报

4.8 网络层设备

路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接异构网络并完成路由转发。

当源主机要向目的主机发送数据报时,

  1. 检查源主机和目的主机是否连接在同一个网络上,如果是,直接交付而无须通过路由器
  2. 否则,路由器按照路由表指出的路由将数据转发给下一个路由器,即间接交付

路由器隔离了广播域

5 传输层

5.1 传输层提供的服务

端到端的连接

1 传输层的功能

  1. 为运行在不同主机上的进程提供逻辑通信(网络层提供主机之间的逻辑通信,所以,即使网络层协议不可靠,传输层同样能为应用程序提供可靠的服务)。传输层是面向通信部分的最高层,同时也是用户功能中的最低层。
  2. 复用和分用。复用是指发送方不同的应用进程都可以使用同一个传输层协议传送数据。分用是指接收方的传输层在剥去报文首部后能够把这些数据正确交付给目的应用进程。
  3. 对报文进行差错检测(网络层只对IP数据报的首部进行差错检测)
  4. 提供两种不同的传输协议(面向连接的TCP协议和无连接的UDP协议)

2 端口

端口是应用层与传输层之间的连接关系,各种应用进程通过端口将其数据向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。

数据链路层的SAP是MAC地址,网络层的SAP是IP地址,传输层的SAP是端口。

端口号

16bit长度

端口号只具有本地意义(即只表示本地计算机应用层中的各进程)

端口号的类别:

  1. 服务器端使用的端口号

    熟知端口号0—1023。IANA(互联网地址指派机构)将这些端口指派给了TCP/IP最重要的一些应用程序。

    登记端口号1024—49151。使用时需要在IANA登记。

  2. 客户端端口号。只在客户进程运行时才动态选择,又称为临时端口、短暂端口。通信结束后刚用过的客户端口号就不存在了,可以分配给其他客户进程使用。

套接字Socket(IP地址:端口号)

5.2 无连接的UDP

1 UDP数据报

① 优点
  1. 无须建立连接,节省时间
  2. 无须维护练级状态
  3. 分组首部开销小
  4. UDP没有拥塞控制,因此网络拥塞不会影响主机发送效率,应用层能更好地控制要发送的数据和发送时间
  5. UDP支持一对一、一对多、多对一、多对多的交互通信
② 常用于
  1. 需要节省开销的应用(DNS、SNMP)
  2. 需要尽量降低延迟但对可靠传输要求不高的(IP电话、实时视频会议、流媒体等多媒体应用)
③ 不可靠服务

UDP提供不可靠服务,维护可靠性的工作在应用层完成。

④ 对应用层数据的处理

UDP对应用层的报文不合并、不拆分,添加UDP首部后直接交付给网络层,因此应用层必须合理安排报文大小,过大的报文会导致在IP层分片,过小的报文会导致IP层首部相对长度过大,两者都会降低IP层效率。

⑤ UDP首部格式

总长度8B

16位源端口号:在需要对方回信时使用,不需要时全为0

16位目的端口号

长度:16位,包括首部和数据部分长度,最小值是8

校验和:16位校验整个UDP数据报。可选,当源主机不想计算校验和时全置为0

2 UDP校验

  1. 将全零放入UDP首部校验和字段,并添加12B的伪首部
  2. 如果数据部分的字节数量不是偶数,需要添加一字节的全零补成偶数
  3. 二进制反码运算求和
  4. 将结果再求反码得到校验和

伪首部不仅能够检查源端口号、目的端口号和UDP用户数据报的数据部分,还可以检查IP数据报的源IP地址和目的IP地址。

如果不使用校验和,校验和字段填充全0;如果计算出的校验和恰好为全0,则校验和字段填充全1.

目的主机进行UDP校验后如果发现有错误,可以直接丢弃,也可以交付给上层,但是需要附上错误报告,即告诉上层这是错误的数据报。

5.3 面向连接的TCP

5.3.1 TCP特点

TCP是在不可靠的IP层之上实现的可靠的数据传输协议,解决可靠、有序、无丢失和不重复的问题。

特点:

  1. 面向连接

  2. 面向字节

  3. 每条TCP连接只能有两个端点,是点对点的

  4. 可靠交付,保证无差错、不丢失、不重复且有序

  5. 全双工通信,允许通信双方的应用层在任何时候都能发送数据,为此TCP连接的两端都设有发送缓存和接收缓存

    发送缓存:发送应用程序传送给发送方TCP准备发送的数据;TCP已发送但还没有收到确认的数据。

    接收缓存:按序到达但尚未被应用程序读取的数据;不按序到达的数据。

TCP报文的长度由接收方给出的窗口值和当前网络的拥塞程度决定。

5.3.2 TCP报文段

  1. 源端口号和目的端口号:各2B

  2. 序号seq:4B,指本报文字段所发送的数据的第一个字节的序号

  3. 确认号ack:4B,指期望收到对方下一个报文段的第一个数据字节的序号(表明到ack-1为止的所有数据已成功接收)

  4. 数据偏移(首部长度):占4位,单位是4B(32位),此字段最大为15,说明TCP首部最长60B

  5. 紧要位URG:为1说明该报文紧急

  6. 确认位ACK:仅当ACK=1时确认号ack才有效,建立连接之后所有报文ACK位都为1

  7. 推送位PSH:PSH=1时,接收方收到报文就尽快向上推送,而不用等待缓冲区满

  8. 复位位RST:RST=1时表明连接出现严重差错,必须释放连接,重新建立运输连接

  9. 同步位SYN:SYN=1时说明是连接请求或连接接受报文

    SYN=1且ACK=0说明是连接请求报文

    SYN=1且ACK=1说明是连接接受报文

  10. 终止位FIN:FIN=1时表明报文段发送方的数据发送完毕,要求释放传输连接

  11. 窗口:2B,指出现在允许对方发送的数据量

  12. 校验和:2B,校验首部和数据两部分

  13. 紧急指针:URG=1时使用紧急指针指出紧急数据共有多少字节(紧急数据在数据部分的最前面)

  14. 选项:可选,TCP最初只规定了一个选项,即最大报文长度MSS

  15. 填充:将TCP报文填充为4B的整数倍

5.3.3 TCP连接管理

连接建立、数据传送、连接释放

客户、服务器

建立TCP连接-三次握手

​ 客户机开启,服务器开启,服务器进入LISTEN状态

  1. 客户机向服务器发送连接请求。SYN=1,ACK=0,seq=x(不能携带数据,但是要占一个序号x)

    发送后客户机进入SYN-SENT状态

  2. 服务器收到连接请求报文,进入SYN-RCVD状态,如同意连接,向客户机发挥确认,并为该TCP连接分配缓存和变量,SYN=1,ACK=1,seq=y,ack=x+1(不能携带数据,但是要占一个序号y)

  3. 客户机收到服务器的确认报文字段后,进入ESTABLISHED状态,还要向服务器给出确认,并为该TCP连接分配缓存和变量,SYN=0,ACK=1,seq=x+1,ack=y+1;这一条数据可以携带数据,此时需要消耗序号;也可以不携带数据,此时不需要消耗信号。

    服务器收到第三次握手后进入ESTABLISHED状态

注意:服务器资源在第二次握手时分配,客户机资源在第三次握手时分配,这使得服务器容易受泛洪攻击

释放TCP连接-四次挥手

客户机和服务器都可以提出连接释放

  1. 客户机打算关闭连接时,发送连接释放报文段,进入FIN-WAIT-1状态,并停止发送数据,主动关闭TCP连接。FIN=1,seq=u(不携带数据,消耗掉一个序号)
  2. 服务器收到连接释放报文,进入CLOSE-WAIT状态,发出确认报文,ack=u+1,seq=v
  3. 客户机收到连接释放的确认报文,进入FIN-WAIT-2状态。若服务器没有要向客户机发送的数据,就通知TCP释放连接,发出FIN=1的连接释放报文段,序号为w
  4. 客户机收到连接释放报文段后,进入TIME-WAIT状态,发出确认报文。ACK=1,ack=w+1。此时客户机的TCP连接还没有释放,等待2MSL(最长报文段寿命)后释放。

5.3.4 可靠传输

序号

TCP的序号是面向字节的,是针对数据部分而言的,与首部无关

确认

TCP的确认是面向数据报的

重传

  1. 超时重传

    根据测量的RTTs样本设置超时重传时间

    RTT加权计算算法(假设权值为α):

    新RTT=(1-α)×(旧RTT)+α×(新RTT样本)

  2. 冗余ACK重传

    收到3个确认号相同的ACK时重传确认号代表的报文

5.3.5 TCP流量控制

滑动窗口协议

动态调整发送窗口

发送窗口大小=min[拥塞窗口cwnd,接收窗口rwnd]

如果滑动窗口设置得太小,会导致产生过多的ACK(因为窗口比较大的时候可以累积确认)

如果滑动窗口设置得太大,会导致传送数据过多而使路由器变得拥挤,主机可能丢包

5.3.6 TCP拥塞控制

防止过多的数据注入网络,保证网络中的路由器或链路不过载。

接收端窗口通过TCP首部中的窗口字段通知发送方

cwnd大小变化:

  1. 慢开始:发送窗口大小从1开始
  2. 指数增长
  3. 到达ssthresh后开始拥塞避免,加法增大
  4. 出现网络拥塞或收到3个重复确认(快重传)后乘法减小,cwnd和ssthresh均更改为网络拥塞时cwnd的二分之一(快恢复)
  5. 继续拥塞避免,加法增大

6 应用层

6.1 应用层模型

客户机服务器模型

  1. 服务器处于接收请求状态
  2. 客户机向服务器发送请求,并等待接收结果
  3. 服务器收到请求后,分析请求,进行必要的处理,并将结果发送给客户机

特点:

  1. 客户机和服务器地位不平等
  2. 客户机之间不相互通信
  3. 可扩展性不佳,受服务器硬件和网络带宽的限制,服务器支持的客户机数量有限
  4. 服务器性能的好坏决定了整个系统的性能

P2P模型

P2P模型中的每台计算机既作为服务器向其他结点提供资源,也作为客户机访问其他结点的资源。

优点:

  1. 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点,因此提高了系统利用率和资源利用率
  2. 多个客户机之间可以直接共享文档
  3. 可扩展性好
  4. 网络健壮性强,一个结点失效不会影响其他结点工作

缺点:

  1. 结点既要作为客户机也要作为服务器,占用内存较大
  2. 占用互联网流量,容易造成网络拥塞

6.2 DNS域名系统

根域名服务器

顶级域名服务器

授权域名服务器

本地域名服务器

域名解析:

  1. 主机向本地域名服务器查询,如果有给出,如果没有,本地域名服务器向根域名服务器查询
  2. 根域名服务器如果有给出,如果没有,告诉本地域名服务器应当向哪一个顶级域名服务器查询
  3. 本地域名服务器向指定顶级域名服务器查询,如果有给出,如果没有,顶级域名服务器告诉本地域名服务器应当向哪一个权限域名服务器查询
  4. 权限域名服务器给出域名对应IP,如果没有,说明域名错误

www.cskaoyan.com

com是顶级域名。顶级域名包括.cn、.us、.uk等表示国家的域名,.com表示公司、.net表示网络服务机构,.gov表示政府等

cskaoyan是二级域名

www是三级域名

6.3 文件传输协议FTP

你可能感兴趣的:(保研复习笔记,网络,网络协议,学习)