网络基本概念

什么是以太网,MAC地址,广域网WAN,局域网LAN,虚拟局域网VLAN,IP协议,路由器,路由表,TCP,UDP

IP知识百科 - 华为 (huawei.com)

Cloudflare中国官网 | Cloudflare

MAC 地址:

MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。MAC 地址由 6 个字节组成。例如我的网卡 MAC 地址是 E0-06-E6-39-86-31。

以太网:

以太网 是ethernet 运行速率有10Mbps,100Mbps,1Gbps,10Gbps的。 传输介质采用双绞线,光纤以太网使用CSMA/CD(载波监听多路访问及冲突检测技术)技术。

以太网还使用两个组件传输数据:数据包和帧。帧包含发送的数据有效负载以及以下内容:

发件人和收件人的 MAC 地址

用于识别传输故障的纠错数据

有关虚拟局域网 (VLAN) 标记以及服务质量 (QoS) 的信息

每个帧都封装在包含许多字节数据的数据包中,以设置连接并标识帧的起始点

网络基本概念_第1张图片

以太网数据格式:

以太网协议标准是 ETHERNET II 标准。

前导码( Preamble )

前导码由 7 个字节组成,每个字节固定为 10101010 。之后的 1 个字节称为帧起始定界符,这个字节固定为 10101011 。这 8 个字节表示以太网帧的开始,也是对端网卡能够确保与其同步的标志。帧起始定界符的最后两位比特被定义为 11 ,之后就是以太网数据帧的本体。

目的地址( Destination Address )

目的地址由 6 个字节组成,用来标识数据帧的目的设备,类似于快递的收件人地址。

源地址( Source Address )

源地址由 6 个字节组成,用来标识数据帧的始发设备,类似于快递的发件人地址。

类型( Type )

类型字段由 2 个字节组成。类型字段是表明上一层(即网络层)的协议类型,可以让接收方使用相同的协议进行数据帧的解封装。

数据( Data )

帧头后就是数据。一个数据帧所能容纳的最大数据范围是 46 ~ 1500 个字节。如果数据部分不足 46 个字节,则填充这个数据帧,让它的长度可以满足最小长度的要求。

FCS( Frame Check Sequence )

FCS 由 4 个字节组成,位于数据帧的尾部,用来检查帧是否有所损坏。通过检查 FCS 字段的值将受到噪声干扰的错误帧丢弃。

车载以太网的基本帧格式:

为了传输Ethernet II帧,以太网控制器在开始时会插入一个前导码和一个起始帧界定符(SFD),旧的以太网标准以此做为传输开始的标识。所以以太网数据包包括:前导码、起始帧定界符和以太网II帧。

网络基本概念_第2张图片

什么WAN

什么是WLAN?WLAN和Wi-Fi有什么不同? - 华为 (huawei.com)

什么LAN

什么是 WAN?| WAN 与 LAN | Cloudflare

什么WLAN

什么是 WAN?- 广域网讲解 - AWS (amazon.com)

什么是VLAN

广播域是广播帧可以到达的区域,由多个交换机和主机组成的网络就是一个广播域。VLAN 技术能够在逻辑上把一个物理局域网分隔为多个广播域,每个广播域称为一个虚拟局域网(即 VLAN )。每台主机只能属于一个 VLAN ,同属一个 VLAN 的主机通过二层直接通信,属于不同 VLAN 的主机只能通过 IP 路由功能才能实现通信。通过划分多个 VLAN ,从而减小广播域传播的范围,过滤多余的包,提高网络的传输效率,同时提高了网络的安全性。

VLAN 技术通过给数据帧插入 VLAN 标签(又叫 VLAN TAG)的方式,让交换机能够分辨出各个数据帧所属的 VLAN 。VLAN 标签是用来区分数据帧所属 VLAN 的,是 4 个字节长度的字段,插入到以太网帧头部上。 VLAN 标签会插入到源 MAC 地址后面, IEEE 802.1Q 标准有这个格式定义和字段构成说明。

VLAN标签:

VLAN标签由协议标识符(TPID)和控制信息(TCI)组成。TPID包含原始类型字段的值,而TCI由优先级(PCP)、丢弃资格指示符或规范格式指示符(DEI或CFI)和VLAN标识符(VID)组成。标识符和优先级主要应用于汽车行业。标识符为不同的应用领域划分各自的虚拟网络。优先级的设定使得交换机可以通过优先转发重要信息来优化运行时间。

TPID (标签协议标识符):长度 2 个字节,值为 0x8100 ,用来表示这个数据帧携带了 802.1Q 标签。不支持 802.1Q 标准的设备收到这类数据帧,会把它丢弃。

TCI (标签控制信息):长度 2 个字节,又分为三个子字段,用来表示数据帧的控制信息:

优先级( Priority ):

长度为 3 比特,取值范围 0 ~ 7 ,用来表示数据帧的优先级。取值越大,优先级越高。当交换机发送拥塞是,优先转发优先级高的数据帧。

CFI (规范格式指示器):

长度为 1 比特,取值非 0 即 1 。

VLAN ID ( VLAN 标识符):

长度为 12 比特,用来表示 VLAN 标签的数值。取值范围是 1 ~ 4094 。通过 VLAN ID 进行区分不同的 VLAN。

网络基本概念_第3张图片

IP协议:

IP作为整个TCP/IP中至关重要的协议, 主要负责将数据包发送给最终的目标计算机。因此, IP能够让世界上任何两台计算机之间进行通信。

IP(IPv4、 IPv6) 相当于OSI参考模型中的第3层——网络层。网络层的主要作用是“实现终端节点之间的通信”。网络层可以跨越不同的数据链路, 即使是在不同的数据链路上也能实现两端节点之间的数据包传输。

IP地址(IPv4地址)由32位正整数来表示。IP地址在计算机内部以二进制方式被处理,但习惯将32位的IP地址以8位为一组,分成4组,每组以“.”隔开,转换成10进制来表示。IP地址由“网络地址”和“主机地址”两部分组成。网络标识在数据链路的每个段配置不同的值,必须保证相互连接的每个段的地址不重复,相同段内连接的主机必须有相同的网络地址。主机标识则不允许同一个网段内重复出现。IP包被转发到某个路由器时,是利用目标IP地址的网络标识进行路由,即使不看主机地址,由网络地址则可判断是否是该网段内的主机。

网络基本概念_第4张图片

IP地址的分类(IPv4地址)

IP地址分为A、B、C、D四类。

IP地址类别

地址开头

网络地址

主机地址

范围

一个网段内主机地址个数

备注

A类地址

0

第1-8位

后24位

0.0.0.0~127.0.0.0

2^24-2=16777214

-2是因为主机地址为0表示对应的网络地址,为1通常用于广播地址

B类地址

10

第1-16位

后16位

128.0.0.0~191.255.0.0

2^16-2=65534

C类地址

110

第1-24位

后8位

192.0.0.0~239.255.255.0

2^8-2=254

D类地址

1110

第1-32位

没有主机地址

224.0.0.0~239.255.255.255

常用于多播

子网隐码

IP类别

表示

A类

255.0.0.0

B类

255.255.0.0

C类

255.255.255.0

IPv4首部:

通过IP进行通信时, 需要在数据的前面加入IP首部信息。 IP首部中包含着用于IP协议进行发包控制时所有的必要信息。

网络基本概念_第5张图片

 网络基本概念_第6张图片

IPv6

IPv6主要是为了解决IPv4地址不足和优化路由过程而开发的。与IPv4相比,IPv6报头中的字段数量从12个减少到8个

IPv6地址通常用冒分十六进制表示:以两个十六进制格式的字节为一组,每组之间用冒号分隔。连续的四个零通常写作一个零或完全忽略。与IPv4不同,IPv6中没有广播地址。广播是一种特殊的多播。

IPv6首部:

网络基本概念_第7张图片

 网络基本概念_第8张图片

路由器:

路由器又可以称之为网关设备。路由器就是在OSI/RM中完成的网络层中继以及第三层中继任务,对不同的网络之间的数据包进行存储、分组转发处理,其主要就是在不同的逻辑分开网络。而数据在一个子网中传输到另一个子网中,可以通过路由器的路由功能进行处理。在网络通信中,路由器具有判断网络地址以及选择IP路径的作用,可以在多个网络环境中,构建灵活的链接系统,通过不同的数据分组以及介质访问方式对各个子网进行链接

路由表:

路由表(routing table)是一个存储在路由器或者联网计算机中的电子表格(文件)。路由表存储着指向特定网络地址的路径。例如:我输入百度的网址后,网址会通过路由表搜索到百度的IP地址,之后进入到百度的搜索界面。

TCPUDP

TCP:

两张动图-彻底明白TCP的三次握手与四次挥手_tcp三次握手

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂, 只简单的描述下这三次对话的简单过程:

  • 主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;
  • 主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包 :“可以,你什么时候发?”,这是第二次对话;
  • 主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”, 这是第三次对话。

三次“对话”的目的是使数据包的发送和接收同步, 经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP编程,即用前面提到的socket函数创建一个socket用于TCP通讯,函数参数我们通常填为SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),这表示建立一个socket用于流式网络通讯。SOCK_STREAM这种的特点是面向连接的,即每次收发数据之前必须通过connect建立连接,也是双向的,即任何一方都可以收发数据,协议本身提供了一些保障机制保证它是可靠的、有序的,即每个包按照发送的顺序到达接收方。

UDP:

UDP 服务器端不需要调用监听(listen)和接收(accept)客户端连接,而客户端也不需要连接服务器端(connect)。UDP协议中,任何一方建立socket后,都可以用sendto发送数据、用recvfrom接收数据,不必关心对方是否存在,是否发送了数据。

SOCK_DGRAM这种是User Datagram Protocol协议的网络通讯,它是无连接的,不可靠的,因为通讯双方发送数据后不知道对方是否已经收到数据,是否正常收到数据。任何一方建立一个socket以后就可以用sendto发送数据,也可以用recvfrom接收数据。根本不关心对方是否存在,是否发送了数据。它的特点是通讯速度比较快。大家都知道TCP是要经过三次握手的,而UDP没有。

我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常, 其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包, 如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

ping命令是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping命令是使用 IP 和网络控制信息协议 (ICMP),因而没有涉及到任何传输协议(UDP/TCP) 和应用程序。它发送icmp回送请求消息给目的主机。

你可能感兴趣的:(#,Linux系统,网络,智能路由器)