1.与IP协议配套使用的还有三个协议:
**地址解析协议ARP;
**网际控制报文协议ICMP;
**网际组管理协议IGMP;
2.虚拟互连网络:
**没有一种单一的网络能够适应所有用户的需求;
**将网络互连起来要使用一些中间设备:
(1)物理层使用的中间设备叫做转发器;
(2)数据链路层使用的中间设备叫做网桥或者桥接器;
(3)网络层使用的中间设备叫做路由器;
(4)在网络层以上使用的中间设备叫做网关。用网关连接两个不兼容的系统需要在高层进行协议的转换;
**当中间设备是转发器或网桥时,这仅仅是把一个网络扩大了,而从网络层的角度看,这仍是一个网络,一般并不称之为网络互连;
**现在我们讨论网络互连时,都是指用路由器进行网络互连和路由选择;路由器其实就是一台专用计算机,用来在互联网中进行路由选择;
3.TCP/IP体系在网络互连上采用的做法是在网络层(即IP层)采用标准化协议,但相互连接的网络则可以是异构的:
**由于参加互连的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成是一个虚拟互连网络;
**所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层看起来好像是一个统一的网络;
**使用IP网的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节;
**总之,这里强调的是:互联网可以由多种异构网络互联相成;
4.分类的IP地址:
(1)IP地址及其表示方法:
**整个的因特网就是一个单一的,抽象的网络;
**IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符;
**IP地址现在由因特网名字和数字分配机构ICANN进行分配;
(2)IP地址的编址阶段:
**分类的IP地址:最基本的编址方法;1981年
**子网的划分:对最基本的编址方法的改进;1985年
**构成超网:无分类编址方法;1993年
(3)分类的IP地址:两级的IP地址={<网络号>,<主机号>}
**将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成;
**第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络,一个网络号在整个因特网范围内必须是唯一的;
**第二个字段是主机号(host-id),它标志该主机(或路由器),一个主机号在它前面的网络号所指明的网络范围内必须是唯一的;
**由此可见,一个IP地址在整个因特网范围内是唯一的;
(4)各种IP地址的网络号字段和主机字段:
A类:0(标志类别) 网络号(7位,2的7次方) 24位主机号 网络字段:0-127
B类:10 网络号(14位,2的14次方) 16位主机号 网络字段:128-191
C类:110 网络号(21位,2的21位) 8位主机号 网络字段:192-223
D类:1110 多播地址
E类:1111 保留为今后使用
**A类,B类,C类地址的主机号字段分别是3,2,1个字节长;
**D类地址(前4位是1110)用于多播(一对多通信);
**从IP地址的结构可以看出,IP地址不仅仅指明一个主机,而是还指明了主机所连接到的网络;
**对于主机或路由器来说,IP地址都是31位的二进制代码,为了提高可读性,常常使用点分十进制记法表示IP地址 :把32位的IP地址,每隔8位插入一个空格,把8位二进制转化为十进制数;
(5)常用的三种类别的IP地址:
**A类地址:地址空间共有2的31次方个地址
①网络号占一个字段(8位),只有7位可用(该字段的第一位已经固化为0),可指派的网络号只有126个:(即2的7次方-2);
②IP地址中的全0表示“这个”,网络号字段为全0的IP地址是个保留地址,意思是“本网络";
③网络号为127(即01111111)保留作为本地软件环回测试本主机的进程之间的通信之用;目的地址为环回IP数据报永远都不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址;
④A类地址的主机号在3个字节,每一个A类地址的最大主机数是:2的24次方-2;
⑤全0的主机号字段表示该IP地址是“本主机”所连接的单个网络地址;
⑥全1的主机号则表示“所有”,因此全1的主机号字段表示该网络上的所有主机;
**B类地址:地址空间共有2的30次方个地址
①网络号字段有2个字节,前面的(1 0)已经固化,指剩下14位可以进行指派;
②网络号字段后面的14位无论怎么样取值都不可能出现整个2字节的网络号字段成为全0或全1,所以不存在减2的问题;
③实际上B类网络地址128.0.0.0是不指派的,而可以指派的最小B类地址是128.1.0.0,因此B类地址可以指派的网络数为:2的14次方-1;
**C类地址:地址空间共有:2的29次方个地址
①3个字节的网络号字段,最前面的3位(1 1 0)是固化的,还有21位可以分配;
②C类地址的192.0.0.0也是不指派的。因此,可以指派的C类最小网络地址是192.0.1.0,C类地址可指派的网络总数是:2的21次方-1;
③每一个C类地址最大的主机数是:2的8次方-2;
(6)一般不使用的特殊IP地址:
网络号 主机号 源地址使用 目的地址使用 代表的意思
① 0 0 可以 不可 在本网络上的本主机
② 0 host-id 可以 不可 在本网络上的某个主机
③ 全1 全1 不可 可以 只在本网络上进行广播(各路由器均不转发)
④net-id 全1 不可 可以 对net-id上的所有主机进行广播
⑤ 127 非全0或全1的任何数 可以 可以 用本地软件环回测试之用
(7)IP地址的重要特点:
①每一个IP地址都由网络号和主机号两部分组成;IP地址是一种分等级的地址结构;
②实际上,IP地址是标志一个主机(或路由器)和一条链路的接口;当一个主机同时连接到两个网络上时,该主机就必须同时具备两个相应的IP地址,其网络号必须是不同的,这种主机称为多归属主机;
③由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址;
④按照因特网的观点,一个网络是指具有相同网络号net-id的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络号;
⑤具有不同的网络号的局域网必须使用路由器进行互连;
⑥在IP地址中,所有分配到网络号的网络(不管是范围很小的局域网,还是范围很大的广域网)都是平等的,所谓平等,是指因特网对待每一个IP地址;
(8)实际网络中值得注意的地方:
①在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的;
②用网桥(它只工作在链路层上)互连的网段仍然是一个局域网,只能有一个网络号;
③路由器总是具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同网络号的IP地址;
④当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址;不分配IP地址时,通常把这种特殊的网络叫做无编号网络或无名网络;
5.IP地址与硬件地址的区分:
(1)从层次上:物理地址是数据链路层和物理层使用的地址,IP地址是网络层和网络层以上各层使用的地址,是一种逻辑地址(IP地址是用软件实现的);
(2)从传输过程看:使用IP地址的IP数据报一旦交给了数据链路层,就被封装成为MAC帧,MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个地址都写在MAC的首部;只有在剥去MAC帧的首部和尾部后,把MAC帧的数据交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址;
(3)总之,IP地址放在IP数据报的首部,而硬件地址放在MAC帧的首部;在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是硬件地址;当IP数据报放入数据链路层的MAC帧后,整个的IP数据报就成为MAC的数据,因而在数据链路层看不见数据报的IP地址;
(4)在IP层抽象的互联网上只能看见IP数据报,数据报经过的路由器的IP地址并不出现在IP数据报的首部中;、
(5)虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择;
(6)在局域网的链路层,只能看见MAC帧;MAC在不同网络上传送时,其MAC帧首部中的源地址和目的地址要发生变化;
(7)尽管互连在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网却屏蔽下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的,抽象的IP地址研究主机和主机或路由器之间的通信;
(8)已经知道了一个主机(或路由器)的IP地址,需要找出其相应的硬件地址(即主机或路由器在MAC帧首部装入什么样的硬件地址),这时需要用到地址解析协议ARP;
6.IP数据报的格式:IP数据报的格式能说明IP协议具有什么样的功能
(1)一个IP数据报由两部分组成:首部和数据;
(2)首部的前一部分是固定长度,共20字节,是所有IP数据报必须具备的;首部的固定部分的后面是一些可选字段,其长度是可变的;
(3)IP数据报首部的固定部分各个字段:
**版本:占4位,指IP协议的版本;通信双方使用的IP协议的版本必须一致;目前广泛使用的IP协议是IPv4;
**首部长度:占4位,可表示的最大十进制数是15(1111),最小值是5(0101);首部长度字段所表示数的单位是32位字(一个32位字是4字节);当首部长度不是4字节的整数倍时,必须利用最后的填充字节加以填充;最常用的首部长度是20字节;
**区分服务:占8位,用来获取更好的服务;在一般情况下不使用这个字段;
**总长度:指首部和数据之和的长度;总长度字段为16位,因此,数据报的最大长度为:2的16次方-1;
①在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU,当一个IP数据报封装成链路层的帧时,此数据报的总长度不能超过下面的数据链路层所规定的MTU值;
②若所传送的数据报超过数据链路层的MTU值,就必须把过长的数据报进行分片处理;
③IP协议规定,在因特网中所有主机和路由器,必须能够接受长度不超过576字节的数据;
④在进行分片时,数据报中的“总长度”字段是指分片后的每一个分片的首部长度与该分片的数据长度的总和;
**标识:占16位,IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段;相同的标识字段的值使得分片后的各数据报片最后能正确地重装成为原来的数据报;
**标志:占3位,但目前只有2位可以使用;
①标志字段的最低位:MF;MF=1,表示“后面还有分片的数据报”;MF=0,表示“已是若干数据报片的最后一个”;
②标志字段的中间位:DF;DF=1,表示“不能分片”;DF=0,表示“允许分片”;
**片偏移:占13位,片偏移指出:较长的分组在分片之后,某片的原分组中的相对位置;
①片偏移以8个字节为偏移单位,也就是说,每个分片的长度一定是8字节(64位)的整数倍;
②具有相同标识的数据报片在目的站点就可以无误的重装成原来的数据报;
**生存时间:占8位,TTL;表明数据报在网络中的寿命
①由发出数据报的源点设置这个数值,目的是防止无法交付的数据报在无限制的在因特网中兜圈子;
②每经过一个路由器就时,就把TTL减去数据报在路由器所消耗的一段时间;当TTL值减为0时,就丢弃该数据报;
③TTL现在的功能改为“跳数限制”,路由器在转发数据报之前就把TTL减1;
④TTL的意义是指明数据报在因特网中至多经过多少个路由器,显然数据报能在因特网中经过的路由器的最大数是255;
⑤若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送;
**协议:占8位,协议字段指出此数据报携带的数据是使用何种协议;
①协议名:ICMP IGMP IP TCP EGP IGP UDP IPv6 ESP OSPF
②字段值:1 2 4 6 8 9 17 41 50 89
**首部检验和:占16位,只检验数据报的首部,但不包括数据部分;
计算方法:
①在发送方,先把IP数据报首部划分为许多16位字的序列,并把校验和字段设置为0;
②用反码算术运算把所有16位字相加后,将得到的和的反码写入校验和字段;
③接收方收到数据后,将首部的所有16位字再使用反码算术运算相加一次,将得到的和取反码,即得出接收方检验和的计算结果
④若首部为发生任何变化,则此结果必为0,于是就保留这个数据报,否则就丢弃该数据报;
7.IP层转发分组的流程:
(1)在互联网上转发分组时,是从一个路由器转发到下一个路由器;在路由表中,对每一个路由最主要的是以下的两个信息:(目的网络地址,下一跳地址);
(2)IP数据报最终一定可以找到目的主机所在的网络上的路由器;
(3)只有到达最后一个路由器时,才试图向目的主机进行直接交付;
(4)因特网上的所有分组转发都是基于目的主机所在的网络,但也可以对特定的目的主机指明一个路由,这种路由叫做特定主机路由;
(5)路由器还可以采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间;这种转发方式只有在一个网络只有很少的对外连接时是很有用的;
(6)待转发的数据报怎么样找到下一跳的路由器:
**当路由器收到一个待转发的数据报,在路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交数据链路层的网络接口软件;
**网络接口软件负责把下一跳的路由器的IP地址转换成硬件地址(使用ARP),并将此硬件地址放到链路层的MAC帧首部,然后根据这个硬件地址找到下一跳的路由器;
(7)分组转发算法:
①从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N;
②若N就是此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为硬件地址,把数据报封装成MAC帧在转发此帧);否则,就间接交付,执行(3);
③若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4);
④若路由表中有到达网络N的路由,则把数据报传送给路由表中指明的下一跳路由器;否则,执行(5);
⑤若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6);
⑥报告转发分组错误;