TCP/IP基础(二)

TCP/IP基础(二) – IP协议

IP地址的定义

IP地址(IPv4地址)由32位正整数来表示。TCP/IP通信要求将这样的IP地址分配给每一个参与通信的主机。IP地址在计算机内部以二进制
(二进制是指用0、1表示数字的方法) 方式被处理。然而,由于人类社会并不习惯于采用二进制方式,需要采用一种特殊的标记方式。那
就是将32位的IP地址以每8位为一组,分成4组,每组以“.”隔开,再将每组数转换为十进制数(这种方法也叫做“十进制点符号”() 。下面举例说明这一方法。
ip

IP地址的组成: 网络地址 + 主机地址

IP地址由“网络标识(网络地址)”和“主机标识(主机地址)”两部分组成。例如:192.168.128.10/24中的“/24”表示从第1位开始到多少位属于网络标识。在这个例子中,192.168.128之前的都是该IP的网络地址,10表示主机地址。
iPhone
ip3

IP地址的分类

IP地址分为四个级别,分别为A类、B类、C类、D类(还有一个一直未使用的E类。) 。它根据IP地址中从第1位到第4位的比特列对其网络标识和主机标识进行区分。

  • A类地址
    A类IP地址是首位以“0”开头的地址。从第1位到第8位(去掉分类位剩下7位。) 是它的网络标识。
    用十进制表示的话,0.0.0.0~127.0.0.0是A类的网络地址。A类地址的后24位相当于主机标识。
    因此,一个网段内可容纳的主机地址上限为16,777,214个。
  • B类地址
    B类IP地址是前两位为“10”的地址。从第1位到第16位(去掉分类位剩下14位)是它的网络标识。
    用十进制表示的话,128.0.0.1~191.255.0.0是B类的网络地址。B类地址的后16位相当于主机标识。
    因此,一个网段内可容纳的主机地址上限为65,534个。
  • C类地址
    C类IP地址是前三位为“110”的地址。从第1位到第24位(去掉分类位剩下21位)是它的网络标识。
    用十进制表示的话,192.168.0.0~239.255.255.0是C类的网络地址。C类地址的后8位相当于主机标识。
    因此,一个网段内可容纳的主机地址上限为254个。
  • D类地址
    D类IP地址是前四位为“1110”的地址。从第1位到第32位(去掉分类位剩下28位)是它的网络标识。
    用十进制表示的话,224.0.0.0~239.255.255.255是D类的网络地址。D类地址没有主机标识,常被用于多播。
    ip4
    Note:
    在分配IP地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可以全部为0全部为1。因为全部为只有0在表示对应
    的网络地址或IP地址不可获知的情况下才使用。而全部为1的主机地址通常作为广播地址。
    因此,在分配过程中,应该去掉这两种情况。这也是为什么C类地址每个网段最多只能有254(28 -2=254)个主机地址的原因。

广播地址

广播地址用于在同一个链路中相互连接的主机之间发送数据包。将IP地址中的主机地址部分全部设置为1,就成为了广播地址。
例如在以太网中,如果将MAC地址的所有位都改为1,则形成FF:FF:FF:FF:FF:FF的广播地址。因此,广播的IP包以数据链路的帧的形式发送时,得通过MAC地址为全1比特的FF:FF:FF:FF:FF:FF转发
例子:
172.20.0.0/16用二进制表示如下:
10101100.00010100.00000000.00000000   (二进制)
将这个地址的主机部分全部改为1,则形成广播地址:
10101100.00010100.11111111.11111111   (二进制)
再将这个地址用十进制表示,则为172.20.255.255。

广播分为本地广播和直接广播两种。

  • 本地广播
    在本网络内的广播叫做本地广播。例如网络地址为192.168.0.0/24的情况下,广播地址是192.168.0.255。因为这个广播地址的IP包会被路由器屏蔽,所以不会到达192.168.0.0/24以外的其他链路上。
  • 直接广播
    在不同网络之间的广播叫做直接广播。例如网络地址为192.168.0.0/24的主机向192.168.1.255/24的目标地址发送IP包。收到这个包的路由器,将数据转发给192.168.1.0/24,从而使得所有192.168.1.1~192.168.1.254的主机都能收到这个包(由于直接广播有一定的安全问题,多数情况下会在路由器上设置为不转发) 。
    ip5

IP多播

为什么要使用多播 ?同时发送提高效率
在人们使用多播功能之前,一直采用广播的方式。那时广播将数据发给所有终端主机,再由这些主机IP之上的一层去判断是否有必要接收数据。是则接收,否则丢弃。
然而这种方式会给那些毫无关系的网络或主机带来影响,造成网络上很多不必要的流量。况且由于广播无法穿透路由,若想给其他网段发送同样的包,就不得不采取另一种机制。因此,多播这种既可以穿透路由器,又可以实现只给那些必要的组发送据包的技术就成为必选之路了。 ip7
IP多播与地址
多播使用D类地址。因此,如果从首位开始到第4位是“1110”,就可以认为是多播地址。而剩下的28位可以成为多播的组编号。
224.0.0.0239.255.255.255都是多播地址的可用范围。其中从224.0.0.0到224.0.0.255的范围不需要路由控制,在同一个链路内也能实现多播。而在这个范围之外设置多播地址会给全网所有组内成员发送多播的包,可以利用生存时间TTL,Time To Live限制包的到达范围。
利用IP多播实现通信,除了地址外还需要IGMP(Internet GroupManagement Protocol) 等协议的支持.下面是目前已知组播地址:
zbdiz

子网掩码

**为什么会出现子网掩码?**A类,B类会造成IP的浪费.
网络标识相同的计算机必须同属于同一个链路。例如,架构B类IP网络时,理论上一个链路内允许6万5千多台计算机连接。然而,在实际网络架构当中,一般不会有在同一个链路上连接6万5千多台计算机的情况。
因此,这种网络结构实际上是不存在的。直接使用A类或B类地址,确实有些浪费。随着互联网的覆盖范围逐渐增大,网络地址会越来越不足以应对需求,直接使用A类、B类、C类地址就更加显得浪费资源。为此,人们已经开始一种新的组合方式以减少这种浪费。

子网与子网掩码
一个IP地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做**“子网掩码”**的识别码通过子网网络地址细分出比A类、B类、C类更小粒度的网络。这种方式实际上就是将原来A类、B类C类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。
子网掩码有两种表示方式:

  • 它将IP地址与子网掩码的地址分别用两行来表示。
    ip9
  • 它在每个IP地址后面追加网络地址的位数 用“/”隔开,这种方式也叫“后缀”表示法。
    IP0

全局地址与私有地址

随着互联网的迅速普及,IP地址不足的问题日趋显著。如果一直按照现行的方法采用唯一地址的话,会有IP地址耗尽的危险。于是就出现了一种新技术。它不要求为每一台主机或路由器分配一个固定的IP地址,而是在必要的时候只为相应数量的设备分配唯一的IP地址。尤其对于那些没有连接互联网的独立网络中的主机,只要保证在这个网络内地址唯一,可以不用考虑互联网即可配置相应的IP地址。不过,即使让每个独立的网络各自随意地设置IP地址,也可能会有问题(例如因运维方案发生变化该网络需要连接到互联网时,或者不小心误被连接到了互联网时,再例如连接两个本来就各自独立的网络时,都容易发生地址冲突。) 。于是又出现了私有网络的IP地址。它的地址范围如下所示:
IP11
包含在这个范围内的IP地址都属于私有IP,而在此之外(A类~C类范围中除去0/8、127/8。) 的IP地址称为全局IP(也叫公网IP。) 。

到此,读者可能会问这个所谓的全局地址究竟是由谁管理,又是由谁制定的呢?在世界范围内,全局IP由ICANN(Internet Corporationfor Assigned Names and Numbers,中文叫“互联网名称与数字地址分配机构”,负责管理全世界的IP地址和域名)进行管理。而在各个国家内部由国家特定机构来进行管理。

路由控制

发送数据包时所使用的地址是网络层的地址,即IP地址。然而仅仅有IP地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表(Routing Table)。实现IP通信的主机
和路由器都必须持有一张这样的表。它们也正是在这个表格的基础上才得以进行数据包发送的。
该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其他路由器相互交换信息时自动刷新。前者也叫静态路由控制,而后者叫做动态路由控制。为了让动态路由及时刷新路由表,在网络上互连的路由器之间必须设置好路由协议,保证正常读取路由控信息。

IP地址与路由控制

路由控制表中记录着网络地址与下一步应该发送至路由器的地址 。在发送IP包时,首先要确定IP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。所谓最为吻合是指相同位数最多的意思(也叫最长匹配。) 。
例如:172.20.100.52的网络地址与172.20/16和172.20.100/24两项都匹配。此时,应该选择匹配度最长的172.20.100/24。此外,如果路由表中下一个路由器的位置记录着某个主机或路由器网卡的IP地址,那就意味着“发送的目标地址属于同一个链路”(目标地址在同一个链路中的情况下,路由表的记录格式可能会根据操作系统和路由器种类的不同而有所区别) 。

  • 默认路由
    如果一张路由表中包含所有的网络及其子网的信息,将会造成无端的浪费。这时,默认路由(Default Route)是不错的选择。默认路由是指路由表中任何一个地址都能与之匹配的记录。默认路由一般标记为0.0.0.0/0或default(表示子网掩码时,IP地址为0.0.0.0,子网掩码也是0.0.0.0) 。这里的0.0.0.0/0并不是指IP地址是0.0.0.0。由于后面是“/0”,所以并没有标识IP地址(0.0.0.0的IP地址应该记述为0.0.0.0/32) 。它只是为了避免人们误以为0.0.0.0是IP地址。有时默认路由也被标记为default,但是在计算机内部和路由协议的发送过程中还是以0.0.0.0/0进行处理。
  • 主机路由
    “IP地址/32”也被称为主机路由(Host Route)。例如,192.168.153.15/32(表示子网掩码时,若IP地址为192.168.153.15,其对应的子网掩码为255.255.255.255) 就是一种主机路由。它的意思是整个IP地址的所有位都将参与路由。进行主机路由,意味着要基于主机上网卡上配置的IP地址本身,而不是基于该地址的网络地址部分进行路由。
    主机路由多被用于不希望通过网络地址路由的情况(不过,请注意,使用主机路由会导致路由表膨大,路由负荷增加,进而造成网络
    性能下降) 。
  • 环回地址
    环回地址是在同一台计算机上的程序之间进行网络通信时所使用的一个默认地址。计算机使用一个特殊的IP地址127.0.0.1作为环回地址。与该地址具有相同意义的是一个叫做localhost的主机名。使用这个IP或主机名时,数据包不会流向网络。
    IP2

路由控制表的聚合

利用网络地址的比特分布可以有效地进行分层配置。对内即使有多个子网掩码,对外呈现出的也是同一个网络地址。这样可以更好地构建
网络,通过路由信息的聚合可以有效地减少路由表的条目(路由表的聚合也叫路由汇总(Aggregation)。) 。
能够缩小路由表的大小是它最大的优势。路由表越大,管理它所需要的内存和CPU也就越多。并且查找路由表的时间也会越长,导致转发
IP数据包的性能下降。如果想要构建大规模、高性能网络,则需要尽可能削减路由表的大小。
如下图所示,在聚合之前需要6条路由记录,聚合之后只需要2条记录。
而且路由聚合可以将已知的路由信息传送给周围其他的路由器,以达到控制路由信息的目的。下图的例子中路由器C正是将已知192.168.2.0/24与192.168.3.0/24的网络这一信息聚合成为对“192.168.2.0/23的网络也已知”,从而进行公示.
ip15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值