1、网络层提供的两种服务:虚电路服务,数据报服务。
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即:IP数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。
由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做的较简单,且价格低廉。如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
虚电路服务和数据报服务的主要区别:
2、网际协议IP
网际协议IP是TCP/IP体系中最重要的协议之一。与其配套使用的还有三个协议:
1)地址解析协议ARP(Address Resolution Protocol)
2)网际控制报文协议ICMP(Internet Control Message Protocol)
3)网际组管理协议IGMP(Internet Group Management Protocol)
将网络互连起来的中间设备:
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.255 B类地址:172.16.0.0~172.31.255.255 C类地址: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)区分服务(服务类型):Type Of Service。占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’t fragment)位:为1表示不分片,为0表示分片。MF(more fragment):为1表示“更多的片”,为0表示这是最后一片。
7)片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
IP数据报分片举例1:一数据报总长度3820字节,其数据部分3800字节长,需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的数据部分长度不能超过1400字节。于是分为3个数据报片,其数据部分的长度分别为1400,1400,1000字节。原始数据报首部被复制为各数据片的首部,但必须修改有关字段的值。分片结果如下:
举例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)
8)生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。
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.划分子网和构造超网
IP地址={<网络号>,<子网号>,<主机号>}
默认子网掩码:
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)报告转发分组出错;
无分类编址CIDR(构成超网)
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=10000000 00001110 00100011 00000111 //红色表示网络前缀:20位
5)斜线记法除了可以表示IP地址外,还可以表示这个地址的网络前缀有几位,剩下的就是主机位;通过简单的计算,还可以得出这个地址块中的最下地址和最大地址;
6)求地址块中最小地址和最大地址:
**找出地址掩码中1和0的交界处发生在地址中的哪一个字节;
**把这一字节的十进制数用二进制表示出来;
** 把主机号数(32-网络前缀号数)的那几位,全部置0就是最小地址,全部置0就是最大地址;
7)路由聚合:一个CIDR地址块中很多地址,在路由表中利用CIDR地址块来查找目的网络;路由聚合也称为构造超网
8)CIDR记法有很多种形式:10.0.0.0/10可简写为:10/10;在网络前缀的后面加一个星号*:00001010 00*,*号表示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(Internet Control Message Protocol)网际控制报文协议
ICMP 报文有两种:差错报告报文和询问报文。
当运行PING 127.0.0.1时,这个IP数据报将发送给谁
127.0.0.1是环回地址。主机将测试用的IP数据报发送给本主机的ICMP(而不是发送到因特网上)以便进行环回测试。
9.IP协议的定义,主要有什么作用?TCP与UDP呢?
IP协议(Internet Protocol):网际协议,主要提供网际互联的作用。
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立连接。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议,它是面向非连接的协议,不与对方建立连接,而是直接就把数据包发送过去。
10.RIP协议的特点?RIP的优缺点?RIP用什么来传送?
1)特点
l 仅和相邻路由器交换信息
l 路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表
l 按固定的时间间隔交换路由信息
2)优缺点
优点:实现简单、开销较小
缺点:限制了网络的规模(因为它能使用的最大距离为15),坏消息传播得慢。
3)RIP用UDP来传送
11.OSPF协议的特点?OSPF用什么来传送?
1)特点
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(网络地址转换)