计网知识点整理
所以说,写博客才是最快的学习方法,慢慢更
计算机网络知识点梳理——以谢希仁第七版为教材
细节处不完全按照原书标题顺序
第一章 概述
1.1 计算机网络
大众熟悉的三大类网络:电信网络、有线电视网络、计算机网络。其中发展最快并起核心作用的是计算机网络。其中,互联网是目前技术最成功的、应用最广泛的计算机网络。
计算机网络的定义:主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用于来实现某一特定目的。这些可编程的硬件能用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
计算机网络的特点:连通性,共享。
1.2 互联网概述
互联网=因特网=Internet,专有名词
互连网=internet,泛指多个计算机互连而成的网络
互联网,特指Internet,起源于美国由数量级极大的各种计算机网络互连起来,采用TCP/IP协议族作为通信规则。
1.2.1 互联网基础结构发展的阶段
1、单个网站ARPANET向互联网发展的过程。
1969年美国国防部创建的第一个分组交换网ARPANET
- 1983年,TCP/IP成为ARPANET上的标准协议,使得所有使用TCP/IP协议的计算机都能利用互连网互相通信。
- 1983年被认为是互联网诞生的时间。
- 1990年,ARPANET正式宣布关闭
2、建成三级结构的互联网。
分别为主干网、地区网、校园网
3、逐渐形成了多层次ISP结构的互联网。
- 出现了ISP(Internet Service Provider)
- 任何机构只要向ISP交纳规定费用就能从该ISP获得所需IP的使用权,通过该ISP接入互联网。
- 根据提供服务的覆盖面不用,分为:主干ISP,地区ISP,本地ISP。
国内ISP如:中国电信、中国联通、中国移动。
随着互联网上的流量急剧增长,为了更快的转发分组,高效利用网络资源,于是IXP(Internet eXchange Point)就应运而生了,主要作用就是允许两个网络直接相连并交换分组,而不再通过第三个网络转发分组,A向B转发不需要经过主干ISP。
1.2.2 互联网的标准化工作
1992年之后互联网不再归美国政府管辖,因此成立了互联网协会ISOC,ISOC下面的一个技术委员会:互联网体系结构研究委员会IAB,负责互联网相关协议的开发,IAB下设两个工程部:互联网研究部IRTF与互联网工程部IETF。
指定互联网的正式标准要经过:互联网草案、建议标准、互联网标准。2011年起取消了草案标准阶段。
1.3 互联网的组成
从工作方式上可以划分为两大块:边缘部分,核心部分。边缘部分是由用户直接使用的;核心部分由大量的网络和连接这些网络的路由器组成,为边缘部分提供服务。
1.3.1 边缘部分
互联网的边缘就是连接在互联网上的所有主机,又称端系统,可以是电脑、手机等。我们常说的主机A与主机B通信,实际上是指主机A上的某个进程与主机B上的某个进程进行通信。边缘的端系统之间通信可以划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
- 客服-服务器方式
这种方式在互联网上最常用。主机A运行客户程序,主机B运行服务器程序,A向服务器B发出服务请求,而服务器B向客户A提供服务。客户程序通常还具有以下特点:在通信时主动向远地服务器请求服务,客户程序必须知道服务器程序的地址;不需要特殊的硬件,和复杂的操作系统。服务器程序:专门用于提供服务的程序,可同时处理多个远地或本地请求;需要长时间运行,被动等待通信请求;需要强大的硬件和高级的操作系统支持。 - P2P对等连接方式
peer-to-peer 如果两个主机都运行了对等连接程序,他们就可以进行平等的、对等的连接通信,双方都可以下载对方已经存储在硬盘中的共享文档。
1.3.2 核心部分
核心部分为边缘部分提供连通性,使边缘的任何一台主机都能向其他主机通信。其核心作用的就是路由器,是实现分组交换的关键构件,任务是转发收到的分组,处理过程:1.收到的分组放入缓存;2.查找转发表,找到某个目的地址应从哪个端口转发;3.把分组送到适当的端口转发出去
- 电路交换
在深入分组交换之前,可以先说说电路交换:
电话问世以后,让所有的电话都两两相连是不现实的,如果存在一个交换机,每一部电话都连接到交换机上,交换机使用交换的方法使得连接在交换机上的每一个电话用户彼此之间可以方便的通信,这种交换方式就是电路交换。从通信资源配置角度看,交换就是按照需求动态的分配传输线路,端与端之间建立了一条专用的物理通路,而这些通路在双方通信时不会被其他用户占用,所以电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源 - 分组交换
电路交换用于传送计算机数据时,线路的传输效率往往很低。分组交换采用存储转发,把一个报文在发送之前划分为等长的数据段,在这些数据段的前面加上一些必要的控制信息组成的首部,就构成了一个分组。分组又称“包”,首部也可称为“包头”。优点:高效、灵活、迅速、可靠;带来的问题:存储转发时需要排队,造成时延,必须携带首部,造成一定的开销。 - 报文交换
存储转发的概念并非全新,报文交换也是基于此原理。
1.4 计算机网络的类别
按照网络作用范围分类
- 广域网WAN(Wide Area Network):几十到几千公里
- 城域网MAN(Metropolitan Area Network):5-50公里
- 局域网LAN(Local Area Network):作用在较小范围(1公里左右)
- 个人网PAN(Personal Area Network):范围很小,10米左右
按照网络使用者分类
- 公用网(public netwok)按规定交纳费用就能使用的网络,可称公众网。
- 专用网(private network)为特殊业务工作需要而建造的网络。
用来把用户接入到互联网的网络
- 接入网AN(Access Network),又称为本地接入网或居民接入网,既不属于核心部分,也不属于边缘部分,是用户端系统到互联网中第一个路由器之间的网络。从覆盖范围看属于局域网,作用上起到让用户和互联网连接的“桥梁”作用。
1.5 计算机网络的性能
1.速率
数据传送的速率,数据率或者比特率,单位是bit/s,kbit/s,Mbit/s,Gbit/s等;
bit一个比特就是二进制数字中的一个1或0;
速率往往指 额定速率 或者 标称速率,非实际运行速率。
2.带宽
两种不用的意义
- band width本来是指信号具有的频带宽度,单位是赫。
- 计算机网络中,用于表述某通道传送数据的能力。表示单位时间内某信道所能通过的“最高数据率”。单位是bit/s,带宽越高,时间轴上信号宽度也就越窄。
3.吞吐量
单位时间内通过某个网络或者信道、接口的数据量
更经常作为对现实世界中网络的一种测量
受到带宽或网络的额定速率的限值
4.时延
数据从一端传向另一端所需要的时间,也称延迟、迟延
由:发送时延、传播时延、处理时延、排队时延组成
发送时延 = 数据帧长度(bit) / 发送速率(bit/s)
传播时延 = 信道长度(米) / 信号在信道上的传播速率(米/秒)
处理时延:主机或路由器在收到分组时,在分析首部、提取数据、差错检验或查找路由所花费的时间
排队时延:分组在路由器输入输出队列中排队等待处理所经历的时延,取决于当前网络中的通信量
对于高速网络链路,我们提高的仅仅是数据的发送速率而不是传播速率,提高带宽减小发送时延。
5.时延带宽积
链路的时延带宽积又称为:以比特为单位的链路长度
时延带宽积 = 传播时延 * 带宽
6.往返时间
RTT(round-trip time)表示从发送方发送数据开始到接收到接收方的确认经历的时间
使用卫星通信时,RTT相对较长,是很重要的性能指标。
7.利用率
分为信道利用率和网络利用率
- 信道利用率:有百分之几的时间是有数据通过的
- 全网络的信道利用率的加权平均值
并非越高越好,利用率增加,会引起信道的时延也迅速增加; D0表示空闲时延,D表示当前时延,在适当的假定条件下,二者的关系可以下式表示,其中U就是网络利用率。
1.6 计算机网络的体系结构
计算机网络的体系结构是计算机网络的各层及其协议的集合。
OSI提出了七层协议体系结构概念清晰理论完整,但是复杂不实用;TCP/IP是四层体系结构:应用层、运输层、网际层和网络接口层,最后一层没有具体内容,采取折中的方法,构建五层协议体系结构:
第二章 物理层
物理层的任务,常用的信道复用技术,宽带接入技术
2.1 物理层的基本概念
物理层主要任务是:确定与传播媒体的接口有关的一些特性:机械特性、电气特性、功能特性、过程特性。在计算机内部,数据传输多采用并行传输,但是在通信线路中通常以串行传输,因此物理层还要完成这一转换。
2.2 物理层下面的传输媒体
分为引导型传输媒体和非引导型传说媒体(引导:guided),也就是电磁波沿着固体媒体传播,非引导型常见无线传播。
2.2.1 引导型媒体
- 双绞线,也称为双纽线,使用最多的地方是电话系统
- 同轴电缆,主要用在有线电视网中
- 光缆,由于可见光频率非常高,因此光纤的传输带宽远高于其他媒体
还有一种,架空明线(铜线或铁线),20世纪初大量使用的方法,但通信质量差,受环境影响大,只有一些农村和边缘地方仍使用。
2.2.2 非引导性传输媒体
- 地面微波接力通信,微波波段频率高范围宽,信道容量大,工业干扰和天电干扰对其影响小因而传输质量高。
- 卫星通信,有较大的传播时延
2.3 信道复用技术
多个用户使用同一个信道,提高信道的利用率,降低成本。
2.3.1 频分复用、时分复用和统计时分复用
- 频分复用FDM(Frequency Division Multiplexing):为用户分配不同的带宽资源,在同一时间占用不同的带宽(指的是频带宽度,不是发送速率)
- 时分复用TDM(Time Division Multiplexing):把时间分为等长的TDM帧,每一个用户占用一个固定序号的时隙,每个用户所占用的时隙周期性出现,周期为TDM帧长。
- 统计时分复用STMD(Statistic TDM):计算机的数据是突发性的,时分复用在某些情况下,时隙的利用率并不高,复用后的信道利用率也不太行,所以提出了统计时分来改善这种情况;如果当前的用户数据没有填满一个TDM帧,就等一等,攒够一个TDM帧再发出去。因此又称为异步时分复用。
2.3.2 波分复用
WDM(Wavelength Division Multiplexing),用同一根光纤传输多个频率很接近的光载波信号,由于光载波的频率很高,习惯上用波长表示不同频率的光载波。目前一根光纤能服用几十路,于是使用了密集波分复用DWDM(Dense WDM)。
2.3.3 码分复用
CDM(Code Division Multiplexing),更常用的名字是码分多址CDMA(Code Division Multiple Access),允许用户在相同的时间使用相同的频带进行沟通,各用户使用不同的码型,因此不会造成干扰。
具体来说,站点S的原数据1、0被划分为m个比特的码片,发送这个码片就相当于发送1,发送码片的反码就是0,这样就会将原来的发送数据率从b bit/s提高到mb bit/s,每个站点的码片均不相同且相互正交。接收站收到叠加的数据后,利用已知的S站码片对叠加数据求内积,就可得到接受的信号,其他站叠加上去的数据会被过滤。
2.4 宽带接入技术
有线宽带接入和无线宽带接入
2.4.1 ADSL
ADSL(Asymmetric Digital Subscriber Line),非对称数字用户线,对现有的模拟电话用户线进行改造,使之能够承载宽带业务。模拟电话线本身能够支持的频率超过1MHz,ADSL把0-4kHz留给传统电话,原有的高频留给用户上网。
2.4.2 光纤同轴混合网(HFC网)
HFC(Hybrid Fiber Coax)。光纤同轴混合网是在目前覆盖面很广的有线电视网的基础上开发的居民宽带接入网。原有的有线电视网络是树型拓扑结构的同轴电缆网络,使用频分复用对电视节目实现单向广播。经改造后,部分同轴电缆换成了光纤。
2.4.3 FTTx
光纤到户,Fiber To The Home,x表示有多种光纤接入方式,x表示不同的光纤接入地点,换句话说就是进行光电转换的地方。
为了更有效的利用光纤资源,在光纤干线和广大的用户之间还需要铺设一段中间的转换装置,光配线网ODN(Optical Distribution Network)使得数十个家庭用户能共享一根光纤干线,使用波分复用。
无源光配线网PON(Passive Optical Network),种类很多,最流行的两种:EPON与GPON
光线路终端OLT(Optical Line Terminal)是连接到光纤干线的终端设备,OLT把收到的下行数据发往无源1:N光分路器(splitter),然后广播向所有用户端光网络单元ONU(Optical Network Unit)发送。如果ONU在家就是FFTH。
第三章 数据链路层
物理层规定了网络中用什么线,用什么样的方式传播数据。本章数据链路层要解决的问题是,如何从主机A向主机B发送数据,A是如何找到B的?这个过程中暂不涉及路由器转发;因此首先要搞清楚 点对点信道 和 广播信道 以及他们所使用的协议,之后要知道A向B发送的帧的格式。
3.1 数据链路层的基本问题
物理层并没有管发送的是什么东西,数据链路层就需要考虑整理发送的数据长什么样了。数据链路层传输的是帧,将网络层的IP数据报上添加必要的控制信息,形成数据链路层的帧,然后交给物理层在线路上传输,不用考虑比特传输的细节。因此,数据链路层的三个基本问题就是:封装成帧,透明传输,差错控制。
3.1.1 封装成帧
数据部分+首尾部就构成了一个完整的帧,首尾部的一个重要作用就是进行帧定界;数据部分即上层传下来的IP数据报。明显,为了提高帧的传输效率,数据部分应该要尽可能的大于首尾部的长度,但是 数据部分 存在一个上限——最大传送单元MTU(Max Transfer Unit)
当数据部分是可打印的ASCII码组成的文本时,帧定界可以使用特殊的帧定界符,ASCII中不可打印的控制字符有33个,用SOH(Start Of Header 0000 0001)放在最前面,EOT(End Of Transmission 0000 0100)表示帧结束。
帧定界在发生传输差错时作用更加明显,接收端会将不完整的帧丢弃,收下首尾都在的完整的帧。
3.1.2 透明传输
帧的结束和开始都使用了控制字符,在数据部分是可打印文本时没问题,但是在传输某些非文本文件,如图片、二级制代码的程序,就会将数据部分出现的0000 0010 或者0000 0100当做开始或者结束符错误定界,收下部分帧。
在介绍解决方法之前先说明透明传输的具体含义,这里的透明指的是看起来好像不存在,数据链路层传输数据,无论什么样的比特组合,都要没有差错的通过数据链路层,数据链路层对于这些数据而言是透明的。
具体解决方法:在数据部分可能出现的SOH和EOF前面插入转义字符ESC(0001 1011),接收端的数据链路层把插入的转义字符删除掉之后再送往网络层,如果出现转义字符,解决方法仍是在转义字符前再添加一个转义字符。
3.1.3 差错控制
现实的通信链路不会是理想的,会产生比特差错(0变1,1,变0),在一段时间内传输错误的比特占所有传输比特的总数的比率成为误码率BER(Bit Error Rate),与信噪比有很大关系。因此为了保证数据传输的可靠性,数据链路层广泛使用循环冗余检验CRC(Cyclic Redundancy Check)。
原理:将数据划分为组,每组k个比特,现有一组数据M,CRC在该组数据后增加n位用于差错检验,最终发送n+k位,n位校验码的可通过以下方法获得:
-
先在k位后面添加n个0(模2运算进行2^N乘以M)
-
得到的k+n位数除以(模2运算)双方事先商定好的,长度为n+1的数 P
模2除法具有下列三个性质:
1、当最后余数的位数小于除数位数时,除法停止。 2、当被除数的位数小于除数位数时,则商数为0,被除数就是余数。 3、只要被除数或部分余数的位数与除数一样多,且最高位为1,不管其他位是什么数,皆可商1。
最终的余数001作为冗余码拼接到数据M后面发送出去,为了检错而加入的冗余码常称为帧检验序列FCS(Frame Check Sequence)
接收方收到帧之后对帧进行模2计算,根据余数的情况取舍。
通常可以认为,凡是数据链路层接收的帧均无差错。
3.2 点对点协议PPP
计算机需要连接到ISP才能上网。PPP就是用户计算机与ISP进行通信时所用的协议。PPP协议需要满足以下要求:简单、封装成帧、透明性、多层网络层协议、多种类型链路、差错检测、检测连接状态、最大传送单元、网络层地址协商、数据压缩协议。有三个组成部分:
- 将IP数据报封装到串行链路的方法
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)
- 一套网络控制协议NCP(Network Control Protocol),其中每一个协议支持不同的网络层协议、
3.2.1 PPP帧格式
首部和尾部分别为4个字段和2个字段,标志字段F=0x7E,地址字段A只设0xFF,实际上不起作用,控制字段C通常为0x03,PPP面向字节,所有帧长度都为整数字节。
前文说过,信息部分如遇到首尾标志通常采用转义字符解决,根据同步与异步传输方式不同,PPP有两种方法实现透明传输,对于异步传输,定义转义字符为0x7D,使用字节填充,具体来说:
- 把信息字段出现的每一个0x7E字节转变成2字节序列(0x7D,0x5E)。
- 如果信息字段出现0x7D,则使用0x7D,0x5D。
- 如果信息字段出现ASCII的控制字符(小于0x20),则在该字符前面加入一个0x7D字节,并且改变该字符的编码,如0x03(控制字符,表示传输结束),转变成2字节序列(0x7D,0x23)。
PPP协议使用SONET/SDH链路时,使用同步传输(一连串的比特连续传送),而不是异步(逐字符发送),这种情况下使用零比特填充。具体来说:在发送前扫描整个信息字段,如果发现5个连续的1,就立即填入1个0,保证数据段不会出现6个1(0111 1110),接收端收到后根据标志字确定边界,然后对数据流进行扫描,删除5个1后面的0还原成原数据。
3.2.2 PPP的工作状态
- 用户拨号接入ISP,路由器的调制解调器对拨号作出确认,建立一条从用户个人电脑到ISP的物理连接
- 主机向路由器发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接
- LCP分组及其响应选择了将要使用的一些PPP参数,并进行了网络层配置,NCP给新接入的主机分配临时IP,使之成为互联网上的一个主机
- 通信结束之后,NCP释放网络层连接,收回分配出去的IP地址;LCP释放链路层连接,最后释放物理层连接。
PPP已经不是纯粹的数据链路层协议,还包含了物理层和网络层的内容
3.3 使用广播信道的数据链路层
广播信道可以进行一对多的通信,局域网使用的就是广播信道。局域网技术在计算机网络中占有非常重要的地位。
3.3.1 局域网的数据链路层
局域网特点:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网优点:具有广播功能,局域网上的主机可以共享连接在局域网上的赢家和软件资源。便于系统的扩展和逐渐演变。提高了系统的可靠性、可用性、生存性。
局域网按照网络拓扑进行分类:星形网、环形网、总线网
由于多设备共享信道,同时发送数据时会造成干扰。技术上有两种方法用于实现:静态划分信道、动态媒体接入控制(多点接入multiple access)。
静态划分信道:
- 频分复用
- 时分复用
- 波分复用
- 码分复用
动态媒体接入控制又分两类:随机接入、受控接入。
- 随机接入不可避免的会造成碰撞,因此必须有解决碰撞的网络协议;
- 受控接入的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询会成为轮询。
受控接入的目前使用较少,本书不再讨论;随机接入的以太网重点讨论。
接下来首先介绍两个概念:
-
以太网:美国施乐公司于1975年研制成功的一种基带总线局域网。有两个标准:
- DIX Ethernet V2 是世界上第一个局域网(以太网)产品规约
- IEEE 802.3 是第一个IEEE的以太网标准
两个标准差别很小,因此可以将802.3的局域网简称为以太网。为了使数据链路更好适应多种局域网标准,IEEE802委员会把数据链路层分为两个子层:逻辑链路控制LLC(Logical Link Control)和媒体接入控制MAC(Medium Access Control),与接入到传输媒体有关的内容都放在MAC上。由于目前互联网TCP/IP体系经常使用的局域网只剩下DIX Ethernet V2 而不是802.3中的局域网,因此现在IEEE802委员会制定的LLC协议作用已经消失。许多适配器上只装有MAC协议。
-
适配器:换句话说是电脑上的网卡,适配器与局域网之间通信时串行传输,计算机与网卡之间使用I/O总线以并行传输进行。因此适配器要完成并行到串行的转换;为了解决两个传输路径上数据率不同的问题,网卡还必须装有缓存芯片。虽然在数据链路层介绍适配器,但是适配器本身实现的功能还包括物理层。
3.3.2 CSMA/CD 协议
为了实现在广播信道上的一对一通信,可以使每一台计算机的适配器拥有一个和其他适配器都不同的地址,在发送时在帧首部写明接收站地址,由此可是在广播信道上实现一对一通信。
为了通信简便,以太网采用了以下措施:
- 采用无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。
- 使用曼彻斯特编码
具体来说,如何解决碰撞,靠CSMA/CD:载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)。最初的以太网是将许多计算机连接到一根总线上,但当同时有多个站点或PC同时发送数据,就会发生碰撞,导致失败。
"多点接入": 指的是许多计算机以多点计入的方式连接在一根总线上
"载波监听": 每个站发送数据前需要先检测总线上是否有其他计算机在发送数据,如果有,就暂时不发送。
总线上并没有什么载波,"载波监听"就是用电子技术检测总线上有没有其他计算机发送的数据信号。如果发生了碰撞,要立即停止发送,等待一段随机时间后再次发送。
为什么还要检测碰撞,因为信号传播时延对载波监听产生了影响
A站经过了就可知道发生了碰撞,端到端往返时延称为争用期,或者碰撞窗口,经过争用期还没有检测到碰撞,才能肯定这次发送没有发生碰撞。
发生碰撞的站在停止发送数据后,要推迟一个随机的事件才能再发送,二进制指数类型退避算法。
- 基本退避时间取为争用期
- 从整数集合中随机选出一个数,几位,重传所需的时延就是倍的基本退让时间。
- 参数按照下面的公式计算,当时,参数等于重传次数
- 当重传次数打到16次,丢弃该帧,向高层报告。
10Mbit/s以太网取51.2s为争用期的长度。对于该类型以太网,争用期内可发送64字节,意味着,如果前64字节没有发生碰撞则后续的数据不会发生冲突。以太网规定最短有效帧长度都为64字节。小于64的都属于冲突而造成的无效帧。
那么争用期内以太网能传多远?由于端到端时延必须小于争用期一半,相当于以太网端到端长度为5km。
下面再加一点:强化碰撞。在发生碰撞停止发送数据外,还要在继续发送32比特或者48比特的人为干扰信号(jamming signal),以便让所有用户都知道发生了碰撞。此时发生碰撞使得A浪费的时间为:,信道被占用的时间为
3.3.3 以太网的信道利用率
发送一个帧占用的时间是。以太网中定义了参数,他是单程端到端时延与帧发送时间的比:
趋向于0时,表示只要一发生碰撞,立即就可以检测出来并停止发送,因而信道浪费资源少。因此,当数据率一定时,以太网的连线长度受到限制,同时以太网的帧长不能太短。
考虑一种理想化的情况,嘉定不发生碰撞,并且能够高效利用网络资源,一旦空闲立马发送数据,这样占用时间就是,而帧本身的发送时间为,由此可以计算出极限信道利用率
当远小于1的时候才能得到尽可能高的极限信道利用率。据统计利用率达到30%就已经处于重载的情况。
3.3.4 以太网的MAC层
局域网中的硬件地址又称为物理地址、MAC地址。IEEE 802 为局域网规定了一种48位的全球地址,是指局域网上的每一台计算机中固化在适配器的ROM中的地址,IEEE的注册管理机构RA是局域网全球地址的法定管理机构,它负责分配地址字段中的前三个字节,世界上方式生产局域网适配器的厂家必须向IEEE购买有这三个字节构成的号;后三个字节厂家自行指派。
3.3.5 MAC帧格式
前同步码的作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率。顺便指出,在使用SONET/SDH进行同步传输时不需要用前同步码。
3.3.6 扩展的以太网
在物理层面扩展以太网:扩展主机和集线器之间的距离。使用光纤。如果使用多个集线器,可以连接成覆盖更大范围的多级星型结构的以太网。
多级星型结构的以太网缺点:碰撞域增大了,总的吞吐量并未提高,如果碰撞域使用不同的数据率,那么就不能使用集线器互连。
- 碰撞域(collision domain)又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络
在数据链路层扩展以太网:早期使用网桥,现在使用交换机。
网桥工作在数据链路层,根据MAC帧的目的地址对帧进行转发和过滤
1990年问世的交换式集线器,可明显提高以太网的性能,常称为以太网交换机,第二层交换机。实质上是多接口网桥,可全双工工作。是即插即用设备,地址表通过自动学习算法建立,由于采用了专用的交换结构芯片,硬件转发的速率比软件转发的网桥快很多。
自动学习算法:
3.3.7 虚拟局域网
利用以太交换机就可以实现虚拟局域网VLAN(Virtual LAN),根据IEEE 802.1Q对其定义:由局域网网段,构成的与物理位置无关的逻辑组。
第四章 网络层
网络层讨论网络互连问题。
4.1 网络层提供的两种服务
“在计算机通信中,可靠交付应该让谁来负责?网络还是端系统?”
电信网中,网络提供可靠交付,利用昂贵的交换机,使用面向连接的通信方式,分组按照建立起的虚电路发送。互联网先驱者认为,电信网络用可靠传输是因为电话机很简单,没有智能,不进行差错处理,但计算机可以,所以互联网设计上采用了不同思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
4.2 网际协议IP
具体来说本章指的是IPv4,与其配套还有三个协议:地址解析协议ARP(Addredd Resolution Protocol),网际控制报文协议ICMP(Inter Control Message Protocol),网际组管理协议IGMP(Internet Group Management Protocol)。本来还有逆地址解析协议RARP与ARP配合使用,现已淘汰。
把互联网看成一个单一抽象的网络,IP地址就是给每一个连接在互联网上的主机或者路由器世界范围内唯一的32位的标识符。由互联网名字和数字分配机构ICANN进行分配。
路由器仅根据目的主机所连接的网络号进行转发。实际上IP是标志一个主机和一条链路的接口。
4.2.1 ARP
尽管硬件层面的网络体系各不相同,但对于网络层而言,网络层“屏蔽”了这些下层的细节。在具体的每段链路上进行交付时必须使用MAC地址,这就需要查询这条数据链路上每一条链路两端的结点的物理地址,这就需要ARP,由于是网络层使用该协议,所以把它划归到网络层,但该协议解析出的是物理地址,可以划归到数据链路层。
主机ARP高速缓存中存放并维护一个IP到物理地址的映射表,里面有 本局域网 中各主机和路由器的IP与硬件地址的映射表。如果查不到呢?这时运行ARP。
- 广播ARP请求分组,大致内容:我是IPXXXX,物理地址YYYYY,找IP为QQQQ的物理地址
- 所有主机上运行的ARP进程收到该请求分组。
- 符合IP的主机B,收下ARP请求,并且向A发送(单播)ARP响应分组:我的IP是QQQQ,物理地址是ZZZZ。
- A收到响应更新ARP缓存中的表
4.2.2 分类的IP地址
8位一组,用十进制表示就是点分十进制记法
A类最大可指派,减去2 是因为0000 0000和0111 1111,前者表示本网络this,后者保留用于本地软件环回测试本主机的进程之间的通信之用。主机号占三个字节,可供最大主机数,减去2是全0和全1,全0表示本主机连接到的单个网络地址,全1表示该网络上的所有主机。
B类去掉一个128.0.0.0不做指派,剩余可指派
C类去掉一个192.0.0.0不做指派,剩余可指派
4.2.3 划分子网
分类IP的设计不够合理:
- IP地址空间的利用率有时很低,A类主机超1000w,B类也超6w
- 给每一个物理网络分配一个网络号会导致路由表变得太大导致网络性能变坏
- 两级IP地址不够灵活
划分子网的基本思路:
- 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网,划分子网属于单位内部事情,外部看不到该网络由多少个子网组成。
- 两级IP变成三级IP:IP地址::={<网络号>,<子网号>,<主机号>}
- 凡是从外部发送到本网络的,仍然是根据目的网络号找到连接在本网络上的路由器,路由器根据网络号和子网号找到目标子网,进行交付。
划分子网是在原有的两级IP中主机号部分在划分,而不改变原网络号
现在又出现一个新问题,假定一个数据报沿着网络号转发到了当前网络的路由器上,路由器如何根据后面的部分判断出子网号和主机号。毕竟IP和数据报本身都没有透露是否进行了子网划分。这就需要:子网掩码
从实际运算来看,子网掩码的作用就是告诉路由器子网号借了几位主机号,换句话说,子网掩码从左到右的1的数量说明了网络号+子网号的长度是多少位。并通过AND运算得出这个:网络号+子网号+0。
通常子网号不为全0和全1,随着CIDR广泛使用,现在也可以用了;但是不论是分类IP还是CIDR都不能指派全1和全0的主机号。
- 已知IP地址:141.14.72.24,子网掩码:255.255.192.0,求网络地址:
- IP: 1000 1101. 0000 1110. 0100 1000. 0001 1000
- 掩码 1111 1111. 1111 1111. 1100 0000. 0000 0000
- 地址 1000 1101. 0000 1110. 0100 0000. 0000 0000
4.2.4 无分类编制CIDR(构造超网)
划分子网一定程度上缓解了互联网发展的困难,但是1992年的互联网仍面临三个问题:
- B类地址在1992年已分配近一半
- 互联网主干网上的路由表项目数急剧增长
- 整个IPV4的地址空间最终将耗尽。2011年2月3日IANA宣布IPV4已耗尽。
第三个问题交由IPV6工作组负责,前两个问题使用:无分类编制解决。主要特点有以下两个:
- 消除了传统的A、B、C类和划分子网的概念,因此可以更有效的分配IPV4的空间,重回两级编址,网络前缀+主机号,使用斜线法标明前缀所占的位数。
- 把网络前缀相同的 连续的 IP地址组成一个CIDR地址块,比如:
- 128.14.35.7/20(1000 0000, 0000 1110, 0010 0011, 0000 0111)
- 最小:128.14.32.0(1000 0000, 0000 1110, 0010 0000, 0000 0000)
- 最大:128.14.47.255(1000 0000, 0000 1110, 0010 1111, 1111 1111)
虽然CIDR并没有在32位IP中明确指出若干位作为子网,但是分配到CIDR地址块的单位,仍然可以进行子网划分,只不过子网的前缀更长一点。
根据第二个特点我们可以看出,一个CIDR块中有很多地址,路由表就可以利用这些地址块查找目标网络,这种聚合就是:路由聚合,也称构成超网。
最长前缀匹配
使用CIDR的情况下,路由表就成了:网络前缀+下一跳地址。这时查找路由表的时候可能不知一个匹配结果,那么就从中选择最长的一个。很明显这种方法会让查找变得复杂,因此使用二叉线索查找路由表。
4.2.5 网际控制报文协议 ICMP
为了更有效地转发IP数据报和提高交付成功的机会,使用该协议,允许主机或者路由器报告差错情况和提供有关异常情况的报告。ICMP装在IP数据报中,所以他不是高层协议,是IP层协议。
应用举例:PING(Packet InterNet Groper)分组网间探测,测试两个主机之间的连通性。
4.3 路由选择协议
互联网采用分层次的路由选择协议,取决于:1、互联网的规模非常大;2、许多单位不愿外界了解自己单位网络的布局细节。
互联网有两大类路由选择协议:内部网关协议、外部网关协议
4.3.1 内部网关协议(RIP)
分布式、基于距离向量的路由选择协议,每个路由器维护它自己到每一个网络的距离记录。
- 路由器与直接相连的网络的距离定义为1
- 到非直接相连的网络的距离为所经过的路由器数加1(距离也称:跳数)
- 距离等于16时不可达(因此RIP只用于小型互联网)
距离向量算法:
-
接收到相邻路由器X发送的一个RIP报文
-
把报文中每一项的下一跳地址都改成X,距离字段全部加1,目的网络字段不动(目的网络,下一跳地址,距离)
-
修改后循环下列操作
- 如果项目中的目的网络不在路由表中,就把这个加进去
否则(目的网络在路由表中)
-
若下一跳给出的路由器是X,则把收到的替换原有的
否则(在路由表、且下一跳地址不是X)
- 那就比较长短,短了更新,长了不管
-
三分钟还没收到更新,就把相邻的标记为不可达
好消息传得快,坏消息传的慢
4.3.2 内部网关协议(OSPF)
开放最短路径优先
- 泛洪法向本自洽系统中所有的路由器发送消息
- 发送的就是与本路由器相邻的所有路由器的链路状态(与哪些路由器相邻,以及该链路的“度量”)
- 链路状态发生变化时,路由器才用泛洪法向所有的路由器发送信息。
4.3.3 外部网关协议(BGP)
4.4 IPV6
仍支持无连接传送,将协议数据单元PDU称为分组,主要变化:
- 更大的地址空间,增大到了128位
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 支持即插即用(不需要DHCP)
- 支持资源的预分配
- IPV6的首部改为8字节对齐
基本首部+有效载荷
IPV4向IPV6过渡:双协议栈、使用隧道技术
4.5 IP多播
目的:更好的一对多通信。D类IP就是多播地址。多播地址只能用于目的,不用于源点
第五章 运输层
运输层为相互通信的应用进程提供逻辑通信
5.1 协议概述
有个很重要的功能:复用与分用。复用:发送方不同的进程可以使用相同的运输层协议传输数据(当然要加上对应的首部),分用:接收方的运输层在剥去报文的首部后能把这些数据交付给目的进程。当然,IP层也有复用和分用的功能。
运输层提供应用进程之间的逻辑通信。
网络层和运输层的区别:
第一个区别:网络层为主机之间提供通信服务,运输层在网络层的基础之上为应用进程之间的通信提供服务。
第二个区别:运输层要对收到的报文进行差错检测。IP层只检查首部。
问题来咯,IP层分用可以根据上层运输层使用的协议不同(TCP/UDP)进行分用,那么运输层如何向上层实现分用呢? 是端口。给应用层的应用赋予一个非常明确的标志。虽然进程的创建与撤销是动态的,那么就可以在应用层和传输层搞一些“门”,作为通信的抽象终点。正式名称是协议端口。主机操作系统提供了接口机制,可以让进程通过这个机制找到端口。
所以,主机之间进程的通信就需要IP+端口号,端口号分为服务器端使用的端口号(熟知端口号、全球通用端口号)和客户端使用的端口号,
5.2 UDP
在IP的基础上增加了两个功能:复用分用+差错检验
主要特点:无连接、尽最大努力交付、面向报文、没有拥塞控制、支持一对一一对多多对一多对多的通信、首部开销小(8字节)
检验和:
- 先把全0放入检验和
- 添加伪首部(源IP,目的IP,1,1,UDP长度),16位一组对齐,
- 最后数据部分凑不够16位的补齐0
- 二进制反码运算求和,再求反码,然后把结果写入
接收方收到之后,添加伪首部,按照二进制反码继续求,结果为全1说明没错。
5.3 TCP
特点:面向连接、一条TCP连接只能有俩端点(一对一)、可靠交付、全双工通信、面向字节流。
连接的端点是:套接字(插口)