自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 计算机网络803-(5)运输层

这样就表示:到这个分组为止的所有分组都已正确收到了。累积确认有的优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。累计到第3个确认:前三个都收到了并且没有丢包,下一个给我发送数据包4。假设数据包1丢包——第二个图假设数据包1丢包,则后续发送方还在发,发完一个滑块后,由于收方滑块还在1处等待收1,接收方接收完后续的数据到3不给予回复,则会超时重传,重新发送(回退N如果发送方发送了前 5个分组,而中间的第 3个分组丢失了。

2024-10-28 21:19:36 964

原创 计算机网络803-(4)网络层

知道路由器R1的IP地址。N6:B检查N6的新路径信息,新路径下一跳是C,旧路径下一跳是F,新路径距离是4+1=5,而旧路径距离是8,由于下一跳不同,比较大小,新距离小,则更新为新路径:N6 5 C。R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说: “我到网 1 的距离是 3,下一跳经过 R2 ”。N8:B检查N8的新路径信息,新路径下一跳是C,旧路径下一跳是E,新路径距离是3+1=4,而旧路径距离也是4,由于下一跳不同,比较大小,距离相同,则不更新路径。

2024-10-10 20:48:54 1360

原创 释疑 803-(3)数据链路层 整理总结

P(X)=> 除数为 100111)除数:10011 被除数:11010110110000,经过模二除法,得添加在数据后面的余数为11102)若最后一个变为0,被除数:11010110101110,除数:10011,得到余数为0011,余数不为0,则接收端可以发现错误。3)若最后两个成为0,被除数:11010110001110,除数:10011,得到余数为0101,余数不为0,故接收端可以发现错误。采用CRC检验,若接收端检测到错误,则丢弃该帧,然后就不做任何操作。

2024-08-30 17:10:56 1083

原创 计算机网络803-(3)数据链路层

①先听后发帧间间隔)→②边听边发争用期最短有效帧长)→③冲突停发(碰撞干扰,即强化碰撞)→④随机重发二进制指数类型退避算法边听边发 渡过争用期则没碰撞②→①发送下一次信息;发生碰撞则经历③④,结束后→①七. 使用广播信道的以太网1. (1)使用集线器的星形拓扑传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。

2024-08-26 21:35:31 1002

原创 释疑 803-(2)物理层 整理总结

2-01 物理层要解决哪些问题?物理层的主要特点是什么?物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,尽可能屏蔽掉硬件设备、传输媒体、通信方式不同引起的差异,使上面的数据链路层感受不到这些差异。尽可能屏蔽掉硬件设备、传输媒体、通信方式不同引起的差异,使上面的数据链路层感受不到这些差异。2-02 规程与协议有什么区别?在物理层,这两个名词并没有什么区别,只不过“规程”名词比“协议”出现的早。协议在物理层叫规程,其它层的协议叫“协议”。

2024-08-03 20:34:55 904

原创 释疑 803-(1)概述 整理总结

在分组交换时,分组长度为p(bit),每个分组所必须添加的首部都很短,对分组的发送时延的影响在本题中可以不考虑。当通信双方占用的通信线路由很多个链路组成时,只有在每段链路都能接通(即每一段链路都有空闲的信道资源还没有被其他用户占用,即有可用资源)时,整个的连接建立才能完成(哪怕只有 一段链路没有空闲的信道可供使用,连接建立也无法完成)。1-11 在上题的分组交换网中,设报文长度和分组长度分别为x和(p+h)(bit),其中p为分组的数据部分的长度,而h为每个分组所添加的首部长度,与p的大小无关。

2024-07-24 18:55:14 1137

原创 计算机网络803-(2)物理层

传输媒体:数据传输系统中在发送器和接收器之间的物理通路。导向传输媒体和非导向传输媒体。导向传输媒体:电磁波被导向沿着固体媒体传播。非导向传输媒体:在自由空间(非导向传输媒体中)电磁波的传输。2.导向传输媒体(1)双绞线①屏蔽双绞线 STP (Shielded Twisted Pair)②无屏蔽双绞线 UTP (Unshielded Twisted Pair)(2)同轴电缆①50 Ω 同轴电缆②75 Ω 同轴电缆(3)光缆各种电缆:3.光纤的工作原理多模光纤厚,会弹射;

2024-06-06 16:52:24 1104 1

原创 计算机网络803-(1)概述

1.网络的网络起源于美国的互联网现已发展成为世界上最大的国际性计算机互联网。

2024-06-05 15:56:54 1126 2

原创 linux篇【17】:网络IP层协议

协议头格式,网络层分片,网段划分,私有IP地址和公网IP地址,NAT技术,路由

2023-03-15 09:06:54 1027 6

原创 linux篇【16】:传输层协议<后序>

滑动窗口,流量控制,拥塞控制,延迟应答,拥塞控制,捎带应答——tcp应答真相,面向字节流解释

2023-03-06 15:15:58 779 6

原创 linux篇【16】:传输层协议<前序>

再谈端口号,UDP协议协议段格式,TCP协议协议段格式,可靠性问题,确认应答(ACK)机制,tcp的发送和接收缓冲区,TCP三次握手,超时重传机制,连接管理机制,listen的第2个参数

2023-02-21 16:50:44 1636 5

原创 linux篇【15】:应用层-网络https协议

HTTPS介绍,HTTPS 的⼯作过程探究,对称加密

2023-02-14 18:33:58 1490 5

原创 linux篇【14】:网络http协议

认识URL,http协议的请求与响应,telnet 命令,初步使用html,表单,GET Vs POST

2023-01-13 11:33:35 3102 14

原创 linux篇【13】:网络应用层—网络版计算器,序列化

1.应用层;2.序列化,反序列化;3.网络版计算器;json 序列化和反序列化;

2023-01-10 18:57:58 1127 16

原创 计算机组成原理【1】初识硬件

数据就是计算机想要的货物,CPU不同于菜鸟驿站的地方:CPU不仅可以取数据也可以写数据MAR:地址寄存器,用于指明要读/写哪个存储单元。其位数反映存储单元数量MDR:数据寄存器,用于暂存要读/写的数据。其位数=存储字长注意:MAR、MDR逻辑属于主存,但是现在的计算机通常把MAR、MDR也集成在CPU内。

2023-01-01 10:20:24 1299 6

原创 linux篇【12】:网络套接字<后序>—tcp接入线程池并改为守护进程

父进程的id。进程本身的id。当前进程所属的进程组。(同组进程的第一个进程一般是进程组的组长)当前进程的会话id。COMMAND:命令。进程启动的时长。用户名映射后的数字,用户UID。TPGID:当前进程组和终端相关的信息,-1 说明进程和终端无关系,非-1说明有关。哪一个终端用户登录时会建立一个会话,会话内部会构建一个前台进程组 和 0个或者多个后台进程组,linux下客户端登录时 会给我们加载bash,bash就是前台进程组。

2022-12-24 19:42:06 1374 20

原创 linux篇【12】:网络套接字<中序>——tcp

查看TCP网络服务器情况和端口使用情况。

2022-12-15 13:43:19 1461 23

原创 linux篇【12】:网络套接字<前序>—网络基础+udp套接字

目录一.网络基础1.认识 "协议"2.协议分层(1)软件分层(2)协议分层3.OSI七层模型4.TCP/IP五层(或四层)模型5.网络和操作系统之间的关系6.数据包的封装(封包)和解包,分用(1)下图为数据封装,解包的过程 (2)分用7.局域网(以太网)通信的原理(1)局城网中两台主机可以互相通信(2)局域网通信原理(3)MAC地址和IP地址(4)数据包传输通过路由器转发软件是可以分层的,为什么要分层?1.软件在分层的同时,也把问题归类的2.分层的本质:软件上解耦3.便于工程师进行软件维护网络本身的

2022-12-05 17:47:58 4112 17

原创 linux篇【11】:linux下的线程<后序>

POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。但POSIX可以用于线程间同步。信号量本质是一个计数器。信号量是一个计数器,这个计数器对应的PV操作(V ++ P --)是原子的。信号量的PV操作:V ++归还资源,P --申请资源申请mutex 访问临界资源之前被切换走了有问题吗?——没问题。资源预定::因为只要我拿到了锁,当前的临界资源就是我的!1.信号量申请成功了,就一定能保证你会拥有一部分临界资源吗?

2022-11-29 21:28:14 1352 16

原创 linux篇【11】:linux下的线程<中序>

加锁范围:临界区,只要对临界区加锁,而且加锁的力度越细越好加锁本质:加锁的本质是让线程执行临界区代码串行化加锁是一套规范,通过临界区对临界资源进行访问的时候,要加就都要加锁保护的是临界区, 任何线程执行临界区代码访问临界资源,都必须先申请锁,前提是都必须先看到锁!那这把锁,本身不就也是临界资源吗?锁的设计者早就想到了pthread_mutex_lock: 竞争和申请锁的过程,就是原子的!申请锁的过程不会中断,不会被打扰。难度在加锁的临界区里面,就没有线程切换了吗????

2022-11-23 20:28:39 2176 21

原创 linux篇【11】:linux下的线程<前序>

1.在进程内部运行的执行流(线程在进程的虚拟地址空间中运行)2.线程比进程力度更细调度成本更低3.线程是CPU调度的基本单位线程(执行流)是系统调度的基本单位!linux下没有真正的线程,Linux的线程是用进程模拟的,他叫做 轻量级进程。线程执行力度比进程更细,调度成本更低(进程切换时不需要切换页表,电地址空间等,只需要切换线程的上下文数据),因为他执行的是进程的一部分,访问的是进程的一部分资源,使用进程的一部分数据曾经:进程——内核数据结构+进程对应的代码和数据承担分配系统资源的基本实体。

2022-11-21 20:04:56 1807 20

原创 linux篇【10】:进程信号

(捕捉)①因为一些系统调用例如open(),用户态—>内核态,处理完open的代码后②本来可以返回代码继续执行了,但是正好处于内核态,就顺便去检测信号,并处理信号。③处理信号:若是阻塞或无信号(忽略/默认)就直接内核态—>用户态返回即可 / 若是非阻塞并有信号的自定义捕捉,就内核态—>用户态执行对应的handler方法。(执行handler方法为什么只能是用户态?解释:内核态是什么都可以做的,如果让内核态做用户自定义代码,万一用户写的是一段恶意代码呢???

2022-11-13 08:48:08 4247 19

原创 linux篇【9】:进程间通信(共享内存)——<后序>

先让不同的进程看到同一份资源进程问通信的前提是:先让不同的进程,看到同一份资源!

2022-11-09 16:53:20 1830 14

原创 linux篇【9】:进程间通信——<前序>

一.通信背景一.通信背景1.进程是具有独立性的!——导致进程为什么要通信:需要多进程进行协同处理一件事情2.不要以为,进程独立了,就是彻底独立,有时候,我们需要双方能够进行一定程度的信息交互数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。

2022-11-03 19:07:45 1205 24

原创 linux篇【8】:基础IO—<后序>

假如要找第3234个扇区,假如有4个磁盘面,4个磁盘面放在一个数组,一面假设是1000个扇区,3234/1000=3,第一面是0~1000,第二面是1000~2000,第三面是2000~3000,第四面是3000~4000。管理整个分区内一个块的数据,即:记录1GB的block group的属性,例如:有多少inode,起始的inode编号,有多少个inode被使用,有多少block被使用,还剩多少,你的总group大水是多少。对如何管理500GB的文件,变成了对一个1GB的小组数据的管理。

2022-10-26 20:49:02 1892 29

原创 linux篇【8】:基础IO—<前序>

(2)当我们以w方式打开文件,准备写入的时候,其实文件已经先被清空!——不能,所有的上层访问文件的操作,都必须贯穿操作系统。当我们的文件程序,运行起来的时候,才会执行对应的代码,然后才是真正的对文件进行相关的操作。6.通常我们打开文件,访问文件,关闭文件,是谁在进行相关操作?7.学习文件操作:就是学习——进程和打开文件的关系!r+和w+都是既读又写,只是w+多了一个文件不存在就创建文件。默认的进程工作路径是在它所处的路径下,不过这个路径是可以改的。1.当我们向文件写入的时候,最终是不是向磁盘写入?

2022-10-22 17:41:14 1370 21

原创 C++:C++的IO流

EOF)如何终止?答:ctrl z+换行 是规定,ctrl c 是发送信号杀死进程(一般不建议ctrl c)。operator bool:本质是为了支持Date对象转换成boolistream类型对象转换为逻辑条件判断值实际上我们看到使用while(cin>>i)去流中提取对象数据时,调用的是operator>>,返回值是istream类型的对象,那么这里可以做逻辑条件值,源自于istream的对象又调用了operator。

2022-10-22 17:40:51 2460 6

原创 linux篇【7】:进程程序替换

带e的都是可以传环境变量的(execle,execvpe)但是会覆盖系统原有的环境变量,把自己传的环境变量交给进程;2.让子进程执行磁盘中一个全新的程序(shell,想让客户端执行对应的程序,通过我们的进程,执行其他人写的进程代码等等),c/c++ -> c/c++/Python/Shell/Php/Java...答:不用判断返回值(但是还是需要返回值),因为一旦替换成功,就不会有返回值,也不会执行返回语句,因为int ret 这个返回值也是当前进程的代码和数据,execl一旦替换成功,是将。

2022-10-19 11:28:19 919 11

原创 C++:特殊类设计

2. 提供一个静态的成员函数:提供返回构造函数的公有函数时,发现没对象调不了,对象还得通过调用这个函数去构造生成——先有鸡还是先有蛋的循环,所以给这个成员函数加上static,静态的成员函数没有this指针,可以直接通过类域调用该函数,在该静态成员函数中完成堆对象的创建。①这里我们创建静态变量,为了只有一个实例对象,需要把构造函数私有,这个对象为了能访问私有的构造函数,我们需要把它放在类中声明,让它成为类的成员,可以在类外定义。拷贝构造声明成私有,防止别人调用拷贝在栈上生成对象。

2022-10-15 20:17:14 617 10

原创 C++:C++的类型转换

在C语言中,如果。1. 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败2. 显式类型转化:需要用户自己处理C风格的转换格式很简单,但是有不少缺点的:1. 隐式类型转化有些情况下可能会出问题:比如数据精度丢失2. 显式类型转换将所有情况混合在一起,代码不够清晰因此C++提出了自己的类型转化风格,注意。

2022-10-10 11:44:36 3494 13

原创 C++:智能指针

借此,我们实际上把管理一份资源的责任托管给了一个对象。这种做法有两大好处:不需要显式地释放资源。采用这种方式,对象所需的资源在其生命期内始终保持有效。

2022-10-08 16:24:21 883 10

原创 C++:异常

此时throw抛异常的地方直接跳到catch中,抛的异常类型要对上,所以这里跳到catch (const char* errmsg){// 当b == 0时抛出异常";try{Func();}3. 异常的使用3.1 异常的抛出和捕获异常的抛出和匹配原则1. 异常是通过抛出对象而引发的,该对象的类型决定了应该激活哪个catch的处理代码。2. 被选中的处理代码。

2022-10-01 13:23:52 485 6

原创 C++11:lambda表达式

lambda表达式就是定义了一个可调用的匿名函数,一般在局部。1.格式mutable捕捉列表 参数去const(单词意思易变的)返回值 函数体};2. lambda表达式各部分说明,该列表总是出现在lambda函数的开始位置,,。捕捉的参数都是自带const的,想要去掉const属性可以用mutable,但是捕捉的对象(变量)仍是一份拷贝,外部的a,b无法被修改,所以mutable 很少用,意义不大,不如用 [&]引用捕捉 ( )引用传参。

2022-09-30 22:05:22 19081 9

原创 C++:C++11

移动构造:拷贝将亡值时不能对将亡值深拷贝,应直接把将亡值的资源交给新的对象,就是把将亡值指向资源的地址直接给新的对象{{public:// 移动构造string(string&& s) 右值匹配{cout

2022-09-22 18:22:47 1042 10

原创 C++:位图,布隆过滤器

方法:用两个 bitset 数组 _bs1,_bs2记录,x对应两个数组的比特位来记录这个数出现的次数,_bs1对应比特位是0,_bs2对应比特位是0,就是出现0次;_bs1对应比特位是0,_bs2对应比特位是1,就是出现1次;_bs1对应比特位是1,_bs2对应比特位是0,就是出现2次;原本4个字节存一个数,现在1个bit存一个数的状态,1字节=8bit,4字节=32bit,16G/32=500MB,现在消耗500MB即可。数据是否在给定的整形数据中,结果是在或者不在,刚好是两种状态,那么可以使用一。

2022-09-15 23:00:58 652 10

原创 C++:哈希,unordered_map和unordered_set

unordered_map和unordered_set和map/set用法一样,不同就是unordered_map和unordered_set不排序,map/set自动排序。

2022-09-07 15:45:24 2949 5

原创 linux篇【6】:进程等待

linux会维护一张废弃的数据结构链表叫 obj,若释放进程,对应的进程的数据结构会被维护到这个链表中,这个链表没有释放空间,只是被设成无效,需要时就拿,节省开辟时间(这样的链表也称 内核的数据结构缓冲池,操作系统叫:slab分派器)打印的是上一次 echo $?通常,父子代码共享,父子再不写入时,数据也是共享的,当任意一方试图写入,便以写时拷贝的方式各自一份副 本。fork之后,父子共享所有的代码,但fork之前的代码也是父子共享的,只不过子进程只能执行fork之后的。新进程为子进程,而原进程为父进程。.

2022-08-30 18:51:37 1489 11

原创 linux篇【5】:环境变量,程序地址空间

基本指令也是程序,为什么我们的代码程序运行要带路径,而系统的指令不用带路径?我们给main所数传递的argc,char*argv[], 命令行参数,传递的是,命令行中输入的程序名和选项!——①把自己的程序拷贝进环境变量中,就可以直接myproc执行程序了,拷贝的过程就是安装软件,但是。——②把myproc自己的文件加入环境变量PATH中,export PATH=——同一个程序,通过传递不同的参数,让同一个程序有不同的执行逻辑,执行结果。答:系统中是存在相关的环境变量,保存了程序的搜索路径的!........

2022-08-28 12:32:41 1620 14

原创 linux篇【4】:进程与操作系统

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。输入输出设备不和CPU直接打交道,而是把数据放到内存中。CPU也是直接从内存中读数据。输入:键盘,话筒,摄像头,磁盘,网卡...输出:显示器,音响,磁盘,网卡,显卡...(运算器+控制器) [CPU]:算数计算+逻辑计算存储器:就是内存。.......................................

2022-08-24 17:51:21 1967 11

原创 C++:红黑树

1.红黑树的概念红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。(最长的路径不超过最短路径的2倍,近似平衡)2.红黑树的性质1.每个结点不是红色就是黑色2.根节点是黑色的3. 如果一个节点是红色的,则它的两个孩子结点是黑色的(没有连续的红色节点)

2022-08-21 23:27:46 1903 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除