13、IP类别和地址

IP类别和地址

1、动机

  • 大型组织将使用多种联网技术
  • 组织间的沟通很重要
  • 通用服务-任何两台计算机都应该能够通信
  • 但是,不同的网络技术不能仅连接在一起

网络互联

  • 互连异构网络并提供通用服务
  • 用于连接异构网络的基本硬件组件是路由器
  • 硬件:路由器连接不同的网络
  • 软件:Internet协议通过创建单个虚拟网络来提供通用服务

2、网络结构

  • 尽管单个路由器可以连接多个网络,但是大多数组织使用多个路由器

虚拟网络

互联协议

  • TCP / IP Internet协议
  • 始于1970年代
  • 互联网在1990年代已进入公共领域
  • 由互联网工程任务组(IETF)控制

主机

  • TCP / IP使用术语“主机”来指代任何连接到Internet并运行应用程序的系统
  • 主机和路由器都使用TCP / IP协议软件

3、IP

  • 统一寻址
  • IP地址层次结构
  • IPv4和IPv6
  • 地址类别
  • 点分十进制表示法
  • 特殊地址
  • 路由器和地址
  • 地址解析

3.1 统一寻址

  • Internet协议处理数据包并提供统一的寻址
  • 寻址方案在软件中定义,并由应用程序透明使用
  • IP协议中指定了Internet寻址
  • 但是Internet不再有地址空间!!!
  • IP的两个版本– IPv4和IPv6
  • 为每个主机分配一个唯一的二进制数:IP地址
  • 与主机的所有通信均使用此地址

3.2 IP地址层次结构

  • 每个32位地址分为两部分:
  • 前缀:主机连接到的物理网络-网络号
  • 后缀:连接到给定物理网络的主机
  • 前缀是全局协调的,本地是后缀的
  • 为每台计算机分配一个唯一的地址

IPv4地址的原始类别

  • 前缀和后缀的大小确定最大网络数和每个网络的最大主机数
  • IPv4使用不同大小的前缀和后缀定义了不同的地址类别
  • 地址的前四位指定其类别以及地址的其余部分如何划分为前缀和后缀

谁控制IP地址?

  • 公共Internet网络号码由Internet服务提供商(ISP)分配,并由Internet公司分配名称和号码(ICANN)协调
  • 每个地理区域都有一个注册商
  • ICANN授权注册服务商向主要ISP分发地址块
  • 大型ISP将它们交给较小的ISP
  • 根据要求为公司或个人添加前缀

4、IPv4子网和无类别寻址

  • 由于Internet的地址用尽了,发明了两种机制来提供帮助:
    •子网寻址
    •无类寻址
  • 两者非常相似
    •最初连接到Internet的大型组织内部使用的子网地址
    •无类寻址将方法扩展到整个Internet
  • 想法:
    •允许前缀和后缀之间的分隔出现在任意边界

4.1 具有任意界限的动机

  • 考虑以下两个示例:
  • 客户需要只有9个主机的网络
    •ISP必须分配C类前缀(8位后缀)
    •对于9台主机,主机后缀仅需要四位(即具有足够的地址)
    •C类(最小)地址使用8位作为主机后缀
    •将有四位未使用的地址!!
  • 客户需要具有35个主机的网络
    •ISP必须分配C类前缀(8位后缀)
    •对于35台主机,只需其中6位具有足够的地址
    •C类(最小)地址使用8位作为主机后缀
    •将有2位未使用的地址!

4.2 解决方案:无类寻址

  • 对于具有9台计算机的网络: •可以将C类地址细分为带有28位前缀和4位后缀的16个地址
    •仅5个地址将不使用
  • 对于具有35台计算机的网络:
    •可以将C类地址细分为带有26位前缀和6位后缀的64个地址
    •仅27个地址将不使用
  • 其余的细分C类地址可用于其他人的网络

4.3 地址掩码(又名子网掩码)

  • 要实现无类别寻址,路由器和主机必须存储其他信息:一个值,用于指定确切的前缀/后缀边界
  • 地址掩码
    •对于IPv4,长32位
    •对于IPv6,长128位
  • 1位标记网络前缀,0位标记主机部分
    •为什么? -高效的处理!
    •主机和路由器可以非常轻松地进行比较
    •他们使用地址掩码进行逻辑与,以从整个地址获取网络前缀

4.4 与IPv4一起使用的CIDR表示法

  • 无类寻址被称为无类域间路由(CIDR)
  • 目的:使人们可以轻松查看网络前缀使用了多少位
  • 扩展了点分十进制表示法,例如:
    •192.5.48.69/26
    •26位(最左边的26位)是网络前缀
  • 使人们能够指定和解释掩码值,因为他们只需将26位(在此示例中)设置为1值

4.5 Multihomed Hosts(可以是服务器)

  • 不必是路由器
  • 其他原因: •提高性能(可以实现负载均衡) •使用一个链路与多个网络的连接,不用路由器
    •增强鲁棒性
  • 多宿主主机具有多个协议地址,每个网络连接一个

5、 IPv6多宿主和网络重编号

  • IPv6允许多宿主
    •因此网络可以有多个前缀
  • 原因是允许IPv4消失,而公司需要重新编号

5.1 IPv6零压缩

  • 此外,IPv6使用零压缩
  • 用两个冒号代替零序列,例如
  • FF0C:0:0:0:0:0:0:B1变为:FF0C :: B1
  • IPv4地址可以映射到IPv6地址空间

6、阅读:20、 21 章

原文地址:https://www.cnblogs.com/Stephanie-boke/p/12173919.html

时间: 2024-10-08 17:55:22

13、IP类别和地址的相关文章

获得Unix/Linux系统中的IP、MAC地址等信息

获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 作者:diaoyf  |  文章来源:http://programmerdigest.cn 实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP.端口信息.但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地

[记]Linux 获取本机(全部)IP、MAC地址方法 (C/C++)

Linux 获取本机IP.MAC地址用法大全 1 2 //#include <sys/types.h> 3 #include <ifaddrs.h> 4 #include <sys/ioctl.h> 5 #include <net/if.h> 6 #include <string.h> 7 #include <stdio.h> 8 #include <unistd.h> 9 #include <netdb.h>

java 获取本机ip及mac地址

package com.achun.test; import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration; public class HelloWorld { public static void main(String[] args) { // TODO Au

老男孩教育每日一题-2017年4月26日-通过访问日志access.log统计IP和每个地址访问的次数

通过访问日志access.log统计IP和每个地址访问的次数 101.226.61.184 - - [22/Nov/2015:11:02:00 +0800] "GET /mobile/sea-modules/gallery/zepto/1.1.3/zepto.js HTTP/1.1" 200 24662 "http://m.oldboyedu.com/mobile/theme/oldboyedu/home/index.html" "Mozilla/5.0 

Android -- 获取IP和MAC地址

通过InetAddress.getLocalHost()得到始终是"127.0.0.1",要想得到真正的网络ip地址要通过下面的方法: 首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下: <uses-permission android:name="android.permission.INTERNET"/> <!--必写--> <uses-permission android:name="a

C#获取IP及MAC地址 方法

C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.InteropServices; public class getIP { [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int

获取本机IP、mac地址、计算机名

python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid >>> def get_mac_address(): mac = uuid.UUID(int = uuid.getnode()).hex[-12:] return ':'.join([mac[e:e+2] for e in range(0,11,2)]) >>> get_m

绑定网关IP和MAC地址时显示“ARP项添加失败:拒绝访问”的处理方法

绑定网关IP和MAC地址时显示"ARP项添加失败:拒绝访问" Win7系统,用arp -s命令在绑定网关IP和MAC地址时,总是提示 ARP 项添加失败: 拒绝访问.( 用管理员身份运行cmd也无效.)未找到原因. 后来google找到了另一个命令,搞定! 具体操作如下: 1.CMD中输入: netsh i i show in 然后找到本地连接对应 我的是Win7系统,今天用arp -s命令在绑定网关IP和MAC地址时,总是提示"ARP 项添加失败: 拒绝访问."(

CIDR详解和ip最长地址前缀匹配

1.CIDR是什么 无类域间路由(CIDR)编址方案 摒弃传统的基于类的地址分配方式,允许使用任意长度的地址前缀,有效提高地址空间的利用率. 就是一个ip加一个网络掩码,不过这个掩码不是之前只有3个值(A类:8,B类:16,C类:24),而是0-32随意的一个值. 例如: 208.12.128.0/17 2.如何理解CIDR格式 上图 可以理解为一个从0到(2^32-1)长的线段. 掩码32表示n个ip的点,数量n是2^32. 掩码31表示n个小线段1,每个线段1包含2(2^(32-31))个i