2防火墙:基础知识

看了一下相关视频,感觉要会防火墙,还是得补一下网络基础。看一下谢希仁的《计算机网络》,应该主要看网络层就可以。网络以前学的还可以,但现在也就能记得不到50%,正好重新学习一下,或许会有新的感受。

看完之后,感觉比较重要就几点:

  1. 机器怎么知道同网络机器的MAC地址
  2. 路由器怎么知道把分组转发到哪里
  3. 使用无分类编址CIDR,确定掩码,啥都确定了

名词解释

IP协议配套使用四个其它协议ARP、RARP、ICMP、IGMP

名称 说明
IP协议 用来使互连起来的许多计算机网络能够进行通信
地址解析协议ARP Address Resolution Protocol
逆地址解析协议RARP Reverse Address Resolution Protocol
网际控制报文协议ICMP Internet Control Message Protocol
网际组管理协议IGMP Internet Group Message Protocol
无分类域间路由选择CIDR Classless Inter-Domain Routing

网际协议IP

分类的IP地址

  1. IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。

  2. IP地址::={<网络号>,<主机号>}

  • 一个网络是指具有相同网络号的主机的集合
  • 具有不同网络号的局域网必须使用路由器进行互连

IP地址与硬件地址

  1. 硬件地址又称为MAC地址、物理地址,因为硬件地址已固化在网卡上的ROM中。
  2. 硬件地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址(因为IP地址是用软件实现的)
  3. IP数据报经过路由器转发的时候,首部的原地址和目的地址始终不变。IP数据报被封装在MAC帧中,MAC帧在不同网络上传送时,其MAC帧首部中的原地址和目的地址要发生变化。

ARP和RARP

  1. ARP:根据IP地址找出其硬件地址
  • 主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新
  • ARP进程在本局域网广播发送ARP请求分组(我IP是**,MAC地址是**,我想知道**IP的MAC地址),对应的机器收到请求后,进行响应
  1. RARP:知道自己硬件地址的主机能够通过RARP协议找出其IP地址

IP层转发分组的流程

  1. 路由表中,每一条路由最重要的是以下两个信息(目的网络地址,下一跳地址)

  2. 如果和路由器直连,则下一跳是接口,如果不直连,则下一跳是相邻路由器的IP地址

  1. 0.0.0.0表示路由表中的直接或者默认的概念

  2. 分组转发算法

划分子网和构造超网

划分子网

  1. 从两级IP地址到三级IP地址:IP地址::={<网络号>,<子网号>,<主机号>}
  • 子网号相同表示同一个空间
  • IP与子网掩码做与操作,就能计算出子网号
  • 子网号位数多,主机号就少;子网号位数少,主机号就多;具体怎么配置,看需求
  • 子网数=2^(子网位数)-2

使用子网时分组的转发

  1. 使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址

  2. 路由器转发算法

无分类编址CIDR(构造超网)

  1. 算是最终版,IP地址 ::={<网络前缀>,<主机号>},如128.14.35.7/20
  2. 计算范围也很简单,如192.199.170.82/27,范围是192.199.170.64~192.199.170.95
  • 找出掩码中1和0交界处是哪个字节,目前是第四个字节
  • 把字节用二进制表示,82的二进制是01010010
  • 取为1的掩码的位数(27-3*8=3),将对应位数的二进制进行保留(010),剩下的分别变成0(01000000)和1(01011111),即64和95
  1. 路由:网络前缀+下一跳地址
  • CIDR极大压缩了路由表中的项目数

网际控制报文协议ICMP

ICMP允许主机或者路由器报告差错情况和提供有关异常情况的报告。

ping、traceroute用的就是ICMP的能力。

因特网的路由选择协议

  1. 从自适应调整划分:静态路由选择策略和动态路由选择策略
  2. 路由选择协议的目的:不同的自治系统(autonomous system)能够方便、统一的联系
  3. 分类:
  • 内部网关协议IGP(Interior Gateway Protocal):即在一个自治系统内部使用的路由选择协议,如RIP和OSPF协议
  • 外部网关协议EGP(External Gateway Protocol):若源主机和目的主机在不同的自治系统重,需要使用该协议,如EGP

内部网关协议RIP(Routing Information Protocol)

  1. RIP协议要求网络中的每一个路由器都要维护从它自己到其它每一个目的网路的距离记录
  2. RIP协议的特点
  1. 使用距离向量算法更新路由器信息

内部网关协议OSPF(Open Shortest Path First)

  1. 最短路径优先算法,Dijkstra,熟不熟!!!
  2. 算法特点:

外部网关协议BGP

  1. BGP是不同AS的路由器之间交换路由信息的协议

  2. 在配置BGP时,每一个AS的管理员要选择至少一个路由器作为该AS的"BGP发言人",用于和其他发言人交换路由信息

路由器的构成

虚拟专用网VPN和网络地址转换NAT

虚拟专用网VPN

  1. 专用地址:在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发
  1. VPN有很多类型
  • 内联网VPN
  • 外联网VPN
  • 远程接入VPN

网络地址转换NAT

  1. 需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:shidawuhen.github.io/

往期文章回顾:

  1. 设计模式
  2. 招聘
  3. 思考
  4. 存储
  5. 算法系列
  6. 读书笔记
  7. 小工具
  8. 架构
  9. 网络
  10. Go语言
相关推荐
LunarCod13 分钟前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
码农派大星。44 分钟前
Spring Boot 配置文件
java·spring boot·后端
杜杜的man1 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*1 小时前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
llllinuuu1 小时前
Go语言结构体、方法与接口
开发语言·后端·golang
cookies_s_s1 小时前
Golang--协程和管道
开发语言·后端·golang
为什么这亚子1 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
想进大厂的小王2 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
阿尔帕兹2 小时前
构建 HTTP 服务端与 Docker 镜像:从开发到测试
网络协议·http·docker
customer082 小时前
【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源·intellij-idea