一、什么是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地址范围
A126( 2 7 − 2 2^{7}-2 2721.0.0.1-127.255.255.2541677721410.0.0.0-10.255.255.255
B16384( 2 1 4 2^14 214}128.0.0.1-191.255.255.25465534172.16.0.0-172.31.255.255
C2097512( 2 21 2^{21} 221)192.0.0.1-223.255.255.254254192.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是第三层隧道协议。

7、IP地址和URL地址的区别

思考这个问题的时候,我们首先要清楚以下几点:

  • 互联网上所有数据都是存储在主机(服务器)上
  • 互联网中的所有主机都拥有唯一的IP地址
  • 互联网中任意两台主机通信都是通过IP地址来实现

因此我们每次在浏览器的地址栏输入的网址,是如何转换成IP地址的了?答案就是互联网的域名解析服务实现的。

IP地址是每个计算机主机的唯一地址,URL是我们俗称的网址,全称:Uniform Resource Locator,统一资源定位系统。是因特网的万维网服务程序上用于指定信息位置的表示方法。它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。现在它已经被万维网联盟编制为互联网标准RFC1738。

URL通常写成这样的形势:
<方案>:<方案描述部分>
其语法规则如下所示:
scheme://host.domain:port/path/filename
URL语法规则解释如下:

  • scheme: 指定因特网服务的类型。最流行的类型是HTTP。
  • domain:指定因特网域名,比如:crazyit.org、fkjava.org等。
  • host:指定此域中的主机。如果被省略,HTTP的默认主机是WWW。
  • port:指定主机的端口号。端口号通常可以被省略,HTTP服务的默认端口是80。
  • path: 指定远程服务器上的路径,该路径也可以被省略,省略该路径则默认被定位到网站的根目录。
  • filename:指定远程文档的名称。如果省略该文件名,通常会定位到index.html、index.htm等文件,或定位到WEB服务器设置的其它文件。

关于这块网上的教程很多,推荐大家看下这篇文章,通俗易懂,简单易学:
IP地址,URL,网址有什么关系?

下面这张图可以很清晰的明白域名的解析过程:
在这里插入图片描述
另外:我们手动设置电脑IP的时候,会设置本地DNS
在这里插入图片描述
两个DNS服务器IP都属于公共域名解析服务DNS,不做商业用途,很纯净,免费给用户使用,其中:

  • 114.114.114.114 是内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
  • 8.8.8.8 是GOOGLE(谷歌)公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用,Google提供的另外一个免费DNS服务器的IP地址是:8.8.4.4

参考:1. IP协议
2. 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了
3. 书籍【漫话IP:TCP/IP基础知识读本】
4. 百度百科-VPN
5. IP地址,URL,网址有什么关系?
6. 百度百科-URL

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐