网际互联的概念:
第一篇复习了底层网络技术,比如说以太网技术、帧格式等具体内容。已经看到了各个数据网络上传输的底层细节,这是所有计算机通信的基础。实际的计算机通信过程是通过上层协议及通信应用软件来实现的。
随着网络技术的发展,人们越来越追求计算机之间的普遍互联,而不依赖于具体的物理网络,不局限于特定的网络范围内。人们追求所有计算机的普遍互联。从外表上看,我们的目标是使任何一台计算机都能连接到这个普遍意义的互联网上,与互联网上的任意台计算机通信。
因此,理论上有两种实现这种互联网的方法。它们都需要通过具体的底层细节来实现,而且也都要隐藏底层细节,采用上层的应用程序来实现通信。(因为物理网络不尽相同,底层细节不尽相同。也可说是“异构”)
但它们隐藏底层细节的方法不同。
一种是使用应用程序来处理异构。早期的异构网络互联通过称为应用网关application gateway的应用程序提供统一性。网络中每台计算机上的应用程序了解本机网络连接的细节,并通过那些连接与其他计算机上的应用程序进行互操作。这种通信方法在网络数量增多时,会完全不适用。因为使用这种方法:
若想给互联网系统添加一个功能,则需要为互联网中的每台计算机构建一个应用程序,并且由于每台计算机及其所属网络的异构性,每台计算机的应用程序不尽相同。没人能写出所需的全部应用程序;
若在系统中添加新的网络硬件,则意味着要为每个可能的应用修改现有的程序;
在某一台计算机上,每个应用程序都必须了解本机的网络细节,代码重复。比如要是用这样方法建立的网络,某计算机有QQ应用程序和迅雷下载工具,它们对网络的操作分别都是进入底层操作的。所以代码重复。
基于上述第一种方法非常不适用的前提下,第二种方法就合理很多。它的思路是把底层细节用一个高一级层面的规范隐藏起来,使每个异构网络在这高一级的层面进行通信。在这个高一级的层面上,各个计算机及网络设备都是站在同一平台上的。先不着急具体的应用,具体的应用在这个高一层的平台上面再进行开发。
这高一级的层面就是网络层。用基于网络层的互联系统取代前面讲的第一种方法——基于应用层程序互联方法。
网络层互联提供一种机制,把小数据分组从源站交付到目的站,而不必使用中间路过的机器的应用程序。中间路过的机器只需要有支持网络层传送数据的设备和程序即可。这样做优点很多,一是高效,网络层直接映射到底层硬件,且中间机器不需数据收发的应用程序,只需网络层传送的程序即可。二是可使整个网络系统中创建通用的通信工具,因为再上层应用类的通信工具都是在网络层这个平台之上制作的。如QQ。(前面那个例子举得不恰当,那种网络体系中不可能存在QQ)
网际互联internetworking是一个抽象的通信系统概念。它是个强有力的概念,它把通信这个观念从网络技术细节中分离出来,并对用户隐藏了底层的细节。更重要的是,它引导了所有软件设计的决策,并解释了如何处理物理地址和选择路由。
网际互联需要的规范,即协议,就是TCP/IP。事实上,IP是网络层协议,TCP是比网络层高一级的传输层。
互联网结构:
TCP/IP层面的协议隐藏了底层技术细节,因此,得以实现用户接口中的网络无关性,就是说,我们希望用于建立通信或传输数据的一系列操作,保持与下层网络技术和目的机器的无关性。当用户创建或使用应用程序进行通信时,应当不需要了解网络互连的拓扑结构。
我们期望的网络是普遍互联的互联网。就是当用户计算机接入这个互联网时,可以与互联网内的任何计算机通信。但从物理上来讲,互连网是由许多低一级的网络组成,比如说局域网。由局域网连接成城域网,城域网连接成互联网。它们之间的连接是通过一种可以将分组从一个网络传递到另一个网络的计算机或设备实现的。这种设备叫互联网网关internet gateway或互联网路由器internet router。
其中R是能够在网络之间转发分组的路由器。在一个TCP/IP互联网中,被称为IP路由器或IP网关的计算机提供了物理网络之间的所有互连。设计TCP/IP的目的是提供计算机之间的普遍互联,独立于计算机所连接的那些特定网络。因此,用户可以将互联网看成是一个单一的虚拟网络,所有计算机都与其相连,不管实际的物理连接如何。在网络层提供互连的优点就很明显了。在互联网上通信的应用程序并不知道下层连接的细节,因此它们不做任何改变就能运行在任何机器上。因为每台机器的物理网络连接细节隐藏于互联网软件中,所以在增加新的物理连接或除去现有物理连接时,只需改动互联网软件(一般为TCP/IP协议软件)。
从本质上讲,TCP/IP定义了一个隐藏物理网络细节的抽象“网络”。
最初的分类编址方案:
既然把TCP/IP互联网定义成一个虚拟网络,且该网络是用路由器把多个物理网络互连起来构成的。在这样一个虚拟网络统一实体中,编址问题是最基本的问题。
全世界接入互联网的计算机都需要有其特定的标识符来识别和通信。通常,主机标识符可分为名字name、地址address、路由route这三类。实际上是主机标识符由高到低三级的表示方法。名字标志它是什么;地址标志它在哪里;路由标志怎样到达那里。
互联网上每台主机都分配了一个32比特的整数地址,称为IP地址。为了使转发更高效,IP地址采用层次化管理,每个地址都是由网络号和主机号组成。在转发时就可以先转发到相应网络,到达该网络后再转发给指定主机。
最初的编址方案五类:
这种方案中,每类都是可以识别的,被认为是自标识的。因为仅从地址本身就可以计算出网络号和主机号的边界。这是与后面带掩码的子网编址的区别。
A类地址,用于有 2^16<主机数<2^24 台主机的网络。7比特用于网络号,24比特用于主机号。
B类地址,用于有 2^8<主机数<2^16 台主机的网络。14比特用于网络号,16比特用于主机号。
C类地址,用于有 0<主机数<2^8 台主机的网络。21比特用于网络号,8比特用于主机号。
D类地址,用于多播。书的第十六章才讲。
E类地址,用于保留或实验用。
特殊IP地址:
一、主机号全零。A\B\C三类地址中的主机号全零的IP地址表示该网络号,不可分配给特定主机。
二、主机号全一。A\B\C三类地址中的主机号全一的IP地址表示对该网络的定向广播。在一些底层网络技术(如以太网技术)支持下,广播可以被映射为底层的广播,如以太网的广播;而有些底层技术不支持广播,IP层面的广播映射下去后实际上在底层还是一主机一个主机的转发。
三、全一地址。32比特全一的地址用来本地网络的广播。称为本地网广播地址,或称受限广播地址。一台主机在知道自己IP地址和本网络IP地址之前就可以启动受限广播。
四、全零地址。32比特全零的地址用来当本主机需要通信,且不知道自己的IP地址时,将发送数据报给受限广播地址,并用全零来标识自己。接收方知道此主机还没有一个IP地址,就会用一种特殊的方法来发送回答。
五、网络前缀127.0.0.0的地址。用来本机的还回loopback,用于测试TCP/IP及本机进程间的通信,比如可以ping 127.0.0.1来测试本机TCP/IP协议栈是否安装正确。不能用于作为网络IP地址。
六、每一类中的地址值并没有完全参与分配。如:B类地址中的最低前缀128.0.0.0不会被分配;B类地址中最先分配的地址前缀是128.1.0.0。类似的,C类地址最先分配的地址前缀是192.0.1.0。
七、IETF保留了几个地址前缀,并建议专用互联网上使用这些前缀。
因特网编址管理机构:
因特网名字与号码指派协会ICANN负责指定政策和分配地址。只有大型的因特网服务提供者ISP才与ICANN联系申请前缀,其他的ISP都从高一级的ISP那里获取IP地址前缀。
多归属主机的IP地址:
路由器和一些主机是同时连接两个或更多的网络的。它们在不同的网络接口上有不同的IP地址,分组转发时是按照IP地址转发的。比如说:
可见其中的多归属主机以及这两个路由器都有两个IP地址。
注:以上都是IPv4的标准下的知识。复习中包含我自己的理解,如有什么不对的地方同志们尽管指出,大家一同学习讨论。
文章评论(0条评论)
登录后参与讨论