第一章 计算机网络概论
电路交换和分组交换
电路交换
是通信网中最早出现的一种交换方式,也是应用最普遍的一种交换方式,主要应用于电话通信网中,完成电话交换,已有100多年的历史。
链路中的电路通过频分复用或时分复用来实现的。
电路交换方式的优点是数据传输可靠、迅速,数据不会丢失,且保持原来的序列。缺点是在某些情况下,电路空闲时的信道容量被浪费;另外,如数据传输阶段的持续时间不长,电路建立和拆除所用的时间就得不偿失。
分组交换
在通信过程中,通信双方以分组为单位、使用存储-转发机制实现数据交互的通信方式,被称为分组交换。
分组交换也称为包交换,它将用户通信的数据划分成多个更小的等长数据段,在每个数据段的前面加上必要的控制信息作为数据段的首部,每个带有首部的数据段就构成了一个分组。首部指明了该分组发送的地址,当交换机收到分组之后,将根据首部中的地址信息将分组转发到目的地,这个过程就是分组交换。能够进行分组交换的通信网被称为分组交换网。
分组交换方式的优点是不同的数据分组可以在同一条链路上以动态共享和复用方式进行传输,通信资源利用率高,从而使得信道的容量和吞吐量有了很大的提升,在同一个链路上可以同时传输不同类型和规格的数据,当分组网络上有大量的分组时,可以根据设定数据传输的排队机制,保证优先级高的分组优先传输。
存储转发的特点
操作系统提供的网络编程接口
协议三要素
- 语法: 即数据与控制信息的结构或格式
- 语义: 即需要发出何种控制信息,完成何种动作以及做出何种响应
- 时序(同步): 即事件实现顺序的详情说明
网络分层体系结构
计算机网络的各层及相应协议的集合称为网络的体系结构,其优点有:
- 各层之间互相独立,即不需要知道低层的结构,只要知道是通过层间接口所提供的服务
- 灵活性好,只要接口不变就不会因层的变化而变化
- 各层采用最合适的技术实现而不影响其他层
- 有利于促进标准化
水平的协议和垂直的服务
几种不同的网络体系结构
各层协议
相关名词
- ITU(International Telecommunication Union): 国际电信联盟
- RFC(request for comments): 请求评论,该文档描述了因特网的标准
- IETF(Internet Engineering Task Force): 因特网工程任务组
- IRTF(Internet Research Task Force): 因特网研究任务组
- ISOC(Internet Society): 因特网协会
- IAB(Internet Architecture Board): 因特网体系结构委员会
分组交换网的性能指标
时延是计算机网络的重要性能指标。
- 处理时延:检查分组首部,决定该分组导向何处以及处理差错等所需要的时间。高速路由器通常极低。
- 排队时延:当分组在链路上排队等待传输时所需的时间。
- 传输时延:又称存储转发时延,是将所有分组的比特发向链路所需要的时间。
- 传播时延:通常取决于传输分组比特的物理媒体的性质。 计算公式(d:时延)
- d总 = d处理+d排队+d传输+d传播
- d传输 = 报文长度/信道带宽
- d传播 = 信道长度/电磁波在信道中传播速率
第二章 数据通信基础
数据,信号,信息的概念
- 数据:运送的实体
- 信号:是数据的电气或电磁的表现
- 基带信号:由信源发出的原始电信号
- 数字基带信号:计算机内部cpu与内存之间传输的信号
- 模拟基带信号:
- 信道:信号需在信道中传输
- 数字信道
- 模拟信道
- 信息:数据、消息中所包含的意义,可以使它们所描述的事件的不确定性减少
单工,半双工,全双工
- 单工:通信双发只有一个数据传输方向(广播)
- 半双工: 通信双方可以互相传输数据但不能同时传递(对讲机)
- 全双工:通信双方可以同时发送和接收信息(电话)
编码与调制
编码
仅对数字基带信号的波形进行变换,称为编码。编码后产生的信号仍为数字信号。可以在数字信道中传输。模拟基带信号编码后也为数字信号。
调制
把数字基带的信号的频率范围搬移到较高的频段,并转换为模拟信号,称为调制。调制后产生的信号为模拟信号,可以在模拟信道中传输。模拟基带信号调制后仍为数字信号。
码元
在使用数字域的波形表示数字信号时,代表不同离散数值的基本波形。简单来说码元就是构成信号的一段波形。
编码的方式
- 不归零编码:存在同步问题,故需要时钟信号
- 归零编码:接收方只需在每次信号归零的时候进行采样即可,无需时钟信号。优点:自同步。缺点:编码效率低。大部分数据带宽,都用来传输"归0"而浪费了。
- 曼彻斯特编码:每个码元的中间时刻都会进行跳变。中间时刻的跳变即表示时钟有表示数据(传统以太网)
- 差分曼彻斯特编码
- 跳变只表示时钟
- 在码元开始处电平是否发生变化表示数据
基本调制方式
混合调制: 使一个码元可以包含更多的比特。
通常情况下相位和振幅可以结合起来一起调制,称为正交振幅调制QAM。
例如:QAM-16
奈氏准则和香农公式
信道数据传播速率与信噪比,频率带宽,调制速度(码元传输速度),码元所携带的比特数有关。 与信道传播速度无关。
试题:
双绞线线序
橙白 橙, 绿白 蓝, 蓝白 绿, 棕白 棕
分组交换的特点
分组交换的特点就是存储转发,它将所接受的分组暂bai时存储下来,在目的方向路由上排队,当它可以发送信息时,再将信息发送到相应的路由上,完成转发。其存储转发的过程就是分组交换的过程。
物理层协议的四个特征
- 机械特征: 定义了接口所用接线器的形状和尺寸,引线数目以及排列、固定和锁定装置。
- 电气特征: 定义了在接口电缆的各条线上出现的电压的范围。
- 功能特征: 定义了某条线上出现的某一电平的电压表示何种意义。
- 规程特性: 定义了对于不同功能的各种可能事件的出现顺序。
第三章 链路层
成帧
数据链路层的主要工作是添加一个帧头部和帧尾部,不同的数据链路层协议可能格式不同,但是基本的格式都试类似的:
这里的数据部分,一般有一个最大程度,我们称为MTU,在MAC里一般是1500个字节。 当数据是由可打印的ASC2码组成的文件时,可以使用特殊的帧定字符来标明一个帧的开始和结束。比如使用SOH(Start Of Header)--0x01和EOT(End Of Transmission)--0x04来表示,这样数据链路层就可以识别出帧的开始和结束。
面向比特的协议HDLC
HDLC以01111110
作为开始和结束的标志,在数据中可能会出现01111110
的二进制段,导致帧意外的中断和丢弃。因此我们需要一种机制来处理这种情况,即比特填充
何为比特传输呢?简单来说就是在数据传输时,当我们检测到有连续出现五次1的情况,我们便紧跟其后加上0,这样就不会导致帧中断和丢失了。
差错检测
传输过程中有可能1变成0,0变成1,这种情况就叫做比特差错。数据链路层提供了循环冗余检验CRC方法来检测比特差错,其主要使用了帧检验序列FCS来检测比特错误。发送数据前先计算帧的数据部分得出FCS添加在数据部分后,接收端收到数据后添加上FCS后计算验证。
需要注意的是数据链路层并没有向网络层提供可靠传输服务,传输差错一类是比特差错,还有一类是帧丢失、帧重复或帧失序。完整的传输错误控制是在TCP中实现的。
循环冗余检测
可靠的数据传输
CSMA/CD协议
概念
即载波监听多点接入/碰撞检测的缩写
- 多点接入:说明这是个总线网络,许多计算机以多点接入的方式连接在一根总线上,协议的实质是“载波监听”和“碰撞监测”;
- 载波监听:即“发送前先监听”,每个站在发送数据前要先检测一下总线上是否有其他站在发送数据,如果有,暂时不发送数据,等待信道空闲时再发送,总线上没有“载波”,这里只是一个习惯称呼;
- 碰撞检测:即“边发送边监听”,适配器边发送数据边检测信道上的信号电压,以便判断自己在发送数据时其他站是否也在发送数据。
过程
如果考虑上信号在链路上的传播时延,那么过程类似这样:
由上图我们可以看出:
- CSMA/CD不可能同时进行发送和接受,因此是半双工协议,即双向交替通信;
- 每一个端点在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,这段时间最长为两个单程最长时间,将这个时间成为“争用期”,只有通过争用期的“考验”,才能肯定这次发送不会发生碰撞。
- 以太网把争用期定位51.2微秒,如果是一个标准10M/s的带宽的话,大概是512比特,也就是64字节,因此以太网规定了争用期大小的帧为最小长度,所有比这小的帧都认为是碰撞导致的丢弃帧,因此以太网的帧最小为64字节。
CSMA/CD的要点为:
- 适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送;
- 若适配器检测到信道空闲,即在发送间隙9.6微秒约96个比特时间内没有检测到信道上有信号,就发送这个帧;若检测到信道忙,则继续检测并等待信道转为空闲(加上96比特时间),然后发送这个帧;
- 在发送过程中继续检测信道,若一直未检测到碰撞,就顺利把这个帧成功发送完毕;若检测到碰撞,则中止数据发送,并发送人为干扰信号;
- 在中止发送后,适配器就执行指数退避算法,等待r倍的512比特时间后,返回到步骤(2);
MAC地址特点
地址的长度、表示方法、分配方法及其唯一性
MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。
交换机工作原理
当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。交换机之所以能实现这一功能,是因为交换机内部有一个MAC地址表,MAC地址表记录了网络中所有MAC地址与该交换机各端口的对应信息。某一数据帧需要转发时,交换机根据该数据帧的目的MAC地址来查找MAC地址表,从而得到该地址对应的端口,即知道具有该MAC地址的设备是连接在交换机的哪个端口上,然后交换机把数据帧从该端口转发出去。
- 交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
- 交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
- 如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。
- 广播帧和组播帧向所有的端口转发。
| MAC地址 | 端口 | | ---- | ---- | | 00-10-B5-4B-30-85 | E0/1 | | 00-10-B5-4B-30-90 | E0/2 | | 00-10-B5-4B-30-65 | E0/24| 假设主机pc1向主机pc7发送一个数据帧,该数据帧被送到交换机后,交换机首先查MAC地址表,发现主机pc7连接在E0/24接口上,就将数据帧从E0/24接口转发出去。
MAC地址表的建立
为快速转发报文,以太网交换机需要建立和维护MAC地址表。交换机采用源MAC地址学习的方法建立MAC地址表。
-
交换机的初始状态,MAC地址表为空
-
地址表源MAC地址学习 当计算机PC1要发送数据帧给计算机PC6时,因此时地址表是空的,交换机将向除PC1连接端口E0/1以外的其他所有端口转发数据帧。在转发之前,首先检查该数据帧的源MAC地址(00-10-B5-4B-30-85),并在交换机的MAC地址表中添加一条记录(00-10-B5-4B-30-85,E0/1)使之和端口E0/1相对应。
-
计算机PC6接收数据帧 计算机PC6收到发送的数据帧后,用该数据帧的目的MAC地址和本机的MAC地址比较,发现PC1找的正是它,则接收该数据帧,其他计算机丢弃数据帧。计算机PC6回复PC1时,交换机直接从端口E0/1转发,并学习到(00-10-B5-4B-30-65)为PC6连接的端口,将其添加到地址表中,如图所示。
交换机的其他端口利用源MAC地址学习的方法在MAC地址表中不断添加新的MAC地址与端口号的对应信息。直到MAC地址表添加完整为止。
为了保证MAC地址表中的信息能够实时地反映网络情况,每个学习到的记录都有一个老化时间,如果在老化时间内收到地址信息则刷新记录。对没有收到相应的地址信息的则删除该记录。例如,计算机PC6停止了和交换机通信,达到老化时间后,交换机会将其对应的记录从MAC地址表中删除。
也可以手工添加交换机的MAC地址表的静态记录,手工配置的静态记录没有老化时间的限制。由于MAC地址表中对于同一个MAC地址只能有一条记录,所以如果手工配置了MAC地址和端口号对应关系后,交换机就不再动态学习这台计算机的MAC地址了。
交换机的三个主要功能
- 学习 以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中
- 转发/过滤 当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)
- 消除回路 当交换机包括一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。
第四章 网络层
网络层提供的两种服务
面向连接的虚电路服务
-
虚电路服务的核心思想: 可靠通信应由网络自身来保证,当两台计算机进行通信时,应当首先建立网络层的连接,也就是建立一条虚电路,以保证通信双方所需的一切网络资源。然后双方就沿着以建立的虚电路发送分组。
-
分组交换的需连接和电路交换的区别:
- 虚电路表示这是一条逻辑上的连接,分组都按这条逻辑连接按照存储转发方式传送。而不是真正建立的一条物理连接。
- 采用电路交换的电话通信,则是先建立一条真正的连接。
分组的首部仅在连接建立阶段使用完整的目的主机地址,之后每个分组的首部只需携带一条虚电路编号(构成虚电路的每一段链路都有一个虚电路编号)。
这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)
通信结束后,需要释放之前所建立的虚电路。
无链接的数据报服务
-
核心思想: 可靠通信应当由用户主机来保证
-
核心概念:
- 不需要建立网络层连接
- 每个分组可走不同的路径
- 每个分组的首部必须携带目的主机的完整地址。
- 这种通信方式所传送的分组可能误码、丢失、重复、和失序。
- 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)
- 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。
IP编址方法
分类编址
- A类地址
- B类地址
- C类地址
- 练习
2.
3.
划分子网
IP数据报的发送和转发过程
路由选择协议
静态路由选择和动态路由选择
静态路由选择:由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由。这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。一般只在小规模网络中采用。
动态路由选择:路由器通过路由选择协议自动获取路由信息。其比较复杂、开销比较大。能较好地适应网络状态的变化。 适用于大规模网络。
因特网所采用的路由选择协议的主要特点
- 自适应:动态路由选择,能较好地适应网络状态的变化
- 分布式:路由器之间的交换路由信息
- 分层次:将因特网划分为许多较小的自治系统AS。
常见的路由选择协议
路由器的基本结构
路由信息协议RIP
路由表的更新
开放式最短路径协议OSPF
边界网关协议BGP
网际控制报文协议
IPV4数据报首部格式
虚拟专用网VPN 和 网络地址转换NAT
第五章 运输层
概述
实际上两个计算机网络中进行通信的真正实体是位于通信两端主机中的进程。运输层的任务便是为运行在不同主机上的应用提供直接的通信服务。运输层向高层用户屏蔽了下面网络核心的细节,为使应用进程看见的就好像是在两个运输层实体之间有一条端到端逻辑通信信道。根据应用的需求不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP。
运输层端口号、复用、分用
TCP和UDP的对比
TCP流量控制
TCP拥塞控制
TCP实现可靠的数据传输
TCP三次握手和四次挥手