IP地址与IP数据报

应用层

APDU

表示层

PPDU

会话层

SPDU

传输层

报文

网络层

包(报)

数据链路层

物理层

比特

图表 1 网络七层体系结构

1. 概述

      IP协议是互联网信息传输方面的关键协议,它是一种不保证可靠的、无连接的数据报协议,它提供最大努力的信息交付服务,但是不保证每个分组能够正确送达且不提供信息校验与追踪

2. IP地址

      我们今天所见的互联网是由各种功能相异的路由器将多个种类型态各异的物理网络连接而成。而对于IP地址,应当采用一套独立的编制技术,已屏蔽物理层面的影响。目前常用的一种IP编制方法是分类编制,这种将网络号和主机号分开存储的编制方法旨在提高路由器在转发分组时的效率。

0

网络号

主机号

图表 2 A类网络地址

      A类网络地址占据了所有地址空间的一半,该类网络最多有128个,主机上亿个。

1

0

网络号

主机号

图表 3 B类网络地址

      B类网络地址占据了所有地址空间的四分之一,该类网络最多有16368个(2^14,其中的16个为B类网络专用地址),主机65534(2^16-2)。

1

1

0

网络号

主机号

图表 4 C类网络地址

      C类网络占据了所有地址空间的八分之一该类网络最多有2097152个(2^21个,其中的256个为专用地址),每个网络最多容纳254个主机(2^8-2)。

1

1

1

0

多播地址

图表 5 D类网络地址

      D类网络地址占据了所有地址空间的十六分之一,组播专用。

1

1

1

1

保留

图表 6 IP分类编址

      E类网络地址占据了所有地址空间的十六分之一,保留。

2.1 特殊IP地址

2.1.1 环回地址

      发往该地址的数据没有实际发送出去,而是留在了本地,通常本机测试和进程通信用。环回地址占据了A类网络地址的一个网络号。

2.1.2 网络地址

      仅表示主机所在网络的IP地址被称作网络地址,将任一个常规IP地址的主机号字段全写0即该主机的网络地址,网络地址分别占据了A,B,C类网络中的一个主机号。

2.1.3 直接广播地址

      在一个网络中,将任一个地址的主机号全部取1即得到该网络的直接广播地址,这个地址代表了这个网络下的所有设备,直接广播地址占据了A,B,C类网络中的一个主机号。

2.1.4 受限广播地址

      IP地址全写1得到的地址即受限广播地址,该地址用于向本地网络中所有主机发送广播消息,当采用标准IP编制时,受限广播与直接广播无异,受限广播占据了E类网络的一个地址。

2.1.5 本网络上的某主机

      当某网络中的一主机想与同一网络下的另一台主机通信时,可以将IP地址中网络号字段全写0,这是一种简化表示。

2.1.6 本网络本主机

      当某一主机刚刚初始化,没有IP地址时,可以发送一个广播报文,并用全0的IP来标识自己,并等待应答消息。

3. 子网划分和子网掩码

3.1 子网划分

      IP分类编址的一个底层考虑就是每一个网络对应固定数量的主机数,但对于A类网络存在网络数太少而主机数太多的问题;C类网络则存在网络数太多而主机数太少的问题;而就算对于B网络,也很难为每一个物理网络分配一个网络号

      因而发展出一种扩展的分组编制的方法来节省网络好的使用,这种方法被称为子网编址。也就是说,子网编址允许多个物理网络在拥有自己独立的子网地址的情况下共享一个网络前缀

      子网编址下的IP地址不再只是由网络号和主机号组成的两部分,而是对主机号进行再划分,划分为子网号和主机号,此时IP地址变为三级结构

      这样做的好处如下:

      一、大大减少了IP标准编制方法中的地址浪费现象。

      二、在一定程度上减轻了单个网络的通信负担,因为单个网络内的通信流量与主机的数量成正比,通过划分子网,可以将单个网络内的信息互相隔开,达到节省通信量,减轻网络负担的目的。

      三、提高单个网络的主机管理效率,因为单个网段下的主机更少了。

      四、通过划分子网,也可以提高所在物理网络对应路由器的转发效率,因为通过子网的网络地址首先可以缩减查询的范围,确定范围之后所需的便遍历次数也降低了。

3.2 子网掩码

      顾名思义,就是遮住一个IP地址中“子网”以外的部分,然后得到该设备所在的网络以及子网,具体做法就是把一个IP地址的主机号字段全写0,就得到了该设备所在子网的子网掩码。

4. 网络地址转换

      NAT(Network Address Translation)出现场景其实就是为了解决IP地址短缺的问题,该技术一般用在路由器上,具有NAT功能的路由器至少要具有一个内部地址和一个外部地址,内部地址用于和局域网内的主机通信,外部地址则用于和外网通信

      实现原理类似ARP缓存表,当内部专用的IP地址发送数据至其所在路由器时,外部数据转发至(该路由器)的外部IP时,该路由器通过维护一张NAT转换表来实现专用IP地址和外部IP地址的相互转换,从而将数据正确地转发。

      在这个过程中,值得注意的有两点:一是NAT只支持TCP/UDP协议类型地通信;二是一个端口同一时间只能为一个连接提供NAT转换服务,也就是说路由器应当为每个连接都提供一个NAT端口,同时需要注意及时回收那些不用的端口。

5. IP数据报

      IP数据报通常由两部分组成,即IP首部和数据部,首部的格式是有规定的,通常为20~60个字节;但是数据部的格式没有明确规定,所以IP数据报可以用来传输任意类型的数据。

版本号

(4)

首部长度

(4)

服务类型(TOS)

(8)

总长度

(16)

标识

(16)

标志

(3)

分片偏移量

(13)

生存时间(TTL)

(8)

协议

(8)

首部校验和

(16)

源IP地址

(32)

目的IP地址

(32)

选项字段(若存在)

数据部(任意大小)

图表 7 IP数据报

(1)版本号:IP协议的版本信息。对于IPv4,该值为4;对于IPv6,该值为6。

(2)首部长度:这个值以为单位,该值最大能取到15,所以能表示的IP首部长度为60。

(3)服务类型:该部分用于描述当前IP数据报所需的服务类型,比如最小延时、最大吞吐量、最高可靠性、最小费用等。路由器在转发数据报时,可以根据这个字段的值来为数据报选择最合理的路由路径。

(4)总长度:该字段描述了IP数据报的总字节数,理论上该部分能够描述的数据报的最大值为65535字节,但是通常不允许这么大的报出现,结合前面以太网数据帧的知识,数据帧中的数据域最大也就1500字节左右,所以不可能去装载65535字节的数据。所以通常会将比较大的数据报分片装载然后再发送;另一方面,如果IP数据报过小,那么以太网会填充一些字节再放入以太网帧中发送。

【以下三个字段均用于数据报的分片指示,目的主机拿到这些信息后便可将分片还原。】

(5)标识:用于标识发出去的每一份IP数据报,依次发送的报文中这个值是递增关系,一般用于具有同一语义的多个被拆分数据的目的地重组。

(6)标志:该字段有三位,第一位保留;第二位是“不分片位”,1则表示不分片;第三位是“更多分片位”,1表示后续还有分片,0表示其所在数据报已是最后一片。

(7)偏移字段:表示当前分片在整个数据报中的相对位置(1单位表示8字节)

(8)生存时间:该字段表示当前数据报在互联网中能够被转发的最大次数,每经历一次转发,该值就减1,当该值为0时,路由器便会丢弃该分组,同时返回源主机一个ICMP差错报文,这个字段旨在防止“幽灵数据”的产生。

(9)协议字段表示当前数据报采用了那种(上层)协议,如下表所示:

ICMP

IGMP

IP

TCP

EGP

IGP

UDP

IPv6

ESP

OSPF

1

2

4

6

8

9

17

41

50

89

图表 8 IP数据报协议字段

(10)首部校验和:顾名思义,用来对IP首部进行校验,且不会用于对数据部的查验。通常采用二进制反码求和的方法来求一数据报的首部校验和,发送方会先计算一次这个值并保存在该字段当中,待接收方收到数据报时,会再次计算首部校验和,如果计算结果为全1,则保留这个数据报;反之则丢弃这个数据报,等待上层查验。

(11)源IP地址:发送方IP地址。

(12)目的IP地址:接收方IP地址。

(13)选项字段:用于网络的调试和测试,字节大小必须为4的倍数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值