一、计算机网络概述
1. 计算机网络向用户提供的两个最重要的功能:连通性、共享
2. 因特网发展的三个阶段:
- 第一阶段:从单个网络 ARPANET 向互联网发展的过程。1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
- 第二阶段:建成三级结构的因特网:主干网、地区网和校园网(或企业网)。
- 第三阶段:形成多层次的ISP(Internet Service Provider 因特网服务提供者)结构的因特网
3. internet 和 Internet 的区别:
- internet(i小写):通用名词,泛指由多个计算机网络互连而成的网络。(网络的网络)
- Internet(I大写):专用名词,指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET。
互联网现在采用存储转发的分组交换技术以及三层ISP结构。
4. 互联网的组成
- 边缘部分:有所有连接在因特网上的主机组成。这部分由用户直接使用,用来进行通信和资源共享。
- 核心部分 : 由大量的网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
5. 处于边缘部分的用户通信方式
- 客户服务器方式(C/S方式):即Client/Server方式。(客户是服务的请求方,服务器是服务的提供方)
- 对等方式(P2P方式):即Peer-to-Peer方式。(对等连接中的每一个主机既是客户又同时是服务器)
6. 核心部分的交换技术
电路交换 的三个阶段:建立连接——通话——释放连接
在通话时,两用户之间占用端到端的资源,而由于绝大部分时间线路都是空闲的,所以线路的传输速率往往很低。
分组交换 的组成:报文、首部、分组。采用存储转发技术,即收到分组——存储分组——查询路由(路由选择协议)——转发分组。优点:高效、灵活、迅速、可靠。缺点:时延、开销。关键构件:路由器。
报文交换 整个报文传送到相邻结点,全部存储下来之后查询转发表,转发到下一个结点。
7. 计算机网络的类别
- 按通信距离分:广域网、局域网、城域网
- 按信息交换方式分:电路交换网、分组交换网、总和交换网
- 按网络拓扑结构分:星型网、树型网、环型网、总线网
- 按通信介质分:双绞线网、同轴电缆网、光纤网、卫星网
- 按传输带宽分:基带网、宽带网
- 按使用范围分:公用网、专用网
- 按速率分:高速网、中速网、低速网
- 按通信传播方式分:广播式、点到点式
8. 性能指标:速率、带宽、吞吐量、时延
- 速率:指连接在计算机网络上的主机在数字信道上传送数据的速率。b/s(bps) 如100M以太网,实际是指100Mb/s。往往是指额定速率或标称速率。
- 带宽:数字信道所能传送的最高速率。b/s(bps)
- 吞吐量:单位时间内通过某个网络(或信道、接口)的实际数据量。其绝对上限值等于带宽。
- 时延:数据(一个报文或分组、甚至比特)从网络(或链路)的一段传送到另一端的时间,也称延迟。
① 发送时延:主机或路由器发送数据帧所需的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。也成传输时延。
发送时延 = 数据帧长度(b) / 信道带宽(b/s)
② 传播时延:电磁波在信道中传输一定距离所需划分的时间。
传播时间 = 信道长度(m) / 传输速率(m/s)
③ 处理时延:主机或路由器处理收到的分组所花费的时间。
④ 排队时延:分组在输入队列中等待处理的时间加上其在输出队列中等待转发的时间。
综上:总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。
注:对于高速网络链路,提高的是发送速率而不是传播速率。
- 时延带宽积:传播时延 * 带宽。表示链路的容量。
- 往返时间RTT:从发送方发送数据开始,到发送发收到接收方的确认为止,所花费的时间。
- 利用率:某信道有百分之几是被利用的(有数据通过)。而信道或网络利用率过高会产生非常大的时延。
当前时延=空闲时时延/(1-利用率)
9. 计算机网络的体系结构
网络协议:简称协议,是为了进行网络中的数据交换而建立的规则、标准或约定。
网络协议的三要素
- 语法:数据与控制信息的结构或格式
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应
- 同步:事件实现顺序的详细说明
体系结构(architecture)是计算机网络的各层及其协议的集合
五层协议的体系结构
- 物理层:物理层的任务就是透明地传送比特流。(注意:传递信息的物理媒体,如双绞线、同轴电缆、光缆等,是在物理层的下面,当做第0 层。)物理层还要确定连接电缆插头的定义及连接法。
- 数据链路层:将网络层交下来的IP数据报组装成帧,在两个相邻结点间的链路上”透明“的传送以帧为单位的数据。每一帧包括数据和必要的控制信息。在收到数据时,控制信息使收到端直到哪个帧从哪个比特开始和结束。
- 网络层:选择合适的路由,使发送站的运输层所传下来的分组能够正确无误地按照地址找到目的站,并交付给目的站的运输层。网络层将运输层产生的报文或用户数据报封装成分组(IP数据报)或包进行传送。
- 运输层:向上一层的进行通信的两个进程之间提供一个可靠的端对端服务,使它们看不见运输层以下的数据通信的细节。(TCP、UDP)
- 应用层:直接为用户的应用进程提供服务(HTTP、FTP等)
OSI体系结构:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层
TCP/IP体系结构:网络接口层、网际层IP、运输层、应用层
二、物理层
1. 物理层下的传输媒体
(1)双绞线(局域网中的主流传输媒体)
(2) 同轴电缆
- 细缆(适合短距离,安装容易,造价低)
- 粗缆(适合较大局域网,布线距离长,可靠性好)
(3) 光纤(有很好的抗电磁干扰特性和很宽的频带,主要用在环形网中)
- 多模光纤(用发光二极管,便宜,定向性较差)
- 单模光纤(注入激光二极管,定向性好)
2. 关于信道的几个基本概念
- 通信方式: 单向通信(单工)、双向交替通信(半双工)、双向同时通信(全双工)
- 基带信号:来自信源的信号。
- 带通信号:经过载波调制后的信号。
- 基本带通调制方法:调幅(AM)、调频(FM)、调相(PM)
3. 信道复用技术
- (1) 频分复用FDM (Frequency Division Multiplexing):所有用户在同样的时间占用不同的频率带宽资源。
- (2) 时分复用TDM(Time Division Multiplexing)则是将时间划分为一段段等长的时分复用帧(TDM 帧)。
- (3) 统计时分复用 STDM(Statistic TDM)是改进的时分复用,明显地提高信道的利用率。
- (4) 波分复用 WDM (Wavelength Division Multiplexing):光的频分复用
- (5) 码分复用 CDM (Code Division Multiplexing) 用户使用经过特殊挑选的不同码型,在同一时间使用同样的频带通信。
常用的名词是码分多址 CDMA:有很强的抗干扰能力。
三、数据链路层
1. 数据链路层使用的信道主要两种类型:点对点信道、广播信道
2. 使用点对点信道的数据链路层
- 链路 :从一个结点到相邻结点的一段物理线路
- 数据链路 :把实现这些协议的硬件和软件加载链路上
现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
3. 三个基本问题:
封装成帧:就是在一段数据的前后分别添加首部(帧开始符SOH 01)和尾部(帧结束符EOT 04),然后就构成了一个帧。(数据部分<=长度限制MTU)首部和尾部的一个重要作用就是进行帧定界。
帧定界是分组交换的必然要求。
透明传输:为了达到透明传输(即传输的数据部分不会因为包含SOH和EOT而出错),在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制1B)
透明传输避免消息符号与帧定界符号相混淆。
差错检测:现实通信链路中比特在传输中会产生差错,传输错误的比特占比称为误码率BER,为了保证可靠性,通常通过循环冗余检验CRC来做差错检测。
差错检测防止无效数据帧浪费后续路由上的传输和处理资源。
4. 点对点协议 PPP
(1)PPP协议的组成: IP 数据报封装到串行链路的方法、链路控制协议 LCP 、网络控制协议 NCP
(2)PPP协议的帧格式
首部:
首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。
首部中的地址字段A规定为0xFF(即11111111)。
首部中的控制字段C规定为0x03(即00000011)。
首部中的2字节的协议字段:
-
当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。
-
当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。
-
当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。
尾部:
尾部中的第一个字段(2个字节)是使用CRC的帧检验序列FCS。
尾部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的结束。
5. 透明传输的实现方法
当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。
字节填充——PPP使用异步传输
当 PPP 用在异步传输时,就使用一种特殊的字符填充法:将每一个 0x7E字节变为(0x7D, 0x5E),0x7D转变成为(0x7D, 0x5D)。ASCII 码的控制字符(即数值小于 0x20 的字符),则在前面要加入0x7D,同时将该字符的编码加以改变。
零比特填充——PPP使用同步传输
只要发现有5个连续的1,则立即填入一个0
6. PPP 协议的工作状态:
链路静止-建立物理层-链路建立-pc发LCP-NCP分配IP地址-链路打开,网络层建立。(释放时倒过来)
7. 使用广播信道的数据链路层
广播信道是一种一对多的通信,局域网使用的就是广播信道。局域网的数据链路层(局域网的数据链路层被拆分为了两个子层):
- 逻辑链路控制LLC子层:与传输媒体无关
- 媒体接入控制MAC子层:和局域网都对LLC子层来说是透明的
8. CSMA/CD 协议
以太网采用CSMA/CD协议的方式来协调总线上各计算机的工作。在使用CSMA/CD协议的时候,一个站不可能同时进行发送和接收,因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工)。
下面是CSMA/CD协议的要点:
- 多点接入:计算机以多点接入(动态媒体接入控制)的方式连接在一根总线上。
- 载波监听 :”发送前先监听”,即每一个站在发送数据前先要检测一下总线是否有其他站在发送数据,如有则暂时不要发送数据,要等到信道为空闲。
- 碰撞检测:”边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
把总线上的单程端到端传播时延记为τ,A 发送数据后,最迟要经过2τ才能知道自己发送的数据和其他站发送的数据有没有发生碰撞。
8. 以太网的MAC层
MAC地址:也称做硬件地址或物理地址,实际上就是适配器地址或适配器标识符EUI-48。高位24位:厂家,低位24位由厂家自行指派
MAC帧的格式
常用的以太网MAC帧格式有两种标准 : DIX Ethernet V2 标准IEEE 的 802.3 标准。V2使用较多,如图:
以太网V2的MAC帧较为简单,有五个字段组成。
前两个字段分别为6字长的目标地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。后面数据字段46~1500字节,FCS字段4个字节。
9. 扩展的以太网
集线器:
-
工作在物理层,不进行碰撞检测。
-
不具备过滤流量等智能功能。增大了冲突域,降低了网络的性能。
-
使用集线器的以太网在逻辑上仍是一个总线网。
优点:
-
使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信;
-
扩大了以太网覆盖的地理范围。
缺点:
-
碰撞域增大了,但总的吞吐量并未提高。
-
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
网桥:
-
在数据链路层使用。对收到的帧根据其MAC帧的目的地址进行转发和过滤。
-
网桥在转发帧之前必须执行CSMA/CD算法:若在发送过程中出现碰撞,必须停止发送并进行退避。
优点:
-
过滤通信量,扩大物理范围,提高可靠性,可互连不同物理层、不同MAC子层和不同速率的局域网。
缺点:
-
存储转发增加了时延。在MAC子层没有流量控制的功能。
-
具有不同MAC子层的网段桥接在一起时时延更大。
-
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多广播信息而产生网络拥塞。
网桥/交换机将不同LAN段连在一起
-
MAC地址表是网桥通过逆向地址学习自动建立、更新和维护的。
自学习:
-
查找转发表中与收到帧的源地址有无区配的项目
-
若没有,就在转发表中增加一个项目
-
若有,查看登记时间,如果超市,刷新
-
生成树协议STP:避免产生转发的帧在网络中不断地兜圈子
转发帧:
-
查找转发表中与收到帧的目的地址有无相匹配的项目
-
若没有,则通过所有其他接口进行转发
-
若有,则按转发表接口进行转发
-
若转发表中给出的接口是该帧进入网桥的接口,则丢弃该帧
虚拟局域网VLAN,实现:交换机(或网桥)
一个网络中无论其中有多少台主机或者服务器,如果全部接在一个集线器上,那么该网络的最大总吞吐量就是这个集线器的最大值。
如果各接口全部与交换机相连,那么总的最大吞吐量就是每个链路最大值的总和。
四、网络层
1. 网际协议IP是TCP/IP体系中两个最重要的协议之一,也是最重要的因特网标准协议之一。与IP协议配套是用的四个协议:
-
地址解析协议ARP:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
-
逆地址解析协议RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
-
网际控制报文协议ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会
-
网际组管理协议IGMP::用于探寻、转发本局域网内的组成员关系。
2. 虚拟互连网络
因为没有一种单一的网络能够适应所有的用户需求,所以网络互连也变得困难,所以需要一些中间设备:
-
物理层中间设备:转发器(repeater)
-
数据链路层中间设备:网桥或桥接器(bridge)
-
网络层中间设备:路由器(router)
-
网络层以上的中间设备:网关(gateway)
3. 分类的IP地址
IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。由因特网名字与号码指派公司ICANN进行分配。
IP地址编制方法的三个阶段:分类的IP地址、子网的划分、构成超网
每一类地址都由 网络号 net-id和 主机号 host-id组成
主机号中全0表示网络地址,全1表示广播地址
-
A类:由1字节的网络地址和3字节主机地址组成,
地址范围1.0.0.0到126.255.255.255
网络地址的最高位必须是“0“,可指派的网络数为128-2,减2的原因是0.0.0.0对应“本网络”,另外一个是127.0.0.1是本地软件的回环地址,用于测试自己电脑IP地址是否可用。
最大主机数为2563-2=16777214台,减2的原因是全0的主机号字段代表该IP地址是"本主机“,全1表示”所有的“,表示该网络上的所有主机
-
B类:由2字节的网络地址和2字节主机地址组成
地址范围128.0.0.0-191.255.255.255
网络地址的最高位必须是“10”,可指派的网络数为 214 -1,因为最高位为10,所以不存在全0全1的情况,但是B类网络地址128.0.0.0是不指派的,可指派最小网络地址是128.1.0.0
最大主机数为2562-2=65534台,减2同样是全0全1情况。
-
C类:由3字节的网络地址和1字节主机地址组成
地址范围192.0.0.0-223.255.255.255
网络地址的最高位必须是“110”,可指派的网络数为221-1,192.0.0.0不指派,最小可指派网络地址是192.0.1.0
最大主机数为256-2=254台,减2同样是全0全1情况。
D类是多播地址,“lll0”开始
E类地址保留为今后使用,“llll0”开头
4. IP地址与硬件地址
-
硬件地址是数据链路层和物理层使用的地址
-
IP地址是网络层和以上各层使用的地址,是一种逻辑地址
IP地址放在IP数据报的首部,而硬件地址放在MAC帧的首部。当数据报放入数据链路层的MAC帧中后,整个IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。
5. 地址解析协议ARP
ARP是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。
6. IP数据报格式
一个IP数据报由首部(20 字节+可选字段)和数据两部分组成
7. 分组转发
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
(6) 报告转发分组出错。
8. 划分子网
两级IP地址缺陷:IP 地址空间的利用率有时很低;给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏;两级的 IP 地址不够灵活
划分子网的方法是从主机号借用若干个位作为子网号。
路由器在收到IP数据报后,按目标网络号和子网号定位目标子网
子网掩码是一个网络或一个子网的重要属性
9. 构造超网(无分类编址CIDR)
CIDR(无分类域间路由选择)的主要特点:
CIDR消除了传统的A、B、C类地址以及划分子网的概念,用网络前缀代替网络号和子网号,后面的部分指明主机。因此,CIDR使IP地址从三级编址(使用子网掩码),又回到了两级编址,但这已是无分类的两级编址。
CIDR把网络前缀相同的连续的IP地址组成一个”CIDR地址块”只要知道CIDR地址块中的任何一个地址,就可以知道这地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
地址掩码:是一连串的1和0组成,而1的个数救赎网络前缀长度。在斜线记法中。斜线后面的数字就是地址掩码中1的个数。
构成超网:由于一个CIDR地址块中含有很多地址,所以在路由表中就利用CIDR地址块来查找目标网络,这种地址的聚合常称为路由聚合,也称构成超网。
10. 网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP报文的种类:ICMP差错报告报文、ICMP询问报文
ICMP 差错报告报文共有 5 种:终点不可达、源点抑制(Source quench)、时间超过、参数问题、改变路由(重定向)(Redirect)
ICMP 询问报文有2种:回送请求和回答报文、时间戳请求和回答报文
11. 路由选择协议
两大类路由选择协议:
-
内部网关协议 IGP:一个自治系统内部使用的路由选择协议。有多种协议,如 RIP 和OSPF 协议。
-
外部网关协议EGP:一个自治系统的边界,将路由选择信息传递到另一个自治系统中。目前使用的就是BGP
12. RIP协议的优缺点:
RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
RIP 协议最大的优点就是实现简单,开销较小。
RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
13. RIP是一种分布式的基于距离向量的路由选择协议,其主要特点:
(1)仅和相邻路由器交换信息。
(2)按固定的时间间隔交换路由信息,例如,每隔30秒。
OSPF最主要的特征就是使用分布式的链路状态协议,其主要特点:
(1)使用洪泛法向本自治系统中所有路由器发送信息。
(2)发送的信息是与本路由器相邻的所有路由器的链路状态。
(3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
BGP是不同自治系统的路由器之间交换路由信息的协议,它采用路径向量路由选择协议,其主要特点:
(1)自治系统AS之间的路由选择必须考虑有关策略。
(2)BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。
五、运输层
5.1 运输层协议概述
运输层功能
运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
运输层还要对收到的报文进行差错检测
运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP
运输层的两个主要协议
TCP/IP 的运输层有两个不同的协议:
用户数据报协议 UDP(User Datagram Protocol)
传输控制协议 TCP(Transmission Control Protocol)
UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
运输层的端口
TCP/IP的运输层的端口用一个 16 位端口号进行标志
端口号只具备本地意义,即端口号只是为了标志本计算机应用层中的各进程。
客户发起通讯请求时,必须先知道对方服务器的IP地址和端口号,运输层的端口号分为下面三大类:
熟知端口号,数值一般为 0~1023。
一些常用的数值端口号:
FTP 21
LELNET 23
SMTP 25
DNS 53
TFTP 69
HTTP 80
SNMP 161
SNMP(trap) 162
登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。
5.2 用户数据报协议 UDP
UDP的主要特点:
UDP 是无连接的,即发送数据之前不需要建立连接。
UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
UDP 是面向报文的
UDP 没有拥塞控制,很适合多媒体通信的要求。
UDP 支持一对一、一对多、多对一和多对多的交互通信
UDP 的首部开销小,只有 8 个字节
5.3 传输控制协议 TCP
TCP的主要特点:
TCP 是面向连接的运输层协议
每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)
TCP 提供可靠交付的服务
TCP 提供全双工通信
面向字节流