IP地址、ARP协议、子网掩码、到底做了什么?

本文章内容包括:

  • 网络层IP协议相关

    • IP协议
    • 子网划分
    • 简单路由过程
  • 网络层其他协议

    • ARP与RARP
    • ICMP协议
  • IP的路由算法

    • 路由的概述
    • 内部网关路由协议
    • 外部网关路由协议

1.网络层的作用

  • 决定数据在网络的路径(网络路由)


    网络层概述

2. IP协议详解

2.1 虚拟互联网络

路径选择

A ——> B的路径可以有很多,我们把整个复杂的网络拓扑结构看成一个虚拟互联网络。


  • IP协议使得网络层屏蔽底层细节,而专注网络层的数据转发
  • IP协议【解决了虚拟网络中数据报传输路径的问题】

2.2 IP协议

  • IP地址长度为32位,常用点分十进制来表示


IP头部的信息

IP首部
  • 第一行:
    • 版本(4位):IPv4或者IPv6
    • 首部长度(4位):取值为0-15,代表IP首部长度为0-60个字节
    • 服务类型(8位):TOS
    • 总长度(16位):IP数据报的总长度(IP首部+IP数据)
  • 第二行:
    • 16位标识、3位标志、13位片偏移
  • 第三行:
    • TTL(8位):TTL可以防止IP数据报在网络中无限转发。IP数据报每次进过一个设备,TTL减一,TTL等于0时丢弃该IP数据报。
    • 协议(8位):表明IP数据携带的数据具体是什么协议(如:TCP、UDP)
    • 首部校验和(16位):校验IP首部是否出错
  • 第四行:
    • 源IP地址
  • 第五行:
    • 目的IP地址

2.3 路由表

  • 路由表:路由表和MAC地址表类似,都是以键值对的形式存在数据链路层和网络层中。
  • 路由表中存的是目的IP地址和对应的下一条IP地址。
  • 计算机和路由器中,都存有路由表。
路由表

2.4 IP协议的转发流程

  • 仅从网络层的角度看待转发


    转发流程
  • 从网络层和数据链路层看待路由转发


    第一步

    第二步

    第三步
  • 数据【每一跳的MAC地址都在变化】

  • IP数据报【每一跳的目的IP地址始终不变】

3. ARP协议

  • ARP(Address Resolution Protocol):地址解析协议
  • 目的是将 【网络层IP32位地址】——>【数据链路层MAC48位地址】
  • ARP缓存表用来存储IP地址和MAC地址映射关系


    ARP缓存表
  • 如果没有缓存:ARP会广播一个数据报到除了发送以外的所有端口,并接受到来自其他端口的回应,并记录该地址。
  • ARP缓存表中的记录并不是永久的,有一定期限

ARP数据格式

ARP数据格式

4. 子网划分

A、B、C类地址
  • 特殊的主机号
    • 主机号全为0表示当前网络段
    • 主机号全为1表示广播地址
  • 特殊的网络号


    特殊的网络号
A、B、C类地址的数量

4.1 子网掩码

  • 子网掩码和IP地址一样都是32位,是由连续的1和连续的0组成的,用来快速判断某个IP地址属于哪个子网号。


    子网掩码
  • 当一个C类网络需要划分成两个子网时,子网掩码就延伸到第25位,这样一个可分配254个IP地址的C类网络,就被划分成两个可分配127个IP地址的子网。


    子网掩码

4.2 无分类编址CIDR

CIDR

CIDR斜线记法
CIDR地址数

5 网络地址转换NAT技术

  • 主要思想是利用端口号,进行内网和外网地址的转换。
  • 转换过程在路由器完成。


    NAT

6 路由表的工作原理

路由表
  • 下一跳地址怎么来的?
  • 下一跳地址唯一的吗?
  • 下一跳地址是最佳的吗?
  • 路由器那么多,他们怎么协同工作?

6.1 RIP协议

  • RIP协议把网络的条数(hop)作为DV算法的距离
  • RIP协议【每隔30s】交换一次路由信息
  • RIP协议认为【跳数>15】的路由为不可达路由

6.2 RIP协议过程

  1. 路由器初始化路由信息(两个向量Di和Si)
  2. 对相邻路由器X发过来的信息,对信息的内容进行修改(下一跳地址设为X,所有距离加1)
    i. 检索本地路由,将信息中新的路由插入到路由表中


    插入新的路由

ii. 检索本地路由,对于下一跳为X的,更新为修改后的信息


更新

iii. 检索本地路由,对比相同目的的距离,如果新信息的距离更小,则更新本地路由表


对比留距离更小的
  1. 如果3分钟没有收到相邻的路由信息,则把相邻路由设为不可达(16跳)

你可能感兴趣的:(IP地址、ARP协议、子网掩码、到底做了什么?)