当前位置:网站首页>网络之IP地址
网络之IP地址
2022-07-26 01:32:00 【Once_day】
网络之IP地址
Author:onceday date:2022年7月21日
1.引言
IP地址是TCP/IP网络中的主机(或称为节点) 的惟一地址。IP地址是网络层的逻辑地址。
IP地址是一组32位长的二进制数字,用点分十进制表示。
IP地由网络地址+主机地址组成。
IP地址可由互联网名字和数字分配机构ICANN进行分配。
2.IP地址组成

各地址的分布情况:
| 地址 类型 | 标识位 | 范围 | 地址结构 | 可用网络地址数 | 可用主机 地址数 |
|---|---|---|---|---|---|
| A类 | 0 | 1-127 | 网.主.主.主 | 126(2^7-1) | 16777214(2^24-2) |
| B类 | 10 | 128-191 | 网.网.主.主 | 16384(2^14) | 65534(2^16-2) |
| C类 | 110 | 192-223 | 网.网.网.主 | 2097152(2^21) | 254(2^8-2) |
| D类 | 1110 | 224-239 | 组播地址 | ||
| E类 | 1111 | 240- | 研究和实验用地址 |
注意:
- 网络号全0的是个保留地址,表示本网络。
- 全0的主机号表示该IP地址是“本主机”所连接到的单个网络地址。
- 全1的主机号表示该网络上所有的主机。

有三类私有地址:
- A类地址:10.0.0.0/8 (10.0.0.0 - 10.255.255.255 )
- B类地址:172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
- C类地址:192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
注意:
- 网络地址不能全为0,也不能全为255:全为0没有网络,全为255用作子网掩码。
- 主机地址中不能全为0,也不能全为255:主机地址全为0用来表示网络地址,全为255用作广播。
3.划分子网
子网(Subnet)是在TCP/IP网络上,用路由器连接的网段。同一子网内的IP地址必须具有相同的网络地址。
原有两级划分方式有以下缺点:
- IP地址利用率很低,A类地址有1000万以上主机,一个企业很难用完。
- 给每一个物理网络分配一个网络号会使得路由表变得太大而降低网络性能。
- 两级IP地址不够灵活。
格式如右:IP地址={<网络号><子网号><主机号>}。
使用子网掩码来确定网络地址:
- 子网掩码(Subnet Mask)用来确定IP地址中的网络地址部分。其格式与IP地址相同,也是一组32位的二进制数。
- 子网掩码中为“1”的部分所对应是IP地址中的网络地址部分,为“0”的部分所对应是IP地址中的主机地址部分。

三类标准网络的缺省子网掩码:
- A类地址:255.0.0.0
- B类地址:255.255.0.0
- C类地址:255.255.255.0
4.VLSM变长子网掩码
VLSM(变长子网掩码) 提供了在一个主类(A类、B类、C类)网络内包含多个子网掩码的能力,可以对一个子网再进行子网划分:
- 对IP地址更为有效的使用
- 应用路由归纳的能力更强
划分实例:
比如一个192.168.1.0的C类地址:
先划分为2个子网:192.168.1.0/25,192.168.1.128/25。
第一个有128-2个主机,第二个子网还可以继续划分子网。比如再划分192.168.1.128 /26,192.168.1.192/26这两个子网。
5.IP数据报
IP数据报由首部和数据两部分组成,首部前一部分是固定的20字节,所有IP数据报都有.

版本,占四位,指IP协议的版本。IPv4为4,IPv6为6。
首部长度,占4位,值[5,15],单位是32位字,即4字节。如无可选字段的IP报,其首部为20字节,则首部长度为5。
区分服务,占8位,只有在使用区分服务时,这个字段才起作用。
总长度,指IP数据报+数据部分的总长度,字节为单位,字段为16位,则数据报最大的长度为65535字节。
IP协议规定,必须能接收长度不超过576字节的数据报,假设上层交下来的数据长度有512字节,加上最长的IP首部字节,再加4字节的富余量计算出来的。
标识,占16位,IP软件维持的一个计数器,每产生一个数据报,计数器就加1。用于分片超过网络MTU大小的IP数据报,能在另一端正确组装起来。
标志,占3位,最低位为MF(More Fragment)。MF为1表示后面还有“切片”,MF=0,表示这已是若干数据报片中的最后一个。标志字段中间一位记为DF(Don’t fragment),意思是不能分片,DF=0时才能分片。
片偏移,占13位,支出分片的数据报在原分组的相对位置,以8个字节为单位。
生存时间TTL,占8位,表示跳数,每经过一个路由器,跳数就会减1,当为0,就会被丢弃。
协议,占8位,指出数据报携带的数据使用的是何种协议。
首部校验和,占16位,这个字段只检验数据报的首部,但不包括数据部分。采用反码运算求和方式。
源地址和目的地址,Ip地址。
IP地址可选部分有1-40字节,不满足4字节整数倍需要使用0填充,一般甚少使用。
IP数据报切片举例:
一个数据总长3820字节,头部为固定长度20字节。第一次要求IP数据报长度不能超过1420字节,因此分成下面三个:
| 数据报 | 总长度 | 标识 | MF | DF | 片偏移 |
|---|---|---|---|---|---|
| 原始数据报 | 3820 | 1456 | 0 | 0 | 0 |
| 切片1 | 1420 | 1456 | 1 | 0 | 0 |
| 切片2 | 1420 | 1456 | 1 | 0 | 175 |
| 切片3 | 1020 | 1456 | 0 | 0 | 350 |
假定切片2还要划分切片,则如下:
| 数据报 | 总长度 | 标识 | MF | DF | 片偏移 |
|---|---|---|---|---|---|
| 原始数据报 | 1420 | 1456 | 1 | 0 | 175 |
| 切片1 | 820 | 1456 | 1 | 0 | 175 |
| 切片2 | 620 | 1456 | 1 | 0 | 275 |
6.ARP地址解析协议
ARP是负责将IP地址映射为物理地址的协议
通常所说的以太网的网卡是不识别IP地址的,而是通过识别MAC地址来判断该帧是否是给本机的。因此就需要提供一个机制根据目的主机的IP翻译出它的MAC地址。
注意:像点对点链路是不需要MAC,也就不需要地址解析协议。
历史上还有一个RARP协议 ,即逆地址解析协议,根据MAC解析出IP地址,现在已有DHCP协议代替。
主要的关注的几点如下:
每台主机都一个高速缓存ARP cache,里面有本局域网上各主机和路由的IP地址到硬件地址的映射表。
如果在高速缓存里找不到对应IP,则发送ARP请求。
ARP是本地局域网广播分组,包含本机IP、MAC以及目的IP。
接收者从该请求报文中提取出源主机的IP地址和物理地址的绑定,更新自己的ARP缓冲
对应IP的接收者发回ARP应答报文给请求者,包含IP和MAC,是单播分组。
高速缓存有一段生存时间,失效后将重新发送ARP请求。
7.IP层转发—路由器和路由选择
路由选择: 选择一条路径发送IP数据报的过程。
路由器: 进行路由选择的计算机
IP互联网: IP互联网是由路由器将多个网络相互联接所组成的,IP互联网采用面向非连接的互联网解决方案。
路由器逐跳转发:各个路由器独立地对待每个IP数据报
路由器负责为每个IP数据报选择它所认为的最佳路径
只有到达最后一个路由器,才试图向目的主机进行直接交付。
在每一台路由器上都有一个路由表:
IP路由表存储着有关可能的目的地址及怎样到达目的地址的信息
在转发IP数据报时,查询IP路由表,决定把数据报发往何处
对于小型网络,可使用默认路由,直接把非本网络的IP报都发往外界的路由。
路由表中不可能包括所有目的主机的地址信息,数量大,搜索时间长。
路由表仅指定从该路由器到目的地路径上的下一步,而该路由器不知道到达目的地的完整路径
如果路由表没有明确指明一条到达目的网络的路由信息,就将数据报转发到默认路由指定的路由器。D=0.0.0.0,M=0.0.0.0,N=默认路由地址。
对单个主机(而不是网络)指定一条特别的路径。特定主机路由。D=主机IP,M255.255.255.255 N=达到该主机的下一跳路由器。
分组转发算法的基本思想:

8.无类型域间选路(CIDR,Classless Inter-Domain Routing)
主要特点:
消除了传统的A类,B类和C类地址以及划分子网的概念。使用网络前缀来指明网络。
即
Ip={<网络前缀>,<主机号>}CIDR把网络前缀都相同的连续IP组成一个“CIDR地址块”。
划分举例:
使用32比特的块中最低的地址和32比特的掩码来表示范围。
CIDR地址块中一块地址:128.14.35.7/20:
| 最小地址 | 128.14.32.0 | 10000000 00001110 0010/0000 00000000 |
|---|---|---|
| 最大地址 | 128.14.47.255 | 10000000 00001110 0010/1111 11111111 |
标识一个CIDR的块即需要地址也需要掩码,使用A.B.C.D/n 来表示。
A.B.C.D表示该地址块的最低地址,n表示掩码的长度。
CIDR的选路使用最长匹配选路,因为CIDR支持超网(supernetting)。
超网可以理解为:比如原来要分配给一个企业B类的地址,现在可以分一块连续的C类地址来代替
9.动态路由
路由分成两种:
静态路由,人工指定的路由,安全可靠、简单直观,避免了动态路由选择的开销。适合简单的互联网结构。
动态路由,路由器通过自己学习得到的路由。动态路由可以通过自身学习,自动修改和刷新路由表。要求路由器之间不断地交换路由信息
路径度量值metric:
表征路径优劣的数值
metric越小,说明路径越好
metric的计算可以基于路径的一个特征,也可以基于路径的多个特征
metric计算可以基于路径的多个特征:
跳数(hop count):IP数据报到达目的地必须经过的路由器个数
带宽(bandwidth):链路的数据能力
延迟(delay):将数据从源送到目的地所需的时间
负载(load):网络中(如路由器中或链路中)信息流的活动数量
可靠性(reliability):数据传输过程中的差错率
开销(cost):一个变化的数值,通常可以根据带宽、建设费用、维护费用、使用费用等因素由网络管理员指定
使用动态路由要路由器运行相同的路由选择协议,执行相同的路由选择算法。
路由协议是分层次的:
可以把互联网划分成许多较小的自治系统AS(autonomous systems),其内部可以自由使用路由协议,但对外部表现应该是统一的。
内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部。如RIP和OSPF协议。
外部网关协议EGP(External Gateway Protocol),用于两个自治系统之间。
路由收敛: 快速收敛是路由选择协议最希望具有的特征。
- 互联网中的所有路由器都运行着相同的、精确的、足以反映当前互联网拓扑结构的路由信息
边栏推荐
- “蔚来杯“2022牛客暑期多校训练营2 I.[let fat tension] 矩阵乘法 J.[Link with Arithmetic Progression]线性回归
- [secsha concept] original reverse supplement
- 如何获取广告服务流量变现数据,助力广告效果分析?
- API测试简介
- [Go]三、最简单的RestFul API服务器
- Quickly create a topic folder
- 旅行 (拆点分层)
- "Weilai Cup" 2022 Niuke summer multi school training camp 2 h.[take the elevator] maintenance section
- Qtreewidget dotted line setting
- [secsha concept] large and small end
猜你喜欢

言语理解-片段阅读的结构剖析练习

MDK编译过程及ARM编译工具链

8. Learn Mysql to create data tables
![[Go]三、最简单的RestFul API服务器](/img/1f/f6fc8cc9a3891d01a25e709170188d.png)
[Go]三、最简单的RestFul API服务器

Google Gson用法详解

What should I do when my blog is attacked by hackers?

Machine learning: Bayesian Networks

记一次自定义 Redis 分布式锁导致的故障

Docker advanced -mysql master-slave replication

Network performance evaluation tool ping/mtr
随机推荐
《分布式微服务电商》专题(一)-项目简介
API测试简介
Arthas watch command to view the properties of objects in the array
言语理解-片段阅读的结构剖析练习
Travel (split points and layers)
8、学习MySQL 创建数据表
Tutorial on principles and applications of database system (055) -- MySQL query (XVII): usage of mathematical functions
What if win11 cannot open its own anti-virus software? Win11's built-in anti-virus function cannot be turned on
[software development specification III] [software version naming Specification]
What is informatization? What is digitalization? What are the connections and differences between the two?
C语言进阶(一)动态分配内存
Tutorial on principles and applications of database system (056) -- MySQL query (18): usage of other types of functions
Is it safe for Huatai Securities to open an account online? How to handle it?
[secsha concept] large and small end
Test questions and answers of the latest Beijing Construction eight (materialman) mock examination in 2022
Modify CSV
[ickim 2022] the Fourth International Conference on knowledge and information management
Google gson usage details
What should I do when my blog is attacked by hackers?
ABC find 4-cycle (pigeon nest theorem)