1、三网:电信网络、有线电视网络和计算机网络
2、电路交换、报文交换、分组交换的比较
报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式;由于报文长度差异很大,长报文可能导致很大的时延;为了满足各种长度报文的需要并且达到高效的目的,节点需要分配不同大小的缓冲区,否则就有可能造成数据传送的失败,这样对每个节点来说缓冲区的分配也比较困难。另外一个缺点是出错时,整个报文都将重传。
分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去。采用分组交换技术,在通信之前不需要建立连接,每个节点首先将前一节点送来的分组收下并保存在缓冲区中,然后根据分组头部中的地址信息选择适当的链路将其发送至下一个节点,这样在通信过程中可以根据用户的要求和网络的能力来动态分配带宽。分组交换比电路交换的信道利用率高,但时延较大。分组转发的带来的问题:排队时延以及增加头部带来的开销。
优点:
优点
所采用的手段
高效
在分组传输过程中动态分配传输带宽,对通信链路是逐段占用
灵活
为每一个分组独立地选择转发路由,以分组为传送单位和查找路由
迅速
以分组作为传送单位,可以不不先建立连接就能向其他主机发送分组
可靠
保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性
3、计算机网络的性能指标
1)速率:连接在计算机网络上的主机在数字信道上传送数据的速率,也称为数据率或比特率。
排队时延:分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
注意:对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率而不是比特在链路上的传播速率。
5)时延带宽积:传播时延*带宽
7)利用率:信道利用率和网络利用率两种。
4、协议与划分层次的好处
1)各层之间是独立的
2)灵活性好
3)结构上可分割开
4)易于实现和维护
5)能促进标准化工作:差错控制,流量控制,分段和重装,复用和分用,连接建立和释放
5、接口、协议和服务
接口:下层向上层提供的原语操作
协议:同一层之间,通信双方进行信息交换必须遵守的规则
服务:不同层之间交换信息必须遵守的规则
6、计算机网络系统结构
TCP/IP四层协议:应用层(Telnet,FTP,SMTP),运输层(TCP或UDP),网际层IP,网络接口层
五层协议:应用层,运输层,网络层,数据链路层,物理层
7、网络各层的作用
应用层:为操作系统或网络应用程序提供访问网络服务的接口。
应用层任务是通过应用进程间的交互来完成特定网络应用。
应用层协议的代表包括:FTP、HTTP、SMTP等。
运输层:负责向两个主机中进程之间的通信提供服务。运输层还要处理端到端的差错检测(与数据链路层不同)、拥塞控制、流量控制等问题。
运输层协议的代表包括:TCP(面向连接、可靠数据传输服务,数据传输单位是报文段)、UDP(无连接。尽最大努力的数据传输服务,数据传输单位是用户数据报)等。
网络层:负责对子网间的数据包进行路由选择,为分组交换网上的不同主机提供通信服务。
网络层协议的代表包括:IP、ICMP、IGMP等。
数据链路层:数据的封装成帧、数据的透明传输、数据的差错检测。
数据链路层协议的代表包括:PPP、帧中继等。
物理层:通过传输介质发送和接收二进制比特流。
属于物理层定义的典型规范如RJ-45等。
8、数据如何在网络各层之间传输
物理层,数据链路层,网络层属于OSI模型的低三层,负责创建网络通信连接的链路,传输层,会话层,表示层和应用层是OSI模型的高四层,具体负责端到端的数据通信。当然,并不是所有通信都是要经过OSI的全部七层,如物理接口之间的转接,只需要物理层中进行即可;而路由器与路由器之间的连接则只需网络层以下的三层。
9、在网络各层之间,数据是以什么单位进行传输的
在物理层数据的传输单位称为比特;在数据链路层数据的传输单元称为帧;在网络层数据的传输单元称为数据包;在传输层数据的传输单元称为报文段。
二、物理层
1、基带调制
1)编码:把数字信号转换为另一种形式的数字信号。
常用编码方式:不归零制,归零制(正脉冲代表1,负脉冲代表0),曼彻斯特编码(位周期中心的向上跳变代表0,向下代表1,反之亦可),差分曼彻斯特编码(每一位的中心处始终有跳变。位开始边界有跳变为0,位开始边界无跳变为1)。
2)基本的带通调制方法
调幅,调频,调相
2、奈氏准则和香农公式的主要区别是什么
奈氏准则:在任何信道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
香农公式:求出了信息传输速率的极限。
意义在于:只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种方法来实现无差错的传输。
C=W*log2(1+S/N)(log2表示以2为底的对数)(bit/s)
W是信道带宽(赫),S是信号功率(瓦),N是噪声功率(瓦)。
香农公式中的S/N为无量纲单位。如:S/N=1000(即,信号功率是噪声功率的1000倍)
但是,当讨论信噪比(S/N)时,常以分贝(dB)为单位。公式如下:
SNR(信噪比,单位为dB)=10log(S/N)
3、信道复用技术
2)TDM:
3)波分复用WDM:
4)码分复用CDM:
码分多址CDMA
三、数据链路层
1、三个基本问题
1)封装成帧:数据部分长度上限—MTU
2)透明传输:用字节填充或字符填充解决透明传输问题。
3)差错检测:CRC循环冗余校验。
CRC运算实际上就是在数据长为k的后面添加供差错检测用的n位冗余码,然后构成帧k+n位发送出去。
例子:现假定待传输的数据M=101001(k=6),除数p=1101(n=3)比n多一位
这n位冗余码可以用下面的方法得出。
(1)用二进制的模2运算进行(2^n)乘M的运算,相当于在M后面添加n个0。
即M后面添加3个0
(2)现在得到M=101001000(k+n=9)位的数除以除数p(n=3)位,
得到商是Q(不关心),余数R=001(n位)R就是冗余码FCS,现在加上FCS后发送的帧是101001001
在接收端把接收到的数据M=101001001以帧为单位进行CRC检验:把收到的每一个帧都除以相同的除数p(模2运算),然后检查得到的余数R。
如果在传输过程中没有差错,那么经过检验后得到余数R肯定是0。
在数据链路层若仅仅使用CRC差错检验技术,则只能做到对帧的无差错接收。
2、数据链路层拆分为两个子层
1)逻辑链路控制LLC
2)媒体接入控制MAC
3、适配器的作用
计算机与外界局域网的连接是通过通信适配器。NIC(网卡)。
1)进行串行/并行转换
2)对数据进行缓存
3)在计算机的OS安装设备驱动程序。
4、CSMA/CD协议
以太网采取两种措施方便通信:
2)以太网发送的数据都是用曼彻斯特编码的信号。
1)多点接入:总线型网络,许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”。
2)载波监听:“发送前先监听”,即每一个站点在发送数据之前先要检测一下总线上是否有其他的站点在发送数据,如果有,则暂时不要发送数据,要等待信道变为空闲时再发送。
总线上并没有什么“载波”。因此,“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
3)碰撞检测:“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”
以太网规定了一个最短帧长64字节,即512bit。帧间最小间隔为9.6us.
凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。
1)准备发送
2)检测信道
3)在发送过程中仍不停地检测信道,即:网络适配器要边发送边监听。分为如下两种可能性
一是发送成功;在争用期内一直未检测到碰撞。这个帧可定能够发送成功。发送完毕后其他什么都不做。然后返回1)
设置最小帧长是为了区分开正常和因发生碰撞而异常中止的短帧。
5、同步通信与异步通信的区别是什么
同步通信:通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。
6、位同步与帧同步的区别
位同步:使接收端接收的每一位信息都与发送端保持同步。
帧同步:识别一个帧的起始和结束位置。
7、数据链路层协议的三个基本问题
1)封转成帧
就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
2)透明传输
不管什么字符都可以放在帧中传输过去,这样的传输就是透明传输。解决透明传输的问题方法是:发送端的数据链路层在数据中出现控制字符”SOH”或”EOH”的前面插入一个转义字符”ESC”,而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。
3)差错检测
采用的是循环冗余检验(CRC:CyclicRedundancyCheck)的差错检查技术,如果仅仅使用CRC,则只能做到对帧的无差错接收,即接收的帧在传输的过程中没有产生差错,并没有要求数据链路层向网络层提供“可靠传输”的服务。
8、适配器(网卡)的作用
1)适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
2)由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。
3)适配器还要实现以太网协议。
9、以太网的MAC层
MAC帧的格式
最后一个字段是4字节的帧检验序列FCS(使用CRC检验)
网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤。网桥依靠转发表来转发帧。
集线器工作在物理层。
10、网桥带来的好处和缺点
好处:
1)过滤通信量,增大吞吐量
2)扩大了物理范围
3)提高了可靠性
4)可互联不同物理层、不同MAX子层和不同速率的以太网
缺点:
1)网桥对接收的帧要先存储和查找转发表,然后才转发,转发之前进行CSMA/CD算法,增加了延迟。
2)MAC子层没有流量控制功能,当网络上负荷很重时,网桥中的缓存的存储空间可能不够而发生溢出,以致产生帧丢失的现象。
3)可能发生广播风暴。
11、透明网桥
“透明”是指以太网上的站点并不知道所发送的帧将经过哪几个网桥,以太网上的站点都看不见以太网上的网桥。透明网桥还是一种即插即用设备。
网桥通过自学习算法处理收到的帧。
四、网络层
1、网络层提供的两种服务:虚电路服务,数据报服务。
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即:IP数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。
由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做的较简单,且价格低廉。如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
虚电路服务和数据报服务的主要区别:
2、网际协议IP
网际协议IP是TCP/IP体系中最重要的协议之一。与其配套使用的还有三个协议:
1)地址解析协议ARP(AddressResolutionProtocol)
2)网际控制报文协议ICMP(InternetControlMessageProtocol)
3)网际组管理协议IGMP(InternetGroupManagementProtocol)
应用层
各种应用层协议
(HTTP,FTP,SMTP等)
网络层
ICMPIGMP
IP
(网际层)
ARP
网络接口层
与各种网络接口
物理硬件
1)物理层使用的中间设备叫做转发器(repeater)
2)数据链路层使用的中间设备叫做网桥或桥接器(bridge)
3)网络层使用的中间设备叫做路由器(router)
4)在网络层以上使用的中间设备叫做网关(gateway)
当中间设备是转发器或网桥时,这仅仅是把一个网络扩大了,而从网络层的角度看,这仍然是一个网络,一般并不称之为网络互连。网关由于比较复杂,使用得较少。有时把网络层使用的路由器也称之为网关。
虚拟互连网络即为逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是存在的,但是利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP协议的虚拟互连网络可简称为IP网。
3.ARP的工作原理
1)首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2)当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向“本网段”的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
3)当本网络的所有主机收到该ARP数据包时,首先检查数据包中的目的主机IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4)源主机收到ARP响应包后,将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。
假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告诉计算机A
区分两种情况:如果计算机B和计算机A都连接在同一个局域网上,那么就是计算机B发送ARP响应分组。
如果计算机B和计算机A不是连接在同一个局域网上,那么就必须由一个连接在本局域网上的路由器来转发ARP请求分组。这时,该路由器向计算机A发送ARP回答分组,给出自己的硬件地址。
4.分类的IP地址
现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址或IP地址=主机地址+子网地址+主机地址。
IP地址类型:最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
1)A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从1.0.0.0到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。
2)B类IP地址一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。
3)C类IP地址一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
4)D类地址用于多点广播(Multicast)。D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。224.0.0.0到239.255.255.255用于多点广播。
5)E类IP地址以“11110”开始,为将来使用保留。240.0.0.0到255.255.255.254,255.255.255.255用于广播地址
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:A类地址:10.0.0.0~10.255.255.255B类地址:172.16.0.0~172.31.255.255C类地址:192.168.0.0~192.168.255.255
IP地址的指派范围如下表
私有地址包括3组
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
我们买的无线路由器,也要设置局域网,一般为192开头的,比如192.168.0.1或者192.168.199.1(比如极路由就是这个地址)
我们建企业网(单位网络)时,一般是使用私有地址来分配内部主机,小企业使用C类的192.168.0.0网络,中型企业使用172.16.0.0网络,如果还不够用,还有10.0.0.0网络。
5.IP数据报格式
1)版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
2)首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
3)区分服务(服务类型):TypeOfService。占8位,未使用。
4)总长度:IP报文的总长度。报头的长度和数据部分的长度之和。占16位,因此数据报的最大长度为2^16-1=65535字节(实际极少遇到)。
在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段最大长度,这称为最大传送单元MTU。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层规定的MTU值。如:最常用的以太网就规定其MTU值是1500字节。若所传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
IP协议规定,在因特网中所有的主机和路由器,必须能够接受长度不超过576字节的数据报。即:假定上层交下来的数据长度有512字节,加上最长的IP首部60字节,再加上4字节的富裕量。否则就要进行分片。
5)标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。
6)标志:共3位。R、DF、MF三位。目前只有后两位有效,DF(don’tfragment)位:为1表示不分片,为0表示分片。MF(morefragment):为1表示“更多的片”,为0表示这是最后一片。
7)片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
IP数据报分片举例1:一数据报总长度3820字节,其数据部分3800字节长,需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400,1400,1000字节。原始数据报首部被复制为各数据片的首部,但必须修改有关字段的值。分片结果如下:
总长度
标识
MF
DF
片偏移
原始数据报
3820
12345
0
数据报片1
1420
1
数据报片2
175
数据报片3
1020
350
举例2:一个长4000B的IP数据报,数据部分3980B,到达了一个路由,需要转发到一个MTU为1500B的链路上,这样就得分片了。分片数目是3片。每个片都是一个数据报。假设标识是777,那么数据报分片结果是:
分片一:标识:777,MF=1,DF=0,片偏移=0,有效数据:1480B(编号0~1479)分片二:标识:777,MF=1,DF=0,片偏移=185,185*8=1480,有效数据:1480B(编号1480~2959)分片三:标识:777,MF=0,DF=0,片偏移370,370*8=2960,有效数据:1020B(编号2960~3979)
9)协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.
10)首部校验和:计算IP头部的校验和,检查IP报头的完整性。不包括数据部分。
11)源IP地址:标识IP数据报的源端设备。32位
12)目的IP地址:标识IP数据报的目的地址。32位
6.IP层转发分组的流程
1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就要执行3)进行间接交付。
3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行4)。
4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行5)。
5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行6)。
6)报告转发分组出错。
7.划分子网和构造超网
A类地址的默认子网掩码:255.0.0.0
B类地址的默认子网掩码:255.255.0.0
C类地址的默认子网掩码:255.255.255.0
子网掩码是一个网络或一个子网的重要属性:路由器和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器;
路由表必须包含以下三项内容:目的网络地址,子网掩码和下一跳地址;
1)从收到的数据报的首部提取目的IP地址D;
2)先判断是否为直接交付,对路由器直接连接的网络逐个进行检查:用各网段的子网掩码和D逐位相“与”(AND)操作,看结果是否和相应的网络地址匹配;若匹配,则把分组进行直接交付(当然还需要把D转换为物理地址,把数据报封装在MAC帧中发送出去),转发任务结束;否则就是间接交付,执行3);
3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由器中所指明的下一跳路由器;否则,执行4);
4)对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相“与”(AND操作),其结果为N;若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行5);
5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6);
6)报告转发分组出错;
1)变长子网掩码VLSM:指明在一个划分子网的网络中可同时使用几个不同的子网掩码;
2)无分类域间路由CIDR:
**CIDR消除了传统的A类,B类,C类地址以及划分子网的概念,因而可以更加有效的分配IPv4的地址空间;
**CIDR把32位的IP地址划分为两部分,前面的部分是“网络前缀”用来指明网络,后面的部分则用来指明主机;
**IP地址={<网络前缀>,<主机号>}
**CIDR还使用“斜线记法”或称“CIDR记法”,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数;128.14.35.7/24
**CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块”,我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数;
3)CIDR使用32位的地址掩码,地址掩码有一串1和一串0组成,而1的个数就是网络前缀的长度;斜线记法中,斜线后面的数字就是地址掩码中1的个数;
4)128.14.35.7/20=10000000000011100010001100000111//红色表示网络前缀:20位
5)斜线记法除了可以表示IP地址外,还可以表示这个地址的网络前缀有几位,剩下的就是主机位;通过简单的计算,还可以得出这个地址块中的最下地址和最大地址;
6)求地址块中最小地址和最大地址:
**找出地址掩码中1和0的交界处发生在地址中的哪一个字节;
**把这一字节的十进制数用二进制表示出来;
**把主机号数(32-网络前缀号数)的那几位,全部置0就是最小地址,全部置0就是最大地址;
7)路由聚合:一个CIDR地址块中很多地址,在路由表中利用CIDR地址块来查找目的网络;路由聚合也称为构造超网
8)CIDR记法有很多种形式:10.0.0.0/10可简写为:10/10;在网络前缀的后面加一个星号*:0000101000*,*号表示IP地址中的主机号;
9)构成超网的方法:就是将网络前缀缩短。网络前缀越短,其地址块所包含的地址数就越多;
10)最长前缀匹配:
**路由表中每个项目由“网络前缀”和“下一跳地址”组成,但是在查找路由表时,可能会得到不止一个匹配结果;
**应当从匹配结果中选择具有最长网络前缀的路由;这叫做最长前缀匹配,这是因为网络前缀越长,其地址块就越小,因而路由就越具体。
以C类网络为例,原有8位主机位,2的8次方即256个主机地址,默认子网掩码255.255.255.0。
借用1位主机位,产生2个子网,每个子网有126个主机地址;借用2位主机位,产生4个子网,每个子网有62个主机地址……
把子网掩码为255.255.0.0的网络40.15.0.0分为两个子网,假设第一个子网为40.15.0.0/17,则第二个子网为
40.15.0.0/17表示网段是40.15.0.0,子网掩码是17位。
子网掩码为:255.255.128.0,斜杠后面的17表示子网掩码前17位为1.
答案:划分为两个子网的话子网掩码应该为255.255.128.0
第一个子网是40.15.0.0/17,可用地址范围是40.15.0.1~40.15.127.254(第一个为主机地址,最后一个为广播地址,不可用)
第二个子网是40.15.128.0/17,可用地址范围是40.15.128.1~40.15.255.254
解析:
掩码的前两个八位是255,第三个八位是128,有2的一次方个子网(因为第三个八位只有一个1,后面七位都是0),所以ip地址第三个8位是0000,0000或者1000,0000,即0或者128。
因为第3个8位是1000,0000,可以区分开头第一个数是0还是1,区分了两个子网。所以这两个子网是40.15.0.0和40.15.128.0
8.ICMP(InternetControlMessageProtocol)网际控制报文协议
ICMP报文有两种:差错报告报文和询问报文。
当运行PING127.0.0.1时,这个IP数据报将发送给谁
127.0.0.1是环回地址。主机将测试用的IP数据报发送给本主机的ICMP(而不是发送到因特网上)以便进行环回测试。
9.IP协议的定义,主要有什么作用?TCP与UDP呢?
IP协议(InternetProtocol):网际协议,主要提供网际互联的作用。
TCP(TransmissionControlProtocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立连接。UDP(UserDataProtocol,用户数据报协议)是与TCP相对应的协议,它是面向非连接的协议,不与对方建立连接,而是直接就把数据包发送过去。
10.RIP协议的特点?RIP的优缺点?RIP用什么来传送?
1)特点
l仅和相邻路由器交换信息
l路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表
2)优缺点
优点:实现简单、开销较小
缺点:限制了网络的规模(因为它能使用的最大距离为15),坏消息传播得慢。
3)RIP用UDP来传送
11.OSPF协议的特点?OSPF用什么来传送?
l向本自治系统中所有路由器发送信息(而RIP是发送给邻居)
l发送的信息就是与本路由器相邻的所有路由器的链路状态(RIP发送的是整个路由表)
l只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息(而RIP是30秒更新一次)
2)OSPF直接用IP数据报传送
12.链路层广播和IP广播有何区别
链路层广播是用数据链路层协议(第二层)在一个以太网上实现的对该局域网上的所有主机的MAC帧进行广播。
IP广播则是用IP协议通过因特网实现的对一个网络(即目的网络)上的所有主机的IP数据报广播。
13.交换机和路由器各自的实现原理是什么?有什么区别?
实现原理:路由器通过路由决定数据的转发。转发策略称为路由选择。
而交换机则是一种基于MAC地址识别,能完成封转转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的起始者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
区别:
l二者的工作层次不同
交换机工作在数据链路层,而路由器工作在网络层。
l二者转发所依据的对象不同
交换机是利用MAC地址确定转发数据的目的地址,而路由器则是利用IP地址来确定数据转发的地址。
14.VPN(虚拟专用网),NAT(网络地址转换)
五、运输层
1.运输层向它上面的应用层提供通信服务
它属于面向通信部分的最高层,同时也是用户功能中的最底层。
两个主机进行通信就是两个主机中的应用进程互相通信。
从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。即:端到端的通信是应用进程之间的通信。
运输层有一个很重要的功能——复用(multiplexing)和分用(demulitiplexing)。复用指在发送方不同的应用进程都可以使用同一个运输层协议传达数据。分用是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
运输层对收到的报文进行差错检测。运输层需要提供两种不同的运输协议,即面向连接的TCP和无连接的UDP.
运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
2.运输层的两个主要协议
(1)UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
(2)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
(3)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文。
(5)UDP支持一对一、一对多、多对一和多对多的交互通信。
(6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
注意:(1)不使用拥塞控制功能的UDP有可能会引起网络产生严重的拥塞问题。
(2)一些使用UDP的实时应用进程本身可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传已丢失的报文。
(1)源端口源端口号。在需要对方回信时选用。不需要时可用全0。(2)目的端口目的端口号。这在终点交付报文时必须要使用到。(3)长度UDP用户数据报的长度,其最小值是8(仅有首部)(4)检验和检测UDP用户数据报在传输中是否有错。有错就丢弃。
UDP计算校检和的方法和计算IP数据报首部校检和的方法相似。但不同的是:IP数据报的校检和只校检IP数据报的首部,但UDP的校检和使把首部和数据部分一起都校检。
TCP最主要的特点
(1)面向连接的运输层协议;
(2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(端到端的通信);
(3)TCP提供可靠交付的服务(高可靠性,确保传输数据的正确性,不出现丢失或乱序);
(4)全双工方式传输;
(5)采用字节流方式,即以字节为单位传输字节序列;
TCP连接:TCP把连接作为最基本的抽象。
TCP连接的端点是个很抽象的套接字,即(IP地址:端口号)。同一个IP地址可以有多个不同的TCP链接,而同一个端口号也可以出现在多个不同的TCP连接中。
各占2个字节,分别写入源端口号和目的端口号。
占4个字节,表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0开始。
占4个字节,是期望收到对方写一个报文段的第一个数据字节的序号。若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。
占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度,由于4位二进制数能够表示的最大十进制数字是15,因此数据偏移的最大值是60字节,这也是TCP首部的最大长度。
当URG=1时,表明紧急指针字段有效。它告诉系统此报文中有紧急数据,应尽快传送,而不要按原来的排队顺序来传送。当URG置1时,发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。这时要与首部中的紧急指针字段配合使用。
仅当ACK=1时,确认号字段才有效,TCP规定,在连接建立后的所有传送的报文段都必须要ACK置1。
发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
当RST=1时,表明TCP连接中出现了严重差错,必须释放连接,然后再重新建立运输连接。
在连接建立时用来同步序号,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。因此,SYN置为1就表示这是一个连接请求或连接接受请求。
用来释放一个连接。当FIN=1时,表明此段报文段的发送发的数据已经发送完毕,并要求释放运输连接。
占2个字节。窗口指的是发送本报文段的接受窗口。窗口值告诉对方:从本报文段首部中的确认好算起,接收方目前允许对方发送的数据量。窗口值作为接收方法让发送方设置其发送窗口的依据。窗口字段明确指出了现在允许对方发送的数据量。窗口值是经常动态变化的。
占2个字节。指出本报文段中紧急数据的字节数。
长度可变,最长可达40字节。当没有使用“选项”时,TCP的首部长度是20字节。
1)MSS最大报文段长度(MaxiumSegmentSize):指明数据字段的最大长度,数据字段的长度加上TCP首部的长度才等于整个TCP报文段的长度。MSS值指示自己期望对方发送TCP报文段时那个数据字段的长度。通信双方可以有不同的MSS值。如果未填写,默认采用536字节。MSS只出现在SYN报文中。即:MSS出现在SYN=1的报文段中。
2)窗口扩大选项(WindowsScaling):由于TCP首部的窗口大小字段长度是16位,所以其表示的最大数是65535。但是随着时延和带宽比较大的通信产生(如卫星通信),需要更大的窗口来满足性能和吞吐率,所以产生了这个窗口扩大选项。
3)SACK选择确认项(SelectiveAcknowledgements):用来确保只重传缺少的报文段,而不是重传所有报文段。比如主机A发送报文段1、2、3,而主机B仅收到报文段1、3。那么此时就需要使用SACK选项来告诉发送方只发送丢失的数据。那么又如何指明丢失了哪些报文段呢?使用SACK需要两个功能字节。一个表示要使用SACK选项,另一个指明这个选项占用多少字节。描述丢失的报文段2,是通过描述它的左右边界报文段1、3来完成的。而这个1、3实际上是表示序列号,所以描述一个丢失的报文段需要64位即8个字节的空间。那么可以推算整个选项字段最多描述(40-2)/8=4个丢失的报文段。
5)NOP(NO-Operation):它要求选项部分中的每种选项长度必须是4字节的倍数,不足的则用NOP填充。同时也可以用来分割不同的选项字段。如窗口扩大选项和SACK之间用NOP隔开。
3.TCP可靠传输的实现
TCP协议通过使用连续ARQ协议和滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输。
连续ARQ协议:由于停止等待ARQ协议信道利用率太低,所以需要使用连续ARQ协议来进行改善。这个协议会连续发送一组数据包,然后再等待这些数据包的ACK。
发送方采用流水线传输。流水线传输就是发送方可以连续发送多个分组,不必每发完一个分组就停下来等待对方确认。如下图所示:
连续ARQ协议通常是结合滑动窗口协议来使用的,发送方需要维持一个发送窗口,如下图所示:
图(a)是发送方维持的发送窗口,它的意义是:位于发送窗口内的5个分组都可以连续发送出去,而不需要等待对方的确认,这样就提高了信道利用率。
连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。例如上面的图(b),当发送方收到第一个分组的确认,就把发送窗口向前移动一个分组的位置。如果原来已经发送了前5个分组,则现在可以发送窗口内的第6个分组。
接收方一般都是采用累积确认的方式。也就是说接收方不必对收到的分组逐个发送确认。而是在收到几个分组后,对按序到达的最后一个分组发送确认。如果收到了这个分组确认信息,则表示到这个分组为止的所有分组都已经正确接收到了。
累积确认的优点是容易实现,即使确认丢失也不必重传。但缺点是,不能正确的向发送方反映出接收方已经正确收到的所以分组的信息。比如发送方发送了前5个分组,而中间的第3个分组丢失了,这时候接收方只能对前2个发出确认。而不知道后面3个分组的下落,因此只能把后面的3个分组都重传一次,这种机制叫Go-back-N(回退N),表示需要再退回来重传已发送过的N个分组。
如下图所示,发送窗口中有四个概念::已发送并收到确认的数据(不在发送窗口和发送缓冲区之内)、已发送但未收到确认的数据(位于发送窗口之内)、允许发送但尚未发送的数据(位于发送窗口之内)、发送窗口之外的缓冲区内暂时不允许发送的数据。
接收窗口中也有四个概念:已发送确认并交付主机的数据(不在接收窗口和接收缓冲区之内)、未按序收到的数据(位于接收窗口之内)、允许的数据(位于接收窗口之内)、不允许接收的数据(位于发送窗口之内)。
规则:
1)凡是已经发送过的数据,在未收到确认之前,都必须暂时保留,以便在超时重传时使用。
2)只有当发送方A收到了接收方的确认报文段时,发送方窗口才可以向前滑动几个序号。
4.TCP可靠传输、流量控制和拥塞控制的实现
可靠传输:
l对于收到的请求,给出确认响应
l超时重传
流量控制:
所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口实现流量控制。
设A向B发送数据。在连接建立时,B告诉A:我的接收窗口rwnd=400。因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。TCP窗口单位是字节,不是报文段。
上图中:接收方的主机B进行了三次流量控制。第一次把小黄口减小到rwnd=300,第二次又减到rwnd=100,最后减到rwnd=0,即不允许发送方再发送数据了。
考虑一种特殊的情况,就是接收方若没有缓存足够使用,就会发送零窗口大小的报文,此时发送放将发送窗口设置为0,停止发送数据。之后接收方有足够的缓存,发送了非零窗口大小的报文,但是这个报文在中途丢失的,那么发送方的发送窗口就一直为零导致死锁。
解决这个问题,TCP为每一个连接设置一个持续计时器(persistencetimer)。只要TCP的一方收到对方的零窗口通知,就启动该计时器,周期性的发送一个零窗口探测报文段。对方就在确认这个报文的时候给出现在的窗口大小(注意:TCP规定,即使设置为零窗口,也必须接收以下几种报文段:零窗口探测报文段、确认报文段和携带紧急数据的报文段)。
拥塞控制:
所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
慢开始的“慢”并不是指增长速率的慢,而是指在TCP开始发送报文段时先设置拥塞窗口为1。
算法流程如下
1)连接建好的开始先初始化cwnd=1,表明可以传一个SMSS大小的数据。
2)每当收到一个ACK,cwnd++;呈线性上升
3)每当过了一个RTT,cwnd=cwnd*2;呈指数让升
4)还有一个慢启动门限ssthresh(slowstartthreshold),是一个上限,当cwnd>=ssthresh时,就会进入拥塞避免。
5)当遇到RTO超时重传时会触发cwnd和ssthresh的调整,ssthresh=max(cwnd/2,2),cwnd=1,然后重新开始慢启动过程。
使拥塞窗口按线性规律增长。
从慢启动可以看到,cwnd可以很快的增长上来,从而最大程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去,一定需要某个限制。TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。慢启动门限ssthresh的用法如下:
当cwnd 当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法。 当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。 分别对图中标示的箭头做如下说明: 1)在标号为1的箭头处,TCP初始连接进行数据交换,开始慢启动,初始cwnd=IW=1,ssthresh=16,在传输轮次0-4阶段进行慢启动过程,cwnd按照1-2-4-8-16的顺序进行指数增长 2)在标号为2的箭头处,cwnd=16=ssthresh,此时触发拥塞避免过程,开始线性增长,在传输轮次4-12阶段,cwnd按照16-17-18-19-20-21-22-23-24进行线性增长。 3)在标号为3的箭头处,TCP发生了RTO重传,认为网络发生拥塞,于是设置ssthresh=cwnd/2=12,cwnd=1重新进行慢启动过程 4)在标号为4的箭头处,TCP从cwnd=1开始重新开始慢启动过程 5)在标号为5的箭头处,当cwnd=12时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个MSS的大小。 发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待为其设置的重传计时器到期。 当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把慢开始门限减半。这是为了预防网络发生拥塞。请注意,接下来不执行慢开始算法。 由于发送方现在认为网络很可能没有发生拥塞(如果网路发生了严重的拥塞,就不会一连有好几个报文段连续达到接收方,就不会导致接收方连续发送重复确认),因此与慢开始不同之处是现在不执行慢开始算法(即拥塞窗口现在不设置为1),而是把它设置为慢开始门限减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。 下图是慢启动和拥塞避免(快重传和快恢复)的一个可视化描述。我们以段为单位来显示cwnd和ssthresh,但它们实际上都是以字节为单位进行维护的。 指数增长—>加法增大—>乘法减小(超时)—>加法增大(快恢复) 快重传算法并非取消了重传机制,只是在某些情况下更早的重传丢失的报文段(如果当发送端接收到三个重复的确认ACK时,则断定分组丢失,立即重传丢失的报文段,而不必等待重传计时器超时)。 例如:M1,M2,M3—–>M1,M3,缺失M2,则接收方向发送方持续发送M2重复确认,当发送方收到M2的三次重复确认,则认为M2报文丢失,启动快重传机制,重传数据,其他数据发送数据放入队列,待快重传结束后再正常传输。 快恢复算法有以下两个要点: 1)当发送方连续收到接收方发来的三个重复确认时,就执行“乘法减小”算法,把慢开始门限减半,这是为了预防网络发生拥塞。 2)由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是把cwnd(拥塞窗口)值设置为慢开始门限减半后的值,然后开始执行拥塞避免算法,使拥塞窗口的线性增大。 5.TCP运输连接管理 1)TCP的连接建立(用三次握手建立TCP连接) 为什么A还要发送一次确认呢? 由于现在A并没有发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据。但B却认为新的运输连接已经建立了,并一直等待A发来数据。B的许多资源就这样白白浪费了。 采用三次握手的办法可以防止上述现象的发生。例如在刚才的情况下,A不会向B的确认发出确认。B由于收不到确认,就知道A并没有要求建立连接。 2)TCP的连接释放(四次挥手) **A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN置1,其序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1。这时A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。 **B收到连接释放报文段后即发出确认,确认号是ack=u+1,而这个报文段自己的序号是v,等于B前面已传送过的数据的最后一个字节的序号加1。然后B就进入了CLOSE-WAIT(关闭等待)状态。因而从A到B这个方向的连接释放了,这时的TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接收。 **A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。 **若B已经没有要向A发送的数据,其应用程序就通知TCP释放连接。这时B发出的连接释放该报文段必须使FIN=1。现假定B的序号为w(在半关闭状态B可能又发送了一些数据)。B还必须重复上次已发送过的确认号ack=u+1。这时B就进入LAST_ACK(最后确认)状态,等待A的确认。 **为了保证A发送的最后一个ACK报文段能够到达B **防止已失效的连接请求报文段出现在本连接中。 六、应用层 1.DNS(DomainNameSystem)域名系统 1)DNS的工作原理 DNS提供的服务是用来将域名转换为IP地址的工作。它的基本工作原理如下图所示: 2)DNS的工作过程 **在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 **如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 **如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 **如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 **如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用的是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。 从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是迭代查询。 2.文件传送协议(FTP) FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。 3.远程终端协议Telnet 4.万维网WWW(WorldWideWeb):万维网是一个大规模联机式的信息储藏所