-
1
、
socket()
、
bind()
、
connect()
、
l isten()
、
accept()
、
close ()
在套接口编程中的作用各是什么?
socket():
执行网络通信,进程调用
socket
< p>函数,指定期望的通信协议
bind():
将一个本地协议地址赋予一个套接口
< /p>
connect():TCP
客户端与服务器建立连接用
c onnect
函数
connect
的三种出错返回
[1]
若
TCP
客户没有收到
SYN
分节的响应(
ACK
)——返回
ET IMEOUT
错误
[2]
若对客户的
SYN
响应是
RST
,
则表示该服务器主机在指定端口上没有进程在等
待与之连接
[3]
称为硬错(
hard error
)
,客户收到
RST
立即返回
ECONNREFUSED
错误
listen():
监听端口:
未连接的套接口
--
被动套接口
内核应该接收指向该套接口的连接请求
套接口状态:
CLOSED
--
LISTEN
服务端在
< p>socket和
bind
后,
accept< /p>
前调用
accept():
TCP
服务器调用
从已完成连接队列头返回下一个已完成连接
已完成队列为空,则进程睡眠
close():
用来关闭套接口,终止
TCP
连接
2
、
Ping
程序、< /p>
Traceroute
程序和
ICMP
消息守护程序 的工作原理。
ping
程序的工作原理是:
< p>向网络上的另一个主机系统发送ICMP
报文,
如果指定系统 得到了
报文,它将把报文一模一样地传回给发送者
.
Traceroute
程序工作原理
< br>1
、向目的地发送一个
TTL
为
1
的
UDP
数据报
2
、该数据报导致第一跳路由返送一个
ICMP
错误
< p>
3
、每递增
TTL
一次发送一个
UD P
数据报,逐步确定下一跳路由器
4
、 当
UDP
数据报(
TTL
增加到一定大小后)到达 最终目的地时,目标主机返送一个
ICMP
错误
ICMP
消息守护程序工作原理
1
、
UDP
应用程序使用
Unix
域套接口的描述字传递机制,
通过
Unix
域连接把自身的 p>
UDP
套
接口传递给
icmpd
共享
2
、
icmpd
得到该套接口的拷贝后通过
getsockname
获取绑定在此套接口上的端口 号,随即
关闭该套接口的本地拷贝
3
、
icmpd
一旦收到了由
UDP
应用进程 通过绑定在它的
UDP
套接口上的端口发送的
UDP
数
据报所引发的任何
ICMP
错误,就可以通过
Unix
域连接向该应用进程发送一个消息
4
、
UDP
应用进程需要使用多路复用方式等待其
U DP
套接口和
Unix
域套接口中任何一个有
数据到达而变为可读
3
、
CS< /p>
模式下,循环服务器和并发服务器分别是什么,它们的特点和异同是什么?分别描
< br>述
TCP
协议和
UDP
协议下两种服务器的 流程,可绘制流程图。
1
、重复服务器
(iterative server)
,也称循环服务器
在同一个时刻只可以
响应一个客户端的请求。
这种服务器上的进程能够预知在短时间内可
以处
理完请求,便亲自处理它。例如,典型的服务是通报时间。
并发服务器
(concurrent server)
在同一个时刻可以响应多个客户端的请求。
这种服务器上的进程事先不能预知完成服务请
求需要花多长时间,便以并发的方式处理它。
并发服务器通过激活别的进程来完成服务请求,而本身转入睡眠状态以等待另一个请求的
到来。典型的服务是处理文件信息,例如对文件的访问和打印文件。
UDP
循环服务器
:
套接口绑定公认端口
TCP
并发服务器
基本流程:
接收数据报
创建侦听套接口,等待客户机的请求
接受到一个客户机请求时,创建一个子进程
处理数据报
子进程进行数据处理
父进程继续等待新的客户机请求
返回处理结果
4
、
什么是信号驱动
I O
?其特点是什么?基本流程是如何的?
信号驱动
p>
I/O
模型:内核在描述字就绪时,发送
SIGIO
信 号通知进程
特点:等待数据报期间,进程不被阻塞
信号驱动
I/O
模型的步骤:
1
、设置信号捕获函数
2
p>
、调用函数
fcntl
,设置套接口属主(
F_SET OWN
选项)
3
、启动信号驱动
I/O
方式
调用函数
ioct l
的
FIOASYNC
选项
或调用函数
fcntl
,用命令
F_SETFL
命令打开
O_ASYNC
标志
5
、
什么是守护进程?
inetd
守护进程的工作原理。
守护进程的特征:
1
、所有守护进程都以超级用户优先权运行。
2
、没有与任何控制终端关联。
3
、父进程都是
init
进程
4
、输出消息的方式:统一由
syslog
记录
5
、生命期为系统的运行时间
6
、一直等待某个事件的发生,并处理事件
7
、调用其他进程处理各种请求
Syslogd
守护进程三种方法产生记录消息:
p>
1
、内核例程调用
log
函数,用户进程(如
syslogd
)
则可通过打开和读取
/dev/ klog
设备即可
读取消息
2
、用户进程(如守护进程
inetd
)调用
sys log
函数产生记录消息
3
、网络上其 他主机将记录消息发向
UDP
端口
514
inetd
守护进程的工作流程:
1
、启动阶段,读入
/etc/
文件并给该文件中指定的每个 服务创建套接口。
-
-
-
-
-
-
-
-
-
上一篇:福州大学部分数据通信课后答案
下一篇:福州大学VPN系统使用方法