标签: packet

在包中添加有效载荷

我可以使用scapy将图像或文档(以MB为单位)作为数据插入数据包吗?

这就是我发送数据的方法.

data = "University of texas at San Antonio"
a = IP(dst="129.132.2.21")/TCP()/data
send(a)
Run Code Online (Sandbox Code Playgroud)

python packet-capture scapy packet

9
推荐指数
1
解决办法
2万
查看次数

是否有用于捕获和回放修改后的UDP数据包的Windows工具?

我正在寻找一个可以执行以下操作的Windows工具(或一组工具):

  1. 将UDP数据包从特定网络接口捕获到文件.
  2. 通过网络接口播放文件中的数据包流.
  3. 除了2:将原始数据包重放到与原始数据包不同的主机.

我已经有1和2,但我找不到工具3.

为了捕获我可以使用Wireshark,用于回放Colaso​​ft Packet Player,但我找不到改变数据包发送到的主机的方法.

该工具应适用于Windows XP SP2/3.

windows udp packet-capture packet

8
推荐指数
1
解决办法
2万
查看次数

HTTP数据包重建

如果我有一个大的HTTP数据包已被拆分成多个TCP数据包,我怎样才能将它们重新组合成一个HTTP数据包?基本上,在数据包的哪个位置,我想知道HTTP数据包何时开始/结束?我似乎无法在TCP标头中看到任何表示HTTP数据包开始或结束的标志/字段.

编辑:跟进回复.如果TCP管理流,它如何知道流何时开始和结束?这是由插座开合决定的吗?某些协议在某种程度上必须能够知道HTTP流/数据包何时开始和结束.这就是我想知道的.

我所处的情况是我在C#中使用数据包嗅探器读取TCP数据包,我希望能够重建HTTP请求/响应/等.像wireshark和其他各种嗅探器一样通过界面.或者,是否有任何C#库可以让您在更高级别进入HTTP流,从而节省了我自己重建HTTP流/数据包的麻烦?

谢谢.

tcp http sniffer packet

8
推荐指数
3
解决办法
1万
查看次数

如何计算此场景中的端到端延迟

这是我的问题:我们希望通过网络发送大小为150,000字节的消息.有四个跳,每个跳长20km,运行速度为100 Mb/s.但是,在发送之前,我们将消息拆分为1500字节的数据包.消息的端到端延迟是什么?使用铜的光速= c = 2*10 ^ 8 m/s,并将你的答案四舍五入到最接近的整数毫秒.

我到目前为止所用的是48ms,我按以下方式计算:1500字节= 12,000位12,000位/(100x10 ^ 6)[100Mb/s] = 0.00012s 20km /(2*10 ^ 8)[光速]在这个等式中] = 1e-7加起来你每跳得到0.0001201 x 4跳= 0.0004804s - > 48ms四舍五入到最接近的整数.

显然这是不正确的,我无法弄清楚我的错误.我的在线课程没有任何帮助,所以我转向SO.如果有人能直接指出我,我会很感激帮助.

networking end-to-end packet

8
推荐指数
1
解决办法
1万
查看次数

如何在Wireshark中找到丢包?

我需要测试FTP应用程序的丢包.我使用了Wireshark数据包嗅探器,我得到了TCP Stream.

如何使用Wireshark找到丢包?

packet-capture packet wireshark

7
推荐指数
2
解决办法
4万
查看次数

HTTP数据块在多个数据包上?

HTTP服务器通过多个数据包发送数据的正确方法是什么?

例如,我想传输一个文件,我发送的第一个数据包是:

HTTP/1.1 200 OK
Content-type: application/force-download
Content-Type: application/download
Content-Type: application/octet-stream
Content-Description: File Transfer
Content-disposition: attachment; filename=test.dat
Content-Transfer-Encoding: chunked

400
<first 1024 bytes here>

400
<next 1024 bytes here>

400
<next 1024 bytes here>
Run Code Online (Sandbox Code Playgroud)

现在我需要制作一个新包,如果我发送:

400
<next 1024 bytes here>
Run Code Online (Sandbox Code Playgroud)

所有的客户都关闭了我的连接,文件被缩短了.

我在第二个数据包中放入哪些标头继续使用数据流?

http packet chunked-encoding

7
推荐指数
1
解决办法
1万
查看次数

如何将十六进制编码的字符串转换为Perl中的字节字符串?

我的原始代码是用Python编写的,但是我需要将它转换为Perl,这些库是我在Python中没有的.

在Python中我会这样做:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000')
Run Code Online (Sandbox Code Playgroud)

这将创建一个包含二进制表示形式的字符串:

0xF0 0x00 0x00 0x00 0xF6 0x90 0x5C 0x45 etc...
Run Code Online (Sandbox Code Playgroud)

现在我的字符串是一个字节数组,我可以将它作为我的数据包的有效负载发送.我怎么做Perl?

perl hex packet

7
推荐指数
1
解决办法
9579
查看次数

处理具有未知IPv6扩展头的数据包

是否应该丢弃具有未知IPv6扩展头的数据包?

细节

通过检查RFC,我找不到这个问题的答案.IPv6 Essentials一书在第22页上说明:

如果节点需要下一个标头但无法识别Next Header字段中的值,则需要丢弃该数据包并将ICMPv6 Parameter Problem消息发送回数据包源.

我将其读作:除非路径上的所有 IPv6堆栈知道如何处理标头,否则不会丢弃带有自定义扩展标头的IPv6数据包.或者等效地,如果路径上的单个IPv6设备不知道如何处理自定义标头,则会丢弃该数据包.

这似乎与扩展的一般概念不一致:即使自定义扩展不影响通用IPv6堆栈,我也无法在不升级整个网络的情况下引入新扩展.

networking network-programming network-protocols ipv6 packet

7
推荐指数
1
解决办法
2156
查看次数

当网络上的所有计算机具有相同的公共IP地址时,如何将UDP数据包发送到特定计算机?

这是问题所在,它非常简单(理解......):

我家里有2台电脑,它们都有相同的公共IP地址(例如1.2.3.4).

我在咖啡馆(不同的网络)有一台电脑,所以它有一个不同的公共IP地址.

我想从咖啡馆的电脑发送一条消息(例如"hi")到我家里的一台电脑.

我正在使用Java,为发送者考虑以下非常简单的程序(为了简单起见,我为了简单处理了异常处理):

在主要我做:

sendPacket("hi");
Run Code Online (Sandbox Code Playgroud)

我有

void sendPacket(String message){
    DatagramSocket myServerSocket = new DatagramSocket(9000);    // server socket
    byte[] sendData = new byte[message.length()];    // build msg
    sendData = message.getBytes();
    InetSocketAddress destSocketAddr = new InetSocketAddress("1.2.3.4", 9000);    // destination socket addr
    DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, destSocketAddr);     // make packet 
    myServerSocket.send(sendPacket);    // send packet
}
Run Code Online (Sandbox Code Playgroud)

如果我的监听器(接收器)在家中的两台计算机上运行(两者都具有相同的公共IP地址1.2.3.4),我如何指定我打算将此消息发送到哪一个?

java udp network-programming ip-address packet

7
推荐指数
2
解决办法
8556
查看次数

我们如何从 AVPacket (ffmpeg) 中提取 RTP 数据包序列号

我们试图从数据包的 RTP 标头中提取“序列号”。我们使用 av_read_frame 将数据包读入 AVPacket 结构。

我们尝试使用 AVPacket.data 字段,希望它包含原始有效负载,但我们没有设法找到标头的正确位置。所以我们假设数据字段不包含完整的有效载荷 -如果我们错了,请更正

有没有办法找到RTP头信息?

ffmpeg rtp packet

7
推荐指数
1
解决办法
1204
查看次数