网络协议——网络层
1、网际互联协议IP
1.1、5类地址
IP地址有32位,由地址类型、网络号和主机号3部分组成,每类地址中都有一段地址为私有IP地址段,由每个域网内自由分配
结构 | 范围 | 私有IP地址段 | 用途 | |
---|---|---|---|---|
A类 | 0+7位网络号+24位主机号 | 0.0.0.0~127.255.255.255 | 10.0.0.0~10.255.255.255 | 一般用于大型网络 |
B类 | 10+14位网络号+16位主机号 | 128.0.0.0~191.255.255.255 | 172.16.0.0~172.31.255.255 | 一般用于中等规模网络 |
C类 | 110+21位网络号+8位主机号 | 192.0.0.0~223.255.255.255 | 192.168.0.0~192.168.255.255 | 一般用于小型网络 |
D类 | 1110+28位多播组号 | 224.0.0.0~239.255.255.255 | 一般用于多路广播用户 (一个ip发消息,组内ip都能收到) | |
E类 | 11110+27位(留待后用) | 240.0.0.0~247.255.255.255 | 保留 |
1.2、无类型域间选路(CIDR)
将32位的IP地址只分为网络号和主机号两部分,并可以指定网络号的位数
10.100.122.2/18,二进制表示为00001010.01100100.01/111010.00000010,前18位为网络号,后14位为主机号
广播地址
主机号全为1的地址,发消息时会给当前网段(网络号相同)内的所有主机发消息
10.100.122.2/18的广播地址为00001010.01100100.01/111111.11111111,也就是10.100.127.255/18
子网掩码
通俗来讲,就是用来指定网络号的位数
10.100.122.2/18,子网掩码就是前18位全为1、剩余位数全为0的32位二进制数11111111.11111111.11/000000.00000000,即255.255.192.0
1.4、IP头部格式
源IP地址、目标IP地址、版本号(IPV4/IPV6)、TOS(当前包的优先级)、TTL(超时时间)、协议类型(TCP/UDP)
2、互联网控制报文协议ICMP
用于在路由和主机之间传输控制消息,根据类型字段判断报文状态,根据顺序号字段区分连续发出的数据包
其中主动请求的应答报文由目标主机响应,差错报文由中间路由判断错误类型并响应给源主机
类型 | 含义 | 报文类型 |
---|---|---|
8 | 主动请求 | 查询报文 |
0 | 主动请求的应答 | 查询报文 |
3 | 终点不可达(细分为网络不可达0、主机不可达1、 协议不可达2、端口不可达3、无法分片4) | 差错报文 |
4 | 源抑制 | 差错报文 |
11 | 超时 | 差错报文 |
5 | 重定向 | 差错报文 |
traceroute对差错报文的应用
- 设置TTL,在到达路由器时就超时返回差错报文,探索路由跳转
- 设置一个不可用的端口号(大于30000),到达主机时返回差错报文,探索目标主机
- 设置不分片,在最大传输单元超过路由限制时返回差错报文,探索路径MTU
3、网关和路由
当主机要访问的ip地址和自己不在一个网段时,会将请求发给网关,网关一般由路由器担任
3.1、静态路由
由网络管理员在路由中配置固定跳转规则
假如有“A号主机-1号网关-2号网关-B号主机”形成的网络路径,A和B不在一个网段,1号网关和2号网关也不在一个网段
A访问B的ip地址的过程为:
- A发现B和自己不在一个网段,就发送ARP报文,获取1号网关的MAC地址,再向1号网关发送请求
- 1号网关接收到请求后,由于已经手动配置了下一跳(也就是2号网关)的ip地址,所以发送ARP报文,获取2号网关的MAC地址,再向2号网关转发请求
- 2号网关接收到请求后,发现自己没有下一跳了,就发送ARP请求,获取B的MAC地址,再向B发送请求
网络地址转换协议(NAT)
为了解决在公网跨局域网访问时,源主机局域网ip地址和目标主机局域网ip地址冲突的问题
假如有“A号主机-1号网关-2号网关-B号主机”形成的网络路径,A和B不在一个局域网,但是局域网ip地址相同
此时A使用自己的局域网ip地址访问B的公网ip地址,访问过程为:
- A发现B和自己不在一个网段,就发送ARP报文,获取1号网关的MAC地址,再向1号网关发送请求
- 1号网关接收到请求后,先根据1号网关的配置,将A的局域网ip地址转换成公网ip地址,再发送ARP报文,获取2号网关的MAC地址,向2号网关转发请求
- 2号网关接收到请求后,先将访问B的公网ip地址转换成局域网ip地址,然后再发送ARP请求,获取B的MAC地址,并向B发送请求
3.2、策略路由
可以根据源ip地址指定使用的路由表、设置多个下一跳的权重等
3.3、动态路由
根据路由协议算法动态生成路由表
3.3.1、 内部网关协议(IGP)
用在局域网内
使用开放式最短路径优先算法(OSPF),找到到达目标主机的最短路径,等价路由相当于做流量负载
3.3.2、边界网关协议(BGP)
用在局域网间,也就是外网或公网
- eBGP:各个局域网之间边界路由器之间的通信
- iBGP:一个局域网内部的边界路由器之间的通信