网络层协议知识

arp协议

     地址解析协议     Address Resolution Protocol   通过已知IP获取相对应主机的MAC地址

     arp 会在内容空间维护一个arp表,记录着和本主机通信过的IP和MAC相对应的记录   基于广播的方式进行查找

     两个主机在三次握手之前必须先通过arp协议获取目标的MAC地址

     arp在发广播之前首先会通过IP地址和netmask进行运算 来获得目标ip和本机ip是否是在同一个网段,如果是同一个网段那么就直接在

     本网段发送广播包获取MAC地址.如果没有在同一网段,那么arp会把数据单播给路由器网关,直到到达目标主机所在网段的路由器才会

     再次进行广播获取目标主机的MAC地址.在跨路由传播的时候只有源MAC地址和目标MAC地址是不断发生变化的

     基于arp的工作机制,可以进行arp攻击. arp没有任何校验.只要任何一方有响应,接收方都会认为是正常的数据.

主机到主机之间的包传递

    1.必须首先知道对方的IP地址

    2.通过arp协议和IP地址解析到对方的MAC地址

    3.TCP三次握手

    4.真正进行数据的传递

IP和网络协议

  ip包首部

     4个位           ip协议版本号        ipv4 或者ipv6

     4个位           首部长度

  

  数据包每次经过一个路由器,这个包的TTL就会减1

  把一个大包进行切包发送

   

mtu    表示的是帧的数据内容大小  不包含帧的头部信息数据

         举一个具体的例子说明IP包分片的原理。以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文

        则该报文在添加20 bytes的IP包头后IP包的总长度是 3028 bytes,因为3028 > 1500,所以该数据报文将被分片

        分片时仅仅对上层的数据进行分片,不需要对原来的IP首部分片,所以要分片的数据长度只有3008,而不是3028

      分片过程如下:
            1. 首先计算最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes。
            2. 然后把3008 bytes按照1480 bytes的长度分片,将要分为3片,3008= 1480+1480+48。
            3. 最后发送者将为3个分片分别添加IP包头,组成3个IP包后再发送,3个IP包的长度分别为1500 bytes、1500 bytes和 68 bytes。
      从以上分片例子可以看出第一、二个分片包组成的IP包的长度都等于MTU即1500 bytes。

     

 二进制到十进制的转换

  0000 0000            0

  0000 0001            1

  0000 0010            2

  0000 0100            4

  0000 1000            8

  0001  0000          16

  0010  0000          32

  0100  0000          64

  1000  0000          128           

linux操作系统命令进行十进制和二进制的转换

bc      把十进制变成二进制  obase=2             把二进制变成十进制    ibase=2

IP地址的结构和用途

     1.  IP地址是由  网络ID 和  主机ID  两部分组成的

     2.  网络ID 表示属于哪个网段, 主机ID 表示在网段中的哪台主机. 

     3.  IP地址是由4个字节  32位二进制数字组成     

     4.  使用IP地址来标识网络中的设备的比使用MAC地址来标识的优势在于可以方便人去进行设定管理,MAC地址是由厂家生产的无法手动修改.

     A类IP

          1.  第一个位必须为0,前面8位为网络ID(网络ID可变位为7位)

          2. 后面24位为主机ID

          3. 网段范围   二进制 0000 0000 - 0111 1111   十进制  0 -127

          4. 0有特殊含义  表示未知(没有)地址      127 表示的是本地回环地址 不能给网卡分配   所以取值范围在  1 -126

    B类IP

         1.前面两位必须为10,前面16位为网络ID(网络ID可变位为14位)

         2.后面16位为主机ID

         3.网段范围        128 - 191

   

    C类IP

         1.前面三位必须为110,前面24位为网络ID(网络ID可变位为21位)

         2.后面8位为主机ID

         3.网段范围    192 -  223

    D类IP

           表示的是多播地址,不能给电脑分配

           网络范围   224  -  239

    E类IP

         保留地址

         网络范围    240   -  254

网络和主机范围数据公式

    一个网段中的IP数量有两种特殊情况不能给主机分配

     126.0.0.0                       主机号全部为0        表示126网段号                     不能给任何主机分配此IP

     126.255.255.255           主机号全部为1        表示126这个网段的广播       不能给任何主机分配此IP

    计算网段数量

         网段数量  =  2^ 可变网络ID位数

    计算一个网络中的主机数量

        可包含的主机数量 =  2 ^ 主机ID位数 - 2 =  2 ^(32-网络ID位数) - 2

   划分子网数

        划分子网数 =  划分成  2^N    个子网 (N 表示网络ID向主机ID借的二进制位数)

无类IP分配方式(无类CIDR)

    比有类IP分配方式灵活

    IP地址总共32位长度,网络ID 和主机ID的 长度不再固定设置,而是根据实际情况灵活调整

    判断两个主机是不是在一个网段有两种类型

     1.物理设备是否在一个网段中   就是查看两者是不是在路由器的同一个接口上

     2.逻辑上是否在一个网段中      根据设定的IP地址运算看网络ID是否相同   即使两者在同一个交换机上也可以把IP设置成在不同的网段

     3.无论是物理上还是逻辑上两者如果不在一个网段,那么这两者的通信就一定要通过路由器

  计算无类IP的网络ID和主机ID

      通过netmask(子网掩码)和IP地址进行运算

      IP地址中有多少位网络ID 在 netmask中对应的位 就为1  有多少位主机ID  在 netmask中对应的位 就为 0

      在netmask 中 每一个 255 代表 8个1      255.255.0.0   代表IP地址的前16位是网络ID,后16位是主机ID

  CIDR  无类域间路由表示法:  IP/网络ID位数    192.168.2.10/22

子网掩码对应表

  0000 0000                     0

  1000 0000                    128

  1100 0000                    192

  1110 0000                     224

  1111 0000                     240

  1111 1000                     248

  1111 1100                     252

  1111 1110                     254

  1111 1111                     255

 划分子网

   将一个大的网络划分成多个小网络

公共IP地址和私有IP地址

    公共IP在互联网的路由器上是有路由记录的,私有IP地址在互联网的路由器上是没有路由记录的.私有IP地址在局域网中使用

    A类私有IP              10.0.0.0   -  10.255.255.255

          公共IP              1.0.0.0     -  9.255.255.255

                                 11.0.0.0   -  126.255.255.255

    B类私有IP              172.16.0.0 - 172.31.255.255

          公共IP               128.0.0.0 - 172.15.255.255

                                  172.32.0.0 - 191.255.255.255

    C类私有IP               192.168.0.0 - 192.168.255.255

          公共IP                192.0.0.0 - 192.167.255.255

                                   192.169.0.0 - 223.255.255.255  

特殊地址

    0.0.0.0    不是一个真正意义上的IP地址,它表示的是一个集合: 所有不清楚的主机和目的网络

    255.255.255.255    限制广播地址,网络层的广播.广播分为数据链路层的广播和网络层的广播

    127.0.0.1 - 127.255.255.254 本机回环地址  只要是127开头的IP地址都表示为本地回环地址

原文地址:https://www.cnblogs.com/yxh168/p/8974380.html