一、概述
计算机网络的功能
数据通信
资源共享
分布式处理
提高可靠性
负载均衡
计算机网络采用的两类通信方式:客户-服务器方式(C/S)和对等连接方式(P2P)
电路交换特点:
通信前要先建立连接,通信完毕后释放连接。一定要有三个阶段:建立连接、通信、释放连接。
通信过程中,通信双方自始至终占用着所使用的物理信道。
分组交换特点:
分解交换采用存储转发技术,把报文划分为几个分组后再进行传送,没有建立连接和释放连接阶段。
报文交换特点
报文交换也采用存储转发技术,但报文交换不再把报文分隔为更小的分组,而是把整个报文在网络的结点中存储下来,然后再转发出去。
计算机网络的分类
按分布范围分类
广域网(WAN)
城域网(MAN)
局域网(LAN)
个人区域网(PAN)
按网络的使用者分类
公用网(public network)
专用网(private network)
按交换技术分类
电路交换网络
报文交换网络
分组交换网络
计算机网络的性能
1、速率
速率是计算机网络中最重要的一个性能指标,指的是数据的传送速率,它也称为数据率 (data rate) 或比特率 (bit rate)。
速率的单位是 bit/s,或 kbit/s、Mbit/s、 Gbit/s等。
速率往往是指额定速率或标称速率,非实际运行速率。
2、带宽
在计算机网络中,带宽用来表示网络中某通道传送数据的能力。表示在单位时间内网络中的某信道所能通过的“最高数据率”。单位是 bit/s,即 “比特每秒”。
3、吞吐量
吞吐量 (throughput) 表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或网络的额定速率的限制。
4、时延
时延 (delay 或 latency) 是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
有时也称为延迟或迟延。
网络中的时延由以下几个不同的部分组成:
发送时延
也称为传输时延。
发送数据时,数据帧从结点进入到传输媒体所需要的时间。
也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延
电磁波在信道中需要传播一定的距离而花费的时间。
发送时延与传播时延有本质上的不同。
信号发送速率和信号在信道上的传播速率是完全不同的概念。
处理时延
主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。
排队时延
分组在路由器输入输出队列中排队等待处理所经历的时延。
排队时延的长短往往取决于网络中当时的通信量。
计算机网络体系结构
网络协议主要的三个要素
1)、语法
即数据与控制信息的结构或格式
2)、语义
即需要发出何种控制信息,完成何种动作以及做出何种相应
3)、同步
即事件实现顺序的详细说明
协议和服务关系
1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。
2、协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。
网络结构分层好处
各层之间是独立的。灵活性好。结构上可分割开。易于实现和维护。能促进标准化工作。
网络分层缺点
降低效率。有些功能会在不同的层次中重复出现,因而产生了额外开销。
3、具有五层协议的体系结构
OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。
TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层。
但最下面的网络接口层并没有具体内容。
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
五层协议:应用层、运输层、网络层、数据链路层、物理层。
运输层最重要的协议是TCP和UDP协议,而网络层最重要的协议是IP协议。
习题
1-10
二、物理层
通信的三种基本方式
单向通信:又称单工通信,即一个方向的通信没有反方向。如无线广播或有线电视广播。
双向交替通信:又称半双工通信,即通信双方都可以发送信息,但不能同时发送(当然也就不能同时接受)。步话机,早期集线器。
双向同时通信:又称全双工通信,即通信的双方都可以同时发送和接受信息。
物理层特点
物理层要解决的问题,物理层的主要特点?
物理层要解决的主要问题:
物理层考虑的是怎样才能连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的协议和服务。
物理层的主要特点:
机械特性
电气特性
功能特性
过程特性
传输媒体
可分为两大类
导引型传输媒体(双绞线、同轴电缆、光纤)
非导引型传输媒体(无线、微波、卫星通信)
信道复用技术
为什么使用信道复用技术?常用的信道复用技术有哪些?
为了通过共享信道、最大限度提高信道利用率。频分、时分、码分、波分。
码分复用CDM
码分多址CDMA
令向量 S 表示站 S 的码片向量,令 T 表示其他任何站的码片向量。
两个不同站的码片序列正交,就是向量 S 和T 的规格化内积 (inner product) 等于 0:
任何一个码片向量和该码片向量自己的规格化内积都是 1 。
一个码片向量和该码片反码的向量的规格化内积值是 –1。
2-16
宽带接入技术
ADSL技术
非对称数字用户线ADSL
光纤同轴混合网HFC
试比较ADSL、HFC以及FTTx接入技术的优缺点?
答:使用ADSL技术最大的好处就是可以利用现有电话网中的用户线,不需要重新布线。成本低,易实现。缺点就是对用户线的质量有较高的要求,如果用户住宅距离电话交换局较远,或线路的噪声较大,那么宽带接入的速率就会适当地降低。
HFC网的最大的优点具有很宽的频带,并且能够利用已经有相当大的覆盖面的有线电视网。缺点是必须对现有的单向传输的有线电缆进行改造,变为可双向通信的电缆。FTTx(光纤到……)光纤接入是解决宽带接入最理想的方案,可提供最好的带宽和质量、但现阶段线路和工程成本太大。
奈氏准则和香农公式
比特/s和码元/s的关系
比特/s是信息传输速率的单位码元传输速率也称为调制速率、波形速率或符号速率。一个码元不一定对应于一个比特。在二进制编码时一个码元对应一个比特,根据编码的不同,一个码元可以对应于几个比特,但也可以是几个码元对应于一个比特。
从概念上讲,限制码元在信道上的传输速率的因素有以下两个:
信道能够通过的频率范围
信噪比
1924 年,奈奎斯特 (Nyquist) 就推导出了著名的奈氏准则。他给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。
奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
信噪比就是信号的平均功率和噪声的平均功率之比。常记为S/N,并用分贝 (dB) 作为度量单位。即:
信噪比(dB) = 10 log10(S/N ) (dB)
例如,当S/N=10时,信噪比为10dB,而当S/N=1000时,信噪比为30dB。
信噪比是否可以任意提高?
在实际的传输环境中,信噪比不可能做到任意大。一方面,我们的信号功率是受限的(经济问题、器件问题、材料的绝缘问题等等),而任何电子设备的噪声也不能做到任意小
(任何电子设备都有其固有噪声),因此在实际传输环境中,信噪比不可能做到任意大。
1984年,香农 (Shannon) 用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率(香农公式)。
信道的极限信息传输速率 C 可表达为:
C = W log2(1+S/N) (bit/s)
其中:W 为信道的带宽(以 Hz 为单位);
S 为信道内所传信号的平均功率;
N 为信道内部的高斯噪声功率。
香农公式表明
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少
2-07
2-09
三、数据链路层
数据链路(即逻辑链路)与链路(即物理链路)有何区别? “电路接通了”与”数据链路接通了”的区别何在?
链路(即物理链路)是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)。
“电路接通了”表示链路两端的结点交换机已经开机,物理连接已经能够传送比特流了,但是,数据传输并不可靠,在物理连接基础上,再建立数据链路连接,才是“数据链路接通了”,此后,由于数据链路连接具有检测、确认和重传功能,才使不太可靠的物理链路变成可靠的数据链路,进行可靠的数据传输。当数据链路断开连接时,物理电路连接不一定跟着断开连接。
数据链路层使用的信道主要有一下两种类型
(1)点对点信道
(2)广播信道
三个基本问题
数据链路层传送的协议数据单位是帧,三个基本问题是封装成帧、透明传输和差错检查
循环冗余校验CRC
PPP协议
PPP协议特点
简单 —— 这是首要的要求。
封装成帧 —— 必须规定特殊的字符作为帧定界符。
透明性 —— 必须保证数据传输的透明性。
多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
多种类型链路 —— 能够在多种类型的链路上运行。
差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
PPP协议不使用帧编号,因为帧的编号是为了出错时可以有效地重传,而PPP并不需要实现可靠传输。
PPP适用于线路质量并不太差的情况下。如果通信线路太差,传输就会频频出错。但PPP又没有编号和确认机制,这样就必须靠上层的协议才能保证数据传输的正确无误。这样就使数据的传输效率降低。
局域网
局域网的主要特点是什么?为什么局域网采用广播通信方式而广域网不采用呢?
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。在局域网刚刚出现时,局域网比广域网具有更高的数据率,更低的时延和更小的误码率。但随着光纤技术在广域网中普遍使用,现在广域网也具有很高的数据率和很低的误码率。
局域网的地理范围较小,且为一个单位所拥有,采用广播通信方式十分简单方便。但广域网地理范围很大,如果采用广播通信方式势必造成通信资源的极大浪费,因此广域网不采用广播通信方式。
网络适配器
网络适配器的作用是什么?网络适配器工作在哪一层?
适配器(即网卡)来实现数据链路层和物理层这两层的协议的硬件和软件网络适配器工作在TCP/IP协议中的网络接口层(OSI中的数据链路层和物理层)
以太网交换机
自学习功能
3-30
某学院的以太网交换机有三个接口分别和学院三个系的以太网相连,另外三个接口分别和电子邮件服务器、万维网服务器以及一个连接互联网的路由器相连。图中的ABC都是100Mbit/s以太网交换机。假定所有的链路的速率都是100Mbit/s,并且图中的9台主机中的任何一个都可以和任何一个服务器或主机通信。试计算这9台主机和两个服务器产生的总的吞吐量的最大值。为什么?
答:这里的9台主机和两个服务器都工作时的总吞吐量是900+200=1100Mbit/s。三个系各有一台主机分别访问两个服务器和通过路由器上网。其他主机在系内通信。
3-31假定所有的链路的速率都是100Mbit/s,但三个系的以太网交换机都换成100Mbit/s的集线器。试计算这9台主机和两个服务器产生的总的吞吐量的最大值。为什么?
答:这里的每个系是一个碰撞域,其最大吞吐量为100 Mbit/s,总吞吐量是300+200=500 Mbit/s。
3-32假定所有的链路的速率都是100Mbit/s,但所有的以太网交换机都换成100Mbit/s的集线器。试计算这9台主机和两个服务器产生的总的吞吐量的最大值。为什么?
答:现在整个系统是一个碰撞域,因此其最大吞吐量为100 Mbit/s。
3-34
有两台主机A和B接在800m长的电缆线的两端,并在t=0时各自向对方发送一个帧,长度为1500bit(包括首部和前同步码)。假定在A和B之间有4个转发器,在转发帧时会产生20比特的时延。设传输速率为100 Mbit/s,而CSMA/CD的退避时间是随机数r倍的争用期,争用期为512bit,在发生第一次碰撞后,在退避时A选择r=0而B选择r=1。忽略发生碰撞后的人为干扰信号和帧间最小间隔。
(1)设信号的传播速率是2×108m/s。试计算从A到B(包括4个转发器)的传播时延。
(2)在什么时间(以秒为单位)B完全收到了A发送的帧?
(3)现在假定只有A发送帧,帧长仍为1500bit,但4个转发器都用交换机来代替。交换机在进行存储转发时还要产生额外的20bit的处理时延。在什么时间B完全收到了A发送的帧?
答:
(1)从A到B(包括4个转发器)的传播时延
=800m/(2×108m/s)+4×20bit/(100×106bit/s)=4.8µs
(2)
在t=2.4us时,电缆中间发生碰撞
在t=4.8µs时,A和B都检测出碰撞。A立即停止发送数据并等待一个端到端的传播时间4.8us,然后A退避零个争用期故直接发送数据,当A最后一个数据到达B时总共花费4.8us(AB检测到碰撞)+4.8us(等待信道清空)+1500/(100*10^6)(传输帧的时间)+4.8us(传输时延)=29.4us
(3)数据到达交换机要进行存储转发,即每个交换机发送一次数据,加上初始端的发送一共发送了五次数据,即发送时延为5*1500/(100*10^6)=75us 加上4.8us的传播时延,所以79.8us后B才能完全受到A发送的帧
四、网络层
网络层提供的两种服务
1、面向连接服务(或虚电路服务)
2、无连接服务(或数据报服务)
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺,也就是说,所传送的分组可能出错、丢失、重复和失序(即不按序到达终点)
网络层协议
网际协议IP:使用IP协议就可以把互连以后的计算机网络看成是一个虚拟互连网络,使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。
地址解析协议ARP:用来把一个机器(主机或路由器)的IP地址转换为相应的物理地址(或硬件地址)
逆地址解析协议RARP:和ARP相反,用来把一个机器(主机或路由器)的物理地址(或硬件地址)转换为相应的IP地址。
网际控制报文协议ICMP:用来使主机或路由器报告差错情况或提供有关异常情况的报告,这样就可以更有效地转发IP数据报和提高交付成功的机会。
IP地址
A类地址:网络字段号为1字节,最前面的1位是0
B类地址:网络字段号为2字节,最前面的2位是10
C类地址:网络字段号为3字节,最前面的3位是110
D类地址:用于多播,最前面的4位是1110
E类地址:保留今后使用,最前面的4位是1111
IP地址特点:
(1)每一个IP地址都由网络号和主机号两部分组成。从这个意义上说,IP地址是一种分等级的地址结构。
(2)实际上IP地址是一种标记一个主机(或路由器)和一条链路的接口。换言之,IP地址并不仅仅指明一个主机,还指明了主机所连接到的网络。
(3)按照互联网的观点,一个网络是指具有相同网络号net-id的主机的机会,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网具有同样的网络号。具有不同网络号的局域网必须使用路由器进行互连。
(4)在IP地址中,所有分配到网络号的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。
IP地址与硬件地址(MAC地址)的区别
物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
子网掩码
默认子网掩码中1的位置和IP地址中的网络号字段net-id正好对应
注意:根据之前的RFC 950文档子网号不能全为1或0,但随着无分类域间路由选择CIDR的广泛使用,现在全1和全0的子网号也可以使用了。
4-09
(1)子网掩码为255.255.255.0代表什么意思?
答:有三种含义:
其一是一个A类网的子网掩码,对于A类网络的IP地址,前8位表示网络号,后24位表示主机号,使用子网掩码255.255.255.0表示前8位为网络号,中间16位用于子网段的划分,最后8位为主机号。
第二种情况为一个B类网,对于B类网络的IP地址,前16位表示网络号,后16位表示主机号,使用子网掩码255.255.255.0表示前16位为网络号,中间8位用于子网段的划分,最后8位为主机号。
第三种情况为一个C类网,这个子网掩码为C类网的默认子网掩码。
(2)一网络的现在掩码为255.255.255.248,问该网络能够连接多少个主机?
答:255.255.255.248即11111111.11111111.11111111.11111000。
掩码位数29,每一个子网上的主机为(2^3)=8台
理论上该网络能够连接8个主机,但是扣除全1和全0的情况后,该网络实际上能够连接6个主机。
(3)一A类网络和一B网络的子网号subnet-id分别为16个1和8个1,问这两个子网掩码有何不同?
答:A类网络:11111111 11111111 11111111 00000000
给定子网号(16位“1”)则子网掩码为255.255.255.0
B类网络:11111111 11111111 11111111 00000000
给定子网号(8位“1”)则子网掩码为255.255.255.0
可见这两个网络的子网掩码一样,但它们的子网数目不同。
(4)一个B类地址的子网掩码是255.255.240.0。试问在其中每一个子网上的主机数最多是多少?
答:IP地址的第3个字节是(240)10=(128+64+32+16)10=(11110000)2
B类地址的子网掩码是:11111111.11111111.11110000.00000000
主机号的位数为4+8=12,因此,最大主机数为:2^12-2=4096-2=4094个。
(5)一A类网络的子网掩码为255.255.0.255;它是否为一个有效的子网掩码?
答:A类网络的子网掩码为11111111 11111111 00000000 11111111
他是一个有效的子网掩码,但不推荐这样使用,因为子网中的1不是连续的。
(6)某个IP地址的十六进制表示C2.2F.14.81,试将其转化为点分十进制的形式。这个地址是哪一类IP地址?
答: C2 2F 14 81=(12*16+2).(2*16+15).(16+4).(8*16+1)=194.47.20.129
C2 2F 14 81=11000010.00101111.00010100.10000001
前3位是110,所以这个地址是C类地址。
(7)C类网络使用子网掩码有无实际意义?为什么?
答:有实际意义。C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号。如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数量减少。
4-20
设某路由器建立了如下路由表:
目的网络 子网掩码 下一跳
128.96.39.0 255.255.255.128 接口m0
128.96.39.128 255.255.255.128 接口m1
128.96.40.0 255.255.255.128 R2
192.4.153.0 255.255.255.192 R3
*(默认) —— R4
现共收到5个分组,其目的地址分别为:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.4.153.17
(5)192.4.153.90
试分别计算其下一跳。
答:(1)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口m0转发。
(2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2转发。
(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。
(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。
(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组转发选择默认路由,经R4转发。
网络前缀
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
这个地址块的起始地址是 128.14.32.0。
在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
128.14.32.0/20 地址块的最小地址:128.14.32.0
128.14.32.0/20 地址块的最大地址:128.14.47.255
全 0 和全 1 的主机号地址一般不使用。
距离向量算法
路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
(4) 返回。
4-41
假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)
N1 7 A
N2 2 B
N6 8 F
N8 4 E
N9 4 F
现在B收到从C发来的路由信息(这两列分别表示“目的网络”“距离”):
N2 4
N3 8
N6 4
N8 3
N9 5
试求出路由器B更新后的路由表(详细说明每一个步骤)。
答:先把收到的路由信息中的“距离”加1:
N2 5
N3 9
N6 5
N8 4
N9 6
路由器B更新后的路由表如下:
N1 7 A 无新信息,不改变
N2 5 C 相同的下一跳,更新
N3 9 C 新的项目,添加进来
N6 5 C 不同的下一跳,距离更短,更新
N8 4 E 不同的下一跳,距离一样,不改变
N9 4 F 不同的下一跳,距离更大,不改变
IPv6
从IPV4过渡到IPV6的方法有哪些?
答:由于现在整个互联网上使用IPV4的路由器数量太大,向IPV6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPV6系统能够向后兼容。
下面介绍两种向IPV6过渡的策略,即使用双协议栈和隧道技术。
双协议栈是指在完全过渡到IPV6之前,使一部分主机装有两个协议栈,因此双协议栈主机既能够和IPV6的系统通信,又能够和IPV4的系统通信。
隧道技术的要点是在IPV6数据报要进入IPV4网络时,把IPV6数据报封装成为IPV4数据报。然后,IPV6数据报就在IPV4网络的隧道中传输。当IPV4数据报离开IPV4网络中的隧道时再把数据部分交给主机的IPV6协议栈。
五、运输层
进程之间的通信
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
从网络层来说,通信的两端是两台主机。IP数据报的首部明确标志了这两台主机的IP地址。但“两个主机之间的通信”这种说法还不够清楚。这是因为,真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的一个进程在交换数据(即通信)。因此严格来说,两个主机进行通信就是两个主机中的应用进程相互通信。IP协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付给主机的应用进程。从运输层的角度看,通信的真正端点并不是主机而是主机的进程。也就是说,端到端的通信时应用进程之间的通信。因此,运输层是必不可少的。
所以运输层的通信和网络层的通信有很大的区别。网络层提供主机之间的逻辑通信,而运输层则提供应用进程之间的逻辑通信。
运输层还有复用、分用的功能,还要对收到的报文进行差错检查。
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。
当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是无连接的?
这要在不同层次来看。在运输层是面向连接的,而网络层则是无连接的。
运输层的两个主要协议
(1)用户数据报协议UDP(User Datagram Protocol)无连接
(2) 传输控制协议TCP(Transmission Control Protocol)面向连接
TCP 传送的数据单位协议是 TCP 报文段(segment)。
UDP 传送的数据单位协议是 UDP 报文或用户数据报。
运输层的 UDP 用户数据报与网际层的IP数据报有很大区别。
(1)IP 数据报要经过互连网中许多路由器的存储转发。
(2)UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的。
TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了 TCP 连接。
UDP的特点
UDP 是无连接的,发送数据之前不需要建立连接,,因此减少了开销和发送数据之前的时延。
UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文。
UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求。
UDP 支持一对一、一对多、多对一和多对多的交互通信。
UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
TCP的特点
TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。
面向字节流
TCP 中的“流”(stream) 指的是流入或流出进程的字节序列。
“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。
运输层的端口
端口是用来标志进程的。端口也就是协议端口号。
在协议栈层间的抽象的协议端口是软件端口。
路由器或交换机上的端口是硬件端口。
硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。
不同的系统,具体实现端口的方法可以是不同的。
端口用一个 16 位端口号进行标志,允许有65,535个不同的端口号。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在互联网中,不同计算机的相同端口号是没有联系的。
两大类三种接口
服务器端使用的端口号
熟知端口,数值一般为 0 ~ 1023。
登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
客户端使用的端口号
又称为短暂端口号,数值为 49152 ~ 65535,留给客户进程选择暂时使用。
当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
停止等待协议
“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
全双工通信的双方既是发送方也是接收方。
为了讨论问题的方便,我们仅考虑 A 发送数据,而 B 接收数据并发送确认。因此 A 叫做发送方,而 B 叫做接收方。
TCP传输
MSS (Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。所以,MSS是“TCP 报文段长度减去 TCP 首部长度”。
5-22
5-23
5-28
超时重传的时间选择
TCP拥塞控制方法
为了进行拥塞控制,TCP的发送方要维持一个拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。
拥塞控制采用的四种算法即慢开始、拥塞避免、快重传和快恢复。
https://www.cnblogs.com/wkfvawl/p/12813103.html
流量控制和拥塞控制区别
拥塞控制
防止过多的数据注入到网络中,使网络中的路由器或链路不致过载;
是一个全局性的过程,涉及到与降低网络传输性能有关的所有因素。
流量控制
抑制发送端发送数据的速率,以使接收端来得及接收;
是点对点通信量的控制,是端到端的问题;
六、应用层
域名系统
域名系统的主要功能是什么?域名系统中的本地域名服务器、根域名服务器、*域名服务器以及权限域名权服务器有何区别?
答:域名系统DNS的主要功能:将域名解析为主机能识别的IP地址。在域名系统中使用了层次结构的许多域名服务器。域名服务器分为根域名服务器、*域名服务器、权限域名服务器和本地域名服务器。
根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的*域名服务器的域名和 IP 地址。
不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
在互联网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)。
*域名服务器(即 TLD 服务器)负责管理在该*域名服务器注册的所有二级域名。
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
权限域名服务器负责一个区的域名服务器。
当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
本地域名服务器对域名系统非常重要。
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,
这种域名服务器有时也称为默认域名服务器。
域名解析过程
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
文件传输协议
FTP
文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。
FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
主进程的工作步骤如下:
打开熟知端口(端口号为 21),使客户进程能够连接上。
等待客户进程发出连接请求。
启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
服务器端有两个从属进程:控制进程和数据传送进程。在客户端除了控制进程和数据传输 进程外,还有一个用户界面进程来和用户接口。
控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
简单文件传送协议TFTP
TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。
TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
TFTP 只支持文件传输而不支持交互。
TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
超文本传输协议HTTP
HTTP的特点
HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
HTTP 是面向事务的客户服务器协议。
HTTP 1.0 协议是无状态的 (stateless)。
请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于连接TCP连接,另一个RTT用于请求和接收万维网文档)。TCP建立连接的三报文握手的第三个报文段中的数据,就是客户对万维网文档的请求报文)。
电子邮件
电子邮件系统的三个主要构成部件:用户代理、邮件服务器,以及邮件发送协议(如SMTP)和邮件读取协议(如POP3)
用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
用户代理的功能:撰写、显示、处理和通信。
邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
邮件服务器按照客户 - 服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。
如果没有用户代理UA,那么对于要用电子邮件的用户来说就很不方便。因为上面所说的UA的功能,就要由用户自己编程来实现。
邮件发送和读取使用不同的协议协议。
简单邮件发送协议 SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。
邮局协议 POP3:用于用户代理从邮件服务器读取邮件。
现在常用的邮件读取协议有两个,即邮局协议POP3和网际报文存取协议IMAP(Internet Message Access Protocol)
POP3 使用客户–服务器方式。
POP3 基于TCP实现客户与服务器的通信。
POP3 支持用户鉴别。
POP3 服务器删除被用户读取了的邮件。
IMAP 使用客户–服务器方式。
IMAP 基于TCP实现客户与服务器的通信。
IMAP是一个联机协议。
IMAP协议特点
连接后只下载邮件首部(部分下载)。
用户直接在IMAP服务器上创建和管理文件夹。
用户可以搜索邮件内容。
用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
允许收信人只读取邮件中的某一个部分。
缺点:要想查阅邮件,必须先联网。
动态主机配置协议DHCP
互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。
提供了即插即用联网机制。
这种机制允许一台计算机加入新的网络和获取 IP 地址,而不用手工配置。
DHCP给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。
当一台计算机第一次运行引导程序时,ROM中并没有该计算机的IP地址、子网掩码,或某个域名服务器的IP地址的任何一个。
简单网络管理协议SNMP
简单网络管理协议SNMP (Simple Network Management Protocol) 中的管理程序和代理程序按客户–服务器方式工作。
管理程序运行 SNMP 客户程序,向某个代理程序发出请求(或命令),代理程序运行 SNMP 服务器程序,返回响应(或执行某个动作)。
在网管系统中,往往是一个(或少数几个)客户程序与很多的服务器程序进行交互。
SNMP使用无连接的UDP(要发送数据时不需要有链接建立过程,数据发送完毕后,也不需要链接释放过程),因此在网络上传送SNMP报文的开销较小,但UDP是不保证可靠交付的,有丢失的可能。好在SNMP使用周期性地发送探询报文段的方法,来对网络资源进行实时监视,如果丢失一个探寻报文,则经过一段时间后,会再发送一个,这样就比TCP要快速许多。
P2P应用
七、网络安全
安全性威胁
被动攻击
指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截获。
在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU,以便了解所交换的数据的某种性质。但不干扰信息流。
这种被动攻击又称为流量分析 (traffic analysis)。
主动攻击
主要有:
篡改——故意篡改网络上传送的报文。这种攻击方式有时也称为更改报文流。
恶意程序——种类繁多,对网络安全威胁较大的主要包括:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件等。
拒绝服务——指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。
对于主动攻击,可以采取适当措施加以检测。
对于被动攻击,通常却是检测不出来的。
根据这些特点,可得出计算机网络通信安全的目标:
- 防止分析出报文内容和流量分析。
- 防止恶意程序。
- 检测更改报文流和拒绝服务。
对付被动攻击可采用各种数据加密技术。
对付主动攻击则需将加密技术与适当的鉴别技术相结合。
重放攻击:指攻击者对某个连接中通过PDU进行各种处理。如有选择地更改、删除、延迟这些PDU(当然也包括记录和复制它们),还可在稍后的时间将以前录下的PDU插入这个连接。
访问控制:对接入网络的权限加以控制,并规定每个用户的接入权限
流量分析:攻击者通过观察PDU的协议控制信息部分,了解正在通信的协议实体的地址和身份,研究PDU的长度和传输频度,以便了解所交换的数据的某种性质。
两类密码*
对称秘钥密码*
所谓常规密钥密码*,即加密密钥与解密密钥是相同的密码*。
这种加密系统又称为对称密钥系统。
数据加密标准DES属于对称秘钥密码*。
DES的保密性仅取决于对密钥的保密,而算法是公开的。
公钥密码*
公钥密码*(又称为公开密钥密码*)使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码*。
在公钥密码*中,加密密钥 PK(public key,即公钥)是向公众公开的,而解密密钥 SK(secret key,即私钥或秘钥)则是需要保密的。
加密算法 E 和解密算法 D 也都是公开的。
虽然私钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。
公开密钥和对称秘钥在使用通信信道方面有很大的不同。在使用对称密钥时,由于双方使用同样的密钥,因此在通信信道上可以进行一对一的双向保密通信,每一方既可用此密钥加密明文,并发送给对方,也可接收密文,用同一密钥对密文解密。这种保密通信仅限于持有此密钥的双方(如再有第三方就不保密了)。
在使用公开密钥时,在通信信道上可以是多对一的单向保密通信。
数字签名
用于证明真实性。
数字签名必须保证以下三点:
- 报文鉴别——接收者能够核实发送者对报文的签名(证明来源);
- 报文的完整性——发送者事后不能抵赖对报文的签名(防否认);
- 不可否认——接收者不能伪造对报文的签名(防伪造)。
现在已有多种实现各种数字签名的方法。但采用公钥算法更容易实现。
公钥私钥关系:
私钥签名,公钥验证;公钥加密,私钥解密
网络层安全协议
防火墙
防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施访问控制策略。
访问控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。
防火墙内的网络称为“可信的网络”(trusted network),而将外部的互联网称为“不可信的网络”(untrusted network)。
防火墙可用来解决内联网和外联网的安全问题。
防火墙的功能有两个:阻止和允许。
“阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。
“允许”的功能与“阻止”恰好相反。
防火墙必须能够识别各种类型的通信量。不过在大多数情况下防火墙的主要功能是“阻止”。
防火墙技术分为:
网络级防火墙,用来防止整个网络出现外来非法入侵(属于这类的有分组过滤和授权服务器)
应用级防火墙,用来进行访问控制(用应用网关或代理服务器来区分各种应用)