IP地址
路由选择协议
散落的笔记
IP地址
IP地址不仅指明了一个主机,还指明了主机所连接到的网络
分类的IP地址 | 分类 | 前缀 | 网络号位数 | 主机号位数 | | —- | —- | —- | —- | | A类 | 0 | 8 | 24 | | B类 | 10 | 16 | 16 | | C类 | 110 | 24 | 8 | | D类 | 1110 | ~ | ~ | | E类 | 1111 | ~ | ~ |
- D类地址用于多播
- E类地址保留为以后用
- 网络号为全0地址:表示本网络
- 网络号为127(01111111):用于测试主机进程间通信
- 主机号为全0:表示本主机所在的网络地址
主机号为全1:表示该网络上的所有主机
- 网络号
局域网上的IP地址网络号必须是一样的
路由器总是具有两个或两个以上的IP地址,每一个接口都有一个不同的IP地址
- ARP地址解析协议
用于找到同一个局域网下,通信对方的硬件地址
使用ARP高速缓存
- 每个主机都有一个ARP高速缓存,里面有IP地址到硬件地址的映射
- 映射表会动态更新,可以自动新增或者超时删除(10~20min)
发送ARP请求
- 无映射时,通过广播方式发起ARP请求
- ARP请求包括了源主机的IP和地址,以及目标IP
- 主机收到ARP请求后,如果发现自己正是目标主机,则通过单播方式返回ARP响应
- ARP响应包括了目标IP和和目标硬件地址
不同局域网下寻找硬件地址的方法
- 源主机发起ARP请求,找到当前局域网的路由器并将剩余工作交由路由器
- IP数据报
- 源主机发起ARP请求,找到当前局域网的路由器并将剩余工作交由路由器
首部固定部分:20字节
版本:IP协议的版本,4位
- 通信双方IP协议的版本必须一致
- 目前广泛使用的版本是IPv4和IPv6
首部长度:单位是每4字节,4位
- 当IP分组的首部长度不是4字节的倍数时,使用填充字段凑数
- 区分服务:8位
总长度:首部和数据的长度和,16位
- 因为数据链路层中规定了MTU,所以需要对数据报总长度有所限制
标识:标识数据报,16位
- 当数据报由于长度超过MTU而必须分片时,被分片的数据报会使用同一个标识字段
标志:3位,但目前只有两位有意义
- 标志位MF(More Fragment):为1时表示之后还有分片
- 标志位DF(Don’t Fragment):为1时表示不能分片
片偏移:数据报分片后,该片段在原来数据报的位置,13位
- 以8字节为单位
生存时间TTL(Time To Live):表示数据报在网络中的寿命,8位
- 防止无法交付的数据报无限制地在因特网中兜圈子,消耗网络资源
- 现阶段的TTL使用条数限制,路由器每转发一次数据报,TTL会减1
- 当TTL为0时,丢弃数据报
- 协议:指出数据报携带的数据是使用何种协议(包括了网络层和传输层),8位
首部检验和:检验数据报的头部,16位
- 为了减小计算量,不采用CRC
- 源地址:32位
- 目的地址:32位
- 首部可变部分
数据部分
- 路由转发分组
路由表
- 记录目的网络地址和对应的下一跳地址
默认路由
- 路由表上没有对应网络信息时默认选择的下一跳地址
- 划分子网
- 路由表上没有对应网络信息时默认选择的下一跳地址
目前IP地址存在的问题
- IP地址空间的利用率有时很低:主机号未必能够完全利用
- 两级IP地址不够灵活
通过划分子网将IP地址转为3级IP地址
- 划分后对外仍是一个网络
使用子网掩码作为划分标识
- 网络号/子网号/主机号
- 网络号与子网号部分对应的子网掩码位置为全1