一、什么是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(27−22^{7}-227−2) 1.0.0.1-127.255.255.254 16777214 10.0.0.0-10.255.255.255
B 16384(2142^14214} 128.0.0.1-191.255.255.254 65534 172.16.0.0-172.31.255.255
C 2097512(2212^{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是第三层隧道协议。

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

【网络学习笔记】- 什么是IP地址?相关推荐

  1. IP地址和子网划分学习笔记之《IP地址详解》

    在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. IP地址和子网划分学习笔记相关篇章: 1.I ...

  2. 网络学习笔记:TCP/IP连网和Internet

    1.网关 由硬件和软件组成,实现不同网段间的数据传送. 常用路由器充当网关. 网关通常维护一份路由表,但只有少量的编址信息.它用这些信息把数据转发到知道更多信息的网关. 组成互联网骨干的网关称为核心网 ...

  3. 网络运维基础之IP地址学习

    网络运维基础之IP地址学习 一.IP地址介绍 二.IP地址分类 三.IP地址的私有地址 三.IP地址的子网掩码 1.IP地址格式 2.子网掩码计算 一.IP地址介绍 IP地址是IP协议提供的一种统一的 ...

  4. TCP/IP 网络编程笔记 第三章 地址族与数据序列

    文章目录 3.1 分配给套接字的 IP 地址与端口号 3.1.1 网络地址(Internet Address) 3.1.2 网络地址分类与主机地址边界 3.1.3 用于区分套接字的端口号 3.2 地址 ...

  5. python中socket模块常用吗_python网络学习笔记——socket模块使用记录

    此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...

  6. SDN软件定义网络 学习笔记(4)--数据平面

    SDN软件定义网络 学习笔记(4)--数据平面 1. 简介 2. SDN数据平面架构 2.1 传统网络交换设备架构 2.2 SDN交换设备架构 2.3 数据平面架构图 3. SDN芯片与交换机 3.1 ...

  7. 华为网络学习笔记(一) 网络通信协议

    华为网络学习笔记(一) 一.网络通信协议 通讯协议:通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出 ...

  8. SDN软件定义网络 学习笔记(1)--基本概念

    SDN软件定义网络 学习笔记(1)--基本概念 1. 定义 2. 提出背景 3. 体系结构 1. 定义 软件定义网络(Software Defined Network,SDN),顾名思义,SDN 与传 ...

  9. 深度学习(三十二)半监督阶梯网络学习笔记

    半监督阶梯网络学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50877704 作者:hjimce 一.相关理论 这几年深度学习声名鹊起,一 ...

  10. 【005】Nginx学习笔记-Nginx真实IP

    [005]Nginx学习笔记-Nginx真实IP 真实IP 客户端真实IP 深入理解真实IP 实验一 实验二: 多个代理服务器的情况 实验三:利用realip模块获取客户端真实IP 实验四:伪装请求头 ...

最新文章

  1. 让你的JS代码更具可读性
  2. python中float与eval式一样的吗_用Python最原始的函数模拟eval函数的浮点数运算功能...
  3. Android AIDL示例-回调方法版
  4. Gentoo 安装日记 20 (安装配置开机引导程序grub)
  5. 网络流量队列优先级相关知识点
  6. 吴恩达深度学习笔记9-Course3-Week2【机器学习策略(ML Strategy)2】
  7. 怎么在mysql创建数据库怎么加入学号_数据库怎么创建学生信息表
  8. jenkins-基础配置
  9. Abraca:XMMS2 的客户端
  10. myEtherWallet在线钱包的使用
  11. JavaScript算法(实例八)递归计算每个月的兔子总数【斐波那契数列】
  12. Android基础 淡入淡出、上下弹出动画的
  13. el表达式里面fn的用法
  14. MFC获取指针.doc
  15. kronecker引理证明_连续型Kronecker引理
  16. 15岁黑客Cosmo的堕落历程
  17. 股票涨跌速率对应操作策略和后市走势分析
  18. c语言汇率转换代码_基于C语言实现的货币转换器.doc
  19. 计算机桌面文件如何发送给qq好友,QQ怎么与好友分享屏幕 如何共享电脑屏幕给好友...
  20. kermit开发板启动Linux乱码,Ubuntu下C-kermit的使用

热门文章

  1. 跟小米、特斯拉分“蛋糕”的优必选要IPO
  2. HTML5 canvas 设置背景图
  3. 11基于主从博弈理论的共享储能与综合能源微网优化运行研究(MATLAB程序)
  4. 论文阅读-Federated Social Recommendation with Graph NeuralNetwork
  5. php 线程周期,进程线程,CPU核心数,时间片轮转机制解读
  6. 冰冰学习笔记:类与对象(上)
  7. matlab最小二乘 弹性网络,基于弹性SCAD罚函数的回声状态网络时间序列预测方法与流程...
  8. 结构体、枚举类型和联合体
  9. 专利申请已经开始公示
  10. Renderdoc 帧调试器