IP 网际协议

转载:https://blog.csdn.net/jeffleo/article/details/53933937

博文目录

一、网络层的基本概念 
二、网络层IP协议的基本内容 
三、IPv4分组的格式 
四、IPv4分组的地址分类和表示 
五、IPv4地址的子网划分 
六、CIDR(无类别域间路由) 
七、网络地址转换NAT 
八、IPv6协议 
九、IPv4和IPv6共存——隧道技术

 

一、网络层的基本概念


网络层上层为传输层,下层为数据链路层,它通过路由选择算法,为IP分组从源主机到目的主机选择一条合适的传输路径,为传输层端—端数据传输提供服务。

二、网络层IP协议的基本内容


网络层中的网络协议是IP,IP协议的分类有IPv4和IPv6

IP协议的特点


IP协议是一种无连接,不可靠的分组传送服务协议,因此它提供的是一种尽力而为的服务 
无连接:IP协议不维护IP分组发送后的任何状态信息 
不可靠:IP协议不能保证每个IP分组都能正确地,不丢失和顺序地到达目的主机
IP协议是点-点的网络层通信协议 
IP协议是针对源主机—路由器、路由器—路由器、路由器—目的主机之间的数据传输的点—点的网络层通信协议,它为两台通信主机寻找一条路径,通常由多个路由器,点点线路组成
IP协议屏蔽了互联的网络在数据链路层、物理层协议与实现技术上的差异 
这里写图片描述

三、IPv4分组的格式

IPv4分组由两部分组成:分组头和数据。 
1. 分组头长度可变,每行宽度为4B 
2. 前五行为分组头必需有的域,所以 IP分组头基本长度为20字节 
3. 第6行为选项域,最长为40字节。所以,IP分组头长度为20B~60B

这里写图片描述

分析各个字段的含义
1. 版本

长度为4位 
表示IP的版本号,0100为IPv4,0110为IPv6

2. 协议
长度为8位 
指使用IP的高层协议类型 
1表示ICMP,2表示IGMP,6表示TCP,8表示EGP,17表示UDP,41表示IPv6,89表示OSPF

3.分组头长度
分组头长度为8位 
由前面提到,分组头的基本长度为20字节,加上可选部分所以分组头长度在20-60字节

4. 总长度
总长度为16位 
总长度 = 分组头长度 + 数据长度 最大值为2^16 -1 = 65535字节

5. 服务类型
服务类型为8位 
服务类型用于指示路由器如何处理这些IP分组 
服务类型由4位的服务类型字段,3位的优先级字段和1位保留位构成 
(1)服务类型字段 
服务类型字段用4个参数指示路由器如何处理IP分组,分别是: 
延迟(D),可靠性(R),吞吐量(T),成本(C),每一位都有0或者1的取值 
(2)优先级 
当高负荷情况下,路由器发生阻塞,优先级越高的IP分组越优先被路由器处理

6.生存时间(TTL)
生存时间为8位 
IP分组在网络中的漂流时间(寿命),TTL用路由器跳数来度量,经过一个路由器转发后,TTL值减1,当TTL为0时,丢弃分组并发送ICMP报文通知源主机

7. 头部校检和
头校验和字段为8位 
设置头校验和是为了保证分组头部数据完整性,只对分组头校检,原因是: 
1. 数据部分属于高层数据,高层已经对数据进行校检 
2. 每经过1个路由器,分组头会变化,数据不会变化,因此只对分组头校检 
头部校检采用“二进制反码求和”的算法

8. 地址
地址字段包括了源地址和目的地址

插入IP分组分片和组装的概念


与分组分片和组装相关的字段有:标识,标志,位偏移

为什么要分片? 
由于IP分组的最大长度为65535,而实际的网络MTU(最大传输单元)都比IP的最大长度小,所以为了传输IP分组,只能把IP分组分片传输

如何分片? 
首先确定每一片长度,每一片都加上分组头,一直分割到剩下的数据都小于数据链路层MTU 
这里写图片描述

9. 标识

标识字段长度为16位 
标识字段是片识别的标记,由于每一个分片都有分组头,属于同一个分组的分片要有统一的标识,到达目的主机后才能跳出相同标识的分片组装成分组

10.标志

标志字段为3位 

这里写图片描述

第一位为0, 
第二位DF表示是否能够分片,DF为1表示不能分片,DF为0表示可以分片,如果DF为1,且IP分组长度大于MTU,则路由器只能放弃该分组,并发送ICMP差错报文向源主机报告 
第三位MF表示该分片是不是最后一个分片,MF=1表示不是最后一个分片,MF=0表示是最后一个分片,作用就是告知接收主机要不要继续挑选分片

11.片偏移
片偏移长度为13位 
作用:当接受主机挑选出相同标识的分片,组装分片时必然要涉及到哪个分片在前,哪个分组在后的位置问题,片偏移就是用来表示分片在原IP分组的位置 
片偏移以8个字节为单位来计算偏移值,例如偏移值为100,则说明该分片离分组头有800字节的距离 

这里写图片描述

12.IP分组头选项
分组头选项由选项码、长度和选项数据三部分组成: 
选项码用于确定该选项的具体功能,例如源路由,记录路由,时间戳等

四、IPv4分组的地址


1. IP地址和MAC地址的区别


MAC地址是每块网卡的硬件地址,用于数据链路层的帧传递地址;IP地址是网络层地址(也称逻辑地址),用于路由器寻址
IP地址标识的是一台主机或路由器 与 网络的接口,而MAC地址唯一地标识一台主机
网桥,Ethernet交换机属于数据链路层设备,使用MAC地址,不属于网络层设备,所以不分配IP


2. IP地址的分配概念


IP地址的分配可以分下面3种情况: 
1. 为每一个网络接口分配一个IP地址 
一台计算机连入网络,需分配一个IP地址,与MAC地址一一对应,且在Internet中唯一的 
2. 为多归属主机的每一个网络接口分配响应的IP地址 
路由器通过多个网卡连接到多个网络时,需为每个网卡分配一个IP地址 
3. 可以为一个网络接口分配多个IP地址

总结来说: 
1、连接到Internet的每一个主机(计算机或路由器)至少有一个IP地址 
2、IP地址是分配给网络接口的 
3、多归属主机可以有多个IP地址,一个网络接口也可以分配多个IP地址

3. IP的点分十进制表示方法


IPv4的地址长度为32位,点分十进制表示通常采用 x. x. x. x的格式,每个x为8位。(点分十进制从字面上理解,用点分隔,每个字段用十进制表示)

IP地址的分类有5中分类:A类,B类,C类,D类和E类地址 

这里写图片描述

网络号:用于识别主机所在的网络 
主机号:用于识别该网络中的主机

A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同

(tip:网络号加粗表示)

A类地址


(1)A类地址网络号第一位固定为0,其它7位可以分配,主机号长度为24位 
(2)网络号分配的数量为2^7 = 128,地址范围为:1.0.0.0—127.255.255.255 
(3)10.0.0.0-10.255.255.255是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址,路由器接收到私有地址,不会向Internet转发该分组,私有地址与NAT相关) 
(4)127.0.0.0-127.255.255.255是保留地址,用做循环测试用的 
(5)0.0.0.0—0.255.255.255也保留用作特殊用途 
(6)因此网络号可分配的只有125个,每个网络段的主机号可以分配的只有 2^24-2=16777214个(主机号全0和主机号全1保留

B类地址


(1)B类地址网络号第1,2位固定为10,其它14位可以分配,主机号长度为16位 
(2)地址范围为:128.0.0.0—191.255.255.255 
(3)172.16.0.0—172.31.255.255是私有地址 
(4)169.254.0.0—169.254.255.255是保留地址(如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP) 
(5)每个网络段可分配的主机号为2^16 - 2 = 65534(主机号全0和主机号全1保留

C类地址


(1)C类地址网络号前3位固定为110,其它21位可以分配,主机号长度为8位 
(2)C类地址范围:192.0.0.0—223.255.255.255 
(3)192.168.0.0—192.168.255.255是私有地址 
(4)网络号可分配的块数为2^21 = 2097152,没块网络号可分配的主机号数为2^8-2 = 254(主机号全0和主机号全1保留)

D类地址


D类IP地址不标志网络,前4位固定为1110,地址范围为:224.0.0.0—239.255.255.255,用作特殊用途,如多播地址

E类地址


E类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1111。E类地址范围:240.0.0.0—255.255.255.255,用于某些实验和将来使用

总结上述的规律


1. ABC三类地址的主机号全0和全1都保留,主机号全1为子网广播地址,主机号全0为子网网络地址(一个网段中第一个IP地址为网络地址)
2.A类地址的第1块网络号和第2块网络号要保留


ABC三类地址中的特殊IP地址


(1)直接广播地址 
如果主机号全1,例如191.1.255.255,那么这个地址为直接广播地址 
路由器将这个分组以广播的形式发送到网络号位191.1.x.x的全部主机 
(2)受限广播地址 
网络号与主机号的32位全为1(255.255.255.255)为受限广播地址 
用来将一个分组以广播方式发送给本网的所有主机 
(3)“这个网络上的特定主机”地址 
网络号是全0 (如0.0.0.25) 的地址是这个网络号的特定主机地址 
路由器接到这样的分组,不向外转发,而是直接交付给本网络中主机号为25的主机 
(4)回送地址 
A类地址中127.0.0.0是回送地址,它是一个保留地址

五、IPv4地址的子网划分


子网划分的思想:借用主机号的一部分作为子网的子网号,划分出更多的子网IP地址,对于外网来说这些子网仍然像一个网络一样,这对于路由器的寻址没有影响

1. 子网地址结构


标准的ABC类IP地址是两级结构:网络号—主机号,而划分子网后,IP地址的结构为三级结构:网络号—子网号—主机号
同一个子网的主机,网络号和子网号必须相同
子网之间的距离必须很近,例如一个公司或者校园内


2. 子网掩码


引入子网后,如何从IP地址中提取出子网号?子网掩码就是用来解决这个问题的 
子网掩码的作用:从一个IP地址中提取出子网号 
子网掩码的表示:网络号和子网号全改为1,主机号全改为0 

这里写图片描述

实例:一个B类IP地址的子网划分


该B类IP地址190.1.2.26,划分出64个子网 
1. 借用原16为主机号的6位作为子网号,剩余10位为主机号 
2. 根据子网掩码的格式,得出子网掩码为:255.255.252.0,或表示成190.1.2.26/22(”/22“表示第22位开始为主机号

这里写图片描述

3. 子网的规划和地址划分的方法


例:一个校园网要对一个B类地址(156.26.0.0)进行子网划分。该校园网有近210个局域网组成。 
由于210个局域网最接近2^8=256,所以可行的方案是从主机号借8位来作为子网号,这样的子网的掩码为:255.255.255.0 或 156.26.0.0/22(”/22“表示第22位开始为主机号)

以上子网划分结果为: 
子网1:156.26.1.1~156.26.1.254 
子网2:156.26.2.1~156.26.2.254 
…… 
子网254:156.26.254.1~156.26.254.254

至于子网0:156.26.0.1~156.26.0.254和子网254:156.26.255.1~156.26.255.254,即子网号是否能够为全0或者全1,值得商榷!

由于主机号不能全为1或者全为0,每个子网的主机号有254个

子网长度的确定,应考虑两个因素:子网数与每个子网中主机与路由器数。子网数要考虑留有一定余量为原则

4. 可变长度的子网掩码划分方法


用一个例子来说明: 
某公司申请一个C类202.60.31.0的IP地址,该公司有100名员工在销售部,50名在财务部,50名在设计部。要求为销售部门、财务部门、设计部门分别组建子网

分析:


三个部门是三个子网,我们很容易想到,只需要借出2位来作为子网号就行。但是借了2位后,主机号只剩下6位,则每一个子网的最大主机号为2^6 = 64个,小于销售部门的100个主机,所以行不通!

这时,可以采用可变长度的子网掩码划分方法: 
(1)销售部100台主机,所以主机号至少为7位,则子网号为1位,此时子网掩码:255.255.255.128(11111111.11111111.11111111.1000000)或202.60.31.0/25(第25位开始为主机号) 
子网位为0:202.60.31.1(0 000 0001)~ 202.60.31.126(0 111 1110) (作为销售部子网) 
子网位为1: 202.60.31.129(1 000 0001)~ 202.60.31.254(1 111 1110)

(2)对子网位为1的情况,再划分出两个子网给财务部门和设计部门,剩下的两个部门只需要6个主机号,所以可以用2位作为子网号,子网掩码为255.255.255.192(11111111.11111111.11111111.1100000)或202.60.31.0/26(第26位开始为主机号) 
子网位为10:202.60.31.129(10 00 0001)~ 202.60.31.190 (10 11 1110)(作为财务部子网) 
子网位为11:202.60.31.193(11 00 0001)~ 202.60.31.254(11 11 1110)(作为设计部子网)

tips:子网号加粗,主机号全0和全1不能使用

一个问题:


第3点子网的规划和地址划分的方法说到了子网号和主机号不能为全0或者全1,但是第4点可变长度的子网掩码划分方法中,却存在子网号为0或者11的情况,那么子网号到底能不能为全0或者全1呢? 
子网号全0或者全1要看网络设备所使用的路由器协议支持不支持,以前的老版的协议都是不支持,新版本可以支持,老的书籍或者资料都不用全0和全1子网,新的允许用

六、CIDR(无类别域间路由)


1. CIDR的概念和格式


其实在上述博文中,已经不经意间提到了CIDR,例如156.26.0.0/16 
CIDR其实讲得是IP地址的格式问题,标准的IP地址的点分十进制是网络号—主机号的二层结构,而CIDR用区别于传统标准分类的IP地址与划分子网的概念的“网络前缀(network -prefix)”,用”<网络前缀>/<主机号>“代替网络号—主机号的二层结构,形成新的无分类二层地址结构

<网络前缀>/<主机号>


<网络前缀>/<主机号>这种格式为:”斜线记法“。如:200.16.23.0/20表前20位为网络前缀,后12位为主机号

同标准的分类IP地址一样,主机号全0的网络地址和全1的广播地址不分配给主机

2. CIDR的应用


例如:一个校园网获得200.24.16.0/20的地址块,希望将它划分为8个等长的较小的地址块
这里写图片描述

七、网络地址转换NAT

NAT的作用有两个: 
1. 解决网络地址短缺,支持IP地址复用 
2. 网络安全

例如在企业内部,NAT和代理服务器、防火墙结合使用,采用一个内部专用IP和一个全局IP一对一的静态映射,达到隐藏内部网络地址的目的

IP地址复用原理


NAT技术解决IP地址短缺,主要用于ISP,ADSL,有线电视和无线移动接入的动态IP地址分配

原理: 
例如ISP有1000个全局IP地址,但是它有5000个使用专网内部专用IP的用户。 
ISP在具有NAT功能的路由器中保持一个IP地址池,管理着多个全局IP地址。凡是需要访问外部Internet的用户,首先想NAT路由器申请,由NAT临时分配一个全局IP地址给用户;用户访问结束后,NAT路由器收回IP地址,供其他用户使用。

之前提到过一个私有地址,所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址,路由器接收到私有地址,不会向Internet转发该分组,那么主机该如何通过私有地址和Internet进行通信?

NAT就是私有地址和全局地址转换的功能!

解决全局IP地址不够用:连端口号一起转换!

NAT的有动态NAT和静态NAT两种 
静态NAT”:一对一,配置一个内部专用IP地址对应一个公用IP地址。 
动态NAT”:多对多,多个专业IP地址对应一个或几个全局IP地址。可实现IP地址的重用节约IP地址。如:ISP有1000个全局地址,但它有5000个使用专用内部专网IP地址的用户。

NAT的工作原理

这里写图片描述

私有地址为10.0.1.1的主机如何访问地址为135.2.1.1的web服务器? 
(1)产生一个源地址为10.0.1.1,端口为3342,目的地址为135.2.1.1,端口号为80的ip分组,转发到NAT功能的路由器 
(2)NAT路由器将私有地址转换成全局IP地址202.0.1.1,产生一个源地址为202.0.1.1,端口为5001,目的地址为135.2.1.1,端口号为80的ip分组 
(3)地址为135.2.1.1,端口号为80的web服务器接收到该IP分组后,,返回源地址为135.2.1.1,端口号为80,目的地址为202.0.1.1,端口为5001为80的ip分组 
(4)NAT路由器将全局IP地址转换成私有地址,产生源地址为135.2.1.1,端口号为80,目的地址为10.0.1.1,端口为3342的ip分组,主机10.0.1.1接受

NAT的潜在问题


由于NAT(NAPT)都依赖于自己的转换表,所以会有一下问题:

1.无法从NAT外部向内部服务器建立连接
2.转换表的生成和转换操作都会产生一定的开销
3.通信过程中一旦NAT发生异常需要重新启动时,所有的TCP连接都会被重置
4.即便备置两台NAT做容灾备份,TCP连接还是会被断开


八、IPv6协议


1. IPv6地址的表示


IPv6地址采用”冒号十六进制表示法“,将128位地址按每16位划分为一个位段,每个位段转换为一个4位的十六进制数

例如: 
二进制: 
0010000111011010000000000000000000000000000000000000000000000000 
0000001010101010000000000000111111111110000010001001110001011010

    1.冒号十六进制表示法: 
       21DA : 0000 : 0000 : 0000 : 02AA : 000F : FE08 : 9C5A

    2.如果某段存在几位都是0的情况,可以使用零压缩法压缩:

零压缩法:00D3(D3),02AA(2AA),000A(A),0000(0),但是AB08不能压缩为AB8

       21DA : 0 : 0 : 0 : 2AA : F : FE08 : 9C5A

    3.如果存在几个连续位段都是0,可以用”双冒号表示法“ 
       21DA : :2AA : F : FE08 : 9C5A 
       用”双冒号表示法“表示的一个问题:如何确定冒号省略的段数? 
       8 - 现有段数 = 冒号省略的段数
 

2. IPv6的前缀


在IPv4中,子网掩码用来表示网络和子网地址长度。用前缀长度来区分子网号和主机号。而 IPv6不支持子网掩码,只支持前缀长度表示法,用“地址/前缀长度”表示

64位前缀是一个子网前缀,少于64位的前缀是一个路由前缀,或是一个地址范围。 
例如: 
21DA:D3::/48 是一个路由前缀 
21DA:D3:0:2:2F3B::/64是一个子网前缀

3. IPv6的结构


这里写图片描述

版本


意义和IPv4相同,值为6表示使用Ipv6协议

流量类型


表示IPv6分组的类型或优先级,类似IPv4的服务类型字段

流标记


表示分组属于源节点和目标节点之间的一个特定分组序列

载荷长度


载荷长度表示有效载荷的长度,包括扩展报头和高层PDU

下一个报头


表示若存在扩展报头,“下一个报头”值表示下一个扩展报头的类型

跳步限制


与IPv4的TTL相似

源地址和目的地址


发送主机的地址和要发送的目标主机地址

九、IPv4和IPv6共存——隧道技术


隧道技术指的是IPv6分组进入IPv4网络时,将IPv6分组封装成IPv4分组,整个IPv6分组变成IPv4的数据部分。当IPv4分组离开IPv4网络时,再将其数据部分交给主机IPv6协议,这就像在IPv4网络中打通了一个隧道来传输IPv6。

这里写图片描述

隧道配置

隧道配置分为路由器-路由器,路由器-主机或主机-路由器,主机-主机三种情况,以及手动配置的隧道与自动配置的隧道两种类型 
(1)路由器-路由器隧道

这里写图片描述

(2)路由器-主机或主机-路由器

这里写图片描述

(3)主机-主机

这里写图片描述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值