zoukankan      html  css  js  c++  java
  • IPV4地址

    在网络层,我们需要对每一个设备进行唯一的标识,这样所有的设备之间才能实现全球范围内的通信。下来我们就要讨论ipv4的编制机制。

    TCP/IP簇中用于ip层识别每一个连接到因特网上的设备的标识成为ip地址。IPV4是一个32位的地址,也就是说ip地址就是该接口与因特网连接的地址。ipv4的地址长度为32位。是全球统一,是唯一的。

    1、地址空间:

    像ipv4这种定义了地址的协议都有一个地址空间。地址空间就是协议所使用的地址的总数。如果一个协议用b位来定义地址,那么他的地址空间就是2^b.

    2、记法:

    2进制,点分10进制,16进制。

    (1)2进制记法:ipv4有32位,分4组,每组8位。

    (2)点分10进制:基于256

    每个字节(8位组)只有8位,所以点分10进制的数值一定在0-255之间。

    (3)16进制记法:一个32位的地址要用8个16进制数数字表示。一个16进制的数字等效于一个4位的二进制数字。(通常用于网络编程中)

    3、地址段:我们经常需要处理的是一段范围内的地址,而不是一个地址。有时候,在给定了一段地址的首地址,和尾地址的条件之下,我们需要求出这个地址段共有多少个地址,灵活的进行计算。

    算法:基于256计数法的减法运算,让末地址减去首地址。

    如:末地址:146.102.29.0首地址:146.102.32.255

    0.0.3.255=(0*256^3+0*256^2+3*256+255*256^0)+1=1024

    4、运算:非not 与and 或or

    (1)位非运算。位非运算就是一种单操作数运算,他的输入只有一个。当我么对这个数,做位非运算,通常是对这个数求反。对一个、32位的书进行非运算就是对他的每一位反转,0变成1,1变成0。

    (2)位与运算。

    是一种双操作数运算,他的输入有两个,与运算就是将输入的两个数每一个对应位进行比较,并选择出较小的(若是相等的,则任选一个)

    对于两个2进制数表示的32位数我们可以直接进行运算,但是如果这两个数是点分10进制,我们需要使用以下两种快捷算法:

    ⑴如果两个字节中至少有一个是0或者255,那么就选择较小的那个字节(相等则任选一个)

    ⑵如果两个字节都不等于0/255,我们可以把这两个字节分别写成具有8个项的多项式之和,且每一项都是2的乘方,然后我们选择各对应的项中较小的(相等任选一个)最后再把这些项加起来就得到或运算的结果。

    (3)位或运算。

    也是一种双操作数运算,他的输入有两个。或运算就是分别比较两个数相对应的每一位,并选择较大的(相等任意选一)

    ⑴如果两个字节中至少有一个是0或者255,那么就选择较大的那个字节(相等则任选一个)

    ⑵如果两个字节都不等于0/255,我们可以把这两个字节分别写成具有8个项的多项式之和,且每一项都是2的乘方,然后我们选择各对应的项中较大的(相等任选一个)最后再把这些项加起来就得到或运算的结果。

    5、快捷算法:

    (1)位与运算:

    17.121.14.35

    255.255.140.0

    ⑴如果两个字节中至少有一个是0或者255,那么就选择较小的那个字节(相等则任选一个)是一种双操作数运算,他的输入有两个,与运算就是将输入的两个数每一个对应位进行比较,并选择出较小的(若是相等的,则任选一个)

    17.121.%.0

    2^7 2^6 2^5 2^4 2^3 2^2 2^1

    2^0

    14:

    0 0 0 0 8 4 2 0

    140:

    128 0 0 0 8 4 0 0

    并选择每一项中最小的项,最后相加得到结果如下:

    8+4=12

    结果以上两个数的位与运算结构就是17.121.12.0

    (2)同理可得位或运算,不过变成选择较大的那个数。

  • 相关阅读:
    递归求解的两道小练习
    unittest的前置后置,pytest的fixture和共享机制conftest.py
    pytest + allure
    Jmeter 录制 https协议是出现“您访问的不是安全链接”提示时
    Jmeter
    如何不做登录请求而获取cookie到Jmeter里
    Fiddler抓包后转成jmeter脚本
    Jmeter- 笔记12
    Jmeter- 笔记11
    Jmeter- 笔记10
  • 原文地址:https://www.cnblogs.com/yjds/p/8597101.html
Copyright © 2011-2022 走看看