摘要: 通过《Linux网络编程——原始套接字编程》得知,我们可以通过原始套接字以及recvfrom( ) 可以获取链路层的数据包,那我们接收的链路层数据包到底长什么样的呢?链路层封包格式MAC 头部(有线局域网)注意:CRC、PAD 在组包时可以忽略链路层数据包的其中一种情况:1 unsigned cha... 阅读全文
posted @ 2015-04-01 14:31 MikeJiang 阅读(1438) 评论(0) 推荐(1) 编辑
摘要: 原始套接字编程和之前的 UDP 编程差不多,无非就是创建一个套接字后,通过这个套接字接收数据或者发送数据。区别在于,原始套接字可以自行组装数据包(伪装本地 IP,本地 MAC),可以接收本机网卡上所有的数据帧(数据包)。另外,必须在管理员权限下才能使用原始套接字。原始套接字的创建:int soc... 阅读全文
posted @ 2015-04-01 11:45 MikeJiang 阅读(1315) 评论(1) 推荐(1) 编辑
摘要: 通常情况下程序员接所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的 Socket,针对于面向连接的TCP 服务应用; (2)数据报式套接字(SOCK_DGRAM):一种无连接的 Socket,对应于无连接的 UDP 服务应用。 从用户的角... 阅读全文
posted @ 2015-04-01 10:03 MikeJiang 阅读(3334) 评论(0) 推荐(1) 编辑