计算机网络

计算机网络 谢希仁(第七版)

https://blog.csdn.net/weixin_42835409/article/details/107552585
找到一个可能会游泳的博客,记录一下。

文章目录

第一章 概述

1、三类网络

电信网络、有线电视网络、计算机网络

2、互联网定义相关

“网络的网络”,由若干结点和连接这些结点的链路构成网络,网络之间可以互相连接成为更大的网络。

互联网的两个基本特点:连通性、共享性

网络把许多计算机连接在一起,互联网把许多网络通过路由器连接在一起,与网络相连的计算机称为主机。计算机通过网络交换信息。

3、互联网发展的三个阶段

一、单个网络ARPANET向互联网发展

Internet是专有名词,是最大的、开放的、由众多网络互相连接而成的特定的互联网,采用TCP/IP协议的通信规则,前身是美国的ARPANET。

二、建成三级结构的互联网

三级网络分为:主干网、地区网、校园网(企业网)

三、形成多层次的ISP结构的互联网

ISP(Internet Service Provider):互联网服务提供商,如中国移动等。分为主干、地区和本地。

4、互联网的组成

互联网由边缘部分和核心部分组成:

边缘部分: 由所有连接在互联网上的主机组成,由用户直接使用
边缘部分中的主机也可以称为端系统,边缘部分利用核心部分提供的服务,实现主机之间的通信或信息共享。

主机之间的通信实际上是主机进程之间的通信

常见的边缘部分通信方式(2种):

1、客户—服务器方式(C/S):

客户:
通信过程中涉及的应用进程,是服务请求方
客户程序:通信时主动向服务器发起通信,客户程序必须知道服务器程序的地址。

服务器:
通信过程中涉及的应用进程,是服务提供方。
服务器程序:专门提供某种服务的程序,可以同时处理多个远地或本地客户请求。
专门提供某种服务的程序,可以同时处理多个远地或本地的客户请求。
系统启动后自动调用并一致运行,被动等待客户请求。

C发出请求到S,S获取到C的地址。

客户和服务器指的都是计算机进程(软件)。

2、对等连接方式(P2P):
本质上仍是客户—服务器方式,但对等连接中的的每一台主机既是客户又是服务器。

核心部分: 由大量网络和连接网络的路由器组成,为边缘部分提供服务
核心部分起到特殊作用的是路由器,是一种专用计算机,用于实现分组交换,实现转发收到的分组的任务。

交换:按照某种方式动态地分配传输线路的资源。

核心部分3种交换方式:

1、电路交换:
即当前电话通信的交换方式。从主叫端到被叫端建立起专用的物理通路。

建立连接 -> 通话 -> 释放连接

在通话时间内,通话的两个用户始终占用端到端的通信资源。
也就是说,只要在通话时间内,就不能有其它用户的数据进行传输,造成效率的低下。由于数据的突发式特点,电路交换并不适合计算机数据的传输。

2、分组交换:
报文: 要发送的整个数据块。
采用存储转发技术,把一个报文划分成更小的数据段并加上首部后形成一个分组(也叫,首部也可叫包头)。分组时是互联网中传输的数据单元。

首部数据首部数据

主机是为用户进行信息处理的,通过网络相互交换信息。路由器是用来转发分组的,即进行分组交换的。

路由器转发分组过程:
假如主机H1和H5之间有A、B、C、D、E五个路由器,H1可以通过链路L1:A->B->E到达H5,也可以通过链路L2:A->C->E到达。则当在L1链路上传输时,不占用L2的资源,若L1上信息量太大,则也可以占用L2进行传输。
路由转发过程

路由器转发分组的时候,是把分组先放入缓存,再查找转发表进行转发。放入缓存的是短分组,而且存储在路由器的内存而不是磁盘中,因此速度较快。

优点:高效(动态分配带宽)、灵活(为分组选择合适的转发路径)、迅速(分组交换,可不建立连接)、可靠(可靠的网络协议)

缺点:
1、分组在存储转发时,需要排队。
3、携带的控制信息造成一定开销。

报文交换:
同样也是存储转发,但是存储转发的是长报文而不是短分组。
主要是发送的数据段没有进行分割,而全部一起发送。

报文交换和分组交换不需要预先分配带宽,相比电路交换减少了建立连接和释放连接的时间,适用于突发数据的传送,提高网络的利用率。分组交换分割数据段,使资源得到更加充分的利用,使可以适当减小时延。

5、计算机网络性能

几个常用的性能:

1、速率:bit/s

8bit = 1byte

2、带宽:通道传送数据的能力(最高数据率)bit/s

3、吞吐量:单位时间通过某个网络的实际数据量。

4、时延:
(1)发送(传输)时延:主机或者路由器发送数据帧所需要的时间。

发送时延 = 数据帧长度(bit) / 发送速率(bit/s)

(2)传播时延:电磁波在信道中传播一定距离所需要的时间

传输时延 = 信道长度(m) / 发送速率(m/s)

(3)处理时延:主机或路由器处理所需要的时间。(路由器查找转发表之类)

(4)排队时延:在路由器中等待存储转发的时间之类。

6、计算机网络体系结构

网络协议:为进行网络中的数据交换而建立的规则、标准或约定。
协议:是控制两个对等实体(或多个实体)进行通信的规则的集合

三个要素:

1、语法:即数据与控制信息的结构或者格式;
2、语义:即需要放出何种控制信息,完成何种动作及做出何种响应;
3、同步:即事件实现顺序的详细说明。

计算机网络的各层及其协议的集合就是网络的体系结构。
计算机网络体系结构就是计算机网络及其构件所应完成的功能的精确定义。

五层协议的体系结构
应用层通过进程间的交互完成特定网络应用
运输层具有分用复用的功能,负责向两台主机进程之间的通信提供通用的数据传输服务
网络层将运输层产生的报文封装成分组(包/IP数据报)、选择合适的路由
数据链路层将网络层传下的IP数据报组装成帧,每一帧包括数据和必要的控制信息,进行差错检测和纠错
物理层传输比特流

协议数据单元(PDU):对等层次之间传送的协议数据单元。
对等层:任何两个同样层次的层次。
协议栈:几个层次画在一起像栈的结构。
实体:任何可发送或接收信息的硬件或软件进程。

在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。

协议的实现保证了能够向上一层提供的服务,使用本层服务的实体只能看见服务而无法看见下面的协议。下面的协议对上面的实体透明

协议是水平的,对等实体之间通信的规则。
服务是垂直的,由下层向上层通过层间接口实现。

服务访问点(SAP):在同一系统中相邻两层的实体进行交互(交换信息)的地方。

服务数据单元(SDU):层与层之间交换的数据单位。

第二章 物理层

1、基础概念:

物理层具有:机械、电气、功能、过程特性。

数据通信系统可以分为源系统(发送端、发送方)、传输系统(传输网络)、目的系统(接收端、接收方)

通信的目的是传送消息
数据是运送消息的实体。
信号是数据的电气或电磁表现。
码元代表不同离散数值的基本波形。

单工通信:只能有一个方向的通信。
半双工通信:通信双方都可以发送消息,但不能同时。
全双工通信:通信双方可以同时发送和接收信息。

基带信号:来自信源的信号。
基带调制(编码):变换后仍是基带信号。
带通信号:载波调制后的信号。(把基带的信号频率范围移到较高的频段)
带通调制:使用载波的调制。

区分波特比特的区别:
波特是单位时间内传输的码元数。
比特是单位时间内传输的比特数。
一个码元可以含有不止1bit的信息,通过调制可以含有个比特信息。
通常来讲,以下计算公式成立:

比 特 率 = 波 特 率 ∗ l o g 2 N ( N 是 一 个 码 元 含 有 的 比 特 信 息 ) 比特率 = 波特率*log_2N (N是一个码元含有的比特信息) =log2NN

(1)常用的编码方式:
常用编码方式

不归零制:正电平为1,负电平为0。
归零制:正脉冲为1,负脉冲为0。
曼彻斯特编码:位周期中心向上跳变表示0,向下表示1。(也就是两个时钟周期才能表示1bit的数据。(以太网的编码方式)
差分曼彻斯特编码:位边界跳变表示0,边界没有表示1。与前一位的后半位有关。每一位中心都有跳变。(局域网常用)

(2)基本的带通调制方法:

二元调制:调幅、调频、调相。
多元调制:正交振幅调制(QAM)

2、信道的极限容量:

取决于香农公式奈氏准则的计算。

奈氏准则:在任何信道中,码元的传输的速率是有上限的,传输速率超过上限,就可能出现严重的码间串扰的问题,使接收端码元的判决(识别)成为不可能。

香农公式
C = W log ⁡ 2 ( 1 + S / N ) . C = W\log_2 (1+S/N). C=Wlog2(1+S/N).
S/N:信噪比(dB),信号的平均功率与噪声功率之比。

信 噪 比 ( d B ) = 10 lg ⁡ ( S / N ) ( d B ) 信噪比(dB)=10\lg(S/N)(dB) dB=10lg(S/N)(dB)
W是信道的带宽(Hz),S是信道所传信号的平均功率,N是信道内高斯噪声功率。信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。

若带宽已经确定,信噪比也不能再提升,码元传输速率达到上限。我们可以通过让码元携带更多信息提高速率。

通过调制提高传输速率理解
假如,原来一个电信号(0)表示一个码元,现在三个电信号(000)表示一个码元。
通过调频,原来一个时钟只能传输含有一个电信号(0)的码元,现在可以传输一个含有三个电信号(0)的码元。
原来传输000需要三个时钟,现在只需要一个时钟,速度加快了三倍。

3、物理层下的传输媒体:

导引型:
1、双绞线:
屏蔽双绞线STP、无屏蔽双绞线UTP
2、同轴电缆
3、光缆

非引导型:
传统的微波通信方式:地面接力微波通信卫星通信

4、信道复用技术

复用:相当于是把几个不同的信道整合到一个信道上一起传输。
频分复用(FDM):所有用户在同样的时间占用不同的带宽资源
时分复用(TDM):所有用户在不同的时间占用相同的带宽资源。(也叫同步时分复用
统计时分复用(STDM):改进的时分复用技术,不是固定分配时隙,动态分配。(也叫异步时分复用
波分复用(WDM):光的频分复用。

码分多址(CDMA)

码分复用(CDM):各客户使用经过特殊挑选不同码型,各用户之间不会造成干扰。
每一个比特时间划分为m个短的间隔,成为码片。(m通常为64或128)
使用CDMA的每一个站被指派唯一的 m bit 码片序列,如果一个站发送1,就发送自己的m bit 码片序列;若发送0则发送码片的反码。0写为-1,1写为+1。CDMA系统分配给每一个站的序列不能相同,而且必须正交

第三章 数据链路层

数据链路层使用的信道:点对点信道、广播信道。

1、使用点对点信道数据链路层

链路:一个结点到另一个相邻结点的一段物理链路。

数据链路:一条物理线路 + 一些必要的通信协议(使用网络适配器实现

数据链路层依赖于物理层的功能实现。

点对点信道的数据链路层的协议数据单元是
网络层协议数据单元是IP数据报

三个基本问题

封装成帧、透明传输、差错检测

(1)封装成帧
一段数据的前后分别添加首部(SOH)和尾部(EOT)。

每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU

(2)透明传输
为了没有差错地在数据链路层发送信息。
也就是忽略掉数据中和帧定界符一样的数据,正常传输。

一种方法是:发送端在数据中的“SOH”和“EOT”前加转义字符“ESC”,接收端在把数据送往网络层前会把转义字符删掉。

(3)差错检测
广泛使用了CRC技术。

循环冗余检验CRC

传送一组数据有k比特,冗余码为n位。

**循环冗余码(帧检验序列FCS)**的确定:
A、B双方约定了一个P作为共同的除数,A->B传送数据M共(k+n)位,先左移n位,除以P,商是Q,余数是R。余数R作为冗余码,继续拼接在数据后面进行发送。(2^n*M+FCS)

接收方除以共同除数P,如果R=0,则接收,否则丢弃。

使用CRC技术,只能做到对帧的无差错接收,即:
凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。

2、点对点协议PPP

Point-to-Point Protocol
PPP协议是计算机和ISP进行通信时所使用的数据链路层协议。

PPP协议的组成:

(1)一个将IP数据报封装到串行链路的方法。 IP数据报就是PPP帧的数据信息部分,受到最大传送单元MTU的限制。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP
(3)一套网络控制协议NCP,每一个协议支持一个不同的网络层。

PPP帧的组成:
FAC协议IP数据报(信息字段)FCSF
1字节(7E)1字节(FF)1字节(03)2字节不超过1500字节2字节1字节(7E)

当信息字段出现标志字段一样的比特组合时,需要采取措施使信息字段区别于标志字段。比如加转义字符(字节填充),PPP协议采用零比特填充方法(扫描整个字段,出现5个连续的1就加一个0)

可以再琢磨琢磨PPP协议的工作状态?

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

例如:局域网。

局域网:网络为一个单位所有,且地理范围和站点数目均有限。

共享信道的两种方式:
(1)静态划分信道:频分复用、时分复用、码分复用等
(2)动态媒体接入控制(多点接入):
随机接入:所有用户随机发送信息,如果两个或以上用户在同一时刻发送信息,共享媒体上可能要发生碰撞。要存在解决碰撞的协议。
受控接入:轮询方式,用户不能随机发送,而必须服从一定的控制。

以太网的两个标准:
DIX Ethernet V2,世界上第一个局域网产品的规约。
IEEE 802.3 第一个IEEE的以太网标准。

局域网的数据链路层被分为两层:逻辑链路控制LLC和媒体接入控制MAC。不管采用何种传输媒体和MAC子层的局域网来说,对LLC子层都是透明的。也就是说,传输媒体只与MAC子层相关
数据链路层的拆分

适配器的作用

计算机与外界局域网的连接是通过适配器进行的。
之前是通过接口板(网卡、网络接口卡NIC)来体现,现在不再设置单独的网卡。实现功能贯穿数据链路层和物理层。

(1)进行数据串行传输和并行传输的交换。因为网络上的传输率和计算机总线上的传输率不同,所以需要适配器具有缓存功能(有存储芯片)
(2)实现以太网协议

适配器收到错误的帧直接丢弃,收到正确的帧使用中断直接通知计算机,并交付给协议栈中的网络层。

CSMA/CD协议

以太网采用的两种措施:
(1)灵活的无连接方式:不编号,不要求对方发回确认,进最大努力进行交付,即不可靠交付。对差错帧进行舍弃,是否进行重传,由高层决定。重传帧要当作新的数据帧进行重传
总线在同一时间只能允许一台计算机发送数据,采用CSMA/CD。
(2)以太网发送的数据都使用曼彻斯特编码的信号。

要点:
多点接入:说明是总线型网络,计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”。
载波监听:采用电子技术检测总线上有没有其它计算机也在发送,不管什么时间,每个站都要不停检测。
碰撞检测:也就是边发送边监听,判断自己在发送的同时,是否也在发送数据。也即是信号电压超过一定阈值时,认为至少有两个站在同时发送数据,表明此时产生了碰撞。若碰撞产生,适配器就要立即停止发送。

单程传播时延记 τ,也就是某一端最迟经历2τ的时间能够检测到碰撞的发生。

在CSMA/CD协议使用过程中,一个站不可能同时发送和接收,也就是无法进行全双工通信,而是进行双向交替通信。

退避算法

退避算法:
(1)规定基本退避时间是为争用期2τ,具体争用时间是51.2μs,对于10Mbit/s的以太网,可以使用512bit作为争用期。
(2)从0~( 2 k − 1 2^k-1 2k1)选择一个随机数r,使r倍的争用期是重传后退推后的时间。

k = M I N ( 重 传 次 数 , 10 ) k=MIN(重传次数,10) k=MIN(10) 也就是重传次数<=10是,k为重传次数。

(3)重传达到16次仍不能成功时,丢弃该帧,并向上层报告。
例如:k=2,r∈{0,1,2,3},推迟时间为0,2τ,4τ,6τ

长度小于64字节的帧都属于无效帧,若帧小于64字节,则应进行字节填充。

强化碰撞:
当检测到碰撞以后,还要再继续发送32/48bit的人为干扰信号。
帧间最小间隔:
使刚收到的数据帧的站接收缓存来得及清理,做好接收下一帧的准备。

CSMA/CD协议归纳

(1)准备发送:适配器获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。发送之前,要先检测信道
(2)检测信道:若检测到信道忙,则不停检测,等待信道转换为空闲。若检测到空闲,并在96bit时间内信道保持空闲,就发送。
(3)发送过程中仍要不停检测信道,即边监听边发送。
①发送成功:争用期内未检测到碰撞,则一定能成功。
②发送失败:争用期内检测到碰撞。立即停止发送数据,按照规定发送人为干扰,使用退避算法等待r倍512bit的时间后,返回(2)。若重传达到16次仍不成功,则停止重传并报错。

以太网的信道利用率

定义a: a = τ T 0 a=\frac \tau T_0 a=Tτ0
信道极限利用率为: S m a x = T 0 T 0 + τ = 1 1 + a S_{max}=\frac {T_0} {T_0+\tau}=\frac 1 {1+a} Smax=T0+τT0=1+a1
只有当a远小于1时,才能尽可能提高信道的利用率。

4、MAC层

MAC地址硬件地址

Q1:怎么理解MAC地址?
MAC地址可以理解是网卡的编号,一个网卡只有唯一的一个MAC地址。

Q2:怎么理解网卡?
网卡可以理解为任何设备进入网络的钥匙,具有唯一性。一个设备可以具有不只一个网卡。

Q3:手机可以通过运营商或WIFI上网,那么它有几个网卡?
根据使用协议的不同,具体问题具体分析。运营商网络和WIFI使用不同协议。

Q4:MAC地址可以修改怎么避免冲突?
MAC地址一般存放在EPROM/EEPROM里,可以修改。但有很小的机率使得 2 48 2^{48} 248个不同地址中的一个以上在同一个局域网内。只要任意两个相同地址不在同一个网关(局域网)内,就不会造成冲突。

MAC帧格式

以太网V2:

前同步码帧开始定界符目的地址源地址类型数据(IP数据报)FCS
7字节1字节6字节6字节2字节46~1500字节4字节

MAC帧在MAC层(数据链路层分为LLC层和MAC层)流动。
前同步码是为了使适配器接收MAC帧的时候能够迅速调整时钟频率,实现位同步。
帧开始定界符:10101011,前六位作用是同步,后两个11代表帧开始。
FCS是帧检验序列,使用CRC检验。

有效帧:
1、MAC帧的有效长度是64~1518字节。
2、FCS检验无差错。
3、帧的长度是整数字节。

IEEE802.3 见课本 P97。

5、以太网的扩展

(1)在物理层扩展以太网
使用集线器,连接成多级星形结构来扩展。
优点:
①使不同系之间,可以相互通信。
②扩大以太网的地理位置范围。
缺点:
①原有的每一个系,叫做一个碰撞域(冲突域),一个冲突域内只能由一个站发送信息。当原有的n个系合并成一个域,吞吐量仍是原来一个系的吞吐量,不会发生变化。
②如果不同的碰撞域使用不同的以太网技术,则无法合成一个碰撞域。

(2)在数据链路层进行扩展
使用以太网交换机,实质上就是一个多接口网桥。对收到的MAC帧进行转发和过滤,并不是向所有的接口转发,而是向目的帧转发。是全双工工作方式且具有并行性。

相当于是每个接口都是一个独立的碰撞域,将碰撞域减小从而提升吞吐量。
例如:10个接口, 吞 吐 量 = ∑ 1 ≤ j ≤ 10 i n t e r f a c e j 吞吐量= \sum_ {1\le j\le 10} interface_{j} =1j10interfacej

交换机的自学习:
①初始:交换表为空。
A——接口1
B——接口2
C——接口3
D——接口4
此时,A从接口1发送帧进入交换机要到B,交换机记录下MAC地址为A的接口是1,此时交换表为空,则向所有接口广播此帧,接口3、4拒绝了此帧,2接收,则交换机记录下MAC地址为B的接口是2。类推。

可能会产生环路问题,使用生成树协议STP解决这个问题。

(3)虚拟局域网
虚拟局域网是提供给用户的一种服务,是在以太网的帧格式中插入4个字节的标识符(VLAN标记),来标识发送该帧的工作站属于哪个局域网。
同一VLAN 不同网段:需要判断两个IP是否落在对方网段,如果是,及时是不同网段也能进行通信;如果不是那就无法通信。

第四章 网络层

1、网络层提供的两种服务:

网络层提供的两种服务分别是:虚电路服务和IP数据报服务

虚电路服务:面向连接的服务,在通信前,建立一条虚电路VC,分配通信所需要的资源,在通信过程中,只需要在在分组首部填入虚电路编号,减小了分组的开销。

IP数据报(分组):**网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。**事前可以不先建立连接,每个分组独立无关,网络层不提供服务质量的保证,主机之间的通信可靠性主要依托于运输层。

对比内容虚电路服务数据报服务
思路可靠通信由网络负责可靠通信由用户主机保证
连接的建立必须有不需要
终点地址仅连接的时候使用,分组使用虚电路编号每个分组都有终点的地址号
分组的转发属于同一虚电路的分组按照同一路由的进行转发每个分组独立选择路由进行转发
结点出故障所有通过出故障的结点的虚电路均不能工作出故障可能会丢失分组,一些路由可能发生变化
分组的顺序总是按照发送顺序到达终点到达终点的时间不一定发生按发送顺序
端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责

2、网际协议IP

当前普遍使用的是IPv4。

相关概念:

(1)物理层中间设备:转发器。
(2)数据链路层中间设备:**网桥。**同一个网桥互连的网段仍是一个网络号。
(3)网络层中间设备:**路由器。**每一个接口处有一个网络号。
(4)网络层以上网关

网络互连:指的是路由器进行网络互联和路由选择。(某些时候会把路由器称作网关。

IP协议的作用:使各个不同网络中的主机处在虚拟互连网络中,物理网络具有异构性,使用IP协议将性能各异的网络在网络层上表现为同一种网络,这样的虚拟网络称为虚拟互连网络。

IP分类

三个阶段:
(1)分类的IP地址。
(2)子网的划分。
(3)构成超网。

(一)分类的IP地址

分类的IP地址由两个固定长度字段组成,第一个字段是网络号,网络号在整个互联网范围内唯一,第二个字段是主机号,主机在指明的网络号里面唯一。

地址类型网络号主机号十进制
A类地址0xxxxxx(8位)24位1~126
B类地址10xxxxxxxxxxxxx(16位)16位128~191
C类地址110xxxxxxxxxxxxxxxxxxxxx(24位)8位192~223
D类地址1110多播地址
E类地址1111保留使用

ATTENTION:
1、A类中全0网络号代表本网络,全1地址01111111代表环回测试
2、主机号全0代表本主机,全1表示所有主机。
故得到下表:

网络类别可指派的网络数第一个可指派的网络最后一个可指派的网络每个网络可指派主机数
A 2 7 − 2 2^7-2 272(减去全0、全1)1126 2 24 − 2 2^{24}-2 2242
B 2 14 2^{14} 214128.0191.255 2 16 − 2 2^{16}-2 2162
C 2 21 2^{21} 221192.0.0223.255.255 2 8 − 2 2^8-2 282

路由器总是连接两个及以上的IP地址,每个接口都有一个网络号。

IP地址和硬件地址的区别:
硬件地址是数据链路层和物理层用的地址,IP地址是网络层及以上各层使用的逻辑地址。

*IP地址和硬件地址的区别

地址解析ARP协议

IP地址--------ARP协议------->物理地址。
每个主机都有一个ARP高速缓存,用来存储各主机和路由器IP地址到硬件地址的映射表。

ARP高速缓存在同一个局域网内起作用,通信两端必然处于同一个网络。
路由表指明的是前往某个网络应该从哪里走。

当A->B发送一个IP数据报,ARP工作四种情况:
(1)发送方是主机,B主机与A主机位于同一个网络,则可以直接交付;
(2)发送方是主机,B主机与A主机位于不同网络,A发送ARP请求分组,在A存在的网络内进行广播,并将IP数据报交给路由器R1(也存在B刚入网,A的告诉缓存中没有B的IP地址,从而进行广播);
(3)发送方是路由器R,目的主机与R位于同一个网络,可直接交付;
(4)发送方是路由器R,目的主机与R不在同一个网络,则R发送ARP请求分组,在R存在的网络内进行广播,类推。

为什么要用ARP?
因为不同的网络使用不同的硬件地址,异构的网络相互转换连接非常复杂。转换为IP地址后,方便了网络之间的通信。

IP数据报格式注意:
(1)以太网规定的MTU=1500字节(最大传送单元Max Transfer Unit)
(2)除了最后一个数据报片,其他数据报片一定是8字节的倍数。因为片偏移是以8个字节为偏移单位。
(3)首部检验和:将所有首部,以16位为一个单位,全部进行反码算数运算(反码算数运算:当最高位产生进位,对求和结果+1)。

路由表:(目的网络,下一跳)

分组转发算法

(1)从首部得到目的网络的IP地址;
(2)如果目的地址是路由器直连的网络,则直接交付,否则间接交付,执行(3);
(3)如果路由表中目的地址是特定主机路由,则交付给特定主机路由,否则执行(4);
(4)如果路由表中有到达目的网络的路由,则交付给此路由,否则(5);
(5)若路由表中有一个默认路由,则交付给默认路由,否则(6);
(6)报告转发分组出错。

(二)划分子网

划分子网:就相当于把原来一个网络,划分成几个独立的小网络,彼此独立,但均属于某一个网络,也就是对外仍是一个网络,对内相互独立。

从IP数据报本身,我们无法得知划分出的子网号,应该转发至哪一个子网,利用子网掩码可以实现寻找目的子网的操作。

分组转发算法

(1)从首部得到目的网络的IP地址;
(2)先使用各个网络子网掩码与目的IP地址按位相与,如果目的地址是路由器直连的网络,则直接交付,否则间接交付,执行(3);
(3)如果路由表中目的地址是特定主机路由,则交付给特定主机路由,否则执行(4);
(4)使用各个网络子网掩码与目的IP地址按位相与,如果路由表中有到达目的网络的路由,则交付给此路由,否则(5);
(5)若路由表中有一个默认路由,则交付给默认路由,否则(6);
(6)报告转发分组出错。

(三)无分类编址CIDR(构造超网)

特点
(1)不再区分A、B、C类网络以及划分子网的概念。使用“斜线记法”,由网络前缀和主机部分组成。
(2)将网络前缀相同的IP地址连成“CIDR地址块”。

路由聚合

聚合条件:
(1)几个地址块具有相同的前缀;
(2)聚合后的地址包含聚合前几个地址块所有的IP地址。

聚合完成后的地址块属于一个表项。

最长前缀匹配

当一个IP地址与多个路由表项匹配时,选择具有最长网络前缀的表项进行匹配。

3、 网际控制报文协议ICMP

ICMP报文包含在IP数据报部分,允许主机或路由器报告差错情况和提供差错情况有关报告。

4、路由选择协议

路由器的任务是转发分组,分为两个结构,分别是路由选择和分组转发。

路由算法划分有两大类:静态路由选择和动态路由选择算法。

目前互联网主要采用的是:自适应(动态)的、分布式的路由选择算法。

将互联网划分为很多小的自治系统(Autonomous System AS),每一个AS使用单一技术进行管理的一组路由器,组内路由器使用一种自治系统的内部的路由选择协议和度量。一个AS对其它AS表现的是一个单一的和一致的路由选择协议。

目前互联网中路由选择协议分为两大类:
(1)内部网关协议(Interior Gateway Protocol IGP)(域内路由选择),即一个自治系统内部所使用的的路由选择协议,与其他自治系统无关,使用最多,如RIP协议、OSPF协议。
(2)外部网关协议(Exterior Gateway Protocol EGP)(域间路由选择),用于源主机和目的主机不在同一个系统中。目前使用的的是BGP协议。

内部网关协议RIP

RIP(Routing Information Protocol)路由信息协议是一种基于距离的路由选择协议,最大优点是简单、开销小,用于小型的互联网。

从路由器到直连的网络的距离定义为1,而到非直连网络距离等于路由器数+1,允许一条链路上路由器最大数目为15,也就是距离最大为16,超过认为不可达。

RIP 协议仅选择一条具有最少路由的路径,哪怕另一条更高速但路由数较多。

特点
1、仅和相邻的路由器交换信息。
2、交换信息是当前本路由器已经得到的路由表。
3、按固定时间间隔更新路由表。

距离向量算法

交换和更新信息时,使用的算法是距离向量算法
(1)对于地址X的相邻路由器发来的报文,先将所有下一跳地址改为X,并把所有距离都+1,每一个报文含有多个数据项,每个数据项包含:目的网络,距离,下一跳路由器地址X。
(2)a.如果原路由表中没有目的网络,直接加入此项。
b.如果目的地址相同,原路由表下一跳地址与报文中相同且距离不同,更新路由表报文。
c.如果目的地址相同,原路由表下一跳地址与报文中不同,保留距离较小的报文内容。
(3)如果3分钟没有收到相邻路由表的更新表,则把此相邻表记为不可达。

好消息传播快,坏消息传播慢

“好消息”指的是路由表的更新很快,能够在较短的时间进行更新。
“坏消息”指的是当某一个路由器突然无法使用时,原来其它路由器的路由表无法及时收到这个消息,只有当路径距离增大到16时,才将其标为无法到达。

内部网关协议OSPF

OSPF Open Shortest Path First 开放最短路径优先开放指的是协议不收某一个厂商控制,而是公开发表的。最短路径优先指的是使用了迪杰斯特拉的最短路径优先算法,但不代表其他方法不是最短路径优先的,优点是更新收敛快。

最主要特征是:链路状态协议

特点
(1)向本自治系统中所有路由器发送信息。使用洪泛法,也就是向路由器所有输出接口发送,再有相邻的路由器继续向外发送。
(2)发送信息就是与本路由器相邻的所有路由器的链路状态,可以是很多信息,包含本路由器相邻的路由器及度量(不只是距离,也可以是费用、时延等代价)。
(3)只有链路状态发生变化时,路由器才会使用洪泛法发送信息。

与RIP协议相比,使用OSPF协议可以使路由器建立一个链路状态数据库,得出全网的拓扑结构,而且OSPF更新过程收敛得快,而RIP协议不行。

OSPF协议中,洪泛需要非常大的开销,所以使用划分区域,从而减小洪泛的范围,但划分的区域不能太大,区域内路由器数最好不超过200个。

OSPF划分区域
如图所示,R3、R4、R7叫做区域边界路由器,主干区域内的叫主干路由器,连接其它自治系统的路由器叫自治系统边界路由器。各个区域内各自使用OSPF协议,各个区域之间再使用OSPF协议,这样可以实现层次结构的区域划分。

OSPF不使用UDP而是直接使用IP数据报,因为其构成的数据报很短,这样可以减少路由的通信量。

其他特点:
(1)OSPF 允许管理员给不同路指派不同的代价,对不同业务可以计算出不同的路由。
(2)如果到达同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。(负载平衡)
(3)所有在OSPF路由器之间交换的分组,都具有鉴别功能,保证了仅在可信赖的路由器之间交换链路状态信息。
(4)OSPF支持了可变长子网划分和CIDR。
(5)由于网络链路经常变化,OSPF给每一个状态都带上一个32位序号,序号越大,更新越快。

OSPF分组类型(5)

分别是:问候、数据库描述、链路状态请求、链路状态更新、链路状态确认。

OSPF规定,相邻的两个路由器每隔10s就要交换问候分组,确认哪些路由器是可达的。当不可达时,立即修改链路状态数据库,并重新计算路由表。

当一个路由器链路发生变化,该路由器使用链路状态更新,使用洪泛法向全网更新链路状态。OSPF使用的是可靠的洪泛法,即需要确认。

外部网关协议BGP

为什么不用RIP或OSPF?
1、互联网规模很大,AS自治系统之间相互选择很困难;
2、AS之间的路由选择必须考虑有关策略。即有时需要的不只是最短路或者最小代价,而是更复杂的综合性问题。

BGP Border Gateway Protocol 边界网关协议,并非是要找到一条最佳路由,而是找到一条能够到达目的网络的较好的路径。每一个自治系统至少选择一个“BGP发言人”,一般两个BGP发言人由至少由一个共享网络连接。一个发言人要与其它自治系统AS的发言人交换路由信息,建立TCP连接,交换BGP报文,建立BGP会话,此时建立TCP连接的两个发言人可以成为对等站(邻站)。

BGP协议交换的网络可达性,就是要到达某个网络需要经过的自治系统AS。并且在发言人内的自治系统连通图是树形结构的,不存在回路。

5、IPv6

IPv4地址无法满足使用需要,采用IPv6,每个地址16字节。

IPv6特点有:
1、更大的地址空间;2、扩展的地址层次结构;3、灵活的首部格式;4、改进的选项;5、允许协议继续扩充;6、支持即插即用;7、支持资源的预分配。

冒号十六进制记法

使用十六进制,每个冒号分割一个4位的十六进制数,连续的0可以用“::”简写,但是一个地址只能使用一次。

全0地址只能当源地址使用,不能用做目的地址。
环回地址为::1。
多播地址占1/256。
本地连读单播地址占1/1024。

6、VPN虚拟专用网和NAT网络地址转换

VPN Virtual Private Network 虚拟专用网,这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。知只是在效果上和真正的专用网一样。

虚拟专用网连接的场所,每个场所中至少有一个路由器具有合法的全球IP地址。在互联网的发送过程会加密。

NAT Network Adress Translation 网络地址转换,使用装有NAT软件的路由器实现,其至少有一个有效的外部全球IP地址。NAT路由器工作原理
当NAT路由器具有n个全球IP地址时,专用网内最多可以同时有n台主机。
带端口号的NAT也叫NAPT。

7、多协议标记交换MPLS

MPLS MultiProtocol Label Switching 多协议标记交换,利用面向连接技术,使每个分组携带一个标记,当分组到达交换机,交换机读取标记,并根据标记进行分组转发。

1、支持面向连接的服务;
2、支持流量工程,平衡网络负载;
3、有效支持虚拟专用网VPN。

第五章 运输层

运输层最重要的功能是复用分用

运输层为互相通信的进程提供逻辑通信。通信的端点并不是主机,而是主机的进程,也就是端到端的通信实际上是进程之间的通信。

逻辑通信:从应用层看,只要应用层把报文交给运输层,运输层就可以把这报文送到对方的运输层,似乎是沿直线传播的。

网络层提供主机之间的逻辑通信,运输层提供应用进程之间的端到端的逻辑通信。

运输层也要对收到的报文进行差错检测
运输层有两种不同的协议:UDP和TCP。

UDP协议:User Datagram Protocol 用户数据报协议。
TCP协议:Transmission Control Protocol 传输控制协议,是可靠的运输层协议,尽管下层的网络不可靠,在运输层上是可靠的。

1、用户数据报协议UDP

特点
1、UDP是无连接的。
2、UDP是尽最大努力交付的。
3、UDP是面向报文的。
4、UDP没有拥塞控制。
5、UDP支持一对一、一对多、多对一和多对多的通信。
6、UDP的首部开销小。

2、传输控制协议TCP

特点
1、面向连接的运输层协议。
2、每一条TCP连接都是点对点的,只能有两个端点。
3、TCP提供可靠交付的服务,无差错、不丢失、不重复并按序到达。
4、TCP提供全双工通信,也就是允许双方在任何时候都可以发送数据。
5、TCP是面向字节流的,也就是说对于应用层交下的数据,运输层并不知道其含义,仅当作一串无结构的字节流。

确认和重传机制-停止等待协议

1、无差错情况
无差错时,每发送一个分组就能够收到一个对应的确认分组。
2、出现差错
发送主机经过一端时间没有收到确认分组,则要进行超时重传。超时重传的超时时间要略长于分组传输的平均往返时间。
3、确认丢失和确认迟到
当确认丢失时,发送主机将再次发送分组。此时接收主机会丢弃重复分组,向发送主机发送确认。

上述措施可以在不可靠的传输网络上实现可靠传输,称为自动重传请求ARQ(Automatic Repeat reQuest)

但是停止等待协议的信道利用率很低:
停止等待协议的信道利用率
信道利用率
所以改进使用连续ARQ协议滑动窗口协议

连续ARQ协议
发送方维持发送窗口,将发送窗口内的分组一次性全部发出,不需要等待确认。当收到确认时,窗口向后移动。
此时接收方一般采用的是累积确认,对按序到达的最后一个分组发送确认。当中间的分组丢失,丢失分组及之后的分组均要进行重发。
累积确认的优点是容易实现,及时确认丢失也不必重传。缺点是不能向发送方反映接收方已经正确收到所有分组信息,只能反映出是按序到达的。

也就是说连续ARQ不适用于通信线路质量不好的情况

TCP报文首部重要概念

1、确认号ack,占4个字节,期望收到对方下一个报文段的第一个数据字节的序号
2、确认ACK:当ACK=1时,确认号ack字段才有用,反之无效。
3、推送PSH:当一端应用希望在键入一个命令后就立即推送,把此位置1,不再等到整个缓存都满了再向上交付。
4、同步SYN:在建立连接时同步序号,SYN为1,ACK为0时,表明这是一个连接请求报文;当同意建立连接时,响应SYN为1,ACK为1。
5、终止FIN:用来释放一个连接。
6、窗口WIN:窗口指的是发送本报文段的一方的接收窗口。窗口值作为接收方让发送方设置其发送窗口的依据。
7、最大报文段长度MSS Maximum Segment Size:指的时数据字段的最大长度。数据字段+TCP首部=TCP报文长度。
8、数据偏移:TCP报文数据部分距离TCP报文开始端的长度,也就是TCP首部的长度。

MSS存在的意义?怎么设置?

1、MSS和接收窗口没有关系。
2、MSS过小,网络利用率降低,首部开销很大。
3、MSS过大,在IP层传输时需要分为多个分片,当某一个分片缺失,整个TCP数据报均需要重传,增大开销。

TCP可靠传输的实现

TCP的滑动窗口是以字节为单位的。
发送方根据接收方发来的确认号和接收窗口进行发送窗口的设置。
发送方在没有收到其它信息时,会发送发送窗口内的所有数据,若没有收到新的确认,窗口不变;收到新的确认,通知窗口减小,前沿窗口不变。
滑动窗口
发送缓存暂时存放:
1、发送应用程序传送给发送方TCP准备发送的数据;
2、TCP已发出但尚未收到确认的数据。

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

注意
1、发送方和接收方的窗口不一定同步,因为互相传递消息有时延;
2、TCP通常对不按序到达的数据放在接收窗口,等到缺少数据字节接收后,按序交付;
3、TCP要求接收方必须有累积确认的功能。

选择确认SACK:通过字节流的左右边界进行确认。指明一个边界就需要4字节,首部总长最多40字节,最多指明4个字节块边界,剩下的需要指明SACK选项及选项占用字节。

TCP流量控制

TCP流量控制使用的是滑动窗口机制,是为了防止发送速率过快,要让接收方来得及接收。可变窗口流量控制

通过接收方的反馈设置发送窗口。发送窗口不能超过接收方给出的接收窗口。且窗口的单位是字节,而不是报文段。

注意:
当发送完窗口为0的报文后,发送方进入等待状态。当接收方重新拥有接收能力时,若发给发送方的通知丢失,则双方均进入等待状态。为了避免这种情况,在接收方收到零窗口通知时,启动一个计时器,一定时间时向接收方发送零窗口探测报文段(1字节),若接收方可以接收数据,则在零窗口探测确认中携带窗口信息,反之,重置计数器。

TCP传输过程中有两个问题:

1、什么时候发送方开始发送报文?

Nagle算法:当发送应用程序逐字节将数据送到TCP发送缓存,发送方先将第一个字节进行发送,后面到达的都会先缓存起来,当收到对第一个字节的确认后,将缓存的数据全部发送,同时对后续到达的数据进行缓存。当接到上一个报文段的确认后,再发送当前缓存的报文段。当到达的数据超过发送缓存的一半或者达到报文段的最大长度时,也进行发送。

2、糊涂窗口综合征问题

当接收方的窗口已满,接收应用逐字节读取,接收方向发送方确认,窗口设为1时,发送方发送长度为1字节的报文段,报文段的首部40字节,会造成网络的浪费。所以此时会让接收方等待一段时间,使得接收方能够容纳一个最大报文段或者缓存的一半时,向发送方发送确认。

TCP拥塞控制

拥塞:指的是对网络中某一资源的需求超过了该资源能够提供的可用部分。

流量控制和拥塞控制的区别

流量控制:是点对点通信量的控制,是个端到端的问题。主要目的是根据接收方的窗口控制发送方的发送速率。具体如何控制,根据主机内的协议进行计算。

拥塞控制:就是防止过多的数据注入网络,防止网络中的路由器或链路不过载,使网络能够承受现有的网络负荷。拥塞控制是个全局的过程。通信双方只要一段时间得不到确认,就会猜测是否有拥塞的情况发生。

报文丢失是网络发生拥塞的征兆。

拥塞控制可以分为开环控制和闭环控制:
开环控制就是提前考虑到可能发生的拥塞并力求不发生;
闭环控制就是监测拥塞发生、传递拥塞信息、调整解决拥塞

拥塞控制方法

四种算法:慢开始、拥塞避免、快重传、快恢复

判断网络发生拥塞的依据是超时

拥塞窗口取决于网络的拥塞程度。
初始拥塞窗口取决于发送方最大报文段SMSS,旧的协议规定是1-2个SMSS大小,新的协议规定,cwnd不超过2-4个SMSS大小。当SMSS>2190字节,设置为2SMSS字节,且不能超过2个;2190>=SMSS>1095,cwnd设置为3SMSS,且不能超过3个;SMSS<=1095时,设置为4*SMSS,且不能超过4个。
也就是说报文段越长,初始拥塞窗口所含的报文段数就越少。

拥塞窗口每次的增加量=min(N,SMSS)

N指的是,本轮次内接受的报文确认字节数。
慢开始

慢开始:由小到大增大发送窗口,也就是由小到大增大拥塞窗口数值。(指数级增加),每收到一个对新报文段的确认,拥塞窗口就+1。(第一次发1,第二次发2,第三次发4…)

拥塞避免:当使用慢开始算法,使拥塞窗口超过设置的门限(ssthresh)后,每一个轮次拥塞窗口值+1。

当超时发生时,ssthresh=cwnd/2,cwnd=初始值。然后继续执行慢开始和拥塞避免。

有时个别报文会发生丢失,但不一定是网路发生堵塞,但发送方收不到确认,就会误以为发生拥塞,造成网络利用率降低。
快重传

快重传:可以让对方尽早知道报文的丢失,但是要求接收方不是发送数据的时候稍带确认,而是受到数据时,立即确认,且确认的是按序到达的最后一个报文序号。当接收方收到连续三个同样的确认,立即执行快重传。

快恢复:执行完快重传后,执行快恢复。也就是不让拥塞窗口直接降到最低,而是相对低的一个水平。ssthresh=cwnd/2,cwnd=ssthresh,利于较快恢复。
同时,当接收方收到三个连续确认,说明有三个分组已经离开网络,所以窗口可以为新的门限值+3*SMSS
实现举例

AIMD算法:
拥塞避免加法线性增大,超时或者3个确认时,门限瞬间减小。称为"加法增大、乘法减小"的AIMD算法。

发送窗口同时决定于拥塞窗口和接收方所能接收的接收窗口,所以:
发 送 窗 口 = m i n ( 拥 塞 窗 口 , 接 收 方 窗 口 ) 发送窗口=min(拥塞窗口,接收方窗口) =min()

主动队列管理AQM

网络发生拥塞时,按照先进先出FIFO算法进行丢弃尾部太过被动。防止避免拥塞全局同步,提出AQM Active Queue Management算法,就是在队列长度超过某个阈值时,主动丢弃到达的分组,减缓发送方的速度。

RED Random Early Detection 随机早期检测
这个算法规定两个门限,一个最大门限一个最小门限。
1、当平均队列长度小于最小门限,就把新到的分组放入队列;
2、当平均队列长度超过最大门限,就丢弃新到的分组;
3、当在门限之间,就按照某一概率丢弃。

TCP运输连接管理
建立连接

注意三个问题:
1、双方知道通信对方存在;
2、允许双方协议参数;
3、能够对运输实体进行分配(缓存、连接表中的项目等)。

三握手
初始,发送方A创建传输控制TCB准备发送,接收方B创建传输控制块TCB准备接收。
1、A向B发送连接请求报文,此时首部SYN=1,同时选择一个初始序号seq=x。(消耗一个序号 与要发送的数据段无关
2、如果B同意连接,向A发送确认。SYN和ACK均为1,ack=x+1,同时为自己选择一个初始序号seq=y。(消耗一个序号 与数据无关
3、A收到B的确认后,也向B确认。ACK=1,ack=y+1,seq=x+1。(表示确认B的报文序号已经y收到,自己发送的数据是x+1,这个报文可以携带数据,如果不携带就不消耗序号,如果携带,消耗的是数据的序号)。

上述步骤2中的报文也可以拆成两个变成四握手,也就是把SYN、ACK分开传送。
三握手的目的是为了防止失效的连接请求再次建立连接。

连接释放

连接释放示例
1、发送方A发送完毕,主动发出结束请求。FIN=1,seq=u(发送方数据端末尾+1,且消耗一个序号)。
2、B收到结束请求,确认。ACK=1,seq=v(接收方发送数据末尾+1),ack=u+1(确认请求数据)。
3、B发送结束请求。FIN=1,ACK=1,seq=w(自上次发送结束确认时可能发送了一些别的数据),ack=u+1(确认请求数据)。
4、A收到结束请求,确认。ACK=1,ack=w+1,seq=u+1(不再消耗新的序号)。

B收到A的确认后直接关闭,A需要在发出确认后再等2MSL时间
(1)防止确认报文丢失,无法关闭。B无法收到确认会进行结束请求重传,此时A若仍未关闭就可以收到。
(2)防止B收到已失效的连接请求报文,重新建立连接。2MSL的时间可以使所有报文段从网络中消失。

第六章 应用层

我考完了…不想整理啦,主要考完试啦,考了个DNS+HTTP,比较简单。

1、DNS服务器

2、HTTP协议

在这里插入图片描述

主要记得传输的是文档文件。

3、电子邮件的SMTP、POP3、IMAP

在这里插入图片描述
记住这个就稳了感觉。

4、DHCP动态配置协议

比较难,考的可能性非常小,我自己也没仔细看…

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值