IP数据包是网络传输的信封,它说明了数据发送的源地址和目的地址,以及数据传输状态。一个完整的数据包由首部和数据两部分组成。首部前20字节属于固定长度,是所有IP数据包必须有的,后面是可选字段,其长度可变,首部后面是数据包携带的数据,见下图。
1、版本(4bit)
IP协议版本已经经过多次修订,1981年的RFC0791描述了IPV4,RCF2460中介绍了IPV6。
2、报头长度(4bit)
报头长度是报头数据的长度,以4字节表示,也就是以32字节为单位。报头长度是可变的。必需的字段使用20字节(报头长度为5,IP选项字段最多有40个附加字节(报头长度为15)),即固定部分+可变部分,不会超过60字节。
3、服务类型(8bit)
该字段给出发送进程建议路由器如何处理报片的方法。可选择最大可靠性、最小延迟、最大吞吐量和最小开销。路由器可以忽略这部分。
4、数据报长度(16bit)
该字段是报头长度和数据字节的总和,以字节为单位。[数据报的总长度]最大长度为65535[2^16- 1]字节。
5、标识符(16bit)
是数据的主机为数据报分配一个唯一的数据报标识符。在数据报传向目的地址时,如果路由器将数据报分为报片,那么每个报片都有相同的数据标识符。
6、标志(3bit,目前只有前两位有意义)
位0:未用。
位1:不是报片。如果这位是1,则路由器就不会把数据报分片。路由器会尽可能把数据报传给可一次接收整个数据报的网络;否则,路由器会放弃数据报,并返回差错报文,表示目的地址不可达。IP标准要求主机可以接收576字节以内的数据报,因此,如果想把数据报传给未知的主机,并想确认数据报没有因为大小的原因而被放弃,那么就使用少于或等于576字节的数据。
位2:更多的报片。如果该位为1,则数据报是一个报片,但不是该分片数据报的最后一个报片;如果该位为0,则数据报没有分片,或者是最后一个报片。
7、报片偏移(13bit)
该字段标识报片在分片数据报中的位置。其值以8字节为单位,最大为8191字节,对应65528字节的偏移。
例如,将要发送的1024字节分为576和424字节两个报片。首片的偏移是0,第二片的偏移是72(因为72×8=576)。
注意:结合IP数据报分片进行理解[仅对数据部分进行分片]。
8、生存时间(8bit)
如果数据报在合理时间内没有到达目的地,则网络就会放弃它。生存时间字段确定放弃数据报的时间。
生存时间表示数据报剩余的时间,每经过一个路由器都会将其值减一,或递减需要数理和传递数据报的时间。实际上,路由器处理和传递数据报的时间一般都小于1S,因此该值没有测量时间,而是测量路由器之间跳跃次数或网段的个数。发送数据报的计算机设置初始生存时间。
9、协议(8bit)
该字段指定数据报的数据部分所使用的协议,因此IP层知道将接收到的数据报传向何处。TCP协议为6,UDP协议为17。
10、报头检验和(16bit)
该字端使数据报的接收方只需要检验IP报头中的错误,而校验数据区的内容或报文。校验和由报头中的数值计算而得,报头校验和假设为0,以太网帧和TCP报文段以及UDP数据报中的可选项都需要进行报文检错。
11、源IP地址(32bit)
表示数据报的发送方。
12、目的IP地址(32bit)
表示数据报的目的地。
点分十进制记法:
为了记忆方便,IP地址采用点分十进制表示,如:128.10.2.30,其二进制格式:10000000.00001010.00000010.00011110
1、IPv4地址
IP地址的编址方法,共经历了三个历史阶段。这三个阶段是:
1) 分类的 IP地址。这是最基本的编址方法,在1981年就通过了相应的标准协议
2) 子网的划分。这是对最基本的编址方法的改进,其标准[RFC950]在1985年通
3) 构成超网。这是比较新的无分类编址方法。1993年提出后很快就得到推广应用。
a)为了适应不同网络规模的需求,将IP地址进行分类,不同类型IP地址拥有的主机数不一样。每一类地址都由两部分组成:网络号Net-id+主机号Host-id,前者标志主机(或路由器)所连接到的网络,后者它标志该主机(或路由器)。
两级的IP地址可以记为:
IP地址::={ <网络号>,<主机号>}
b)特殊地址
对于因特网IP地址中有特定的专用地址,不作分配:
(1)主机地址全为"0"
不论哪类网络,主机地址全为"0"表示指向本网,常用在路由表中。例如,18.0.0.0表示其网络号为18。
(2)主机地址全为"1"
主机地址全为"1"表示广播地址,向特定的所在网上所有主机发送数据报。例如,IP地址为202.119.224.225,是要求指向202.119.224网上的所有主机转发数据报。
(3)4字节32比特全为"1"
若IP地址4字节32比特全为"1",表示仅在本网内进行广播发送。
(4)网络号127
TCP/IP协议规定网络号127不可用于任何网络。其中有一个特别地址:127.0.0.1称之为回环地址
c)使用范围:
网络类别 |
最大网络数 |
第一个可用的网络号 |
最后一个可用的网络号 |
每个网络中的最大主机数 |
A |
126 |
1 |
126 |
16777214 |
B |
16382 |
128.1 |
191.255 |
65534 |
C |
2097150 |
192.0.1 |
223.255.255 |
254 |
d)IP地址的重要特点
1)IP地址是一种分等级的地址结构。分两个等级的好处是:
第一,IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。
第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
2)实际上IP地址是标志一个主机(或路由器)和一条链路的接口。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号net-id必须是不同的。这种主机称为多归属主机(multihomedhost)
由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。
3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。
4)所有分配到网络号net-id的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
5)在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。路由器总是具有两个或两个以上的IP地址。路由器的每一个接口都有一个不同网络号的IP地址。两个路由器直接相连的接口处,可指明也可不指明IP地址。如指明IP地址,则这一段连线就构成了一种只包含一段线路的特殊“网络”。
2、网络地址转换NAT
网络地址转换(NAT,NetworkAddressTranslation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
说明:私有IP地址是指内部网络或主机的IP地址,公有IP地址是指在因特网上全球唯一的IP地址。
RFC1918为私有网络预留出了三个IP地址块,如下:
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
上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP或注册中心申请而在公司或企业内部自由使用。
NAT工作流程
①如图这个client(终端)的gateway(网关)设定为NAT主机,所以当要连上Internet的时候,该封包就会被送到NAT主机,这个时候的封包Header之sourceIP(源IP)为192.168.1.100;
②而透过这个NAT主机,它会将client的对外联机封包的sourceIP ( 192.168.1.100 ) 伪装成ppp0(假设为拨接情况)这个接口所具有的公共IP,因为是公共IP了,所以这个封包就可以连上Internet了!同时NAT主机并且会记忆这个联机的封包是由哪一个(192.168.1.100 ) client 端传送来的;
③由Internet传送回来的封包,当然由NAT主机来接收了,这个时候,NAT主机会去查询原本记录的路由信息,并将目标IP由ppp0上面的公共IP改回原来的192.168.1.100;
④最后则由NAT主机将该封包传送给原先发送封包的Client。