地位:
T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输。IP网协议是TCP/IP协议族的核心
特点:
I P提供不可靠 无连接的数据报传送。
不可靠( u n r e l i a b l e)的意思是它不能保证I P数据报能成功地到达目的地。I P仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单的错误处理算法:丢弃该数据报,然后发送I C M P消息报给信源端。任何要求的可靠性必须由上层来提供(如T C P)。
无连接( c o n n e c t i o n l e s s)这个术语的意思是I P并不维护任何关于后续数据报的状态信息。
每个数据报的处理是相互独立的。这也说明, I P数据报可以不按发送顺序接收。如果一信源
向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由
选择,可能选择不同的路线,因此B可能在A到达之前先到达
1.格式
最高位在左边,记为0 bit;最低位在右边,记为31 bit。这种传输次序称作big endian字节序。
2. 字段
4位版本:
目前的协议版本号是4,因此I P有时也称作I P v 4
4位首部长度:
IP首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为6 0个字节
8位服务类型:
服务类型(TO S)字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TO S子字段和1 bit未用位但必须置0
4 bit的TO S分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。
4 bit TOS说明如下图:
Te l n e t和R l o g i n这两个交互应用要求最小的传输时延,因为人们主要用它们来传输少量的交互数据。另一方面, F T P文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理(S N M P)和路由选择协议。用户网络新闻( Usenet news, NNTP)是唯一要求最小费用的应用。
现在大多数的T C P / I P实现都不支持TO S特性,但是自4.3BSD Reno以后的新版系统都对它进行了设置。另外,新的路由协议如O S P F和I S - I S都能根据这些字段的值进行路由决策
16位总长度:
整个I P数据报的长度,以字节为单位。最大IP数据包可达65536字节,但是大多数的链路层都会对它进行分片
T T L(t i m e - t o - l i v e)
生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。T T L的初始值由源主机设置(通常为3 2或6 4),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送I C M P报文通知源主机。
首部检验和
根据I P首部计算的检验和码。它不对首部后面的数据进行计算。I C M P、I G M P、U D P和T C P在它们各自的首部中均含有同时覆盖首部和数据检验和码。
IP数据包从源地址发送到目标地址!讨论下IPV4地址的编码
IP分类
根据网络地址范围,人为规定了A,B,C,D,E五类网络地址并且指定了网络号与主机号
主机上的分类:
现在所有的主机都要求支持子网编址不是把I P地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。
这样做的原因是因为A类和B类址为主机号分配了太多的空间,可分别容纳的主机数为2^24-2和 2^16-2(由于全0或全1的主机号都是无效的,因此我们把总数减去2)。事实上,在一个网络中人们并不安排这么多的主机。
譬如:
这里有一个B类网络地址(1 4 0 . 2 5 2),在剩下的16 bit中,8 bit用于子网号, 8 bit用于主机号,。这样就允许有2 5 4个子网,每个子网可以有2 5 4台主机。
子网掩码
对于一个IP地址,主机需要知道多少个bit用于网络号,多少个bit用于子网号。主机借助子网掩码可以得到这一信息
首先,A类地址网络号为8bit,B类地址网络号为16bit
其次,除去网络号掩码,剩余的bit为子网号占用的bit
假设我们的主机地址是1 4 0 . 2 5 2 . 1 . 1(一个B类地址),而子网掩码为2 5 5 . 2 5 5 . 2 5 5 . 0(其中8b i t为子网号, 8 bit为主机号)。
如果目的I P地址是1 4 0 . 2 5 2 . 4 . 5,那么我们就知道B类网络号是相同的( 1 4 0 . 2 5 2),但是子网号是不同的(1和4)。
如果目的I P地址是1 4 0 . 2 5 2 . 1 . 2 2,那么B类网络号还是一样的( 1 4 0 . 2 5 2),而且子网号也
是一样的,但是主机号是不同的。
如果目的I P地址是1 9 2 . 4 3 . 2 3 5 . 6(一个C类地址),那么网络号是不同的,因而进一步的
比较就不用再进行了。
大多数的子网例子都是B类地址。其实,子网还可用于C类地址,只是它可用的比特数较少而已。很少出现A类地址的子网例子是因为A类地址本身就很少(但是,大多数A类地址都是进行子网划分的)。
子网对外部路由器来说隐藏了内部网络组织(一个校园或公司内部)的细节。在我们的网络例子中,所有的I P地址都有一个B类网络号1 4 0 . 2 5 2。但是其中有超过3 0个子网,多于4 0 0台主机分布在这些子网中。由一台路由器提供了I n t e r n e t的接入。
实例图说明:
与3 0个C类地址相比,用一个包含3 0个子网的B类地址的好处是,它可以缩小I n t e r n e t路由表的规模。
B类地址1 4 0 . 2 5 2被划分为若干子网的事实对于所有子网以外的I n t e r n e t路由器都是透明的。为了到达I P地址开始部分为1 4 0 . 2 5 2的主机,外部路由器只需要知道通往I P地址1 4 0 . 2 5 2 . 1 0 4 . 1的路径。这就是说,对于网络1 4 0 . 2 5 2只需一个路由表目,而如果采用3 0个C类地址,则需要3 0个路由表目。因此,子网划分缩减了路由表的规模
子网对于子网内部的路由器是不透明的。一份来自I n t e r n e t的数据报到达g a t e w a y,它的目的地址是1 4 0 . 2 5 2 . 5 7 . 1。路由器g a t e w a y需要知道子网号是5 7,然后把它送到k p n o。同样,k p n o必须把数据报送到R 5 5,最后由R 5 5把它送到R 5 7。
从概念上说, I P路由选择是简单的,特别对于主机来说。如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么I P数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。大多数的主机都是采用这种简单机制。
I P层在内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次
具体工作
I P路由选择主要完成以下这些功能:
我们的主机b s d i有一个I P数据报要发送给主机s u n,双方都在同一个以太网上。
当I P从某个上层收到这份数据报后,它搜索路由表,发现目的I P地址(1 4 0 . 2 5 2 . 1 3 . 3 3)在一个直接相连的网络上(以太网1 4 0 . 2 5 2 . 1 3 . 0)
数据报被送到以太网驱动程序,然后作为一个以太网数据帧被送到s u n主机上。I P数据报中的目的地址是s u n的I P地址( 1 4 0 . 2 5 2 . 1 3 . 3 3),而在链路层首部中的目的地址是48 bit的s u n主机的以太网接口地址。这个48 bit的以太网地址是用A R P协议获得的
主机b s d i有一份I P数据报要传到f t p . u u . n e t主机上,它的I P地址是1 9 2 . 4 8 . 9 6 . 9