一、什么是IP地址
IP地址(Internet Protocol Address)是指互联网协议地址,又称网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。因此,IP地址是逻辑地址,每台主机的网卡上的MAC地址才是物理地址 IP地址其实是一串32位的二进制数,为了方便我们记忆我们以8位一组进行划分,中间用小数点分割,类似:172.20.5.6(10110110.00010100.00000101.00000110)
二、IP地址编址方式
IP地址在最初设计的时候,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上得所有主机都使用同一个网络ID,该网络上得每一个主机都有一个主机ID与之对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。其中A、B、C3类由InternetNIC在全球范围内统一分配,D、E类为特殊地址。 IP地址的主机标识: IP地址的网络标识:IP包被转发的途中某个路由器时,正是利用目标IP地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机
类别 | 最大网络数 | IP地址范围 | 单个网段最大主机数 | 私有IP地址范围 |
---|
A | 126(
2
7
?
2
2^{7}-2
27?2) | 1.0.0.1-127.255.255.254 | 16777214 | 10.0.0.0-10.255.255.255 | B | 16384(
2
1
4
2^14
214} | 128.0.0.1-191.255.255.254 | 65534 | 172.16.0.0-172.31.255.255 | C | 2097512(
2
21
2^{21}
221) | 192.0.0.1-223.255.255.254 | 254 | 192.168.0.0-192.168.255.255 |
- A类IP地址:在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。所以A类IP地址的网络地址数量少,只有126个网络,但每个网络可以容纳的主机数量有1600多万台。127.255.255.255是广播地址。
- B类IP地址:B类IP地址的前2个字节代表网络地址,后2个字节代表主机地址,这类IP地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台
- C类IP地址:C类IP地址的前三段为网络号码,剩下的一段号码为本地计算机号码。所以C类网络地址数量较多,有209万多个网络,适用于小规模的局域网络,每个网络可以容纳254台计算机
- D类IP地址:D类IP地址在历史上叫多播地址,也叫组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。相比于广播,多播可以穿透路由器,又可以实现只给那些必要的组发送数据包。它们之间的区别如下图所示:
- 特殊的网址
a. 每一个字节都为0的地址(“0.0.0.0”)对应于当前主机; b. IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址,用于在同一个链路中相互连接的主机之间发送数据包。 c. IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用 d. IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。 e. 网络ID的第一个6位组也不能全置为“0”,全“0”表示本地网络。
三、IP处于网络通信模型的位置
网络通信模型结构我们一般就讲OSI网络模型或者TCP/IP网络模型,其中OSI网络模型是7层结构,而TCP/IP网络模型是4层结构,这两种网络模型的划分定义以及联系,如下表所示:
OSI七层模型 | TCP/IP概念层模型 | 功能 | TCP/IP协议族 |
---|
应用层 | 应用层 | 文件传输,电子邮件,文件服务,虚拟终端 | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet | 表示层 | 应用层 | 数据格式化,代码转换,数据加密 | 没有协议 | 会话层 | 应用层 | 解除或建立与别的节点的联系 | 没有协议 | 传输层 | 传输层 | 提供端对端的接口 | TCP, UDP | 网路层 | 网络层 | 为数据包选择路由 | IP,ICMP,RIP,OSPF,BGP,IGMP | 链路层 | 链路层 | 传输有地址的帧以及错误检测功能 | SL.IP,CSL.IP,PPP,ARP,RARP,MTU | 物理层 | 链路层 | 以二进制数据形式在物理媒体上传输数据 | ISO2110、IEEE802、IEEE802.2 |
OSI模型强调“通信协议必要的功能是什么”,而TCP/IP模型强调在计算机上实现协议应该开发哪种程序
四、路由控制表与IP包发送
4.1 IP分包与组包
- 每种数据链路的最大传输单元(MTU)都不尽相同,因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的MTU也就不同。
- 任何一台主机都有必要对IP分片进行相应的处理。分片往往在网络上遇到比较大的报文无法一下子发送出去是才会进行处理。
- 经过分片之后的IP数据包在被重组的时候,只能由目标主机进行。路由器只执行分片,但不进行重组。
4.2 路径MTU发现
- 分片机制也有它的不足,比如路由器负荷加重之类的。因此,只要允许,是不希望由路由器进行IP数据包的分片处理的。
- 为了应对分片机制的不足,一种“路径MTU发现”技术应运而生,简单理解就是先在发送端和接收端链路上找到不需要分片的最大MTU大小,然后以此MTU进行IP包传送。
五、IPv6
- IPv6 是为了根本解决IPv4地址耗尽的问题而被标准化的网际协议。IPv4 的地址长度为 4 个 8 位字节,即 32 比特。而 IPv6 的地址长度则是原来的 4 倍,即 128 比特,一般写成 8 个 16 位字节。
- IPv6支持即插即用功能。即使没有DHCP服务器也可以实现自动分配 IP 地址。采用认证与加密功能。应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能。
- IPv6性能比IPv4提升。因为IPv6包首部长度采用固定的值(40位),不再采用首部检验码。简化首部结构,减轻路由器负担。路由器不再做分片处理。
- 多播、Mobile IP成为扩展功能。
- IPv6一般以16比特为一组,每组用冒号(“:”)隔开进行标记。而且如果出现连续的0时还可以将这些0省略,并用两个冒号(“::”)隔开。但是,一个IP地址中只允许出现一次两个连续的冒号。
5.1 全局单播地址
- 全局单播地址是指世界上唯一的一个地址。它是互联网通信以及各个域内部通信中最为常用的一个 IPv6 地址。
- 格式如下图所示,现在 IPv6 的网络中所使用的格式为,n = 48,m = 16 以及 128 - n - m = 64。即前 64 比特为网络标识,后 64 比特为主机标识。
5.2 链路本地单播地址 - 链路本地单播地址是指在同一个数据链路内唯一的地址。它用于不经过路由器,在同一个链路中的通信。通常接口ID保存64比特版的MAC地址。
5.3 唯一本地地址
- 唯一本地地址不是用于互联网通信时所用的地址。
- 唯一本地地址虽然不会与互联网连接,但是也会尽可能地随机生成一个唯一的全局ID
- L通常被置为1
- 全局ID的值随机决定
- 子网ID是指该域子网地址
- 接口ID即为接口的ID
5.4 IPv6分段处理 - IPv6 的分片处理只在作为起点的发送端主机上进行,路由器不参与分片。
- IPv6中最小MTU为1280字节。所以对于一些性能不高的系统,不需要进行“路径MTU发现”,直接在发送IP包的时候选择1280MTU进行即可。
六、IP协议的相关技术
6.1 DNS-Domain Name System 我们访问网站通常不需要输入该网站的IP地址,而是直接使用网站域名,而这一切就是域名解析规则的作用。全世界有13个顶级域名“根服务器”,存储了所有授权域名服务器的列表。 6.2 ARP
- 只要确定了IP地址,就可以向这个目标地址发送IP数据报。然而,在底层数据链路层,进行实际通信是却需要了解每个IP地址所对应的MAC地址。
- ARP是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接接收数据分包的网络设备对应的MAC地址。不过ARP只适用于IPv4,不能用于IPv6。IPv6中可以用ICMPv6替代ARP发送邻居探索消息。
- RARP是将ARP反过来,从MAC地址定位IP地址的一种协议
6.3 ICMP - ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。
- IPv4协议中ICMP仅作为辅助作用,即使没有ICMP,IPv4也可以实现IP通信,但IPv6协议中,如果没有ICMP就不能进行正常通信。
6.4 DHCP - DHCP即动态IP地址分配。计算机只需要连接到网络,就可以通过DHCP协议得到IP地址。既适用于IPv4也适用于IPv6。
6.5 NAT - NAT-Network Address Translator,网络地址转换技术,用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。
- NAPT-Network Address Ports Translator,通过TCP或UDP端口,实现一个全局IP地址与多个主机通信。这两项技术主要是为IPv4开发的,因为IPv4地址要用完了。在IPv6网络中也可以使用NAT,在IPv4和IPv6之间的相互通信当中常常使用NAT-PT。
6.6 IP隧道 如上图的网络环境中,网络 A 与网络 B 之间无法直接进行通信,为了让它们之间正常通信,这时必须得采用 IP 隧道的功能。IP 隧道可以将那些从网络 A 发过来的 IPv6 的包统合为一个数据,再为之追加一个 IPv4 的首部以后转发给网络 C。 一般情况下,紧接着 IP 首部的是 TCP 或 UDP 的首部。然而,现在的应用当中“ IP 首部的后面还是 IP 首部”或者“ IP 首部的后面是 IPv6 的首部”等情况与日俱增。这种在网络层的首部后面追加网络层首部的通信方法就叫做**“ IP 隧道”**。 6.7 VPN-Virtual Private Network VPN就是我们常说的虚拟专用网络,它是在公用网络上通过服务器、硬件、软件等方式建立专用网络,进行加密通讯。该项技术在企业网络中有广泛应用,比如员工通过远程办公访问企业内部的网络。 6.7.1 VPN的基本处理过程: - 要保护主机发送明文信息到其他VPN设备
- VPN设备根据网络管理员设置的规则,确定是对数据进行加密还是直接传输
- 对需要加密的数据,VPN设备对其整个数据包(包括要传输的数据、源IP地址和目的IP地址)进行加密并附上数据签名,加上新的数据报头(包括目的地VPN设备需要的安全信息和一些初始化参数)重新封装
- 将封装后的数据包通过隧道在公共网络上传输
- 数据包到达目的VPN设备后,将其解封,核对数字签名无误后,对数据包解密。
6.7.2 VPN协议分类 VPN隧道协议主要有三种:PPTP、L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议。
参考:1. IP协议 2. 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了 3. 书籍【漫话IP:TCP/IP基础知识读本】 4. 百度百科-VPN
|