为什么使用并发
分离关注点
通过将相关的代码与无关的代码分离,可以使程序更容易理解和测试,从而减少出错的可能性。
用并发技术分离关注点的依据是设计理念,而不是以增加运算吞吐量为目的。
性能提升
任务并行:将一个单个任务分成几部分,且各自并行运...
阅读更多
miniconda安装
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh
miniconda替换国内源
conda conf...
阅读更多
c++ lambda表达式用来创建一个闭包,闭包是一种可以捕获作用域内(闭包所在的代码块)的变量的一个匿名的函数对象。
labmda表达式结构:
[捕获列表](参数列表) mutable 异常属性 -> 返回类型 { 函数体 }
其中:
捕获列表:指定lambda 表达式可以访问的外部变量,以及...
阅读更多
超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。
由此可见,重传超时时间(Retransmission time-Out,RTO)的计算是超时重传的关键。
RTO的计算
R...
阅读更多
QUIC(Quick UDP Internet Connections)是一种现代的、安全的、高效的传输层网络协议。它最初由Google开发,旨在解决现有TCP协议的诸多性能瓶OD,并最终成为HTTP/3的底层协议。QUIC并非简单地对TCP进行修补,而是在UDP之上构建了一套全新的传输机制。
为什么选择UDP...
阅读更多
TCP建立连接
建立连接前,客户端和服务端都处于CLOSED状态。
先是服务端主动监听某个端口,处于LISTEN状态。
客户端主动发起第一次握手,之后处于SYN-SENT状态(SYN = 1, seq = x, ACK = 0, ack = 0)。
服务端收到SYN报文后,返回SYN+ACK...
阅读更多
简介
TCP头部的最后一个选项字段(options)是可变长的可选信息。这部分最多包含40字节,典型的TCP头部选项结构如图所示:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 ...
阅读更多
TCP简介
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP保证数据传输的可靠性,确保数据不丢失、不重复、按序到达。
TCP主要有以下特点:
面向连接: 在进行数据传输之前,需要先建立连接,确保双方可以可靠地进行通信。
可靠性: 采用多种机制来保证数据传输的可靠性,包括:
...
阅读更多