在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互。 因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送。 使用SOCK_RAW的优势是,可以对数据包进行完整的修改,可以处理IP层 ...
使用底层套接字解码底层流量,是这次做的重点工作。 首先来捕获第一个包 下面一行一行解释上面代码的意思。 . 导入socket包 . 需要监听的本机ip地址 . 给socket protocol变量赋值icmp变量 . 为sniffer变量创建一个soket对象,该对象为ipv 原始套接字并指定其协议为icmp . 绑定到指定地址和端口进行监听 . 为sniffer套接字设置选项参数,使其携带ip头 ...
2016-06-09 21:20 0 8430 推荐指数:
在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互。 因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送。 使用SOCK_RAW的优势是,可以对数据包进行完整的修改,可以处理IP层 ...
原始套接字的特点 原始套接字(SOCK_RAW)可以用来自行组装IP数据包,然后将数据包发送到其他终端。也就是说原始套接字是基于IP数据包的编程(SOCK_PACKET是基于数据链路层的编程)。另外,必须在管理员权限下才能使用原始套接字。 原始套接口提供了普通TCP和UDP socket ...
转载:http://yehubilee.blog.51cto.com/1373999/1069075 注释:原始套接字各方面基本都涉及到了,可以参考。 可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW ...
标准套接字分为: l 流式套接字(SOCK_STREAM):面向连接的套接字,应用于TCP应用程序。 l 数据包套接字(SOCK_DGRAM):无连接的套接字,应用于UDP应用程序。 原始套接字:是一种对原始网络报文进行处理的套接字,主要用途有: l 发送自定义 ...
原始套接字 一般情况下程序设计人员主要接触以下两类套接字: 流式套接字(SOCK_STREAM): 面向连接的套接字,对应于 TCP 应用程序。 数据包套接字(SOCK_DGRAM): 无连接的套接字,对应于UDP 应用程序。 这一类套接字为标准套接字。此外,还有一类 ...
一.大致流程: 建立一个client端,一个server端,自己构建IP头和UDP头,写入数据(hello,world!)后通过原始套接字(SOCK_RAW)将包发出去。 server端收到数据后,打印UDP数据并发送确认消息(yes),client收到yes后将其打印 ...
一、原始套接字概述协议栈的原始套接字从实现上可以分为“链路层原始套接字”和“网络层原始套接字”两大类。链路层原始套接字可以直接用于接收和发送链路层的MAC帧,在发送时需要由调用者自行构造和封装MAC首部。网络层原始套接字可以直接用于接收和发送IP层的报文数据,在发送时需要自行构造IP报文头(取决 ...
标准套接字与原始套接字之间的关系。标准套接字与网络协议拢的TCP、UDP层打交道,而原始套接字则与四层级网络协议找核心打交道。 原始套接字提供以下3种标准套接字不具备的功能。 使用原始套接字可以读/写ICMP、IGMP分组。例如ping程序就使用原始套接字发送 ...