计算机网络---基础题目汇总五

1、int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?
正确答案: C

A、是否打开log信息
B、是否打开后台log信息
C、后台等待连接队列的最大限制值
D、后台等待连接队列的最小限制值
E、无意义

int listen(int sockfd,int backlog)
sockfd:是bind后的文件描述符.
backlog:设置请求排队的最大长度.当有多个客户端程序和服务端相连时, 使用这个表示可以介绍的排队长度. listen函数将bind的文件描述符变为监听套接字.返回的情况和bind一样.

《TCP/IP详解 卷1:协议》 解释
1)backlog 用于在TCP层接收链接的缓冲池的最大个数,这个个数可在应用层中的listen函数里设置,当客户链接请求大于这个个数(缓冲池满),其它的未进入链接缓冲池的客户端在tcp层上tcp模块会自动重新链接,直到超时(大约57秒后)
2)我们的应用层的链接完成是要从tcp层的链接缓冲池中移出一个(accept函数实现)
backlog是连接请求队列的最大长度。
(1)在WinSock1.1中最大值5。如果backlog小于1,则backlog被置喂1;若backlog大于SOMAXCONN(定义在winsock.h中,值为5),则backlog被置为SOMAXCONN。
(2)在WinSock2中,没有制定具体值,它由服务提供者决定
(3)有时候backlog设置很小,这时我们接进多少台机器都没问题是因为服务器机器处理速度很快队列来不及填满就处理完了,而且在同一个时刻到来的连接还是很少的

2、linux tcpdump监听网卡 eth0,对方主机IP为10.1.1.180,tcp端口为80的数据,相应命令为?
正确答案: D

A、tcpdump -h eth0 -nn 'tcp and host 10.1.1.180:80'
B、tcpdump -i eth0 -nn 'tcp and host 10.1.1.180:80'
C、tcpdump -h eth0 -nn 'tcp and port 80 and host 10.1.1.180'
D、tcpdump -i eth0 -nn 'tcp and port 80 and host 10.1.1.180'

解析:
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump采用命令行方式,它的命令格式为:

tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ] [ -C file_size ] [ -F file ] [ -i interface ] [ -m module ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret,...  ] [ -y datalinktype ] [ -Z user ] [ expression ]

监视指定网络接口的数据包:

tcpdump -i eth1

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0。

可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包:

tcpdump host 210.27.48.1 

监视指定主机和端口的数据包:

如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令

tcpdump tcp port 23 and host 210.27.48.1

3、模块A给部署在多台机器上的模块B采用轮询的方式发起查询请求,请问这样做优势是什么?
1.减少请求模块B的频率 2.减少系统的故障率 3.减少模块A所在机器的网络IO 4.减少模块A等待结果的时间
正确答案: C

A、(1、2、3、4)
B、(2、3)
C、(2、4)
D、(3、4)

1.模块A对模块B请求的频率取决于模块A的业务,轮询B并不能降低频率;2某一台模块B不能工作的情况下整个系统仍旧正常运行,减少故障率;3,同1,并不能降低;4,有效提高模块B的并发,减少A的等待时间

4、假设Apache产生的日志文件名为access_log,在apache正在运行时,执行命令mv access_log access_log.bak,执行完后,请问新的apache的日志会打印到哪里,请选择下列描述正确的是?
正确答案: B

A、系统会检查access_log文件是否存在,若不存在则创建。
B、虽然此时文件被改名,但是由于服务正在运行,因为它的inode节点的位置没有变,程序打开的fd仍然会指向原来那个inode,不会因为文件名的改变而改变。apache会继续向已改名的文件中追加日志。
C、系统会报错
D、以上答案都不正确

mv对inode的影响:
前提:使用mv命令搬移的文件目的地跟原文件在同一文件系统内
1) 系统会新建一个目录项,将新档案名称对应到inode number (注意,inode number并
没有变,只是对应了新的名字)
2) 删除旧档案
(搬移档案的行为对inode table没有任何影响,也不会将档案搬移到其他的block)

由此可见,在我们看来access_log  和  access_log.bak  是两个不同的文件,其实他
们是同一个文件,只是换了名字而已。
由于程序打开的fd指向原来的iNode,而MV操作并不会改变这个inode,因此对正在运行的程
序不会产生影响。

5、在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,传输速率为1Gbit/ s,电缆中的信号传播速度为200000km/s,若最小数据帧减少800bit,则最远的的两个站点之间的距离至少需要?
正确答案: B

A、增加160m
B、减少80m
C、减少160m
D、增加80

距离为:(800/10^9) * 2 * 10^8 = 160,160/2 = 80。
原因如下:
(800/10^9)是算的减少的数据帧传输的时间,由于要保证总的传输时间(2SML)一定,所以要保证把这段时间传输的距离减去,这段距离就是(800/10^9) * 2 * 10^8 = 160,而由于 此距离是来回的距离,所以要除以2。

6、网络协议的三要素有哪些?
正确答案: A B D

A、语义
B、语法
C、内容
D、交换规则

协议是通信双方为了实现通信所进行的约定或对话规则。 计算机网络的协议主要由语义、语法和交换规则三部分组成,即协议三要素:

1.语义:规定通信双方彼此“讲什么”,即确定协议元素的类型,如规定通信双方要发出什么控制
信息,执行的动作和返回的应答。
2.语法:规定通信双方彼此“如何讲”,即确定协议元素的格式,如数据和控制信息的格式。
3.交换规则:规定了信息交流的次序。

7、下列有关Nginx配置文件nginx.conf的叙述正确的是()
正确答案: A D

A、nginx进程数设置为CPU总核心数最佳
B、虚拟主机配置多个域名时,各域名间应用逗号隔开
C、sendfile on;表示为开启高效文件传输模式,对于执行下载操作等相关应用时,应设置为on
D、设置工作模式与连接数上限时,应考虑单个进程最大连接数(最大连接数=连接数*进程数)

域名可以有多个,用空格隔开
sendfile on; 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

你可能感兴趣的:(网络)