通信网络编程第六次作业

1、 何谓同步与异步?它们的区别是什么?

课本(P158)

同步与异步这两个概念与消息的通知机制有关,和消息如何处理无关。

对于消息而言,在同步的情况下,由消息处理者自己去等待消息是否被触发;

在异步情况下,由触发机制通知处理者,然后进行消息处理。

      

2、 何谓阻塞与非阻塞?它们与同步与异步的区别是什么?

课本(P158)

从消息处理机制来看,套接字编程可分为阻塞和非阻塞两种I/O模式。

阻塞模式:在指定套接字上调用函数来执行操作时,在操作没有完成之前,函数不会立即返回。

非阻塞模式:在指定套接字上调用函数执行操作时,无论操作是否完成,函数都会立即返回。

同步与异步是对于消息通知而言的两种消息通知方式;

阻塞与非阻塞是对于消息处理而言的两种消息处理方式;

3、 简述阻塞I/O的评价。

课本(P162)

优点:简单直接

缺点:在处理多个套接字连接时,串行处理多套接字的I/O操作会导致处理时间延长、程序执行效率降低等问题

4、 在阻塞I/O模型下,解决多个I/O请求的思路是什么?

课本(P162)

思路1:使用多线程并发处理多个I/O请求;

思路2:异步、非阻塞处理多个I/O请求。

5、 简述非阻塞I/O模型的评价。

课本(P166)

优点:对于多个套接字的网络I/O而言,非阻塞的方法可以避免串行等待I/O带来的效率低下等问题;

缺点:耗费CPU处理时间,不适合对实时性要求较高的应用。

6、 简述select函数的作用以及各参数的含义。

课本(P167)

函数原型:

int select

(

int nfds,

fd_set *readfds,

fd_set *writefds, 

fd_set *exceptfds,

struct timeval *timeout

);

参数含义:

nfds:是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述符的最大值加1,不能错!在Windows中这个参数的值无所谓,可以设置不正确。

readfds:(可选)指针,指向一组等待可读性检查的套接口。

writefds:(可选)指针,指向一组等待可写性检查的套接口。

exceptfds:(可选)指针,指向一组等待错误检查的套接口。

timeout:select()最多等待时间,对阻塞操作则为NULL。

函数作用:

用于确定一个或多个套接口的状态,对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息,用fd_set结构来表示一组等待检查的套接口,在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目。

7、 如何将套接字设置为非阻塞模式?

课本(P162)

调用ioctlsocket()函数将套接字设置为非阻塞模式。

8、画出I/O复用模型编程流程图。

      

       图片来自:http://itfish.net/article/49914.html

8、 WinPcap的主要功能有哪些?

课本(P224)

1)   直接在网卡上捕获原始数据帧,其捕获的数据帧可以是发往本机的,也可以是在其他设备上交互的;

2)   在数据帧递交给某个应用程序之前,根据用户指定的规则实现核心层数帧的过滤;

3)   通过网卡直接发送原始数据帧;

4)   搜集并统计网络流量信息;

9、 WinPcap中的数据捕获主要依赖哪几个组件?

1)   WinDump

2)   Sniffit

3)   ARP Sniffer

4)   Ethereal

10、        配置WinPcap开发环境,主要涉及哪几个方面?

课本(P231)

附加Winpcap的Include目录

附加Winpcap的Lib目录

引入常用库函数

12、请指出下列WinPcap过滤规则字符串的含义是什么?

1)(ip and tcp) and (host 192.168.1.100 or host 192.168.1.200)

捕获主机192.168.1.100与192.168.1.200之间传递的所有TCP数据包。

2) (ether src00:E0:4C:38:58) and (port 3000) and (ip and udp)

捕获源主机MAC地址为00:E0:4C:38:58,端口号为3000的所有UDP数据包

参考博客:https://www.cnblogs.com/snakewind/archive/2010/10/22/1858735.html

13、函数clock的作用是什么?返回值是什么?

       作用:

       计算你的机器运行一个循环或者处理其它事件到底花了多少时间

       返回值:

       函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数

14、何谓ARP欺骗?

由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!

15、WinPacp程序能否影响TCP/IP套接字程序?为什么?

       不能

              TCP/IP通过三次握手,四次挥手建立有效连接,传输可靠性高。

基于WinPcap编程,网络程序实际上是绕开操作系统的TCP/IP协议栈直接通过底层网络发送数据,因此,不能影响TCP/IP套接字程序。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值