1,for循环的时间复杂度
- 两层for循环 第二层中 的循环变量继承与上层变量
- 时间复杂度是O(n^2)
- for循环时间复杂度算法理解_bingkxin的专栏-CSDN博客_for循环时间复杂度
for(int i=0;i<N;i++)
{for(int j=i;j<N;j++){//此处运行次数:N+N-1+N-2+...+1=1+2+3+...+N=N(N+1)/2}
}
for(int i=0;i<N;i++)
{for(int j=i+1;j<N;j++){//此处运行次数N-1+N-2+N-3+...+1=1+2+3+...+N-1=N(N-1)/2}
}
2,变量的声明和定义
- 定义也是声明,定义变量的时候,我们声明了他的类型和名称
- 在一个源文件里面定义了一个数组 char a[6],其余文件使用下列语句进行声明,extern char a[6]; 使用extern char* 的方式是错误的
- 程序文件【C/C++】变量的定义与声明 - xinyuyuanm - 博客园
- C语言引用另一个源文件中定义的数组_weixin_30614587的博客-CSDN博客
- 变量的声明,用于向程序表明变量的类型和名字
- 变量的定义用于为变量分配存储空间,还为变量指定初始化数值,变量有且仅有一个定义
3,关于存储区域描述错误的是
- C++中栈区 堆区 常量区 - 10号 - 博客园
char buff[] = "abc";//栈
char *pStr1 = "123456";//pStr存储在栈区,“123456”存储在常量区
char *pStr2 = new char[256];//pStr2在堆区,分配的内存也在堆区
4,友元函数可以访问 类的公有、保护和私有成员
5,联合程序的输出结果 266
- 下面关于“联合”的题目的输出?_zy_dreamer的专栏-CSDN博客
union {int i;char x[2];
}a;
int main(){a.x[0] = 10;a.x[1] = 1;printf("%d",a.i);return 0;
}
6,构造函数和析构函数
- 为什么构造函数不能声明为虚函数,析构函数可以 - lpx15312 - 博客园
- 构造函数可以抛出异常,析构函数不建议抛出异常
- 析构函数最好是虚函数
- 构造函数不可以是虚函数
- C++构造函数、析构函数与抛出异常 - hellogiser - 博客园
- 构造函数的执行顺序
- 构建子类实例的时候,先调用父类的构造函数,再调用子类的构造函数
7,反转链表
struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};ListNode* reverseList(ListNode* head) {ListNode* curr = head;ListNode* prev = nullptr;while (curr){ListNode* next = curr->next;curr->next = prev;prev = curr;curr = next;}return prev;
}
8,指定数组nums,将数组中的0全部移动到数组的末尾,维持其他所有非0元素的相对位置,空间复杂度为o(1),时间复杂度为O(n)
#include <vector>
#include <iostream>std::vector<int> MoveAllZeroToTall(std::vector<int>& nums){int n = nums.size();int left = 0;int right = 0;while (right < n){if (nums[right]){std::swap(nums[left],nums[right]);left++;}right++;}return nums;
}int main(){std::vector<int>nums{0,8,0,12,34,0,89};nums = MoveAllZeroToTall(nums);for (int i = 0; i < nums.size(); ++i) {std::cout << nums[i] << " ";}
}
9,linux 常用命令
- ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程
- Linux中ctrl+z 、ctrl+c、 ctrl+d区别_辉-CSDN博客
- 最全整理 | 121个Ubuntu终端常用快捷键 - 知乎
10,下面哪些不属于字节流?
- BufferedReader 不属于 字符流
- ObjectInputStream
- FileInputStream
- ByteArrayInputStream
- 字节流和字符流(BufferedReader类和BufferedWriter类)_weixin_30252709的博客-CSDN博客
11,关于PV操作的理解
- 进程调用P操作 测试子集所需要的消息是否到达
- PV操作可以适用于进程之间的通信
- PV操作不仅是进程互斥的工具,也是进程之间同步的工具
- 进程调用V操作向其他进程发送消息
- 看完了进程同步与互斥机制,我终于彻底理解了 PV 操作 - 云+社区 - 腾讯云
- 进程间通信(命名管道,消息队列,PV操作)_努力努力再努力的博客-CSDN博客
12 内存的静态分配方式和动态分配方式
- 一是时间不同。静态分配发生在程序编译和链接的时候。动态分配则发生在程序调入和执行的时候
- 二是空间不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由函数malloc进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需我们手工实现
- 静态内存分配与动态内存分配_Ideal Dragon的博客-CSDN博客_静态内存分配
- 内存的静态分配和动态分配的区别
13 MySQL的数据库事务的隔离级别 对资源消耗最大的是
- Serializable
- 彻底搞懂 MySQL 事务的隔离级别-阿里云开发者社区
14 Linux扩展虚拟内存 将/dev/sda5格式化为交换分区的指令是
- Linux格式化交换分区的命令,【Linux命令】磁盘分区,格式化,挂载命令,创建交换分区(fdisk,mkfs,mount,umount)..._weixin_39547298的博客-CSDN博客
- mkswap /dev/sda5
15 关于epoll叙述正确的是
- epoll 默认的工作方式 是LT
- 使用mmap加速内核和用户空间之间的消息传递
- 使用mmap函数进行内核空间和用户空间的共享内存通信_Gick-CSDN博客
- linux高效率编程:epoll和多线程 - dion至君 - 博客园
- epoll的两种工作模式 - 知乎
- 第一章epoll - codestacklinuxer - 博客园
- mmap - 用户空间与内核空间_luckywang1103的专栏-CSDN博客_mmap
- 一道搜狗面试题:IO多路复用中select、poll、epoll之间的区别 - 云+社区 - 腾讯云
- EPOLLIN , EPOLLOUT , EPOLLPRI, EPOLLERR 和 EPOLLHUP事件_heluan123132的博客-CSDN博客
EPOLL事件有两种模型 Level Triggered (LT) 和 Edge Triggered (ET):
- LT(level triggered,水平触发模式)是缺省的工作方式,并且同时支持 block 和 non-block socket。在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,所以,这种模式编程出错误可能性要小一点。
- ET(edge-triggered,边缘触发模式)是高速工作方式,只支持no-block socket。在这种模式下,当描述符从未就绪变为就绪时,内核通过epoll告诉你。然后它会假设你知道文件描述符已经就绪,并且不会再为那个文件描述符发送更多的就绪通知,等到下次有新的数据进来的时候才会再次出发就绪事件。如果一直不对这个fd进行I/O操作,导致fd变为未就绪时,内核同样不会发送更多的通知,因为only once。所以这种方式下,出错率比较高,需要增加一些检测程序。
epoll的优点:
- 没有最大并发连接的限制,能打开的FD的上限远大于1024(1G的内存上能监听约10万个端口);
- 效率提升,不是轮询的方式,不会随着FD数目的增加效率下降。只有活跃可用的FD才会调用callback函数;即Epoll最大的优点就在于它只管你“活跃”的连接,而跟连接总数无关,因此在实际的网络环境中,Epoll的效率就会远远高于select和poll。
- 内存拷贝,利用mmap()文件映射内存加速与内核空间的消息传递;即epoll使用mmap减少复制开销。
1、listen fd,有新连接请求,对端发送普通数据 触发EPOLLIN。
16 接口中 定义static方法正确的是
- static 函数声明_C++中Static作用和使用方法_weixin_39855706的博客-CSDN博客
- Java中的静态变量和静态函数_俊哥-CSDN博客_java定义静态函数
static void method1(){}; 个人感觉
static protected void method2(){}
static void method4();
static public void method3();
17 需要被重写的方法 使用哪个关键字进行修饰?
- C++、C#中 abstract 与 virtual关键字的区别联系_iefswang的专栏-CSDN博客
- final修饰的函数 不可以改变
- C++重写(覆盖)、重载、重定义、多态 - DannyCat - 博客园
- C++中的final关键字_木子皿--啥都不会的菜鸟-CSDN博客_c++中final
18 完全二叉树
- 常见数据结构——完全二叉树(定义、特征、节点个数的判断以及C++简单实现)_JMW1407的博客-CSDN博客_完全二叉树
- 完全二叉树、平衡二叉树、二叉查找树(二叉排序树)_bob的博客-CSDN博客
- 树、二叉树、满二叉树、完全二叉树、森林 - 渐渐遗忘者 - 博客园
- 完全二叉树 除了最后一层外,每一层的节点数量均达到最大数值
- 完全二叉树的总结点的数量?深度为k的完全二叉树的节点个数小于或者等于深度相同的满二叉树,如下图所示 节点的个数为 2^(h-1) - > 2^h-1 之间
- 完全二叉树可以是不平衡的
19 等概率下 查找成功的平均查找长度
- 关于ASL(平均查找长度)的简单总结 - 回忆酿的甜 - 博客园
20 查看linux系统中/etc/fstab文件的第一列和第三列
- Linux:使用awk命令获取文本的某一行,某一列_北京小辉-CSDN博客_awk获取某一行某一列
- awk ’{cat $1,$3}‘ /etc/fstab
- 如果是打印 将cat修改为print
21 Kruskal 和 Prim算法相关知识
- Kruskal算法的时间复杂度为 时间复杂度是O(N*logN),这里的N是指边
- Kruskal算法适用于求解 边稀疏 点多
- Prim算法的时间复杂度是O(N^2)。
- Prim算法适用于求解 边稠密 点少
- 【算法】最小生成树——Prim和Kruskal算法_Reimia的博客-CSDN博客_kruskal算法
- 最小生成树图之-Prim算法和Kruskal算法_angry_youth的博客-CSDN博客
22 贪心算法 的理解
- 贪心算法每一步的最优解一定包含上一步的最优解,上一步之前的最优解则不作保留
- 不能保证求得的最后解是最佳的
- 贪心算法中,作出的每步贪心决策都无法改变
- 贪心算法与动态规划算法_wuyuxiu123的博客-CSDN博客_贪心动态规划
- 五大常用算法——贪心算法详解及经典例子_别再想更好的办法的博客-CSDN博客_贪心算法
23 对表执行 select 操作 不会激活 触发器
- 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等
24 解决临界区资源互斥应该遵循的原则
- https://blog.csdn.net/qq_41459433/article/details/89195623
25 代码 消消乐
#include <iostream>
#include <vector>
int n;int main(){std::cin >> n;getchar();std::string input_string{};std::getline(std::cin,input_string);
// std::cout << input_string;std::vector<int>base(4,0);for (int i = 0; i < n; ++i) {base[input_string[i]-'0']++;}std::cout << std::min(base[0],base[1]) * 2 + std::min(base[2],base[3]) * 2 << std::endl;// for (int i = 0; i < n; ++i) {
// std::cout<< input_nums[i] << " ";
// }
}
26 web页面级优化描述
- 关于web的页面级优化_JKR10000的博客-CSDN博客
27 数组基本有序的时候,下面哪个算法对数组排序的时间复杂度最低
- 直接选择排序
- 冒泡排序
- 当序列基本有序时,效率最高的排序算法是插入排序,其次是冒泡排序
- 对于基本有序的序列,按照那种排序方式最快?_创新工场笔试题_牛客网
28 进程进入等待状态有哪几种方式
- 进程进入等待状态有哪几种方式-时间财富网
- 答:CPU调度给优先级更高的Thread(线程),原先Thread 进入Waiting(等待)状态。阻塞的Thread获得资源或者信号,进入Waiting状态。在时间片轮转的情况下,如果时间片到了,也将进入等待状态。
- 映客2020春招笔试题目_WangYaRu-CSDN博客
- 操作系统面试题 - mu_tou_man - 博客园
- 牛客网选择题_zhihu000的博客-CSDN博客
29 栈的入栈序列为 1,2,3,.......,n 出栈顺序为P1,P2,P3 .......Pn,如果P2 = 3,P3的可能取值的个数是 n-1
30 以下哪种http状态下,浏览器会产生两次http请求?( )A 304;B 404 C 403 D 302
- 302临时重定向,会产生两次http请求,软件开发中一般用于跨域请求先请求跨域凭证,再访问跨域后的网络资源。
- 304:客户端申请的资源存在,但是条件不满足
- 302:临时重定向
- 404:NOT FOUND
- 400:存在语法错误
31 容器底层使用了namespace,linux内核中 PID namespace是如何实现的
- Pid Namespace 原理与源码分析 - 知乎
32 ping命令是属于tcp/ip的哪一层?应用层
- ping命令是属于tcp/ip的哪一层?_网易笔试题_牛客网
32 如果事务T获得了数据项Q上的排它锁,则T对Q ( ) 既可以写也可以读
- 链接:https://www.nowcoder.com/questionTerminal/30da7fd9af91446d9b71b162eb8070b2
- 来源:牛客网
- 共享锁【S锁】 又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
- 排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
33 n个数值选出最大的m个数值(3<m<n) 最小的时间复杂度是?
- 最简单的方法:将n个数排序,排序后的前k个数就是最大的k个数,这种算法的复杂度是O(nlogn)
- O(n)的方法:利用快排的patition思想,基于数组的第k个数来调整,将比第k个数小的都位于数组的左边,比第k个数大的都调整到数组的右边,这样调整后,位于数组右边的k个数最大的k个数(这k个数不一定是排好序的)
- O(nlogk)的方法:先创建一个大小为k的最小堆,接下来我们每次从输入的n个整数中读入一个数,如果这个数比最小堆的堆顶元素还要大,那么替换这个最小堆的堆顶并调整
- n个数值选出最大m个数(3<m<n)的最小算法复__牛客网
34 6行5列 数组按照列序为主要顺序进行存储,基地址为1000,每个元素占据2个存储单元,则第三行第4列的元素(假定无第0行第0列)的地址是
- 1042 注意 是按照列进行存储
35 将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?
- O(N * M * logN)
- 将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序_阿里巴巴笔试题_牛客网
36 邻接表表示图的时候 拓扑排序时间复杂度
- O(n+e)
- 在用邻接表表示图时,拓扑排序算法时间复杂度为( )。__牛客网
37 时间复杂度?
void recursive(int n,int m,int o){if (n <= 0){printf("%d,%d\n",m,o);} else{recursive(n-1,m+1,o);recursive(n-1,m,o+1);}
}
38 对于分布式事务的CAP定理,说法正确的是
- 分布式事务的CAP理论 - 知乎
- CAP和BASE理论-阿里云开发者社区
- CAP是Consistency、Avaliability、Partitiontolerance三个词语的缩写,分别表示一致性、可用性、分区容忍性
- A代表的可用性和分布式事务BASE中的A的意义相同
- C 一致性
- A 可用性
- P 分区容忍性
C 一致性
- 一致性是写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点时,从任意节点读取到的数据都是最新的状态。
- 上图中,商品信息的读写要满足一致性就是要实现如下目标:
- (1)商品服务写入主数据库成功,则向从数据库查询新数据也成功。
- (2)商品服务写入主数据库失败,则向从数据库查询新数据也失败。
- 如何实现一致性?
- (1)写入主数据库后要将数据同步到从数据库。
- (2)写入主数据库后,在向从数据库同步期间要将从数据库锁定,待同步完成后再释放锁,以免在新数据库写入成功后,向从数据库查询到旧的数据。
- 分布式一致性的特点:
- (1)由于存在数据同步的过程,写操作的相应会有一定延迟。
- (2)为了保证数据一致性会对资源暂时锁定,待数据同步完成释放锁定资源。
- (3)如果请求数据同步失败的节点则会返回错误信息,一定不会返回旧信息。
可用性
- 可用性是指任何事务操作都可以得到相应结果,且不会出现响应超时或响应错误。
- 上图中,商品信息的读取要满足可用性就是要实现如下目标:
- (1)从数据库接收到查询的请求则立即能够响应数据查询结果。
- (2)从数据库查询不允许出现响应超时或者响应错误。
- 如何实现可用性?
- (1)写入主数据库要将数据同步到从数据库。
- (2)由于要保证从数据库的可用性,不可将从数据库中的资源锁定。
- (3)即时数据还没有同步过来,从数据库也要返回要查询的数据,哪怕是旧数据,如果连旧数据也没有则可以按照约定返回一个默认信息,但不能返回错误或相应超时。
- 分布式系统可用性的特点:
- (1)所有请求都有响应,且不会出现响应超时或者响应错误。
分区容忍性
- 通常分布式系统的各个节点部署在不同的子网,这就是网络分区,不可避免的会出现由于网络问题而导致节点之间通信失败,此时仍可对外提供服务,这叫分区容忍性。
- 上图中,商品信息读写要满足分区容忍性就是要实现如下目标:
- (1)主数据向从数据库同步数据失败不影响读写操作。
- (2)一个节点挂掉不影响另一个节点对外提供服务。
- 如何实现分区容忍性?
- (1)尽量使用异步取代同步操作,例如使用异步方式将数据从主数据库同步到从数据库,这样节点之间有效的实现松耦合。
- (2)添加从数据库节点,其中一个节点挂掉其它节点提供服务。
- 分布式分区容忍性的特点:
- (1)分区容忍性是分布式系统具备的基本能力。
39 数组连续最大的非空子数组的和
- 时间复杂度为 O(n)
- 力扣
class Solution {
public:int maxSubArray(vector<int>& nums) {std::vector<int>f_vector(nums.size(),0);int max = nums[0];f_vector[0] = nums[0];for(int i = 1;i< nums.size();i++){f_vector[i] = std::max(f_vector[i-1]+nums[i],nums[i]);max = std::max(f_vector[i],max);}return max;}
};
class Solution {
public:int maxSubArray(vector<int>& nums) {int pre = 0;int max = nums[0];for(int i=0;i<nums.size();i++){pre = std::max(pre+nums[i],nums[i]);max = std::max(pre,max);}return max;}
};
40 传输协议对应的层级
- 网络协议各层概述 - kumata - 博客园
- http 应用层
- pop3 应用层协议,用于发邮件,基于udp协议
- pop3 smtp imap这三种邮件协议,分别在七层协议的哪一层?_百度知道
- POP3_百度百科
- ICMP_百度百科
- ICMP 网络层 它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息
- ICMP 是 TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例
- 802.11 物理层
- 802.11最初定义的三个物理层包括了两个扩散频谱技术和一个红外传播规范,无线传输的频道定义在2.4GHz的ISM波段内,这个频段,在各个国际无线管理机构中,例如美国的USA,欧洲的ETSI和日本的MKK都是非注册使用频段。这样,使用802.11的客户端设备就不需要任何无线许可。扩散频谱技术保证了802.11的设备在这个频段上的可用性和可靠的吞吐量,这项技术还可以保证同其他使用同一频段的设备不互相影响。
- 802.11标准定义了哪三种物理层通信技术_百度知道
41 通过IP地址的请求 由相同的服务器节点来承担
- nginx使用ip_hash后为什么请求访问的都在同一个服务器,而另外几个服务几乎是闲的_yswKnight的博客-CSDN博客
- 负载均衡详解_ITHK01的博客-CSDN博客
- 快速理解高性能HTTP服务端的负载均衡技术原理 - 知乎
- 一致性哈希算法(consistent hashing) - 知乎
42 TCP 网络连接进入Time_wait状态说明
- TCP的TIME_WAIT状态 - 知乎
- 主动关闭方在收到被动关闭方的FIN包后并返回ACK后,会进入TIME_WAIT状态,TIME_WAIT状态又称2MSL状态
判断以下选项
- 客户端等待服务端再次发送FIN报文 错误❌,只有发送完FIN报文才会进入这个状态
- 服务器网络连接也有可能处于Time_wait状态 ✅
- 服务器大量处于TIME_WAIT状态,可能是什么原因,会造成什么影响,怎么解决?CLOSE_WAIT状态呢?_我是一个小石头的博客-CSDN博客
- 服务器有可能不会再次发出FIN报文 ✅
- 如果服务端不再发出FIN报文,则客户端会一直处于Time_wait状态而不会结束 错误❌,应该进行第四次握手,双方进入closed状态,关闭链接
- TCP的三次握手四次挥手理解及面试题 - www.pu - 博客园
- 客户端认为自己最后一次发出的FIN报文服务可能会收不到,需要等待 错误❌,客户端发出的FIN报文已经被接收了
参考链接
- TCP连接的TIME_WAIT和CLOSE_WAIT 状态解说 - 散尽浮华 - 博客园
43 关于限流正确的是
- 漏桶 可以使用 Guava的RateLimiter组件来实现
- Guava学习计划-Semaphore—RateLimiter-漏桶算法-令牌桶算法_mengxpFighting的博客-CSDN博客
- 谈谈经典限流方法——漏桶、令牌桶,与Guava RateLimiter的实现 - 简书
- 漏桶和令牌桶是两种通用的限流方案 正确
- 限流是当系统资源不足以支撑超过预期的突发流量的时候,面对超额流量的自我保护机制 正确
- 漏桶使用 栈 来实现 ❎ 漏桶使用FIFO队列
- 令牌桶 常用一个FIFO队列来实现 正确
参考链接
- 常用限流算法及原理_QuricoLouis-CSDN博客
函数指针 和 指针函数的区别
- C++ 函数指针和指针函数-CJavaPy
为啥返回数值的类型不可以作为函数重载的区分呢?
- 深入 -- 为什么不能根据返回类型来区分重载?_Simba_cheng的博客-CSDN博客_为什么不能根据返回类型来区分重载
构成多态的条件?继承和多态 是否足以?
- C++虚函数注意事项以及构成多态的条件
- 有了虚函数,基类指针指向基类对象时就使用基类的成员(包括成员函数和成员变量),指向派生类对象时就使用派生类的成员。换句话说,基类指针可以按照基类的方式来做事,也可以按照派生类的方式来做事,它有多种形态,或者说有多种表现方式,我们将这种现象称为多态(Polymorphism)
- 多态是面向对象编程的主要特征之一,C++中虚函数的唯一用处就是构成多态
- C++提供多态的目的是:可以通过基类指针对所有派生类(包括直接派生和间接派生)的成员变量和成员函数进行“全方位”的访问,尤其是成员函数。如果没有多态,我们只能访问成员变量
对于IP地址 130.63.160.2 MASK为255.255.255.0 子网号为? 未解决
- 160
- 63.160
- 160.2
- 130.63.160
主机甲和主机乙之间建立了一个TCP连接,双方持续有数据传输,且数据没有差错和丢失。如果甲收到一个来自乙的TCP段,这个段的序号为1913,确认序号为2046,有效载荷为100字节,则甲立即发送给乙的TCP段的序号和确认序号分别是?
- 2046 2013
- 2047 2012
- 2046 2012
- 2047 2013
建立连接的时候,哪一个数据包发送顺序是正确的TCP握手协议过程??
- SYN+ACK ,SYN+ACK ,SYN
- SYN,SYN,ACK
- SYN,SYN+ACK,SYN+ACK
- SYN,SYN+ACK,RST
- 都不正确
主机甲和主机一建立一个TCP连接,甲的拥塞控制初始的阈值是32kb,甲向乙始终以MSS=1kb大小的段发送数据,并一直有数据 的发送,乙为这个连接分配的16kb的接收缓存,并对每个数据段进行确认,忽略传输的延迟,如果乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发送超时的情况下,经过了4个RTT之后,甲的发送窗口大小是?
- 8kb
- 16kb
- 1kb
- 32kb
某个主机的ip地址是180.80.77.55 子网掩码是255.255.252.0 如果这个主机向所在子网发送广播分组,则目的地址可以是
- 180.80.76.255
- 180.80.77.255
- 180.80.76.0
- 180.80.79.255
对于第二范式的理解正确的是?
- 在第一范式的基础上,任何非主属性不依赖于其他非主属性
- 在第一范式的基础上,非码属性必须完全依赖与码
- 数据库的每一列都是不可分割的原子数据项
- 上述说法均错误