计算机网络基础面试题有哪些(计算机网络基础面试题及答案)

网络设计 341
今天给各位分享计算机网络基础面试题有哪些的知识,其中也会对计算机网络基础面试题及答案进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、TCP/IP计算机网络协议面试题汇总

今天给各位分享计算机网络基础面试题有哪些的知识,其中也会对计算机网络基础面试题及答案进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

TCP/IP计算机网络协议面试题汇总

LISTEN – 侦听来自远方TCP端口的连接请求;

SYN-SENT -在发送连接请求后等待匹配的连接请求;

SYN-RECEIVED – 在收到和发送一个连接请求后等待对连接请求的确认;

ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;

FIN-WAIT-1 – 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;

FIN-WAIT-2 – 从远程TCP等待连接中断请求;

CLOSE-WAIT – 等待从本地用户发来的连接中断请求;

CLOSING -等待远程TCP对连接中断的确认;

LAST-ACK – 等待原来发向远程TCP的连接中断请求的确认;

TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;

CLOSED – 没有任何连接状态;

路由器仅根据网络号net-id来转发分组,当分组到达目的网络的路由器之后,再按照主机号host-id将分组交付给主机;同一网络上的所有主机的网络号相同。

从主机号host-id借用若干个比特作为子网号subnet-id;子网掩码:网络号和子网号都为1,主机号为0;数据报仍然先按照网络号找到目的网络,发送到路由器,路由器再按照网络号和子网号找到目的子网:将子网掩码与目标地址逐比特与操作,若结果为某个子网的网络地址,则送到该子网。

每台主机或路由器在其内存中具有一个ARP表(ARP table),这张表包含IP地址到MAC地址的映射关系。将IP地址通过广播,根据目标IP地址解析到MAC地址。

1. Ping

Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。

Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

2. Traceroute

Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。

Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。

用于解决内网中的主机要和因特网上的主机通信。由NAT路由器将主机的本地IP地址转换为全球IP地址,分为静态转换(转换得到的全球IP地址固定不变)和动态NAT转换。

每个路由器维护一张表,记录该路由器到其它网络的”跳数“,路由器到与其直接连接的网络的跳数是1,每多经过一个路由器跳数就加1;更新该表时和相邻路由器交换路由信息;路由器允许一个路径最多包含15个路由器,如果跳数为16,则不可达。交付数据报时优先选取距离最短的路径。

1、 客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了;

2、 服务器从中选出一套加密算法和 hash 算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的颁发机构;

3、客户端收到网站的证书之后要做下面的事情:

4、服务器接收到客户端传送来的信息,要做下面的事情:

5、如果计算法 hash 值一致,握手成功。

把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

网络方面都面试些什么内容

这是yahoo面试题,供你参考:

Question 1. (单选)

IP地址18.7.0.1属于:

1. A类地址

2. B类地址

3. C类地址

4. D类地址

Question 2. (单选)

FTP协议的端口号码是:

1. 21

2. 23

3. 25

4. 1080

Question 3. (多选)

正则表达式 ab?c 匹配的字符串是:

1. abcd

2. acd

3. abdc

4. abbc

Question 4. (多选)

UNIX程序运行时会自动打开的文件描述符包括:

1. 标准输入

2. 标准输出

3. 标准错误

4. 系统日志

Question 5. (多选)

下列可以用于进程间通信的技术有:

1. 管道

2. SOCKET

3. 共享内存

4. 消息队列

Question 6. (多选)

数据通信中数据传输速率是最重要的性能指标之一,它指单位时间内传送的二进制数据

位数,常用的计量单位是:

1. Kbps

2. Byte

3. MB

4. Mbps

Question 7. (单选)

互操作性是指在不同环境下的应用程序可以相互操作,交换信息。要使***用不同数据格式

的各种计算机之间能够相互理解,这一功能是由下面哪一层来实现的?

1. 应用层

2. 表示层

3. 会话层

4. 传输层

Question 8. (单选)

在UNIX的Shell程序中,可以使用位置变量。若要指明Shell引用的最近后台进程的号码,

可以使用位置变量

1. $$

2. $!

3. $#

4. $-

Question 9. (单选)

设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度的完全二叉树各

有f个结点和c个结点,下列关系式不正确的是:

1. f=c

2. cf

3. f=2k+1-1

4. C2k-1

Question 10. (单选)

某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E

。该二叉树结点的前序序列为

1. E、G、F、A、C、D、B

2. E、A、C、B、D、G、F

3. E、A、G、C、F、B、D

4. E、G、A、C、D、F、B

Question 11. (单选)

某二叉树结点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E

该二叉树对应的树林包括多少棵树?

1. 1

2. 2

3. 3

4. 4

Question 12. (单选)

***设就绪队列中有10个进程,系统将时间片设为200ms, CPU进行进程切换要花费10ms。

则系统开销所占的比率约为

1. 1%

2. 5%

3. 10%

4. 20%

Question 13. (单选)

长度相同但格式不同的2种浮点数,***设前者阶码长、尾数短,后者阶码短、尾数长,其

它规定均相同,则它们可表示的数的范围和精度为:

1. 两者可表示的数的范围和精度相同

2. 前者可表示的数的范围大但精度低

3. 后者可表示的数的范围大且精度高

4. 前者可表示的数的范围大且精度高

Question 14. (单选)

设有一个用数组Q[1..m」表示的环形队列,约定f为当前队头元素在数组中的位置,r为

队尾元素的后一位置(按顺时针方向),若队列非空,则计算队列中元素个数的公式应为

1. r-f

2. (m+r-f) mod m

3. (m-r+f)mod m

4. (m-r-f) mod m

Question 15. (单选)

计算机最主要的工作特点是

1. 存储程序与自动控制

2. 高速度与高精度

3. 可靠性与可用性

4. 有记忆能力

Question 16. (单选)

具有多媒体功能的微型计算机系统中,常用的CD-ROM是

1. 只读型大容量软盘

2. 只读型光盘

3. 只读型硬盘

4. 半导体只读存储器

Question 17. (单选)

下列字符中,ASCII码值最小的是

1. a

2. A

3. x

4. Y

Question 18. (单选)

当个人计算机以拨号方式接入Internet网时,必须使用的设备是

1. 网卡

2. 调制解调器(Modem)

3. 电话机

4. 浏览器软件

Question 19. (单选)

微机计算机硬件系统中最核心的部件是

1. 主板

2. CPU

3. 内存储器

4. I/O设备

Question 20. (单选)

下列关于系统软件的四条叙述中,正确的一条是

1. 系统软件与具体应用领域无关

2. 系统软件与具体硬件逻辑功能无关

3. 系统软件是在应用软件基础上开发的

4. 系统软件并不具体提供人机界面

Question 21. (单选)

在计算机网络中,表征数据传输可靠性的指标是

1. 传输率

2. 误码率

3. 信息容量

4. 频带利用率

Question 22. (单选)

以下哪一个不是栈的基本运算

1. 删除栈顶元素

2. 删除栈底元素

3. 判断栈是否为空

4. 将栈置为空栈

Question 23. (单选)

设有关系R(S,D,M),其函数依赖集F={S→D,D→M}。则关系R至多满足

1. 1NF

2. 2NF

3. 3NF

4. BCNF

Question 24. (单选)

网络协议的三个要素是语法、语义与

1. 工作原理

2. 时序

3. 进程

4. 服务原语

Question 25. (单选)

WWW的超链接中定位信息所在的位置使用的是

1. 超文本(hypertext)技术

2. 统一***定位器(URL, Uniform Resource Locators)

3. 超媒体(hypermedia技术)

4. 超文本标注语言HTML

Question 26. (单选)

提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错

误技术无法做到完美无缺和绝无错误,这就需要

1. 测试

2. 消除错误

3. 避开错误

4. 容错

Question 27. (单选)

可行性研究要进行一次_____需求分析

1. 详细的

2. 全面的

3. 简化的、压缩的

4. 彻底的

Question 28. (多选)

以下哪些内容需要进行配置管理?

1. 代码

2. 需求

3. 详细设计

4. 项目例会记录

Question 29. (单选)

详细设计的结果基本决定了最终程序的

1. 代码规模

2. 运行速度

3. 质量

4. 可维护性

Question 30. (多选)

软件开发包括哪些过程?

1. 需求分析

2. 设计

3. 编码

4. 测试

Question 31. (多选)

C++编译器通常不进行( )的检查

1. 函数原型

2. 变量类型

3. 数组边界

4. 指针类型

Question 32. (多选)

在派生类中能直接访问基类的哪些成员?

1. 公有成员

2. 保护成员

3. 私有成员

4. 所有成员

Question 33. (单选)

已知f1 f2同一类两个成员函数,但f1不能调用f2;则下列哪种说***确?

1. f1 f2都是静态函数

2. f1是静态,f2不是静态函数

3. f1不是静态函数,f2是静态函数

4. f1 f2都不是静态函数

Question 34. (单选)

X = ++i + ++j; X的值等于?

1. i + j + 3

2. i + j + 2

3. i + j + 1

4. i + j

Question 35. (单选)

设int x; 则经过()之后,语句*px=0;可以将变量x的值置为0。

1. int *px;

2. int const *px = x;

3. int *const px=x;

4. const int *px = x;

Question 36. (单选)

使用操作符setw对数据进行格式输出时,需要包含( )文件

1. iostream.h

2. fstream.h

3. iomanip.h

4. stdlib.h

Question 37. (多选)

调用一成员函数时,下面列出的哪些情况使用动态联编(动态绑定)?

1. 通过对象调用一虚函数

2. 通过指针或引用调用一虚函数

3. 通过对象调用静态函数

4. 通过指针或引用调用一静态函数

Question 38. (单选)

***定C是一个类,要为其实现加号运算符重载成员函数,实现两个C类对象的加法,并返

回结果。该成员函数的声明应该为:

1. C operator+(C a, C b);

2. C operator+ (C a)

3. operator+ (C a)

4. C operator+(C a, C b)

Question 39. (多选)

关于类的构造函数,哪些说法是正确的?

1. 可以是虚函数

2. 返回类型只能是void

3. 一个类只能有一个构造函数

4. 没有任何返回类型

Question 40. (单选)

C++中,对于基类中的protected成员,当以protected方式派生一个新类时,该成员将成

为派生类的( )成员

1. private

2. protected

3. public

4. 非法

Question 41. (单选)

C++基类指针可以访问派生类对象,但不能访问派生类对象的( )成员

1. private

2. protected

3. public

4. 新增

Question 42. (多选)

const int *p说明不能修改 ( )

1. p指针

2. p指针指向的变量

3. p指针指向的数据类型

4. 上述A、B、C三者

Question 43. (多选)

下列定义中,哪些是错误的?

1. template T foo (int *T);

2. inline template void foo (T, unsigned int );

3. template T foo (U);

4. template foo (T, T);

Question 44. (单选)

考虑函数原型void test(int a,int b=7,char=tquo;*tquo;),下面的函数调用中,属于不合法调

用的是

1. test(5);

2. test(5,8);

3. test(6,tquo;#tquo;)

4. test(0,0.tquo;*tquo;);

Question 45. (多选)

下面关于iterator的用法,哪些是错误的?

const vector ivec;

vector svec;

list ilist;

1. vector::iterator it = ivec.begin();

2. list::iterator it = ilist.begin() + 2;

3. vector::iterator it = svec[0];

4. for (vector::iterator it=svec.begin();it!=svec.end();++it) { …}

Question 46. (多选)

下面的函数声明中,哪些声明表示函数会抛出异常?

1. void funca (int) throw(string);

2. void funcb(int) throw ();

3. void funcc (int);

4. void funcd (int) throw (Exception);

Question 47. (单选)

有如下程序:

class BASE{

char c;

public:

BASE(char n):c(n){}

virtual~BASE(){cout };

class DERIVED:public BASE{

char c;

public:

DERIVED(char n):BASE(n+1),c(n){}

~DERIVED(){cout };

int main()

{  DERIVED(tquo;Xtquo;);

return 0;

}

执行上面的程序将输出()

1. XY

2. YX

3. X

4. Y

Question 48. (多选)

下面哪些运算符不能被重载?

1. 作用域运算符“::”

2. 对象成员运算符“.”

3. 指针成员运算符“-”

4. 三目运算符“? :”

Question 49. (单选)

下面有关重载函数的说法中正确的是

1. 重载函数必须具有不同的返回值类型

2. 重载函数形参个数必须不同

3. 重载函数必须有不同的形参列表

4. 重载函数名可以不同

Question 50. (单选)

C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行

的最大改进是

1. 面向过程

2. 面向对象

3. 安全性

4. 复用性

Question 51. (问答)

编写类String的构造函数、析构函数和赋值函数

已知类String的原型为:

class String

{

public:

String(const char *str = NULL); // 普通构造函数

String(const String other); // 拷贝构造函数

~ String(void); // 析构函数

String operate =(const String other); // 赋值函数

private:

char *m_data; // 用于保存字符串

};

请编写String的上述4个函数。

Question 52. (问答)

请实现一个“先进先出(FIFO)”队列类;并写一段示例代码来演示如何使用您定义的

类完成队列的数据操作。

Question 53. (问答)

请编写代码完成如下功能:

1. 类Shape是纯虚基类,Circle和Squre都是Shape类的派生类;

2. 每个实例都有一个唯一的ID,该ID自动分配,全局统一。如在执行 Circle c1,c2;

Sqaure s1, s2;后,c1的id是1, c2的id是2,s1的id是3,s2的id是4。

3. 每个类实现方法area,计算该实例图形的面积

4. 为类重载cout操作符,输出的数据格式为“名字 id 图形面积”(如:Square 5 ar

ea=100)

5. 实现void displayShapes (Shape []pShape, int iShapeCount); 输出pShape数组中

没有Shape的信息。

6. 实现main函数,创建10个Circle实例,5个Square实例,调用displayShapes()函数输

出Shape信息。

Question 54. (问答)

通常类A的拷贝构造函数的原型写为A(const A);,请问为什么参数一定要使用引用形式?

Question 55. (问答)

C++中的空类(没有定义任何成员的类,如:class Empty {};),默认产生哪些类成员

测试同学必备的网络知识

对于测试同学来说,计算机网络的基础知识是必不可少的,话不多说,先来整理一波高频网络面试题。

包括GET,POST ,PUT,DELETE,HEAD,OPTIONS,PATCH,TRACE , CONNECT 等9种方法,常用的为前四种

1、请求效率。GET比POST的请求效率更高。GET产生一个TCP数据包,POST产生两个TCP数据包(划重点,最重要的区别)

2、安全性。Get是不安全的,在传输过程中,数据被放在请求的URL中,POST相对安全,将请求数据放在body中,但是通过抓包也是可以获取到参数的,想要真正的安全,需要用***S的加密协议

3、传输数据量。GET请求数据大小受限于URL长度(***字节),POST请求数据不受限制

4、使用场景。GET主要从服务器上获取数据,例如查看新闻功能,POST主要用于向服务器提交数据,例如用户登录功能

1XX。信息,服务器收到请求,需要请求者继续执行操作

2XX。成功,操作被成功接收并处理

3XX。重定向,需要进一步的操作以完成请求

4XX。客户端错误,请求包含语法错误或无法完成请求

5XX。服务器错误,服务器在处理请求的过程中发生了错误

200 OK :服务器成功处理了请求

301 Moved Permanently(重定向):永久移动。请求的***已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替

302 Found:临时移动。与301类似。但***只是临时被移动。客户端应继续使用原有URI

304 Not Modified:未修改。所请求的***未修改,服务器返回此状态码时,不会返回任何***。客户端通常会缓存访问过的***,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的***

400 Bad Request:客户端请求有语法错误,不能被服务器所理解

401 Unauthorized:请求未经授权。例如访问未经授权的页面

403 Forbidden:服务器收到请求,但是拒绝提供服务。例如访问被禁止的网站目录

404 Not Found :请***不存在。例如:输入了错误的URL

500 Internal Server Error:服务器遇到错误,无法给请求提供服务

基于Token的身份验证流程:

1、客户端使用用户名uid和密码pwd去请求登录

2、服务端收到请求,将uid用一个算法例如(HMAC-SHA256算法)+秘钥(只有自己知道)去做签名sign,然后把这个签名sign和数据uid一起作为Token, 发送给客户端,服务端不保存Token

3、客户端收到 Token 以后把它存储起来,比如放在 Cookie 或者 Local Storage 里

4、客户端每次向服务端请***的时候需要带着服务端签发的 Token

5、服务端收到请求,然后去验证客户端请求里面带着的 Token(即用uid按照同样的算法,将算出的结果与请求带过来的Token核对),如果验证成功,就向客户端返回请求的数据

基于Session的身份验证流程:

1、客户端使用用户名uid和密码pwd去请求登录

2、服务端收到请求,会生成一个会话标识Sessionid,即一个随机字符串,发送给客户端。每个用户登录都会生成一个,对服务器是一个巨大的开销

3、客户端收到Sessionid 以后可以把它存储起来,比如放在 Cookie 里

4、客户端每次向服务端请***的时候需要带着服务端返回的 Sessionid

5、服务端收到请求,然后去验证客户端请求里面带着的Sessionid,如果与保存在服务端的相同,就向客户端返回请求数据

三者的区别:

1、Cookie是客户端保存数据的一种手段,而Session是服务端保存数据的一种机制,Session保存在服务端内存中,机器重启之后就没有了,Token和Session均是一种身份认证机制

2、主要比较Session和Token机制的优缺点,Token的身份验证机制应用更普遍,优点如下:

A、无状态,可拓展

无状态:即程序需要验证每一次请求,从而辨别客户端的身份

可拓展:在服务端的内存中使用Session存储登录信息,伴随而来的是可拓展性问题,使用Token可以更好的拓展,同时节省了服务器的开销。把Token写到***请求头中,以保证***请求的无状态。例如有多台服务器,使用负载均衡,第一次登录转发到了A,A中seesion缓存了用户的登录信息,第二次登录转发到了B,这时候就丢失了登录状态,当然这样也是有解决方案可以共享session,但token只需要所有的服务器使用相同的解密手段即可

B、支持移动设备

当客户端是原生平台时,cookie不被支持,可***取Token方式

C、跨程序调用

避免了跨域***共享的问题

D、安全(防止csrf攻击)

签名校验机制。Session是基于Cookie进行用户识别的, Cookie如果被截获,用户就会很容易受到跨站请求伪造的攻击,一般将Token写到***请求头中。

举个csrf(即跨站点请求伪造)攻击的例子:

原理:(1)同一浏览器同一域名下的cookie可共享,跨域的不能携带cookie(2)***only,后端开启关闭,开启之后,本地js读不到cookie的字段,不开启才能读到cookie的字段

在A项目中,先登录A项目,然后在构造的js文件中,加一个跳转至A项目的链接(比如做删除操作),A项目是没有加Token校验的,从js文件直接跳转至A项目,携带cookie,可做删除操作,加了Token校验之后,就无法进行删除操作了

从上而下:

1、应用层

为操作系统或网络应用程序提供访问网络服务的接口。

包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、***TP(邮件传送协议),POP3协议(邮局协议),***协议(Hyper Text Transfer Protocol)

2、表示层

表示层的数据转换包括数据的加密、压缩、格式转换等

3、会话层

负责建立、管理、终止进程之间的会话

4、传输层

传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题

包含的主要协议:TCP协议(Tran***ission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议)

5、网络层

负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能

包含的主要协议:IP协议(Internet Protocol,因特网互联协议)、ICMP协议(Internet Control Message Protocol,因特网控制报文协议)、ARP协议(Address Resolution Protocol,地址解析协议)、RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)

6、数据链路层

为网络层提供可靠的数据传输

包含的主要协议:以太网协议

7、物理层

确保原始的数据可在各种物理媒体上传输

关于计算机网络基础面试题有哪些和计算机网络基础面试题及答案的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码