网络学和通信学基础:IP网络协议讲解手册

来源:软件水平考试    发布时间:2012-11-04    软件水平考试视频    评论

  在网络学和通信学中,协议就是定义过程的正式规格说明书,当传送或者接受数据的时候必须严格遵守。协议定义了网络中数据传输的格式、时间选择、先后次序、错误检查。
  简单的说,上述说法意味着如果你想让两台或者两台以上的设备进行通信,它们就需要一个共同的协议或者说是一组规则来指导这些设备在什么时候、以什么方式进行相互之间会话。
  网络协议一般由RFC(requests for comments,请求注释,Internet标准草案定义组织)来定义,该组织中的IETF(Internet工程任务组,Internet Engineering Task Group)负责制定新的标准的或者协议。网络产品供应商(例如IBM、思科、微软、Novell)就根据这些标准并将这些标准在他们的产品中实现出来。
  已经出台的协议有成百上千个,将他们一一列举在这里是不可能的。所以我们现在仅仅介绍一下几个最常用的协议,而且,我们将在未来的文章中研究一些专业性更强的协议。
  下表展示了目前最流行的TCP/IP协议,同时我们用OSI模型来显示每个协议工作的网络层次。
  需要紧记在心的事情是,当你从最下边的物理层到最上边的应用层的时候,设备用于处理协议的时间将越来越长。
  IP协议介绍
  Internet协议(或者叫IP协议)可能是网络通信中最重要也是最著名的协议之一,它使我们能够唯一标识网络中(这里一般指企业内部的网络)或者Internet上的每一台电脑。
  当将一台计算机连入网络中或者连入Internet中的时候,它将被分配一个唯一的IP地址。如果你是将它连入Internet中,IP地址的分配是由你所在的ISP(网络服务提供商)自动完成的,如果你是将其连入到一个局域网(LAN)中,那么你的IP地址可以是自动分配的,你也可以按照分配给你的 IP地址,在你的工作站上进行手动配置。
  如果你想真正的了解网络通信是如何工作的,那么深入了解IP协议就是不得不强调的事情,DNS(域名服务器)、FTP(文件传输协议)、SNMP(简单网络管理协议)、HTTP(超文本传输协议)及其很多其他的协议和服务都需要依赖IP协议才能正常发挥功能,所以你立刻就能看到IP协议将不仅仅是你工作站上的一个地址而已!
  现在,因为IP协议是一个含有丰富知识的学科,我们不可能在一两页的文章中涵盖其全部内容,所以决定将其分成几个不同的部分,以便于使其更易懂易学。
  二进制:比特与字节
  为了更好的理解IP协议,我们需要学习并理解二进制的相关知识,IP协议中的一个重要部分就是子网划分,而只有IP地址转化成二进制才能合理解释并正确理解子网划分。我们很多人都没有意识到,当我们在电脑上玩游戏、读书或者在屏幕上画画的时候,其实电脑根本无法理解文字、图像和声音这些东西。事实上,所有的电脑都仅仅能够理解0和1,我们在电脑屏幕上看见的那些东西其实都来源于对电脑能理解的数据流的转化,所以显出出来的这些信息对于我们来说才变得有用并有意义。
  二进制:比特与字节
  所有使用Internet的人总会在某个时候碰见“字节”(Byte)或者“比特”(Bit)术语,当你进行网络下载的时候它们会经常出现,同时你获取的速度指示也都以比特/每秒或者字节/每秒来显示。我们现在就来弄清楚比特(Bit)、字节(Byte)和千字节(Kbyte)究竟是什么意思,这样你就能理解它们了。要多简单就有多简单,一个比特就是一个二进制数的最小单元,就像我们说我们能够拥有的最小金额的钱就是一分一样,只不过比特是在二进制数中罢了。
  一个比特只能拥有一个值,不是0就是1,所以如果我给你一个值0,你可以说它就是一个比特,如果我给你两个(00),你就可以说它们是两个比特了。
  现在,如果你将八个0或者1组合在一起,例如0110 1010(在中间加一个空格是为了看起来清晰明了),你就可以说它们是八个比特或者说一个字节。好,这就对了,八比特就等于一字节,而不管它们都是全是0、全是1或者是由若干0和若干1混合而成。
  将这些字节加起来,到了1024个字节的时候,就获得了一个千字(Kbyte)了,为什么是1024而不是1000呢?这是由二进制的进位方式造成的,如果你学过数学,你就会知道上述结果是正确的。
  二进制与十进制之间的转换
  那么,二进制与IP有什么关系呢?
  就像我在开始的介绍中解释的那样,计算机使用一种我们都能理解的信息方式来显示这些0或者1,IP协议也按照类似方式工作,虽然我们在98%的时间里看到都是十进制数,但实际上计算机将它们转换成二进制数后才能理解。
  上边的例子就出现了一个十进制的IP地址,它是我们更容易理解的,当把这个地址(192.168.0.1)转化成二进制数计算机就能理解了。你可以看到得到的二进制数很长,对于我们来说,记住四个不同的数字肯定比记住32个0或1要容易。
  现在,紧记我们前边说到的关于比特和字节的概念,你曾经听到过或者读到过人们常说一个IP地址是一个32比特地址吗?是的,就是这样,你现在可以知道为什么:
  所以,如果将上边所述总结一下,我们现在就知道什么是二进制数?什么是一个比特、字节或者千字节?以及二进制数与通常以十进制数表示的IP地址是什么样的关系?
  二进制与十进制之间的转换
  现在,我们开始考虑一下如何进行十进制和二进制之间的转换过程,这是一个非常重要的步骤,因为你将会发现,在处理一些比较复杂的子网的时候,你经常都需要进行这种转换,而且,一旦你这种掌握了这些基本概念,这种转换是不难的。下图就向你显示了一个IP地址向二进制的转换过程,请紧记我将要向你展示的方法对其他的转换都是适用的。我们现在打算将IP地址中(192.168.0.1)第一个八位比特转换成二进制,换句话说我们需要将“192”转换成二进制数,我们根本就不需要做任何负责的运算,仅仅需要做一些简单的加法:
  如果你已经阅读并已经理解本页的第一部分,你应该知道我们需要八个比特来创建一个八位位组(一个字节)或者说就是这个数字192。每个比特都代表一个永远不变的值,在图中我们在比特数字上方用紫色来显示这个值。然后我们采用这样一种方法来选择一些比特位,找出比特位所代表值加起来和我们需要的十进制数相等的比特位,这些位就是我们需要选择的比特位。
  如果你想利用数学术语来解释这种转换,你可能说每个位都是2的幂(2^),例如第8位就是2的7次方(2^7,十进制数为128)、第7位就是2的6次方(2^6,十进制数为64)、第6位就是2的5次方(2^5,十进制数为32)、第5位就是2的4次方(2^4,十进制数为16)、第4位就是2的3次方(2^3,十进制数为8)、第3位就是2的2次方(2^2,十进制数为4)、第2位就是2的1次方(2^1,十进制数为2)、第1位就是2的0次方(2^0,十进制数为1)。
  注意:当我们计算一个八位位组的十进制的时候(如上述例子中的192),比特位的位置参数并不是我们用来获得十进制数是所使用的2的幂次数,这就意味着Bit 1并不能转换成十进制的时候不能算成2^1=2)。
  在我们的例子中,我们使用192这个数,就如你所看到的那样,我们需要第8个比特位和第7个比特位,这就获得了所求的二进制数1100 0000,它就是十进制数192的二进制形式。你一定要记住每个比特位所代表的值是不能改变的。例如,第8位代表128,而第1位总是代表1,使用这种方法,你就会发现将十进制转换成二进制是非常简单的,它根本就不需要复杂的数学运算。
  现在我们来研究一下下一个八位位组,它的十进制形式是168:
  这里你可以再一次看到我们需要选择第8位、第6位和第4位(换句话说我们需要将这些位置都赋成“1”),这些位所代表值相加就能得到十进制数168,所有二进制数1010 1000就和十进制数168相等。
  不管你是从十进制数转换成二进制数,还是从二进制数转换成十进制数,都可以使用同一种方法,如果你能理解上述方法,你就应该能转换任何十进制数或者二进制数。
  这仅仅是这部分需要掌握的内容,你应该开始准备下一部分。
  IP协议报头
  介绍
  就象所有其他的协议一样,IP协议在OSI模型占有一席之地,因为它是一个如此重要的网络以至于其他协议都依赖于它,所以IP协议需要先于其他协议放入OSI模型中,这就是你会在OSI模型的第三层发现它的原因(其它的应用协议基本上都在三层以上)。 

  当一个计算机接受到来自网络的数据包的时候,它将首先在数据链路层(第二层)检查数据包中包含的目标机MAC地址,如果MAC地址于本机匹配,它才会将数据包传递给网络层。
  在网络层,计算机将检查数据包中的目标IP部分是否与本机的IP地址匹配(如果该数据包是一个广播数据包,则会无条件的通过网络层)。

上一页1234下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答