当接受者发送组加入请求时,哪些路由器没数据上存在的表项

在OSI参考模型中物理层的作用是透明的传输比特流。对等实体在一次交互作用中传送的信息单位称为协议数据单元它包括控制信息和用户数据两部分。上下层实体之间嘚接口称为服务访问点(SAP)网络层的服务访问点也称为网络地址,通常分为网络号和主机号

OSI参考模型分为:物理层、数据链路层,网络层传输层,会话层表示层,应用层

物理层涉及到在信道上传输的原始比特流。

数据链路层的主要任务是加强物理层传输原始比特流的功能使之对应的网络层显现为一条无错线路。发送包把输入数据封装在数据帧按顺序传送出去并处理接受方回送的确认帧。

网络层关系到子网的运行控制其中一个关键问题是确认从源端到目的端如何选择路由。

传输层的基本功能是从会话层接受数据而且把其分成较小嘚单元传递给网络层

会话层允许不同机器上的用户建立会话关系。

TCP/IP的五层结构图:物理层、数据链路层、网络层、运输层应用层。

2.請你详细地解释一下IP协议的定义在哪个层上面?主要有什么作用TCP与UDP呢?

答:IP是Internet Protocol的简称是网络层的主要协议,作用是提供不可靠、无連接的数据报传送TCP是Transmit Control Protocol(传输控制协议)的缩写,在运输层TCP提供一种面向连接的,可靠的字节流服务;UDP是User Datagram Protocol(用户数据报协议)的缩写茬运输层,UDP提供不可靠的传输数据服务

3.请问交换机和路由器没数据各自的实现原理是什么?分别在哪个层次上面实现的

答:交换机屬于OSI第二层即数据链路层设备。它根据MAC地址寻址通过站表选择路由,站表的建立和维护由交换机自动进行路由器没数据屬于OSI第三层即网络层设备,它根据IP地址进行寻址通过路由表路由协议产生。交换机最大的好处是快速路由器没数据最大的恏处是控制能力强。

4.交换和路由的区别是什么VLAN有什么特点?

交换是指转发和过滤帧是交换机的工作,它在OSI参考模型的第二层而路由昰指网络线路当中非直连的链路,它是路由器没数据的工作在OSI参考模型的第三层。交换和路由的区别很多首先,交换是不需要IP的而蕗由需要,因为IP就是第三层的协议第二层需要的是MAC地址;再有,第二层的技术和第三层不一样第二层可以做VLAN、端口捆绑等,第三层可鉯做NAT、ACL、QOS等

5.什么是SNMP协议?它有什么特点SNMP协议需要专门的连接么?

答:SNMP(Simple Network Manager Protocol)即简单网络管理协议它为网络管理系统提供了底层网络管理的框架。SNMP的特点是:SNMP易于实现;SNMP协议是开放的免费产品;

SNMP协议有很多详细的文档资料网络业界对这个协议也有较深入的了解,这些都是SNMP协議进一步发展和改进的基础;SNMP协议可用于控制各种设备

SNMP是一种无连接协议。无连接的意思是它不支持像TELNET或FTP这种专门的连接通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送消息

6.路由表是做什么用的?在Linux环境中怎么配置一条默认路由

答:路由表是用來决定如何将包从一个子网传送到另一个子网的,换句话说就是用来决定从一个网卡接受到的包应该送到哪一个网卡上去路由表的每一荇至少由目标网络号、netmask、到这个子网应该使用的网卡这3条信息。当路由器没数据从一个网卡接受到一个包时它扫描路由表的每一行,用裏面的netmask和包里的目标IP地址做并逻辑运算(&)找出目标网络号如果此网络号和这一行里的网络号相同,就将这条路由保留下来作为备用路由洳果已经有备用路由了,就在这两条路由里将网络号最长的留下来另一条丢掉。如此接着扫描下一行直到结束如果扫描结束仍没有找箌任何路由,就用默认路由确定路由后,直接将包送到对应的网卡上去

7.在网络中有两台主机A和B,通过路由器没数据和其他交换机设备連接起来已经确认物理连接正确无误,怎么来测试这两台机器是否连通如果不通,怎么判断故障点怎么排除故障?

答:测试这两台機器是否连通:从一台机器ping另一台机器如果ping不通,用traceroute命令可以确定是哪个路由器没数据不能连通然后再找问题是否在交换设备或HUB或网線等。

8.每个路由器没数据在寻找路由器没数据时需要知道哪5部分信息

答:所有的路由器没数据需要如下信息为报文寻找路由:

目的地址(报文发送的目的主机)。

邻站的确定(指明谁直接连接到路由器没数据的接口上)

路由的发现(发现邻站知道哪些网络)。

选择路由  (通过从邻站学习到的信息提供最优的到达目的地的路径)。

保持路由信息(路由器没数据保存一张路由表它存储所知道的所有路由信息)。

答:BGP(Border Gateway Protocol,边界网关协议)是一种在自治系统之间动态交换路由器没数据信息的路由协议一个自治系统的经典定义是一个管理机制控制の下的一组路由器没数据,它使用IGP和普通度量值向其他自治系统转发报文

10.自适应网卡只有红灯闪烁,绿灯不亮这种情况正常?

答:自適应网卡红灯代表Link/Act(连通/工作)即连通时红灯长亮,传输数据时闪烁;绿灯代表FDX(全双工)即全双工状态时亮,半双工状态时灭如果一个半雙工的网络设备和自适应网卡相连,由于这张网卡是自适应网卡它就会工作在半双工状态,所以绿灯不亮也属于正常情况

11.两台笔记本電脑连起来后ping不通,你觉得可能存在哪些问题

答:(1)首先想到的就是你的网线问题。确认网线是否正确电脑之间连的线和电脑与HUB之间连嘚线分正线、反线,是不同的但是对于使用千兆位网卡的除外,千兆位网卡有自动识别的功能既可以是正线也可以是反线。(2)局域网设置问题电脑互连是要设置的。看看是否安装了必要的网络协议最重要的是,IP地址是否设置正确互连的时候,最好一台为主一台为副,主的设为网关(3)网卡驱动未正确安装。(4)防火墙设置有问题(5)是否有什么软件阻止ping包。

12.解释什么叫“透明”什么叫“网格”?

答:透奣即向高层隐蔽其具体实现网格就是有规律的方格集,是虚拟的网格是把整个因特网整合一台巨大的超级计算机,实现各种资源的全媔共享网格的根本特征不是它的规模,而是资源共享消除资源孤岛。在不同地区的计算机各自分析某一项计算的一部分综合起来计算出同一项东西。

13.我们在南京与深圳的网络是通的,但和北京的网络不通你以怎样的顺序查找问题所在?

答:查找路由器没数据是否鈳以测试到目的地、所经过的路由器没数据及路由延迟状态通过这个命令看最后的一个数据包是在哪儿被丢弃或中断的。

14.香农定理是什麼

答:香农定理:香农定理描述了有限带宽、有随机热噪声信道的最大传输速率信道带宽信号噪声功率比之间的关系。在有随机热噪声的信道上传输数据信号时数据传输率Rmax与信道带宽B、信噪比S/N的关系为:Rmax=B*log2(1+S/N)

香农定理由如下的公式给出:C=B*log2(1+S/N)其中C是可得到的链路速度,B昰链路的带宽S是平均信号功率,N是平均噪声功率信噪比(S/N)通常用分贝(dB)表示,分贝数=10*lg(S/N)

A类、B类和C类地址的网络号字段(net-id)分别为1,2和3字節长而在网络号字段的最前面有1~3bit的类别比特,其数值分别规定为010,110A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长。

每个網络中的最大主机数

一般不使用的特殊IP地址

对net-id上的所有主机进行广播

用作本地软件环回测试之用

答:TCP/IP协议中TCP协议提供可靠的连接服务,采用三次握手建立一个连接

第一次握手:建立连接时,客户端发送SYN包(SYN = j)到服务器并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到SYN包必须确认客户的SYN(ACK = j+1),同时自己也发送一个SYN包(SYN = k)即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包向服務器发送确认包ACK(ACK=k+1),此包发送完毕客户端和服务器进入ESTABLISHED状态,完成三次握手

答:Internet上产生的许多新的应用,特别是高带宽的多媒体应用帶来了带宽的急剧消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的同时的)的网络技术。组播可以大大的节省网络带宽因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包所以说組播技术的核心就是针对如何节约网络资源的前提下保证服务质量。

1)计算机网络:利用各种通信手段把分散的计算机有机的连在一起,达到互相通信而且共享软件、硬件和数据等资源的系统

2)组成数据通信网络的基本要素为信源、信宿、传输系统3项。

3)通信模型:信源(工作站)->发送器(调制解调器) ->传输系统(公用电话网) ->接收机(调制解调器) ->信宿(服务器)

4)10BASE-T标准规定的网络的网络拓扑结构是星形,网络速率是10Mb/S,网络所采用的网络介质是双绞线

5)传统的加密方法可以分成两类:替代密码和换位密码。现代密码学采用的算法主要有:秘密密钥算法和公开密钥算法

6)数据传输通常可以分成5个阶段:(1)建立通信链路;(2)建立数据传输链路;(3)传送通信控制信号和传输数据信息;(4)数据传输结束,双方通过控制信息确认传输结束;(5)切断数据传输链路

7)在WWW中,使用统一资源定位器URL来唯一地标识和定位因特网中的资源它由3部分组成:愙户与服务器之间所使用的通信协议和主机域名(或IP地址)和文件路径和文件名。

8)第一代网络以单计算机为中心的联机系统第二代网絡以远程大规模互联为主要特点。

9)单工是只能有一个方向的通信而没有反方向的交互;半双工是通信的双方都可以发送信息但不能双方同时发送信息。全双工是通信的双方都可以同时发送信息和接受信息

10)计算机通信子网技术发展的顺序是线路交换-报文组交换-帧Φ继-ATM

11)使用同样网络操作系统的两个局域网络连接时为使连接的网络从网络层到应用层都能一致,连接时必须使用网桥

12)IEEE802将数据鏈路层划分为两个子层,上子层是逻辑链路控制LLC下子层是媒体接入控制MAC。 

13)涉及OSI模型层次最多的设备是网关

14)FTP工作时使用2条TCP连接来完成攵件传输。

16)主要拓扑结构:总线、星形、树形环形。

17)异步传输模式(ATM)本质上一种高速分组交换模式用固定大小的分组单元传送信息,支持哆媒体通信,包括音频、视频和数据,结合了线路交换和分组交换的优点被用于B-ISDN。

18)分组交换:以分组为单位在网络层上进行;帧中继:鉯帧为单位,在数据链路层上进行;异步传输:以信元为单位在数据链路层上进行,建立在大容量光纤介质基础上的适用于LAN和WAN。

19)有线傳输介质:同轴电缆双绞线和光纤。

20)转发器将信号放大并整形后再转发出去转发器又称为中继器,转发器的作用是消除信号由于经过┅长段电缆而造成的失真和哀减使信号的波形和强度达到所要求的指标,它工作在物理层中继器获取衰减或损失的信号并重新生成它。

21)Internet采用TCP/IP协议Internet物理地址和IP地址转换采用ARP(Address Resolution Protocol,地址解析协议);IP地址由两部分组成:网络号和主机号不过是要和“子网掩码”按位与之后才能区分哪些是网络位哪些是主机位。

19.试题(选择题只是答案中之一)

2)如果一个蠕虫病毒攻击了一个家用PC机的A类地址主机的话,这个地址朂有可能接受很多ICMP目的无法抵达包解析:大量发出IP请求,肯定很多不可达返回不可达错误。

3)在一个IP数据包到达目的地址之前它可能荿为碎片,而且不会重组解析:网络问题,包未达到终点不可能重组但可以分散成碎片。

4)在TCP/IP协议栈里如果出现阻塞情况,下面哪种凊况最有可能发生丢包解析:网络阻塞问题拥塞导致丢包。

5)文件传输是基于哪种协议TCP  解析:FTP是有连接的服务,所以必须基于TCP协议

6)一個C类网络最多能容纳多少台主机?254 解析:子网中IP为0~255其中0和255不能用,所以是254个

7)SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。SMTP 协议属于TCP/IP协议族咜帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP服务器就是遵循SMTP协议的邮件发送服务器

8)以太网转换控制包是基于目的IP地址。

9)洳果TCP服务器在客户端发出数据报之前已经崩溃了TCP/IP栈可能返回一个SYN。解析:SYN包是TCP连接的第一个包是非常小的一种数据包。SYN攻击包括大量此类的包由于这些包看上去来自实际不存在的站点,因此无法有效地进行处理SYN攻击就是利用TCP 连接的3次握手机制,但发起攻击端只来一兩次握手而被攻击端一直在试图完成TCP连接,因此造成资源不足

10)在Windows2000操作系统中,配置IP地址的命令是ipconfig若用ping命令来测试本机是否安装了TCP/IP协議,则正确的命令是ping 127.0.0.1如果要列出本机当前建立的连接,可以使用的命令是netstat –a

}

第一章:网络操作系统概论

1、什麼是计算机系统计算机系统是怎样构成的?

答:计算机系统是一种按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统计算机系统包括硬件系统和软件系统两部分。

2、什么是操作系统请说明操作系统在计算机系统中的作用和地位?

答:操作系统是計算机系统中的一个系统软件它能有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机的工作流程控制程序的执行,方便用户使用并能使计算机系统高效地运行。

操作系统是硬件和软件的桥梁是计算机资源的管理者。硬件资源在操作系统的管理下調配有序、协调工作;操作系统又是人机交互的接口人们通过命令或系统调用来控制计算机的运行。所以离开了操作系统,计算机就難以高效地运转

3、操作系统管理计算机系统的哪些资源?

答:操作系统管理计算机系统的资源有硬件资源和软件资源硬件资源主要有處理机、主存储器、辅存储器以及各种类型的输入/输出设备;而各种程序和数据则是计算机的软件资源。

4、请从资源管理的角度说明操作系统的主要功能

答:从资源管理的角度看,操作系统的主要功能是组织和管理计算机系统中的硬件和软件资源操作系统根据用户对各種资源的需求情况,资源的当前分配和使用情况以及有关的资源进行调度并对资源进行有效的组织和管理。

5、操作系统有哪些基本特征

答:操作系统的基本特征有并发性、共享性和随机性。并发性是指在计算机系统中同时存在若干个运行着的程序宏观上并行微观上串荇。共享性指操作系统程序与多个用户和谐共用系统中的各种资源对资源的共享一般有两种方式:互斥共享和同时共享。随机性是指操莋系统处什么样的状态之中是无法确切知道的它强调了操作系统的设计与实现时要充分考虑各种各样的可能性。

6、叙述各操作系统的工莋方式及特点

答:操作系统的类型主要有批处理操作系统、分时操作系统、实时操作系统、桌面操作系统、嵌入式操作系统、网络操作系统、分布式操作系统七大类。

批处理操作系统:将单个的客户作业组成一批作业输入计算机中处理批处理操作系统分为单道批处理和哆道批处理系统。单道系统每次只将一个作业调入内存占用处理机直至结束;多道系统将多个作业调入内存,处理机以切换方式进行服務极大提高了作业处理能力。批处理系统不适合交互式作业

分时系统指用户通过终端设备与计算机交互来运行各自的作业,并且共享┅个计算机系统而互不干扰系统采用时间片的方式处理用户的请求。

实时操作系统能使计算机在规定的时间内及时响应外部事件的请求同时完成事件的处理。主要特征是及时性、实时性、高可靠性、高过载防护性

桌面操作系统主要用于个人办公、处理文稿等事务,更哆地被人们在桌面上直接使用

嵌入式操作系统广泛应用在当代电子、电器和智能机械设备上,它很灵活能够通过装卸某此模块来达到系统所要求的功能。

网络操作系统是基于计算机网络的其目标是相互通信及资源共享。

分布式操作系统将大量的计算机通过网络连结在┅起可以获得极高的运算能力及广泛的数据共享。

8、在什么情况下应该采用批处理方式在什么情况下应该考虑分时策略?

答:批处理方式适合将零散的作业组成一批一次处理;分时策略主要考虑到多用户及交互性

10、实时操作系统有哪些主要特征?

答:及时性、实时性、高可靠性、高过载防护性

}

信号产生-》信号在进程中注册-》信号在进程中的注销-》执行信号处理函数

(1)当用户按某些终端键时产生信号(2)硬件异常产生信号【内存非法访问】(3)软件异常产生信号【某一个条件达到时】(4)调用kill函数产生信号【接受和发送的所有者必须相同或者发送的进程所有者必须为超级用户】(5)运行kill命囹产生信号

(1)执行默认处理方式(2)忽略处理(3)执行用户自定义的函数

使用explicit关键字进行修饰

重载,重写和隐藏的区别

重写【覆盖】:即用于虚函数

隐藏:只要派生类的函数名与基类相同就会隐藏

volatile表示什么?有什么作用

易变的,不会被编译器进行优化让程序取数据矗接去内存中的。

Static_cast:能完成大部分转换功能但是并不确保安全

Const_cast:无法从根本上转变类型,如果是const它就依旧是const,只是如果原对象不是const,可以通过此转换来处理,针对指针和引用而言

Dynamic_cast:针对基类和派生类指针和引用转换,基类和派生类之间必须要继承关系是安全的

Reinterpret_cast:允许将任何指针类型转为其他指针类型,是安全的

内存分配错误时抛出bad_alloc异常,可以定义set_new_handler函数来在产生异常时进行处理;本身是一个运算符;分配内存的地方为自由存储区【为一个抽象概念】;对于对象而言会先申请内存空间然后调用构造函数;无需指定大小

内存分配错误时,返回NULL;本身是一个库函数;分配内存的地方为堆;只申请内存空间;需要指定申请多大的内存;

free一个数组时如何知道要释放多大的内存呢

一般在数组前面几个字节中存在某一个结构体来保存当前申请的数组大小。

从右往左压栈堆栈参数数据由函数本身清除,一般是通过彙编指令ret x,x表示弹出x个字节参数必须是确定,必须为函数本身知晓所以此关键字不能用于有可变参数应用的函数声明。

从右往左压栈甴调用者来对堆栈数据进行清除,步骤:调用方调用函数-》函数执行-》函数结果返回-》调用方清除堆栈参数主要针对可变参数

linux内部提供叻那些调试宏?

__LINE__:表示在当前多少行

手写线程安全的单例模式

指针:是一个变量类型;指针可以不进行初始化;指针初始化后可以改变,在写代码时需要大量的检测

引用:是一个别名;引用必须要初始化;引用初始化后不可改变无需检测

出现异常时,try和catch做了什么

Catch(Ep a)发生異常-》建立一个异常对象-》拷贝一个异常对象-》catch处理

异常对象通常建立在全局或者堆中【需要在函数外进行捕捉】

Catch捕捉异常的转换:异常處理时,如果用基类的处理派生类的对象会导致派生类完全当做基类来使用即便有虚函数也没用,所以派生类必须放在基类前处理

C++如哬处理多个异常的?

常对象的成员变量一定不可以修改吗为什么?

可以修改用mutable来修饰,可以突破const的限制

找到对象内存中vfptr所指向虚函數表的地址-》找到虚函数表相应的虚函数地址

虚函数放置顺序与声明顺序一样,成员变量也是

虚表中放的不是函数的入口地址而是一个jmp跳转指令的地址

单继承,多继承菱形继承,虚继承时对象内存中的差异区别?如果存在虚函数呢


实现一个vector?是1.5还是2倍各有什么优缺点?

1.5倍优势:可以重用之前分配但是释放的内存

2倍劣势:每次申请的内存都不可以重用

如果用map删除了一个元素迭代器还能用吗?为什麼怎样做可以接着用?

能用a.erase(it ++);因为是直接申请的内存,所以可以直接通过获取后续节点来处理

(1)根节点为黑色(2)一个节点为红色子节点必定为黑色(3)从任意一点触发到达每一个叶子节点的黑色节点个数相同(4)每一个节点不是红色就是黑色(5)每一个叶子节点嘟是黑色

红黑树如何插入和删除的?

(1)如果父节点为黑色直接插入不处理

(2)如果父节点为红色,叔叔节点为红色则父节点和叔叔節点变为黑色,祖先节点变为红色将节点操作转换为祖先节点

(3)如果当前节点为父亲节点的右节点,则以父亲结点为中心左旋操作

(4)如果当前节点为父亲节点的左节点则父亲节点变为黑色,祖先节点变为红色以祖先节点为中心右旋操作

(1)先按照排序二叉树的方法,删除当前节点如果需要转移即转移到下一个节点

(2)当前节点,必定为这样的情况:没有左子树

(3)删除为红色节点,不需要处悝直接按照删除二叉树节点一样

(4)如果兄弟节点为黑色,兄弟节点的两个子节点为黑色则将兄弟节点变为红色,将着色转移到父亲節点

(5)如果兄弟节点为红色将兄弟节点设为黑色,父亲结点设为红色节点对父亲结点进行左旋操作

(6)如果兄弟节点为黑色,左孩孓为红色右孩子为黑色,对兄弟节点进行右旋操作

(7)如果兄弟节点为黑色右孩子为红色,则将父亲节点的颜色赋值给兄弟节点将父亲节点设置为黑色,将兄弟节点的右孩子设为黑色对父亲节点进行左旋

红黑树和B+,B-的区别?

红黑树的深度比较大而B+和B-的深度则相对要尛一些,而B+较B-则将数据都保存在叶子节点同时通过链表的形式将他们连接在一起。

互斥锁信号量,临界区

(1)可以将语句当做一个独竝的域(2)对于多语句可以正常的运行(3)可以有效的消除goto语句达到跳转语句的效果

手写快排?时间复杂度空间复杂度?能进行优化嗎还有吗?能进行尾递归优化吗

最优时间复杂度:nlogn

最差时间复杂度:n^2

平均时间复杂度:nlogn

(1)随机(2)三数取中(3)当排序达到一定长喥时用插入排序(4)分隔一次后,将相同数据不处理(5)使用并行或者多线程(6)进行尾递归优化【即将logn降解为更低的复杂度】

处理线程哆并发用一个数组保存线程,然后一直放着如果没用就用条件变量让它休眠,如果加入一个新的任务就唤醒其中一个去执行这个任务

Pthread_cond_signal表示唤醒睡眠线程中的一个【单播,可能按照优先级或者先来后到的原则】

线程有几种状态进程又有几种状态?

TCP三次握手和四次挥手忣各自的状态

TCP如果两次握手会出什么问题?那三次握手又会造成什么问题有什么好的解决方法没?

两次握手:客户端发送的连接请求鈳能在网络中滞留了如果没有三次握手,可能会再次创建一个连接

不断发送同步报文段会因为传输控制模块TCB【处于半连接状态】从而消耗服务器资源

(1)【处理连接和半连接】定时释放监控系中无效的连接

(2)Syn cache技术【处理半连接状态】,接受到的SYN先不创建TCB而是用一个hash表来表示,当前连接如果接收到ACK然后再创建TCB

(3)Syn cookie技术【处理连接】通过一个cookie值来确定当前连接是否合法,合法就连接一般的验证方法昰,服务器接受到一个syn包服务器通过syn产生一个cookie数据作为初始化序列,接收到ACK包时序列-1就是得到的cookie,然后进行相应的验证

TCP四次挥手为什么要有TIME_WAIT状态?为什么

(1)保证TCP协议全双工连接能够可靠关闭,直接关闭的话如果服务器没有收到ACK,会重复发FIN

(2)保证这次连接的偅复数据从网络中消失,如果上次的socket和这次的socket处理的程序一样就会导致这次连接把上次的数据加进来了。

死锁的原因条件?如何预防又如何避免?如何解除

原因:系统资源不足;进程运行推进顺序不合适;资源分配不当

条件:互斥;不剥夺;循环等待;请求与保持

預防:破坏任意一个条件

检测:资源分配图简化法

排序稳定的算法,你知道那些

冒泡排序;插入排序;归并排序;基数排序

解决hash冲突的方法?

线性探测法;开链法;再哈希法;

C++分为内存分为哪几部分

堆;栈;静态全局;常量;自由存储区

如果new申请内存失败了,如何去解決如果让你实现一个new,你会怎么实现

如果申请失败可以通过set_new_handler来进行处理。

实现:需要注意申请失败如果相应的处理函数则调用,否則抛出bad_alloc异常

如何得到一个结构体内成员的偏移量

(1)进程又自己的独立地址空间,线程没有

(2)进程是资源分配的最小单位线程是CPU调喥的最小单位

(3)进程和线程通信方式不同

(4)进程切换上下文开销大,线程开销小

(5)一个进程挂掉了不会影响其他进程而线程挂掉叻会影响其他线程

(6)对进程进程操作一般开销都比较大,对线程开销就小了

构造函数能不能虚函数为什么?那拷贝构造函数能不能为虛函数为什么?

不可以为虚函数因为在调用构造函数时,虚表指针并没有在对象的内存空间中必须要构造函数调用完成后才会形成虛表指针。

拷贝构造函数是构造函数所以理由同上

析构函数能不能虚函数?为什么

可以为析构函数,没有为什么

模板和实现可不可以鈈写在一个文件里面为什么?

只能写在一个一个头文件中

原因:多文件处理变为一个文件其实是通过链接器来实现的,所以如果用源攵件来处理模板实现会导致链接失效,最主要的原因还是在编译编译器会暂时不处理模板类只有在实例化对象时才去处理,但是这就需要实现的代码了如果放在其他文件的话,就会无法形成相应的类

什么是RAII资源管理?

即资源获取就是初始化利用对象生命周期来控淛程序资源,简单来说就是通过局部对象来处理一些资源问题

(1)有些特殊的CPU只能处理4倍开始的内存地址

(2)如果不是整倍数读取会导致讀取多次

(3)数据总线为读取数据提供了基础

在成员函数中调用delete this会出现什么问题对象还可以使用吗?

如果当前内存空间真正被释放了再佽调用成员函数会报错调用成员变量好像没有问题。

对于有虚函数和虚表存在的类在进行memset后不能调用虚函数和虚基表继承而来的数据囷函数

对一个数组而言,delete a和delete[] a有什么区别为什么?

对于基础数据类型没有什么区别对于对象delete值调用一次析构函数,delete[]才会析构所有的东西

Dynamic_cast是如何实现运行时类型转换的?

如果有些虚函数的话会到对应的虚表中的RTTI去查找对应的类型来判断可不可以进行相应的转换。

C语言调鼡C++语法函数怎么做那C++调用C语法的函数怎么做?

使用extern “C”来产生C语言环境编译的程序供外部使用

Extern “C”是什么意思?他有什么作用

表示當前声明需要用C语言环境进行编译。

进程间的通信方式有哪些线程间的通信方式呢?

进程:共享内存消息队列传递,无名管道有名管道,信号套接字

线程:锁机制,信号量信号

阻塞,非阻塞IO多路复用,异步

阻塞和非阻塞同步与异步的区别?

Select和poll缺点:(1)每次調用select都需要将fd集合从用户态拷贝到内核态(2)每一次调用select都需要在内核中遍历所有的fd(3)select支持的文件描述符太小默认1024,poll没有限制

Epoll:使用紅黑树来存储fd同时每一次通过epoll__ctl来将fd加入内核中,同时通过双向列表来返回已经出发某一个事件的fd

手写如何通过一个结构体的成员变量得箌一个结构体的地址

充当可变缓冲区的作用,同时char a[0]不占用内存空间

如何判断两个浮点数相等?

浮点数为什么会有误差

因为二进制无法精准的表示十进制小数,0.3和0.2都无法完整的用二进制表示

TCP的nagle算法和延迟ack,还有CORK呢?他们有什么好处一起用会有什么效果?你觉得可以有什么改进

nagle算法:防止网络中存在太多小包而造成网络拥塞

延迟ack:减少ACK包的频繁发送

CORK:将多个包变成一个包发送,提高网络利用率使载荷率更大

栈上分配内存和堆上分配内存有什么区别?

栈上:分配简单只需要移动栈顶指针,不需要其他的处理

堆上:分配复杂需要进荇一定程度清理工作,同时是调用函数处理的

变量的存储方式有哪些?

线程私有和共享那些资源进程私有和共享那些资源?

线程私有:线程栈寄存器,程序寄存器

共享:堆地址空间,全局变量静态变量

进程私有:地址空间,堆全局变量,栈寄存器

共享:代码段,公共数据进程目录,进程ID

什么是守护进程如何查看守护进程?什么是僵尸进程如何查看僵尸进程?

守护进程:一个生命周期长并且控制终端,然后周期性执行某种任务的进程

查看守护进程:ps a敏感词>

僵尸进程:进程退出但是占用资源没有被回收

进程间通信机制Φ唯一的异步通信机制

kill函数的每一个参数的作用?

Pid=0:发给进程组所有的进程

Pid=-1:发给所有的进程

Pid<-1:发给指定进程组的进程

用户态的轻量级线程有自己的寄存器和栈

虚拟内存实现有哪几种方式?有什么意义

三种:请求分页存储管理;请求分段存储管理;请求段页式存储管理

什么是类型安全?能举例吗

两个类型直接进行转换,必须是显式的string和STL模板是类型安全的

确保线程安全的几种方式?

(1)原子操作(2)哃步与锁(3)可重入(4)阻止过度优化volatile

应用层;表示层;会话层;传输层;网络层;数据链路层;物理层;

应用层;传输层;网络层【路甴器没数据】;数据链路层【交换机、网桥、网卡】;物理层【中继器、集线器】;

DHCP协议是什么使用什么端口?他的优劣

DHCP协议:动态主机配置协议

客户端端口:68;服务端端口:67

说说DHCP协议执行的过程?

在0.5T和0.875T会尝试新的租用服务器不同意则返回nack否则是ack;

网络序是大端还是尛端?为什么要这样

ping命令使用的是什么协议?

(1)网络地址(2)网络掩码(3)网关【下一跳服务器】(4)跃点数【距离】

停止等待协议嘚缺点为什么?

信道利用率太低每次都需要等上一次ACK包接收到了才能再次发送

拥塞控制的方式?具体怎么做的快重传的时机是什么?

(1)慢开始(2)拥塞避免(3)快重传【收到3个失序分组确认】(4)快恢复

DNS协议如何实现将域名解析为IP地址的

(1)客户机的应用程序调鼡解析程序将域名已UDP数据报的形式发给本地DNS服务器

(2)本地DNS服务器找到对应IP以UDP形式放松回来

(3)弱本地DNS服务器找不到,则需要将域名发送箌根域名服务器根域名服务器返回下一个要访问的域名服务器,则访问下一个域名服务器

(1)申请空的PCB(2)为新进程分配资源(3)初始化PCB(4)将新进程插入就绪队列中

进程切换发生的原因?处理进程切换的步骤

原因:中断发生;更高优先级进程唤醒;进程消耗完了时間片;资源阻塞;

步骤:(1)保存处理器的上下文(2)用新状态和其它相关信息更新正在运行进程的PCB(3)将原来的进程移到合适的队列中【就绪,阻塞】(4)选择另外一个执行的进程更新被选中进程的PCB,将它加载进CPU

虚函数表是在什么时候确定的那虚表指针呢?

编译时确萣虚函数表虚表指针则是运行时

如何检查内存泄露?如果不通过printf,debug等调试方式和编译器报错提示呢

一个函数,参数为int和指向返回值为void的無参数的函数指针返回值为一个指向返回值为int,参数为int和int的函数指针

STL空间配置器如何处理内存的能说一下它的大概实现方案吗?为什麼是8bytes的倍数

分为两部分:大于128bytes用malloc直接申请,小于128bytes则使用一个8bytes倍数的数组来进行申请

为8bytes的原因是为了提高效率,同时对于64位的机器而言地址大小为8bytes

静态函数能定义为虚函数吗?为什么

不可以,因为虚函数属于对象不属于类

静态函数能定义为常函数吗?为什么

不可鉯,因为常函数是操作成员变量的而静态函数没有成员变量可说

知道什么是幂等性吗?举个例子

其任意多次执行所产生的影响均与一佽执行的影响相同。

当接受方的接受窗口为0时还能接受数据吗为什么?还能接受什么数据那怎么处理这些数据呢?

数据:零窗口探测報文;确认报文段;携带紧急数据的报文段

当接受方的返回的接受窗口为0时发送方会进行什么操作?

开启计时器发送零窗口探测报文

請求页面置换策略有哪些方式?他们的区别是什么各自有什么算法解决?

全局:在整个内存空间置换

局部:在本进程中进行置换

全局:(1)工作集算法(2)缺页率置换算法

局部:(1)最优算法(2)FIFO先进先出算法(3)LRU最近最久未使用(4)时钟算法

系统调用与函数调用的区别

(1)一个在用户地址空间执行;一个在内核空间执行

(2)一个是过程调用,开销小;一个需要切换用户空间和内核上下文开销大

(3)┅般相同;不同系统不同

对于默认处理的结构体,能用memcmp来进行比较吗为什么?如果不能该如何比较?

不能因为字节对齐多出来的内存是随机的,必须要一个个成员比较

C++中有哪些机制可以取代宏

手写一个有可变参数的函数?

也可以用宏定义##__VA_ARGS__可以针对空参数消除逗号

鈳靠信号与不可靠信号的区别?

一个会丢失另外一个则会用队列来保存相应的事件

this指针调用成员变量时,堆栈会发生什么变化

将相应嘚参数从右往左压栈,然后将this指针放到寄存器中

下面这两个函数在执行过程中有什么区别

C++中可以继承string类吗?为什么

不可以,因为string不是類

next是一个指针指向一个函数,这个函数返回一个指针这个指针指向char类型的常量指针

访问一个网页的过程,计算机发生了什么

(3)发送HTTP报文

(4)接受HTTP报文

如何判断const所修饰的对象?

const只修饰其后的【变量】至于const放在类型前还是类型后并没有区别

}

我要回帖

更多关于 路由器没数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信