网络面试题,linux + c +socket,搞的头都大了,请高手帮忙!!

z341223318 2009-03-03 05:46:59
题目一
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我刚入门,谢谢!!
...全文
861 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
greatlonglong 2009-03-06
  • 打赏
  • 举报
回复
开卷面试吗?反正我是记不住~~~。买本《UNIX网络编程卷I套接字联网API》带着去面试!
zhuxueling 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 z341223318 的帖子:]
题目一
1.能够捕获网络上的数据包。
2.若捕获的数据包为IP包,打印其上层协议类型,若上层协议为TCP/UDP则再次打印其应用层协议类型(如http.smtp等).
3.若捕获的数据包非IP包,则打印其源MAC,目的MAX,以及协议类型。
4.能够在端口9001上监听其他应用的UDP请求,并打印其请求的数据包内容(头部及数据体部分独立打印,内容见下面)
5.回复其他应用的UDP请求。

题目二
1.与题目一通过9001端口通讯,给题目一发送数据桢(…
[/Quote]
很基础的题,仅仅考协议而己。
看UNP,前4章的内容就能解决这两道题了。
blackbillow 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wowowobie 的回复:]
LINUX下使用socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP))能够抓到到本机的所有包,如果要抓网络上的包,要把网卡设成混杂
模式,把包抓进来进行分析就行。。。
同时你要另外建一个SOCKET作为UDP服务器, 上面的只能抓包不能回复。。。
libpcap和libnet也可以,不过你要先花很多时间去了解它们的框架
[/Quote]
我很赞同
wowowobie 2009-03-04
  • 打赏
  • 举报
回复
参考源码:
http://blog.chinaunix.net/u2/62281/showart_1096746.html
wowowobie 2009-03-04
  • 打赏
  • 举报
回复
LINUX下使用socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP))能够抓到到本机的所有包,如果要抓网络上的包,要把网卡设成混杂
模式,把包抓进来进行分析就行。。。
同时你要另外建一个SOCKET作为UDP服务器, 上面的只能抓包不能回复。。。
libpcap和libnet也可以,不过你要先花很多时间去了解它们的框架
  • 打赏
  • 举报
回复
题1:
如果只需要ip层或者ip层以上的包,RAW socket是可以实现全部监听的.
你把RAW socket的3种模式看下,再看看TCP/IP几种包头的结构,差不多就能做了.
z341223318 2009-03-04
  • 打赏
  • 举报
回复
不用libpcap就不能抓包吗? RAW socket不行吗?网上看了说什么网卡设置混杂模式。反正不懂,希望高手详细指点一下,谢谢!!
once_and_again 2009-03-03
  • 打赏
  • 举报
回复
太难了..
独孤过儿 2009-03-03
  • 打赏
  • 举报
回复
抓包底层用libpcap来支持,否则没办法实现,然后分析包的格式就行了

发包如果需要高度定制,底层要用libnet,否则也没办法实现

PS:这个不是面试题吧?应该是你的一个什么项目或者作业才对...

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧