Linux
文章平均质量分 89
进击的小C
向上是为了不沉下去.
展开
-
你真的知道TCP协议吗?滑动窗口是什么?有什么重传机制?拥塞控制又是什么?一篇文章带你吃透TCP协议
如下图,当我们发送前1000个数据的时候,收到的ACK是1001,然后返回的缓冲区大小是3000,那么当对方的接收缓冲区的数据一直没有被取走的话,那么下一次的。滑动窗口是如何更新的呢?TCP还规定了确认序号之前的报文一定是被收到了,因为允许少量的应答报文丢失,假设101,201,301全部丢失,只有401返回,那么401之前的报文也是全部被收到了的。有了确认应答机制,就能保证上一条报文是可靠的,因为最后一条报文是没有报文的,所以没有百分百可靠的网络通信,只能确认上一条报文的发送是可靠的。原创 2024-09-07 17:53:28 · 1008 阅读 · 33 评论 -
TCP协议为什么是三次握手和四次挥手
一次握手就能成功的话,也就代表着不需要进行确认,那么万一有恶意的服务器一直发送SYN,而服务器需要维护大量的连接,维护连接又需要成本,那么就很。原创 2024-08-19 14:25:24 · 358 阅读 · 30 评论 -
浅谈面向数据报的协议-UDP协议
了。还有两个小问题:1.UDP协议是如何解决。原创 2024-08-08 21:54:36 · 1057 阅读 · 38 评论 -
linux-环境变量,进程地址空间
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有。下面这段代码就是将命令行参数传递给main函数的参数,然后进行模仿命令行的指令+选项,选项的本质也就是命令行参数。echo $NAME//NAME:你的环境变量名称PATH :指定命令的搜索路径。原创 2024-08-03 10:47:17 · 942 阅读 · 1 评论 -
linux-进程(2)
进程id(PID)父进程id(PPID)每一个可执行程序运行起来之后都会成为一个进程,每个进程都有一个自己的id,以及一个父进程id,父进程就是创建自己进程的进程,每个进程都是一个执行起来的程序,所以肯定在这个程序中创建另一个程序,就是自己的子进程。使用getpid这个函数就可以查看到自己这个进程的id,使用getppid这个函数就可以查看到父进程的id,getpid是一个系统调用函数,需要注意的是一个子进程只有对应的一个父进程,但是一个父进程可以有多个子进程。原创 2024-04-25 20:22:17 · 782 阅读 · 5 评论 -
linux-进程(1)
计算机管理硬件1. 描述起来,用struct结构体2. 组织起来,用链表或其他高效的数据结构。原创 2024-03-31 19:15:02 · 1169 阅读 · 0 评论 -
Linux项目自动化构建工具-make/Makefile
会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂 的功能操作makefile带来的好处就是——“自动化编译,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile。原创 2024-02-01 21:10:41 · 907 阅读 · 2 评论 -
Linux编译器-gcc/g++使用
静态库和动态库最本质的区别就是在进行编译链接的时候,静态库会将程序中需要的文件拷贝一份到程序中,从此不需要第三方库,也不受影响,这就是静态连接。结果gcc的-c选项之后,生成了一个test.o的文件,文件内部就是二进制,但由于vim是文本编辑器,所以识别不出来。因为预处理阶段会进行头文件展开,就是将c语言中写好的头文件拷贝到这个test.i中,这就是头文件的展开。缺点:对库的依赖性较强,一旦库缺失,所有使用库的程序都无法运行。允许进行拷贝的库就是静态库,允许进行关联的库就是动态库。在编译时默认使用动态库。原创 2024-01-09 15:28:15 · 1600 阅读 · 13 评论 -
Linux-权限
目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录即使目录仍然有-r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限。所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。原创 2023-12-29 14:07:29 · 3243 阅读 · 16 评论