网站如何在google提交收录,wordpress 运行好慢,网站的效果图,做网站市场分析一、基础知识
1.tap与tun
tap与tun都是操作系统#xff08;Linux#xff09;内核中的虚拟网络设备#xff0c;等同于一个以太网设备#xff0c;可以收发数据报文包。
tap与tun的定义相同#xff0c;两者仅仅是通过一个Flag来区分。但二者所承担的功能差别较大Linux内核中的虚拟网络设备等同于一个以太网设备可以收发数据报文包。
tap与tun的定义相同两者仅仅是通过一个Flag来区分。但二者所承担的功能差别较大tap位于网络OSI模型的二层tun位于网络的三层。
tap位于数据链路层可以处理数据链路层的数据包拥有 MAC 地址可以与物理网卡做 bridge支持 MAC 层广播也可以给它设置 IP 地址。
tun是一个网络层IP的点对点设备它启用了IP层隧道功能。通过它可以处理来自网络层的数据包也就是 IP 数据包。由于它只模拟到了 IP 层所以它无法与物理网卡做 bridge也没有 MAC 地址但是可以通过三层交换的方式来与物理网卡相互通信。
2.Namespace
Namespace提供了一种内核级别隔离系统资源的方法通过将系统的全局资源放在不同的Namespace中来实现资源隔离的目的。不同Namespace的程序可以享有一份独立的系统资源。
目前Linux中提供了六类系统资源的隔离机制分别是
**Mount**隔离文件系统挂载点**UTS**隔离主机名和域名信息**IPC**隔离进程间通信**PID**隔离进程的ID**Network**隔离网络资源**User**隔离用户和用户组的ID
3.veth pair
veth pair是一对设备用于连接两个虚拟以太端口。
使用veth pair可以实现两个Namespace的互通当三个及以上Namespcae之间想要实现互通由于veth par只有一对tap无法胜任则需要用到Bridge/Switch。
4.Bridge
在Linux的语境里Bridge网桥与Switch交换机是一个概念。
Bridge是用纯软件实现的虚拟交换机有着和物理交换机相同的功能例如二层交换MAC地址学习等。因此我们可以把tun/tapveth pair等设备绑定到网桥上就像是把设备连接到物理交换机上一样。
5.iptables
iptables是一个运行在用户空间的命令行工具通过iptables相关命令可以实现防火墙、NAT等安全防护功能但需注意真正实现这些功能的是运行在内核空间的netfilter模块
iptables内置了三张表filter、nat和mangle。分别对应了防火墙、NAT、流量整形三种功能。
6.Firewall
iptables中的Firewall防火墙概念属于网络防火墙的概念iptables中的防火墙的规则就是基于TCP/IP协议栈的规则所以我们称之为网络防火墙。
这些规则有
in-interface入网络接口名数据包从哪个网络接口进入out-interface出网络接口名数据包从哪个网络接口输出protocol协议类型数据包的协议如TCP、UDP和ICMP等source源地址或子网数据包的源IP地址或子网destination目标地址或子网数据包的目标IP地址或子网sport源端口号数据包的源端口号dport目的端口号数据包的目的端口号。
7.NAT
NATNetwork Address Translation网络地址转换功能是将一个IP地址转换为另一个IP地址。发明NAT根本原因还是IP地址不够用的问题另一种解决方法是IPv6。大家使用NAT基本做的还是公网地址与私网地址的互相转换如果一定要在公网地址之间互相转换或者私网地址之间互相转换技术上是支持的只是这样的场景非常非常少。
NAT从实现技术角度来说分为静态NAT、动态NAT、端口多路复用三种方案。
7.1 静态NAT
私网IP地址与公网IP地址的转换规则是静态指定的固定不变比如10.10.10.1与192.168.10.1互相转换。
私网IP地址与公网IP地址的数量比是1∶1
7.2 动态NAT
动态NAT中私网IP与公网IP地址之间不是固定的转换关系而是在IP报文处理过程中由NAT模块进行动态匹配。虽然公网IP比私网IP地址少但是同时在线的私网IP需求小于等于公网IP数量不然某些私网IP将得不到正确的转换从而导致网络通信失败。
私网IP地址与公网IP地址的数量比是m∶n一般m n
7.3 端口多路复用
如果私网IP地址有多个而公网IP地址只有一个那么静态NAT与动态NAT都无法满足IP使用就需要用到端口多路复用。多个私网IP映射到同一个公网IP不同的私网IP利用端口号进行区分这里的端口号指的是TCP/UDP端口号。所以端口复用又叫PATPort Address Translation。
私网IP地址与公网IP地址的数量比是m∶1
7.4 SNAT/DNAT
SNATSource Network Address Translation源地址转换
内部地址要访问公网上的服务时如Web访问内部地址会主动发起连接由路由器或者防火墙上的网关对内部地址做个地址转换将内部地址的私有IP转换为公网的公有IP网关的这个地址转换称为SNAT主要用于内部共享IP访问外部。
DNATDestination Network Address Translation目的地址转换
当内部需要提供对外服务时如对外发布Web网站外部地址发起主动连接由路由器或者防火墙上的网关接收这个连接然后将连接转换到内部此过程是由带有公网IP的网关替代内部服务来接收外部的连接然后在内部做地址转换此转换称为DNAT主要用于内部服务对外发布。
8.mangle
mangle表主要用于修改数据包的ToSType of Service服务类型、TTLTime to Live生存周期以及为数据包设置Mark标记以实现QoS(Quality of Service服务质量调整以及策略路由等应用。
9.内核态、用户态、卸载态
主机采用不同的态模式对网络而言内部流量略有不同简单来说linux内部空间分为内核空间和用户空间内核态即为运行在内核空间的进程的状态用户态即为运行在用户空间的状态。
内核态,用户态是操作系统的概卸载态是网卡概念网卡offload机制。简单说主要是指将原本在协议栈中进行的IP分片、TCP分段、重组、checksum校验等操作转移到网卡硬件中进行降低系统CPU的消耗提高处理性能。