- 博客(6)
- 收藏
- 关注
原创 TCP/IP协议的拥塞控制
1 TCP拥塞控制 别看放在最后,因为是压轴的知识点,很重要!1.1 慢启动和拥塞避免(1)慢启动慢启动指先把拥塞窗口cwnd设置为一个最大报文段MSS的数值,发送方在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值,在每经过一个往返时间RTT,拥塞窗口wcnd就加倍。慢启动的“慢”并不是指cwnd的增长速度慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段(目的是探测一下网络的拥塞情况)(2)拥塞避免算法让拥塞窗口cwnd缓
2020-12-08 19:15:36 736
原创 TCP/IP协议的三次握手为什么是三次而不是两次?
简单来说,三次握手的目的是为了让双方验证各自的接收能力和发送能力。第一次握手,A 发送SYN到B,B接收到了后,能确认什么呢?显然,B能确认A的发送能力和B的接收能力;第二次握手,B发送SYNACK到A,A接收到后,能确认什么呢?A能确认B的发送能力和A自己的接收能力,此外,A收到了SYNACK,那么说明前面A发的SYN成功到达B的手中,所以也能确认A自己的发送能力和B的接收能力;至此,A已经确认了双方各自的发送能力和接收能力都是OK的,因此转为ESTABLISHED状态;第三次握手
2020-12-04 19:30:35 701
转载 Diffience between Stack and Heap Memery in java ?
referenceSr. No.KeyStackHeap Memory1BasicStack memory is used to store items which have a very short life like local variables, a reference variable of objectsHeap memory is allocated to store objects and JRE classes.2OrderingThe stack
2020-12-03 17:00:52 217
转载 c++中指针和引用的区别?
1 引用基础教程我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数组、结构体、对象是一系列数据的集合,数据的数量没有限制,可能很少,也可能成千上万,对它们进行频繁的内存拷贝可能会消耗很多时间,拖慢程序的执行效率。C/C++ 禁止在函数调用时直接传递数组的内容,而是强制传递数组指针,这点已在《C语言指针
2020-12-01 12:36:25 565
原创 c++中,为什么有了malloc/free,还要new/delete?
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放.
2020-12-01 12:11:51 790
原创 C++ class和struct到底有什么区别?
C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。C++中的 struct 和 class 基本是通用的,唯有几个细节不同:使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。class 继承默认是 private 继承,而 struct 继承默认是 pu
2020-12-01 12:10:11 226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人