Linux并发程序设计习题
1、路由器是根据哪一层的信息为数据包选择路由 ( C )
A 物理层
B 数据链路层
C 网络层
D 传输层
2、只用于同一主机内部进程间通信的socket应使用的协议族是 ( B )
A AF_INET
B AF_UNIX
C AF_NS
D AF_IMPLINK
3、在下列功能中,哪一个最好地描述了OSI(开放系统互连)模型的数据链路层( B )
A 保证数据正确的顺序、无错和完整
B 处理信号通过介质的传输
C 提供用户与网络的接口
D 控制报文通过网络的路由选择
4、某一网络子网掩码为255.255.255.248,则该网络能连接( C )台主机。
A 255台
B 16台
C 6台
D 8台
5、网络层传输的数据单位为( C )
A 原始比特流
B 帧
C 分组
D 字节
6、下面说法错误的是( C)
A accept函数连接建立成功会返回一个连接套接字
B listen函数会把普通套接字编程监听套接字
C TCP网络通信编程中不能使用sendto函数
D TCP网络通信中在close函数和接受函数之间进行四次挥手
7、猜牌问题S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4黑桃J、8、4、2、7、3草花K、Q、5、4、6方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?于是,S先生听到如下的对话:P先生:我不知道这张牌。Q先生:我知道你不知道这张牌。P先生:现在我知道这张牌了。Q先生:我也知道了。听罢以上的对话,S先生想了一想之后,就正确地推出这张牌是什么牌。请问:这张牌是什么牌?(D )
A 红桃A
B 黑桃4
C 草花Q
D 方块5
8、简述TCP和 UDP的异同点
相同点:都是传输层协议
不同点:tcp协议面向连接,提供可靠的传输;udp协议无连接,不保证可靠的传输
评分:共5点,每点2分
9、简述UNIX/Linux下主要的四种IO模型的特点
(1)阻塞式IO :最简单、最常用;效率低
(2)非阻塞式IO :可以处理多路IO;需要轮询,浪费CPU资源
(3)IO多路复用 :同时出路多路IO且不需要轮询
(4)信号驱动IO :异步通知模式,需要底层驱动的支持
评分:共4点,每点2.5分。
10、简述网络超时检测的三种方法。
(1)通过设置socket的属性,一次设置,管终身。代码如下:
struct timeval tv;
tv.tv_sec = 5;
tv.tv_usec = 0;
setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); //设置接收超时
recv() / recvfrom(); //从socket读取数据
(2)设置select函数的最后的参数是特定值,每次调用都需要重新赋值。
(3)设置定时器(timer), 捕捉SIGALRM信号
评分:每个点3分,全写对加1分。
11、写一段socket程序,实现服务器和客户端TCP/IP通信,编写客户端向服务器发送“HELLO”,服务器端IP地址为192.168.0.7 端口号是6000
服务器端:
Socket函数---1分
地址填充---1分
Bind函数---1分
Listen函数---1分
accept函数---1分
客户端:
Socket函数---1分
地址填充---1分
Listen函数---1分
Connect函数---1分
发送信息---1分
12、TCP三次握手,通讯双方是为了同步什么信息?
(1)客户端bai发送一个带duSYN标志的TCP报文到服务器。zhi这是三次dao握手过程中的zhuan报文1。
(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3) 客户必须再次回应服务段一个ACK报文,这是报文段3。