互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)。
IP地址长通常写成四个十进制的数,其中每个整数对应一个字节,4字节,共32 bit,1字节=8bit,
1、单播地址(目的为单个主机)、
2、广播地址(目的端为给定网络上的所有主机)
3、多播地址(目的端为同一组内的所有主机)。
IP还可以分类为,私有地址和公有地址:
1、公网地址(Public address)
由Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
2、私网地址(Privateaddress),
就是就是国际上分配IP的时候,留出一部分IP,不用于在Internet上用可用于内部局域网等,虽然功能一样,但不能在Internet上使用。属于非注册地址,专门为组织机构内部使用。私网地址不能够直接访问外网,必须通过地址转换相关的协议转换成公网地址,才能够访问外网。
以下列出留用的内部私有地址
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
下列地址不能分配给实际的网络:
1、 第一个八位组是127的地址(如127.0.0.1)定义为回返地址。对于所有发往回返地址的数据,网络栈将视为传输给自己的数据,尽管数据沿网络栈向下传递,并没有真正发送到网络媒体上。这种方法允许主机通过其网络接口与自己通信,这对于测试很有用。
2、 主机部分为全1的地址是广播地址。网络上的所有主机都将接收以广播地址为目的地址的数据。
3、全0的地址表示本网络或本主机。一个表示特定网络的A类地址若主机部分为全0表示在此特定网络上的本主机。同样,网络地址为全0(如0.0.121.1 )表示在本网络上的特定主机。
1、回返地址占用了一个A类网络地址,否则127将是最高阶的A类地址。
2、对于全0地址( 0.0.0.0 )的保留又减少了一个A类地址。因此,有效的A类网络局限于第一个八位组为1 ~ 126,而不是0 ~ 127,即只有126个可能的A类地址。
3、 保留地址也影响到每个网络上的唯一主机地址的数量。网络上的最大主机数变成了2的n次方- 2,而不是2的n次方,对于A类,n = 24;B类,n=16;C类,n =8。全0或全1地址分别保留下来,以用于本主机或广播地址。虽然这并没有显著的减少A类和B类地址的数量,但却把C类地址的数量从256减少到了254。这种地址丢失在网络划分为子网时变得更加严重(子网将在后面讨论)。
现在所有的主机都要求支持子网编址。
不是把IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。
这样做的原因是因为A类和B类地址为主机号分配了太多的空间,可分别容纳的主机数为2的24次方-2和2的16次方-2(由于全0或全1的主机号都是无效的,因此我们把总数减去2)。
各类IP地址的格式如图所示。
A类地址只有126个(2的7次方-2=126),用于那些最大的实体,如政府机关,因为它们连接着最多的主机:理论上最多可达一千六百万台。
B类地址大约16000个(2的14次方-2=16382),用于大型机构,如大学和大公司,理论上可支持超过65 000台主机。
C类网络超过两百万个(2的21次方),每个网络上的主机数量不超过255个,用于使用I P网络的其他机构。
在InterNIC获得某类IP网络号后,就由当地的系统管理员来进行分配,由他(或她)来决定是否建立子网,以及分配多少比特给子网号和主机号。
例如,这里有一个B类网络地址(140 . 252),在剩下的16 bit中,8 bit用于子网号, 8 bit用于主机号,格式如图3 -5所示。这样就允许有254个子网,每个子网可以有254台主机(2的8次方=254)
任何主机在引导时进行的部分配置是指定主机IP地址。
大多数系统把IP地址存在一个磁盘文件里供引导时读用。
在第5章我们将讨论一个无盘系统如何在引导时获得IP地址。
除了I P地址以外,主机还需要知道有多少比特用于子网号及多少比特用于主机号。这是在引导过程中通过子网掩码来确定的。这个掩码是一个32bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号。 如图3 - 7所示,子网号和主机号都是8 bit宽。第二个例子是一个B类地址划分成10 bit的子网号和6 bit的主机号
尽管I P地址一般以点分十进制方法表示,但是子网掩码却经常用十六进制来表示,特别是当界限不是一个字节时,因为子网掩码是一个比特掩码。
给定IP地址和子网掩码以后,主机就可以确定IP数据报的目的是:
(1)本子网上的主机;
(2)本网络中其他子网中的主机;
(3)其他网络上的主机。
如果知道本机的IP地址,那么就知道它是否为A类、B类或C类地址(从IP地址的高位可以得知),也就知道网络号和子网号之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。
子网掩码是用来判断任意两台主机的IP地址是否属于同一子网络的根据。
子网掩码与IP地址一一对应,是32bit的二进制数。
子网掩码为1表示网络位,为0表示主机位。
在子网掩码的32bit二进制数中,必须是连续的1和连续的0,也就是说不能存在0和1交叉出现的子网掩码。
由此可以得出,子网掩码只能是:
128、192、224、(10000000;11000000;11100000)(十进制~二进制)
240、248、252、(11110000;11111000;11111100)
254 和255中的值 (11111110;11111111)
子网掩码转换:二进制十进制十六进制
(11111111.11111111.11111111.11111111)=255.255.255.255=0xffffffff=32(32个1) (11111111.11111111.11111111.11000000)=255.255.255.192=0xffffffc0=26(26个1)
11111111.11111111.11111111.00000000)=255.255.255.0=0xffffff00=24 (24个1)
IP地址计算
对IP地址的相关计算包括,网络地址、网络广播地址、主机地址范围等的相关计算。
IP是TCP/IP协议族中最为核心的协议。
所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。
IP提供不可靠、无连接的数据报传送。
不可靠( unreliable)的意思是它不能保证IP数据报能成功地到达目的地。
IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了
缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消
息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
无连接( connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。
最高位在左边,记为0 bit;最低位在右边,记为31 bit。
4个字节的32 bit值以下面的次序传输:
首先是0~7 bit,其次8~15 bit,然后16~23 bit,最后是24~31 bit。
这种传输次序称作bigendian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。以其他形式存储二进制整数的机器,如little endian格式,则必须在传输数据之前把首部转换成网络字节序。
目前的协议版本号是4,因此IP有时也称作IPv4。
首部长度指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。普通IP数据报(没有任何选择项)字段的值是5。
服务类型(TOS)字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置0。
4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。
4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。
总长度字段值,是指整个IP数据报的长度,以字节为单位。
标识字段,唯一地标识了主机发送的每一份数据报。
3bit标志字段,1bit reserved bit,1bit don’t fragment,1bit more fragment。
13bit片偏移,该片偏移原始数据报开始处的位置。
TTL 生存时间,设置了数据报可以经过的最多路由器数。
协议字段,表明了报文协议类型。
首部检验和,根据IP首部计算的检验和码