scapy获取ip_Wireshark网络分析(七)scapy模拟TCP数据发送及重传

本文详述了使用scapy进行TCP数据发送的过程,包括TCP三次握手、发送数据、wireshark分析、TCP四次挥手协议以及客户端接收FIN并ack的步骤。通过scapy模拟TCP协议分组丢失和重传,加深对TCP传输-确认机制的理解。
摘要由CSDN通过智能技术生成

引言

本文通过scapy【1】和wireshark对于TCP连接建立、发送数据以及socket关闭过程进行分析。

并通过scapy编写程序模拟TCP协议分组丢失、重传的场景。可以学习scapy的使用和并熟悉TCP传输-确认机制。

scapy介绍


scapy可以发送、监听、剖析及伪造网络数据包,是功能非常强大的数据包操控程序。

主要完成两方面的事情:发送数据包、接收应答。读者可以通过scapy文档中的示例进行学习。

TCP数据发送

基本环境

服务端192.168.199.221,运行nc程序监听:

nc -l 25000

客户端19.168.199.230, 连接服务端之后,发送数据包。然后等待服务端关闭,确认FIN数据包并发送自身FIN,然后等待接收服务端发送的ACK数据包。

TCP三次握手协议


tcp通过三次握手协议建立连接【2】【3】,可以通过scapy构造数据包观察数据发送过程。

数据发送程序如下:

from scapy.all import *from scapy.sendrecv import *import timeprint(scapy.__version__)i_sport = 43210i_dport = 25000ip = scapy.all.IP(dst="192.168.199.221")syn = scapy.all.TCP(sport=i_sport, dport=i_dport,seq= 12344321, flags='S', options=[('SAckOK', "")])syn_pkt = ip / synsyn_ack = sr1(syn_pkt, timeout=3)# syn_ack.display()syn_ack_seq = syn_ack.seq + 1ack = scapy.all.TCP(sport=i_sport, dport=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值