今日刷题总结2

在无向图中每个节点所连边的条数就是该节点的度数。

在有向图图中,指向该节点的边的条数称为入度,反之称为出度。有向图的度是出度与入度之和。

在树中,节点的子女个数称为节点的度。

DHCP协议

dhcp是一个局域网的网络协议,是基于udp协议工作的,主要用于集中管理和分配ip地址,使网络中的主机动态地获得ip地址、网关地址、dns服务器地址等,提升地址的使用率。dhcpv4有2个端口,67号和68号端口分别为dhcp server和dhcp client服务端口。

dhcp协议采用c/s模型,当服务器收到来自主机的ip地址申请时,才会向主机发送相关的地址配置信息。工作原理如下:

(1)DHCP Client以广播的方式发出DHCP Discover报文。

(2)所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。

(3)DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便       DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。

(4)DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。

(5)DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。

(6)DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相       同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。

(7)DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地 址并根据IP地址使用租期自动启动续延过          程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的            地址申请过程。

(8)DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。

文件操作函数

fseek(文件,偏移量,类别),其中类别为:文件开头0,文件当前位置1,文件末尾2。

fseek(fp,0L,0)就是把文件指针fp移到里开头0字节的地方,即开始位置。

rewind(fp)相当于fseek(fp,0L,0)。

OSI七层模型

第一层:物理层

第二层:数据链路层 802.2、802.3ATM、HDLC、FRAME RELAY

第三层:网络层 IP、IPX、APPLETALK、ICMP

第四层:传输层 TCP、UDP、SPX

第五层:会话层 RPC、SQL、NFS 、X WINDOWS、ASP

第六层:表示层 ASCLL、PICT、TIFF、JPEG、 MIDI、MPEG

第七层:应用层 HTTP,FTP,SNMP等

写回法(write back)

即写cache时不写入主存,而当cache数据被替换出去时才写回主存。写回法的cache中的数据会与主存的不一致。为了识别cache中的数据是否与主存中的一致,cache中的每一块要增加一个记录信息位,以反映此行是否被CPU修改过。修改cache中某一块时设置这个位为浊(dirty)。根据这个位的值,cache中每一块都有两个状态:清(clean)和浊(dirty),在将新的值放入浊的块的时候,将原值写回到主存,否则,直接将新值存入这个块。

与写回法相对应的是写通过法(write through,也叫直写法)。该模式下,CPU对主存写数据时,不经过cache直接写到内存。

时间: 2024-11-04 01:03:39

今日刷题总结2的相关文章

今日刷题集合

月考没考,最皮的是刷题效率低的可怕,搜索中的那些回溯用的还是很水,不如总结一下. codevs 题号:1501 1506 1842 1983 2549 2806 3143 3145 1008 1294 1295 1501 二叉树的最大宽度和高度(没加using namespace std ;会过不去编译,max.min函数封装在#include<iostream>里,所以没有using namespace std ;不行.) 1 #include<bits/stdc++.h> 2

今日刷题总结3

稳定排序 (1)冒泡排序:冒泡排序就是把小的元素往前调或者把大的元素往后调.比较是相邻的两个元素比较,交换也发生在这两个元素之间.如果两个元素相等,不用进行交换:所以冒泡排序是一种稳定排序算法. (2)归并排序 :归并排序是把序列递归地分成短序列,递归出口是短序列只有1个元素或者2个序列(1次比较和交换),然后把各个有序的短序列合并成一个有序的长序列,不断合并直到原序列全部排好序.在1个或2个元素时,1个元素不会交换,2个元素如果大小相等也不进行交换.在短的有序序列合并的过程中可以保证如果两个当

今日刷题总结21

C++的内存分配方式 之前有说过C++的内存分为5部分,即栈.堆.全局/静态存储区.自由存储区以及常量存储区. 栈:栈由编译器自动分配与释放,它用来存储函数的参数值以及局部变量. 堆:堆由应用程序分配与释放,应用程序使用malloc在堆上获取内存,使用free释放内存.如果应用程序获取内存后没有释放,就会造成内存泄漏,在应用程序终止时泄漏的内存才会被操作系统回收. 自由存储区:自由存储区是C++中基于new和delete的抽象概念.当应用程序使用new分配内存时,就说该内存是自由存储区.C++编

今日刷题总结9

数据存取路径 数据存取是指数据库数据存贮组织和存贮路径的实现和维护.在计算机中,数据一般以文件形式保存或存放在数据库中.在数据库,数据存取路径分为主存存取路径与辅存存取路径,前者主要用于主键检索,后者用于辅助键检索.在系统中,路径一般分为相对路径和绝对路径. 数据存取路径是指存取数据的位置,由于程序运行具有局部性,不可能把所有数据都调入内存,在内存中只有一部分数据,其余数据都在外存,因此数据存取路径分为辅存存取路径和内存存取路径,不同的路径,查找的方法是不同的,一般分为内存查找和辅存查找. 内存

今日刷题总结7

内联函数 内联函数是由inline关键字修饰.在类内定义的函数默认为内联函数.从源代码的层面上看,内联函数有函数的结构,而在编译后,却不具备函数的性质.内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处,这类似于宏替换,使用函数体替换调用处的函数名.能否形成内联函数,需要看编译器对该函数定义的具体处理. 内联函数的主要作用是用来消除函数调用时的时间开销.它通常用于频繁执行的函数,对于小内存空间的函数非常受益. 使用内联函数的时候要注意: (1)递归函数不能定义为内联函数 (

今日刷题总结17

拥塞控制方法 (1)慢开始和拥塞避免 发送方维持一个拥塞窗口cwnd的状态变量,开始时cwnd的大小为一个最大报文段长度MSS.发送方发送完窗口内所有报文段后,每收到一个新的对已发送报文段的确认,就把cwnd增加至多一个MSS.以下说明了慢开始与拥塞避免的原理,其中cwnd的大小用MSS的个数来衡量. 最初发送方设置cwnd=1,发送第一个报文段M1,收到对M1的确认后,cwnd从1增大为2,然后发送方接着发送cwnd中的M2和M3两个报文段,接收方接收后对M2和M3确认.发送方每接收到一个对已

今日刷题总结19

共享区域与私有区域 每个进程都有自己的私有虚拟地址空间,避免了受到其他进程的错误读写.但是,通常的c程序几乎都使用到标准库函数,例如printf或者scanf,如果每个进程都要为这些常用库函数在物理内存保留一份拷贝,这样对内存就非常浪费了. 为了解决上述问题,可以将常用库函数设定为共享对象,共享对象在物理内存上只有一份拷贝,多个进程可以把自身虚拟内存的一个区域映射到该共享对象上,这些区域就叫共享区域,如果一个进程在自己的共享区域进行写操作,在其他进程的共享区域内能看到相应的改变,并且这种改变也会

今日刷题总结15

TCP滑动窗口 假设A向B发送数据,A收到了B的确认报文,报文首部的窗口值为20,确认号ack=31,这表示B已经收到了截止序列号30的所有数据,根据窗口值和确认号,A构造出自己的发送窗口,如下图所示. A的发送窗口表示在没有收到B的确认下可以联系把窗口内的数据发送出去.对于已经发送出去的数据,在没有接到确认时,必须暂时驻留在发送窗口内以便在超时重传时使用.发送窗口后沿的后面部分是已经发送并得到确认的数据,这些数据不再保留到发送窗口内.发送窗口前沿的前面部分是不允许发送的数据,因为接受方B的接收

今日刷题总结20

C++的内存布局 在C++中内存被分为5个部分,分别是堆.栈.自由存储区.全局/静态存储区以及常量存储区. 自由存储区与堆的区别 堆是C语言和操作系统里的术语,它是由操作系统维护的一块特殊的内存,当C程序调用malloc函数进行动态内存分配时就是从堆上获取内存的,而调用free函数可以交还分配的内存.自由存储区是C++基于new和delete操作符的一个抽象概念,凡是通过new来申请的内存区域都可称为自由存储区.几乎所有的C++编译器默认都使用堆来实现自由存储区,即缺省的全局库函数operato