网络基础
基本知识
MAC地址(Media Access Control Address,媒体访问控制地址)
,也称为局域网地址(LAN Address)
,以太网地址(Ethernet Address)
或物理地址(Physical Address)
,它是局域网中数据链路层
的下层部分,提供寻址及媒体访问的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信,而不会互相冲突,上述的特性在局域网或者城域网中格外重要
- 长度 48bits(6bytes)
ff:ff:ff:ff:ff:ff
为广播地址
NIC(network interface card,网卡)
frame
数据帧
Switch(交换机)
会学习 mac
与 port
的对应关系,称为forwarding table
or forwarding information base (FIB)
CIDR(无类别域间路由,Classless Interdomain Routing)
underlay 网络
和设备都是真正存在的物理实体
- 如两个设备之间通过 tcp 或 udp 协议通信,那么这就是一个 underlay 网络
- 在 tcp 或 udp 协议之上还可以承载应用数据
- 如果应用数据里承载了
IP 协议
(不支持 arp 协议),那么这个 overlay 网络就是 三层网络
,如 linux tun
- 如果应用数据里面承载了
数据链路层协议
(支持 arp 协议),那么这个 overlay 网络就是 二层网络
,如 vxlan
overlay 网络
是建立在一个实际的物理网络(underlay 网络
)之上的虚拟网络
SD-WAN(Software-Defined WAN)
软件定义广域网
IP 地址划分
- Private Address RFC 1918
- 10.0.0.0 - 10.255.255.255 (10/8 prefix)
- 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
- 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
- Shared Address RFC 6598
- 100.64.0.0 - 100.127.255.255 (100.64.0.0/10)
- 其他为公网地址
字节数转换
- 1Byte(字节) = 8bit(位)
- 1KB = 1024Byte
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
- 1PB = 1024TB
- 1EB = 1024PB
- 1ZB = 1024EB
- …
Python 转换:
def pybyte(size, dot=2):
size = float(size)
# 比特 bit
if 0 <= size < 1:
return str(round(size / 0.125, dot)) + 'b'
# 字节 Byte
elif 1 <= size < 1024:
return str(round(size, dot)) + 'B'
# 千字节 Kilo Byte
elif math.pow(1024, 1) <= size < math.pow(1024, 2):
return str(round(size / math.pow(1024, 1), dot)) + 'KB'
# 兆字节 Mega Byte
elif math.pow(1024, 2) <= size < math.pow(1024, 3):
return str(round(size / math.pow(1024, 2), dot)) + 'MB'
# 吉字节 Giga Byte
elif math.pow(1024, 3) <= size < math.pow(1024, 4):
return str(round(size / math.pow(1024, 3), dot)) + 'GB'
# 太字节 Tera Byte
elif math.pow(1024, 4) <= size < math.pow(1024, 5):
return str(round(size / math.pow(1024, 4), dot)) + 'TB'
else:
return str(round(size / math.pow(1024, 5), dot)) + 'PB'
术语
DCI(Data Center Interconnect,数据中心互联)
把两个及以上的数据中心连接起来,让分布在不同数据中心的数据能够被可靠、高效地传输,数据中心不再是一个个孤岛
DMZ(Demilitarized Zone,非军事区,或Perimeter network,边界网络、周边网络或对外网络)
为一种网络架构的布置方案,常用的架设方案是在不信任的外部网络和可信任的内部网络之间,创建一个面向外部网络的物理或逻辑子网,该子网能设置用于对外部网络的服务。该区域放置一些必须公开的服务器设施,如 web 站点、ftp、邮件服务器等。
Segment routing(段路由)
是计算机网络的一种形式,是源路由的现代变体,正在 IETF 的 SPRING 和 IPv6 工作组中开发。
SDN(Software-defined networking,软件定义网络)
BRAS(Broadband Remote Access Server,宽带接入服务器)
主要完成两方面功能:
VBRAS
是面向宽带网络应用的新型接入网关
,它位于骨干网的边缘层
,可以完成用户带宽的IP/ATM网
的数据接入。功能包括:
- 商业楼宇及小区住户的宽带上网
- 基于
IPSec(IPSecurityProtocol)
的 IPVPN 服务
- 构建企业内部 Intranet
- 支持 ISP 向用户批发业务等应用
SONiC(Software for Open Networking in the Cloud)
是一款开源网络操作系统,由微软于 2016 年发起,并在一年后贡献给了开放计算项目(OCP)。SONiC 基于 Linux,建立在交换机抽象接口(SAI)上,并且可以运行在各种交换机和 ASIC(专用集成电路)上。换句话说,SONiC 是内核补丁、设备驱动程序、实用程序等的集合,旨在解决云网络的可靠性和可用性以及演进(即添加新功能)问题。
SSID(Service Set Identifier、服务集标识)
VRF(Virtual routing and forwarding,虚拟路由和转发)
是一种允许路由表的多个实例同时共存于同一路由器中的技术
ZTP(Zero Touch Provisioning,零配置部署)
是指新出厂或空配置设备上电启动时采用的一种自动加载启动文件(包括系统软件、补丁文件、配置文件等)的功能。设备运行 ZTP 功能,可以自动获取并自动加载启动文件,实现设备的免现场配置和部署,从而降低人力成本,提升部署效率
网卡工作模式
广播模式(BroadCast Model)
:它的物理地址地址是 0Xffffff(ff:ff:ff:ff:ff:ff)
的帧为广播帧,工作在广播模式的网卡接收广播帧。它将会接收所有目的地址为广播地址的数据包,一般所有的网卡都会设置为这个模式。如ARP
、DHCP
协议
多播传送(MultiCast Model)
:多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到
- 如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员
- 当数据包的目的地址为多播地址,而且网卡地址是属于那个多播地址所代表的多播组时,网卡将接纳此数据包,即使一个网卡并不是一个多播组的成员,程序也可以将网卡设置为多播模式而接收那些多播的数据包
直接模式(Direct Model)
:工作在直接模式下的网卡只接收目地址是自己 Mac 地址的帧。只有当数据包的目的地址为网卡自己的地址时,网卡才接收它
混杂模式(Promiscuous Model)
:工作在混杂模式下的网卡接收所有的流过网卡的帧,抓包程序就是在这种模式下运行的。
- 网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧
- 如果采用混杂模式,网卡将接受同一网络内所有所发送的数据包,这样就可以到达对于网络信息监视捕获的目的。它将接收所有经过的数据包,这个特性是编写网络监听程序的关键
- 网卡将所有 frames 都传给 OS,就算
示例
$ ifconfig ens33
ens33: flags=4098<BROADCAST,MULTICAST> mtu 1500
inet 172.20.0.26 netmask 255.255.255.255 broadcast 0.0.0.0
ether 00:50:56:23:b6:58 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ ifconfig ens33 promisc
$ ifconfig ens33
ens33: flags=4354<BROADCAST,PROMISC,MULTICAST> mtu 1500
inet 172.20.0.26 netmask 255.255.255.255 broadcast 0.0.0.0
ether 00:50:56:23:b6:58 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
说明:
BROADCAST
表示开启广播模式
PROMISC
表示开启混杂模式
MULTICAST
表示开启多播模式
常见协议
- tus 一个可续穿文件上传协议,以 HTTP 协议为载体,统一了一个文件断点续传的标准