标签: packet

websocket是基于流的还是基于包的协议?

想象一下,我有服务器和客户端通过WebSocket进行通话.每个时间都发送另一个数据块.不同的块可以具有不同的长度.

我保证,如果服务器在一次调用中发送chunk,那么客户端将在一次message回调中收到它,反之亦然?也就是说,WebSocket是否具有嵌入式"打包"功能,所以我不必关心我的数据在传输过程中是否在几个回调中被分割,或者它不是?

tcp packet websocket

11
推荐指数
2
解决办法
2879
查看次数

捕获数据包后会发生什么?

我一直在读关于NIC捕获数据包后会发生什么,我读的越多,我就越困惑.

首先,我已经读过,传统上,在NIC捕获数据包之后,它会被复制到内核空间中的内存块,然后被复制到用户空间,以用于处理数据包数据的任何应用程序.然后我读到了DMA,其中NIC直接将数据包复制到内存中,绕过CPU.那么NIC - >内核内存 - >用户空间内存流仍然有效吗?此外,大多数NIC(例如Myricom)是否使用DMA来提高数据包捕获率?

其次,RSS(Receive Side Scaling)在Windows和Linux系统中的工作方式是否相似?我只能找到关于RSS如何在MSDN文章中工作的详细解释,他们在这里讨论RSS(和MSI-X)如何在Windows Server 2008上运行.但RSS和MSI-X的相同概念应该仍然适用于Linux系统,对吧?

谢谢.

此致,Rayne

linux rss windows-installer packet dma

10
推荐指数
2
解决办法
4065
查看次数

如果我在c#中发送0个有效载荷数据,udp数据包的大小是多少?

我已经计算出使用udp的2个端点之间的碎片之前的最大数据是1472(其他端点可能不同).这表明mtu是1500字节,每个数据包的头开销是28bytes.可以安全地假设如果我发送0字节数据(有效载荷),传输的实际数据是28字节?我正在做一些bencchmark,所以对我来说知道频道中发生了什么至关重要.谢谢.

c# udp header udpclient packet

10
推荐指数
3
解决办法
6万
查看次数

跟踪数据包通过内核(linux)

我有两台机器设置为使用Ip-Security和机器A(让我们称之为A和B)有一个套接字,它绑定到本地机器上的特定UDP端口,并经常轮询它以查看是否有任何接收在上面.

当我禁用Ip-security时,两台机器之间的数据运行良好,我发送和接收数据包正常.但是当启用Ip-Security时,数据包无法到达机器B发送的机器A上的那个套接字.

tcpdump在两台机器上都做了一个,我可以看到(加密的)数据包从机器B发出并在机器A上被接收.但是之后,数据包进入内核,在某个地方要么解密数据包,要么在在其他阶段,数据包被丢弃.

我希望能够在数据包通过内核时跟踪数据包并查看它被丢弃的位置.有一些/proc我可以用于此目的吗?我能想到的另一种方法是在整个内核中插入调试语句并重新编译它,然后尝试再次发送数据包并进行调试.

感谢和抱歉长信息,但这是必要的.

c sockets networking packet linux-kernel

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

默认网络数据包大小的差异:SqlConnection与SQL Server默认值

我昨天注意到,.NET SqlConnection类中的默认网络数据包大小与SQL Server本身的默认网络数据包之间存在明显差异.

对于SqlConnection班级的PacketSize财产,按此链接:

网络数据包的大小(以字节为单位).默认值为8000.

在该文章的先前版本中,它提到(一直回到.NET 1.1)默认值为8192字节.但是对于SQL Server(根据此链接):

默认数据包大小为4,096字节.

从那篇文章看,这至少是SQL Server 2005的默认设置.有谁知道它们之间存在这种差异的原因?

更新:为了给这个问题增加更多的乐趣,我一直在和Thomas LaRock(他碰巧是一个SQL MVP)交谈,他告诉我,在SQL Server 2000中,默认的网络数据包大小实际上是8192字节(比如.NET 1.1!).但是,它在以后的版本中发生了变化,因为它造成了多少碎片,需要每周重新启动服务器.

那么为什么SQL Server将它减少一半,但.NET只减少了192个字节?有没有什么东西迫使SQL Server只使用2的倍数?

.net sql-server packet

10
推荐指数
1
解决办法
2769
查看次数

如何在套接字上设置do not fragment(DF)标志?

我试图设置使用UDP发送数据包的DF(不分段标志).

看看Richard Steven的书第1卷Unix网络编程; 套接字网络API,我无法找到如何设置它.

我怀疑我会用setsockopt()来做,但是在第193页的表格中找不到它.

请建议如何做到这一点.

c++ sockets udp packet

9
推荐指数
3
解决办法
4万
查看次数

确保UDP中的数据包顺序

我使用2台计算机与一个应用程序发送和接收udp数据报. 当我通过应用程序将文件作为udp数据报发送时,经常
没有流量控制(ICMP禁用)
,我得到2个包改变他们的顺序,因此 - 包丢失.

有没有办法确保winsock和send()将以相同的方式发送数据包?
或者操作系统在做什么?我已经禁用了防火墙,并且计算机之间没有连接硬件开关(它们是直接连接的).需要网络设备配置?
谢谢

windows udp winsock packet

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

寻找包描述语言(最好使用AC#实现)

我正在开发一个具有一些数据包嗅探和解码功能的专用网络工具.我正在寻找旨在帮助解剖/解码任意数据包格式的语言.理想情况下,解决方案应基于开放标准.有关于SO的相关问题,但大多数涉及数据包嗅探的整个生命周期(我不太关心捕获,还有其他库可以做到这一点).

一般来说,我正在寻找的是一种语言和支持框架,用于分组格式的明确定义和相应的运行时解码.因为这个问题可以推广到任何非网络二进制数据,所以对任意二进制流执行此操作的解决方案也将在范围内.我有点惊讶,目前在成熟和稳健的状态下没有这样的标准(至少我能找到) - 虽然似乎有很多有趣但不完全正确且几乎有项目(见下文).也许这说明了问题的困难,或者可能是缺乏需求.

举例来说,我对类似于以下的技术和想法感兴趣(没有特别的顺序):

  • Packet.Net - 从二进制数据包表示转换到结构的工作,但解剖器都是硬编码的,它似乎不能处理更复杂的格式.
  • DFDL - 我一直在关注这个问题,甚至在大约一年前参加电话会议.该标准似乎已达到成熟,但实施似乎具有挑战性.我并不介意弄脏自己的手,但我不确定我是否已经获得了这个项目的资源,为此目的从头开始实施这样一个广泛的标准.
  • 网络监视器开源分析程序 - 此项目使用类似C语法的数据包描述Microsoft网络监视器使用的数据包.它已经定义了很多数据包,语言看起来足够强大,可以支持复杂的结构.不幸的是,执行引擎的唯一实现是在NetMon中,虽然语言的语法可能是逆向工程的,但实现处理引擎可能非常困难.我还担心,由于解析器语言和NetMon工具之间的明确联系,语言的非一般方面会使其不适合在其他工具中使用.
  • NetPDL - 这个看起来非常有趣,但发展似乎已经衰落.如何在自己的环境之外使用执行引擎也不是很清楚.
  • Wireshark Dissectors - 我考虑过为此目的包装/使用原生Wireshark Dissector,但它们与Wireshark本身紧密相关.解剖器也使用代码来执行大部分解码,这与我正在寻找的东西有点相反 - 我更喜欢一些更具说明性的东西(尽管显然存在平衡,因为复杂的数据包结构通常需要切换和其他确定最终化妆的逻辑).
  • BSDL - 与DFDL概念相似的学术语言(见上文).有趣且方向正确,但在几篇论文之外似乎没有别的东西存在.

我不一定在这里寻找一个完整的解决方案(虽然如果有人知道我没有涉及的那个,那就太好了).我对我上面提到的技术的评论或轶事更感兴趣,以及我没有想到或涵盖的路线的指针或想法.

c# networking parsing packet

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

在包中添加有效载荷

我可以使用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万
查看次数

在scapy/python中获取数据包大小

在Scapy(或者甚至只是Python,为此),如何获得给定数据包的字节大小?我很想使用这个功能,len但我不确定它在数据包的情况下究竟会返回什么.

>>> len(IP(dst="www.google.com"))
20

>>> len(IP(dst="www.google.com")/TCP(dport=80))
40
Run Code Online (Sandbox Code Playgroud)

python size scapy packet

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