标签: network-protocols

在协议设计中,为什么要使用2个端口?

当TCP服务器在端口上执行套接字接受时,它将获得一个与该客户端一起使用的新套接字.
接受套接字对该端口仍然有效,并且可以接受该端口上的其他客户端.

为什么原始FTP规范RFC 959决定同时创建控制端口和数据端口?

是否有任何理由在类似的自定义协议中执行此操作?

在我看来,这可以在一个端口上轻松指定.

考虑到防火墙和使用FTP的NATS的所有问题,似乎单个端口会好得多.

对于一般协议实现,我认为你想要这样做的唯一原因是你可以从不同于命令的主机提供文件.

ftp protocols network-protocols

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

蓝牙网状网络?

我有一个想法,我想知道是否有可能.我用谷歌搜索它似乎找不到任何现有的解决方案.我在考虑使用蓝牙网状网络.我希望实现的布局是有一个中心站(带有蓝牙加密狗的PC),然后是一堆蓝牙模块(最好是这些),它们都会形成一个网状网络,周围有模块.并非所有这些都在"中心站"的范围内,而是需要通过其他节点与之通信.蓝牙模块将与ATtiny85芯片连接起来,如果它有任何区别的话.如果你有问题,就问吧.

  1. 这可能吗?
  2. 是否可以使用上述蓝牙模块?
  3. 它们都必须单独设置还是可以进行某种邻居发现?
  4. 会有安全隐患吗?
  5. 对网络规模的限制是什么?
  6. 我应该从哪里开始?

network-programming bluetooth arduino network-protocols mesh-network

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

如果从未进行关闭握手,WebSockets将不会在IE上关闭

我一直在用JavaScript实现WebSocket,但我遇到了一个问题:
我的Web应用程序所连接的端点在发送一个封闭的控制框架时没有将其发送回去。

这还不错,因为浏览器会在一段时间后关闭WebSocket连接。

但是需要注意的几件事是:

  • 浏览器只允许同时连接一定数量的WebSocket。

  • 刷新Web应用程序时,将创建一个新的WebSocket。

这会导致IE上的问题:
刷新Web应用程序超过6次时,无法建立WebSocket连接。

如果尚未完全关闭WebSocket,似乎IE不会“删除” WebSocket。奇怪的是,Web套接字的数量似乎从未因刷新或等待而减少。

仅通过关闭浏览器窗口或选项卡将WebSockets的数量重置为0。


我做了一些研究,这是我发现的:


浏览器仅支持同时连接特定数量的WebSocket。

IE支持6个websocket进行连接[链接]

Chrome支持连接255个websocket [link]

并且socket.onclose()不会在您执行操作时触发socket.close(),而是在端点以关闭消息进行响应时调用。 [链接]

IE等待15秒,以便端点发送关闭消息[link]

Chrome等待60秒钟才能收到响应消息[很抱歉,对此没有链接,通过测试发现了此消息]。

如果未收到响应消息,则浏览器将关闭WebSocket连接,并应发生TimeoutError。

如果我错了请指正我:)


我尝试过使用unbeforeload与端点的断开连接,希望浏览器在一段时间后关闭连接,但是没有运气。[链接]
也可能是IE无法在[link]unbeforeload函数内执行请求的原因。

题:

  1. 是否可以通过JavaScript重置浏览器中连接到端点的WebSocket的数量?
  2. 有没有一种方法可以立即从端点断开WebSocket而不完全关闭连接?
  3. 是唯一可行的方法来通知托管其端点的主机进行一些更改,以便他们发送关闭帧吗?
  4. 有什么我误解的东西,或者我可以尝试使其工作吗?

如果有人想了解更多关于WebSocket协议的信息,这是(我认为)很好的文档[link1] [link2]

更新:

只有刷新IE上的Web应用程序,WebSocket才会被销毁
如果您在Web应用程序中的页面之间导航,则会创建一个新的WebSocket,但最后一个WebSocket将被破坏。

javascript internet-explorer network-protocols websocket handshake

24
推荐指数
1
解决办法
570
查看次数

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

如何伪造udp-packet的源ip-address?

请考虑以下事项:
您的ISP为您提供动态IP地址(例如123.123.123.123).

我的问题很简单(答案可能不是):

是否可以将带有外部源IP(例如124.124.124.124)的单个udp数据包发送到fixed-ip服务器?我不需要从服务器得到答案.我只是想知道是否/如何使用伪造的源IP地址完成这种单向通信.

服务器,没有其他人不应该能够找到真正的客户端IP.

networking network-programming ip-address network-protocols

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

IP分段和重组

我目前正在浏览我的网络幻灯片,并想知道是否有人可以帮助我解决碎片和重组的问题.

在此输入图像描述

我理解它是如何工作的,即数据报如何分成较小的块,因为网络链接具有MTU.然而,图中的例子令我感到困惑.

所以前两个部分显示长度为1500,因为这是MSU,但这不应该意味着最后一个应该有1000(总共4000个字节)而不是1040?这些额外的40个字节来自哪里?我的猜测是因为前两个片段都有一个20字节的标题,这个额外的40字节数据需要去某处,所以它会到达最后一个片段?

Fragflag本质上意味着存在另一个片段,因此除了最后一个将为零的片段之外,它们都将具有1的Fragflag.但是我不明白偏移是什么或如何计算.为什么第一个偏移量为零?为什么我们将数据字段(1480)中的字节除以8得到第二个偏移?这8个来自哪里?除此之外,我假设每个片段偏移量只会增加这个值?

例如,第一个片段的偏移量为0,第二个片段为185,第三个片段为375,第四个片段为555?(370 + 185)

谢谢你的帮助!

networking tcp defragmentation network-protocols fragmentation

22
推荐指数
2
解决办法
5万
查看次数

Half-Life 2多人游戏协议如何运作?

我想知道半条命2多人游戏协议如何在反恐精英:来源或失败之日:来源等mod中运作.我相信他们使用某种混淆和专有压缩算法.我想知道在数据包中如何编码不同类型的消息.

client-server network-protocols

21
推荐指数
2
解决办法
8771
查看次数

为什么窗口大小小于或等于SR协议中序列号的一半?

在选择性重复协议中,窗口大小必须小于或等于SR协议的序列号空间大小的一半.为什么会这样,怎么样?

networking network-protocols

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

解释unix域套接字的示例 - AF_INET vs AF_UNIX

当我正在阅读什么AF_INET方式时,我了解到还有另一个家庭UNIX domain socket.这是我读到的关于此的维基链接.

我不明白这意味着什么:

Unix域套接字使用文件系统作为其地址名称空间.它们被进程引用为文件系统中的inode.这允许两个进程打开同一个套接字以进行通信.但是,通信完全在操作系统内核中进行.

如果我想这样做SSH or FTP,我会使用哪个家庭AF_INET or AF_UNIX.我实际上有点困惑.

unix sockets network-protocols

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

蓝牙协议?

好吧,这可能只是一个愚蠢的问题,但我想知道蓝牙是否遵循TCP或UDP协议?根据我对网络协议的了解(这并不多),我会说它不会遵循这两种协议中的任何一种,并且存在某种特定的蓝牙协议.我还有一个问题......新iPhone OS 3.0中GameKit的蓝牙功能遵循什么协议?我还没有看过苹果文件的每一个字,但到目前为止,我还没有找到它.

protocols bluetooth network-protocols

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