1. 常见定义
1.1 CIDR
CIDR(Classless Inter-Domain Routing,无类域间路由选择)它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。
CIDR 还使用“斜线记法”,它又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应于三级编址中子网掩码中比特1的个数)。 IP地址::={<网络前缀>,<主机号>}
1.2 TTL
IP 数据报头部中有个 TTL 字段,TTL 是 time to live 的缩写,即生存时间,不过其单位不是秒或分钟等具体时间,而是代表一个 IP数据报可以经过的最大路由数,IP数据报每经过一个路由器,它的值就减1,当此值为0时该数据报就会被丢弃,同时发送ICMP报文通知源主机。
1.3 MSL
MSL 是 Maximum Segment Lifetime 的英文缩写,可译为“报文最大生存时间/最长报文段寿命”,它是任何 TCP segment在网络上存在的最长时间,超过这个时间该报文就会被丢弃,也就是说任何 TCP Segment在网络上的存活时间都不会超过MSL.一般设置60S
1.4 TLS
一种加密协议,用于客户端和服务器之间建立安全的通信连接。可以保护数据的机密性、完整性和身份验证。
TLS使用公钥加密和对称密钥加密两种加密方式来保护通信的安全性。在TLS握手过程中,客户端和服务器之间会交换公钥和证书,以确保双方的身份验证和通信的机密性。
TLS的工作流程如下:
-
客户端向服务器发送连接请求。
-
服务器返回证书和公钥。
-
客户端验证证书的有效性,并使用公钥加密生成一个对称密钥。
-
客户端将加密后的对称密钥发送给服务器。
-
服务器使用私钥解密对称密钥,并使用对称密钥加密数据。
-
客户端使用对称密钥解密数据。
TLS使用多种加密算法来保护通信的安全性,包括对称密钥加密算法和公钥加密算法。对称密钥加密算法用于加密数据,公钥加密算法用于交换密钥和证书。常用的加密算法包括:
-
对称密钥加密算法:AES、DES、3DES、RC4等。
-
公钥加密算法:RSA、Diffie-Hellman、ECDH等。
-
消息摘要算法:MD5、SHA-1、SHA-2等。
1.5 ZeroCop(零拷贝)
数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除 CPU在这方面的负载。实现零拷贝用到的最主要技术是DMA数据传输技术和内存区域映射技术。
举例来说,一个 1 GHz 的处理器可以对 1Gbit/s 的网络链接进行传统的数据拷贝操作,但是如果是 10 Gbit/s 的网络,那么对于相同的处理器来说,零拷贝技术就变得非常重要了。
对于超过 1 Gbit/s 的网络链接来说,零拷贝技术在超级计算机集群以及大型的商业数据中心中都有所应用。然而,随着信息技术的发展,1 Gbit/s,10 Gbit/s 以及 100 Gbit/s 的网络会越来越普及,那么零拷贝技术也会变得越来越普及,这是因为网络链接的处理能力比 CPU 的处理能力的增长要快得多。传统的数据拷贝受限于传统的操作系统或者通信协议,这就限制了数据传输性能。零拷贝技术通过减少数据拷贝次数,简化协议处理的层次,在应用程序和网络之间提供更快的数据传输方法,从而可以有效地降低通信延迟,提高网络吞吐率。零拷贝技术是实现主机或者路由器等设备高速网络接口的主要技术之一。
1.6 PauseFrame(暂停帧)
在全双工模式下,A、B之间进行通信,当A的数据传送很快,造成B出现拥塞状况的时候,B可以向A发送一个Pause Frame,要求A暂停发送数据,A收到暂停帧后,就停止数据发送,暂停的时间有Pause Frame中的字段决定,当暂停时间结束时,A继续传送数据。
暂停帧是控制帧的一种,所以Length/Type的值为h8808(控制帧类型),操作码为h0001(表示暂停),16bit的参数决定暂停的时间,单位:Slot Time(传输512Bit所需要的时间),范围:h0000-hffff。
在暂停期间,暂停帧仍旧能够发送和接收,若A处于暂停状态,又接收到B的一个暂停帧,则A开始等待新的暂停时间,若新的暂停时间为0,则立即恢复以前的状态继续发送数据,所以发送一个0时间的暂停帧可以取消对方的暂停状态。
1.7 MTU
一个网络接口的 MTU 是它一次所能传输的最大数据块的大小。任何超过MTU的数据块都会在传输前分成小的传输单元。MTU 有两个测量层次:网络层和链路层。比如,网络层上标准的因特网 MTU 是 1500 bytes,而在连接层上是 1518 字节。
1.8 MSS
MSS(maximum segment size,最大分节大小),用于向对端TCP通告对端在每个分节中能发送的最大TCP数据量。
MSS的目的是告诉对端其重组缓冲区大小的实际值,从而试图避免分片。
MSS经常设置成MTU减去IP和TCP首部的固定长度。在以太网中使用IPv4的MSS值为1460,使用IPv6的MSS值为1440(IPv4与IPv6的TCP首部都是20字节,但IPv4的首部是20字节,IPv6的首部却是40字节)。
1.9 分片
许多网络有一个可由硬件规定的MTU。比如,以太网的MTU是1500字节。IPv4要求的最小链路MTU是68字节。IPv6要求的最小链路MTU为1280字节。
在两个主机之间的路径中最小的MTU称为路径MTU(path MTU)。1500字节的以太网MTU是当今常见的路径MTU。两个主机之间相反的两个方向上路径MTU可以不一致,因为在因特网中路由选择往往是不对称的。
当一个IP数据报将从某个接口送出时,如果它的大小超过相应链路的MTU,IPv4和IPv6都将执行分片(fragmentation)。这些片段在到达最终目的地之前通常不会被重组(reassembling)。IPv4主机对其产生的数据报执行分片,IPv4路由器则对其转发的数据报执行分片。然而IPv6只有主机对其产生的数据报执行分片,IPv6路由器不对其转发的数据报执行分片
1.10 单播、多播、广播
-
IP地址类型:单播地址、广播地址、多播地址
-
广播和多播仅应用于UDP;TCP是一个面向连接的协议属于单播
-
单播:主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。
-
优:服务器及时响应客户机的请求、服务器针对每个客户不同的请求发送不同的数据,容易实现个性化服务
-
劣:服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。
-
-
广播:有时一个主机要向网上的所有其他主机发送帧,这就是广播。
-
优:网络设备简单,维护简单,布网成本低廉;由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。
-
劣:无法针对每个客户的要求和时间及时提供个性化服务。
-
-
多播(组播):(multicast)处于单播和广播之间:帧仅传送给属于多播组的多个主机。
-
优:需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。
-
劣:与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。
-
1.11 Nagle算法分析
Nagle算法主要用来预防小分组的产生。在广域网上,大量TCP小分组极有可能造成网络的拥塞。
Nagle时针对每一个TCP连接的。它要求一个TCP连接上最多只能有一个未被确认的小分组。在该分组的确认到达之前不能发送其他小分组。TCP会搜集这些小的分组,然后在之前小分组的确认到达后将刚才搜集的小分组合并发送出去。
1.12 Keeplive(TCP保活)
-
定义:在一段时间段内,如果没有任何连接相关的活动,TCP 保活机制会开始作用,每隔一个时间间隔,发送一个「探测报文」,该探测报文包含的数据非常少,如果连续几个探测报文都没有得到响应,则认为当前的 TCP 连接已经断开
-
作用:探测连接的对端是否存活;防止中间设备因超时删除连接相关的连接表
-
参数
-
tcp_keepalive_time,在TCP保活打开的情况下,最后一次数据交换到TCP发送第一个保活探测包的间隔,即允许的持续空闲时长,或者说每次正常发送心跳的周期,默认值为7200s(2h)。
-
tcp_keepalive_probes 在tcp_keepalive_time之后,没有接收到对方确认,继续发送保活探测包次数,默认值为9(次)
-
tcp_keepalive_intvl,在tcp_keepalive_time之后,没有接收到对方确认,继续发送保活探测包的发送频率,默认值为75s。
-