网络面试题,linux + c +socket,搞的头都大了,请高手帮忙!!
题目一
1.能够捕获网络上的数据包。
2.若捕获的数据包为IP包,打印其上层协议类型,若上层协议为TCP/UDP则再次打印其应用层协议类型(如http.smtp等).
3.若捕获的数据包非IP包,则打印其源MAC,目的MAX,以及协议类型。
4.能够在端口9001上监听其他应用的UDP请求,并打印其请求的数据包内容(头部及数据体部分独立打印,内容见下面)
5.回复其他应用的UDP请求。
题目二
1.与题目一通过9001端口通讯,给题目一发送数据桢(桢格式如下所示)
2.支持使用IP地址作为参数连接题目二。
3.数据包长度随机产生,范围:1~255
4.打印题目一回复的内容并记录到文件。
请求桢格式至少包含:
版本号 3bit
请求类型 2bit 00->Request 01->Response 10/11->Reserved
数据长度 8bit
序列号 16bit,每发送一个数据包值曾一
数据体 0~255byte,起始位置包含32字节欢迎信息,其它内容随机生成。
环境为redhat 9.0,请高手看看用C代码如何实现上面2个功能,说说大致思路,需要用到那些知识,最好有代码参考。socket我刚入门,谢谢!!