一.IP地址的简介
IP是整个TCP/IP协议的核心,传输层协议(如UDP和TCP)都需要IP为其提供的服务,而像ICMP和IGMP等网络层协议也基于IP来传送协议数据。常见的广域网路由器就工作在IP层,它们负责将IP数据报从源主机送至目的主机,主机间的区分是通过IP地址来实现的。主机上的IP协议需要完成的工作很多,最基本的是数据报发送和递交,在特殊情况下它还要完成数据报的分片和重装功能,在更特殊的情况下,它还要完成数据报的转发等工作。IP是一种不可靠的无连接数据报协议,它提供尽最大努力的交付服务,但是并不保证每个分组都能被正确送达,此外,IP不会对其运载的数据进行差错校验和跟踪。总之,IP的服务被看作是不可靠的。但它会提供尽最大努力的服务,即互联网不会随便丢弃哪个分组,只有在资源耗尽或者网络出现故障时才可能丢弃分组。一台主机只有拥有了合法的IP地址,它才拥有了进入互联网世界的身份证
二.IP地址的分类
三.特殊IP地址
1、环回地址:127.x.x.x,用于本机软件的网络测试与进程间的通讯,使用环回地址的网络数据包不会出现的实际网络中
2、网络地址:主要用来标识不同的网络,将IP的地址的主机号全部取0,就得到主机所处的网络地址,当一个数据包进入一个网络时,该网络的路由器首先判断数据包的目的网络是否与本地网络号相匹配,如果两个地址不匹配,那么路由器将根据合适的算法对数据包进行转发;只有当两个网络地址相匹配,路由器才会查找相应的主机号进行主机的匹配,最后将数据包发送给指定的主机
3、直接广播地址:直接广播地址是将IP地址对应主机号全部取1而得到的,广播地址代表本网络号内的所有网络设备,使用该地址可以向属于同一个网段内的所有网络设备传送数据,一个C类地址201.192.25.40,主机号是最后一个字节,将主机号位全部取1得到的地址是201.192.25.255,这个地址即是这个网络的广播地址
4、受限广播地址:IP地址32位全部为1,该地址用于向本地网络中的所有主机发送广播消息,有限广播将广播限制在最小范围内,当采用标准IP编址时,有限广播发生在本网络中(与直接广播无差异),当采用子网编址方式时,有限广播的广播被限制在本子网中,这类地址不能作为源地址,它本质上是个E类地址
5、本网络本主机:IP地址32位全部为0,这个地址用某个主机启动时要通信,但是暂时又不知道自己的IP地址,此时主机为了获得一个有效IP地址,将发送一个数据包给有限广播地址,并用全0地址来标识自己。接收方知道发送方还没有IP地址,就会采用一种特殊的方式来发送回答(DHCP),此地址不应该作为目的地址使用,它地址本质上是个A类地址
6、本网络的特定主机:当用户想与本网络内部特定主机通信时,可以将网络号对应字节全部设置为0进行简化。如当向具有B类地址的某个主机发送数据包时,数据包中的目标IP地址为0.0.11.32,则表示数据包要发送到网络中主机号为11.32的主机处。该地址本质上是个A类地址
6、上面讲的6种特殊地址不能被分配给任何主机,而下面讲的这几个专用地址却可以被分配给多个主机,当然这些主机之间应该互不相关,即处于互相独立的专用网内,例如目前很流行的以太网局域网。在每一类地址中,都有部分的地址是专用地址:
地址类别 地址范围 网络号个数
A类 10.0.0.0~10.255.255.255 1
B类 172.16.0.0~172.31.255.255 16
C类 192.168.0.0~192.168.255.255 256
四.IP地址的子网划分及子网掩码
子网编址:标准IP地址使用网络号和主机号两层地址结构,这样当有大量的个人用户和小型局域网用户要接入互联网,即使只为其分配一个C类网络也会造成IP地址的大量浪费,而且随着目前互联网用户数量的增长,IP地址的分配变得非常的紧张,为每个物理网络分配一个网络号的做法变得很不现实,因此,现在流行一种分组编址方案来节省网络号的使用,这种方法称为子网编址,在子网编址中,不再把IP地址看成是一个单纯的网络号加主机号,而是将主机号再划分为一个子网号和主机号,例如,对于一个B类网络地址(180.113),在其16位主机号中,将8位用于子网号,8位用于主机号。这样就可以在整个机构内支持254个子网,每个子网可以有254台主机
子网掩码:标准的IP地址,一眼就能够看出其种类(第一个字节就行)并获取其中的网络号,但对于子网编址,要想得到其网络号和子网号,就必须使用子网掩码。子网掩码的长度也是32位,左边是网络位(包括子网位),右边是主机位,所有网络位都用1表示,所有主机位都用0表示,这就形成了子网掩码。例如,对一个C类地址,且取主机号的前两位为子网号,该子网可以产生64个可能的主机地址,但是只有62个可以分配给主机(主机号为全0的表示子网的网络地址,主机号全1的用于子网的广播),子网掩码为255.255.255.192
五.NAT地址转换
1、随着互联网的快速发展,IP地址短缺严重,为了解决这种问题,出现了多种解决方案,其中最流行最有效的就是目前使用的局域网技术,事实上,局域网本质上属于专用网的一种类型,专用网被用在机构内部使用,它允许机构内部访问共同的资源,但却对外部网络屏蔽了内部网络的结构和主机信息,大大提高了内部主机的安全性
2、企业内部使用的局域网路由器都是具有NAT功能的,具有NAT功能的路由器至少要有一个内部地址和一个外部地址,内部地址是路由器为了与局域网内的用户通信而使用的,它使用一个内部专用IP地址,例如常见的路由器内部IP地址可以为192.168.1.1,外部地址是路由器用来与外部网络通信用的,它通常具有一个有效的IP地址,假设为一个有效的C类地址222.197.179.21
3、
(1)NAT实现的方式有很多种,其中使用最厂泛方式为端口多路复用,它是基于TCP或UDP协议端口号以及IP地址来实现NAT功能。举个例子,假如我们的局域网用户(IP地址192.168.1.78,端口号1234)需要使用TCP协议与互联网中的一个HTTP服务器进行通信(IP地址130.21.45.20,端口号80),则它将发送一个包含源IP地址、源端口号、目的IP地址、目的端口号的IP分组到路由器处,这里假设这四个值分别为(192.168.1.78,1234,130.21.45.20,80)
(2)具有NAT功能的路由器会在内部维护一个NAT转换表,当路由器收到该分组时,会在表中为连接(192.168.1.78,1234,130.21.45.20,80)分配一个路由器内部的NAT端口(假设为5678),另一方面,路由器在转发该分组时,会先更改分组中的源IP地址和端口号(分别改为路由器外部IP地址和NAT端口),然后将数据包发送出去。所以,被路由器转发出去的数据包中的信息对应为:(222.178.197.21,5678,130.21.45.20,80),当服务器响应这个数据包时,它返回的数据报头部信息为如下所示的值,它对应的是路由器的IP地址和NAT端口号:(130.21.45.20,80,222.178.197.21,5678)
(3)最后,当路由器接收到这个分组后,会在NAT转换表中查找NAT端口号为5678的连接,并把数据分组中的IP地址信息和端口信息更改为NAT转换表中记录的信息,最后把这个数据包返回给用户主机(130.21.45.20,80,192.168.1.78,1234)这样,经过NAT两次简单的转换,局域网用户就实现了与外部网络的数据包交互,上述整个过程对所有用户来说是透明的,但所有局域网用户能够通过同一个IP地址与外部进行通信。在NAT转换中,NAT端口是个关键的因素,路由器应该为每个连接分配一个唯一的NAT端口号,并及时回收那些不用的端口号
(4)基于上述原理实现的NAT能够使用一个全球范围内的P地址为多台主机提供通信服务,这可以有效解决目前IP地址短缺的问题。使用NAT也存在着缺陷,首先其通信只限于具有端口号的TCP和UDP协议,其次转换过程中需要路由器对进出的各个IP分组内部各个字段进行操作,例如更改源地址、更改端口号、重新计算校验和等,这使得分组转发效率受到了一定的影响
六.单播、多播、广播
1、为了实现IP数据报的单播、多播和广播,在数据链路上,也必须提供一定的底层单播、多播和广播机制来支持IP数据报的这些特性。在以太网中,根据目标MAC地址的不同,可以实现底层中的单播、多播和广播
2、在以太网中组播(多播)数据帧发送时,直接将MAC地址01-00-5E-00-00-00的低23位设置为目的多播IP地址的低23位,这样就能直接在以太网中完成多播数据包发送了
3、在网卡发送IP数据包时,如果是广播包,直接将以太网帧中的目的MAC地址设置为全1即可,这代表了以太网广播
4、如果一个数据包既不是多播,也不是广播,那它就只能是单播了。对于以太网中的单播,需要先在ARP表中查找与目的IP地址匹配的MAC地址,然后再进行发送工作