标签: network-protocols

从套接字读取:是否保证至少获得x个字节?

我有一个罕见的错误似乎发生在读取套接字.

看来,在读取数据时,有时我只得到1-3个大于此数据包的字节.

正如我从管道编程中学到的那样,只要发送方提供足够的数据,我总是得到至少512个字节.

此外,我的发送者在传输任何内容的时候至少传输> = 4字节 - 所以我认为在传输的开始(!!)中一次只能接收4个字节.

在99.9%的情况下,我的假设似乎有......但是当收到的字节少于4个字节时,确实很少见.在我看来,为什么网络系统应该这样做呢?

有人知道更多吗?

这是我使用的阅读代码:

mySock, addr = masterSock.accept()
mySock.settimeout(10.0)
result = mySock.recv(BUFSIZE)
# 4 bytes are needed here ...
...
# read remainder of datagram
...
Run Code Online (Sandbox Code Playgroud)

发送方通过一次发送调用发送完整的数据报.

编辑:整个过程都在localhost上工作 - 因此不涉及复杂的网络应用程序(路由器等).BUFSIZE至少为512,发送方至少发送4个字节.

python sockets network-protocols

5
推荐指数
3
解决办法
5707
查看次数

如何向我知道 IP 地址的 PC 发送短信?

我知道这是一个奇怪的问题,但我想知道是否有办法向我知道 IP 地址的 PC 发送短信。

例如,我正在通过 torrent 从网络上的 PC 下载文件。

通过 torrent 我可以知道这台电脑的 IP 地址,我想给拥有这台电脑的人发送一条短信。

这可能吗?

bittorrent protocols ip-address network-protocols

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

TCP连接的段中的最大窗口大小是多少?

考虑使用10 Mbps链路的单个TCP(Reno)连接.假设此链接不缓冲数据,并且接收器的接收缓冲区远大于拥塞窗口.假设每个TCP段的大小为1500字节,发送器和接收器之间的连接的双向传播延迟为200毫秒.此外,假设TCP连接始终处于拥塞避免阶段(忽略慢启动).

此TCP连接可以实现的段中的最大窗口大小是多少?

所以我们知道连接的吞吐量和延迟,我认为我们应该能够操作以下公式,以便我们能够找到窗口大小.

吞吐量=窗口大小/ RTT

吞吐量*RTT =窗口大小

10 Mbps*200毫秒=窗口大小

我不确定这是否正确.我很难找到除了这个公式之外找到窗口大小的任何其他内容.

tcp network-protocols

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

在Javascript中使用//www.example.com是否自动选择了http/https协议

离开http似乎使它使用HTTP进行连接,但我没有启用HTTPS的站点来测试它是否也适用于HTTPS.

使用//www.example.com/test.js是否会根据主文档的协议自动选择协议?

javascript https network-protocols

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

如何在Kademlia p2p协议中实现高效广播?

我目前正在研究Kademlia对等协议,并且很好奇是否有人知道有效广播信息/消息的技术或方法吗?

有一篇论文介绍了结构化P2P网络中的有效广播,它描述了Chord中的一种广播方式。他们的想法是将网络分为两个部分,并将广播消息发送到每个分区中的第一个节点。被联系的节点再次划分其“子网”并执行相同的操作。使用此技术,您可以通过网络在生成树上广播消息。但是,由于难以可靠地划分Kademlia网络,因此在将其应用于Kademlia时遇到了问题。

是否有人知道如何实现这一目标或存在其他替代方法?

我不想大量泛洪网络,因为这会对网络负载产生严重影响,并导致大量冗余流量。

networking p2p network-protocols kademlia

5
推荐指数
0
解决办法
842
查看次数

HTTPS 服务的 SWF 文件是否可以请求非安全的 HTTP 内容?

当 SWF 托管在 HTTPS 环境中(通过 SSL)时,有没有办法让 SWF 执行跨协议(这是正确的术语吗?)HTTP 请求?

flash ssl https http network-protocols

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

最大 HTTP 数据包大小

HTTP 数据包的最大大小是多少?我对 HTTP GET 请求的响应大小感兴趣(不是这个!这个问题是关于请求大小的)。有大小吗?如果我下载了一个 1GiB 的文件,那么它最终会成为 1 个 HTTP GET 请求吗?(直觉上,我不认为会发生这种情况 - 此外,部分下载/多线程下载器将不起作用)。

我知道 IP 数据包和 TCP 数据包的最大长度大于跨多个 IP 数据包分段的长度。HTTP 也会发生这样的事情吗?我正在寻找这个问题的答案的原因是为了弄清楚收取 1c / 10K get 请求的 AWS S3 计费方案。那么有多少 GET 请求开始为 1GiB 提供服务。

get http network-protocols amazon-s3 packet

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

TCP窗口和缓冲区 - 检查我的理解?

我目前正在尝试实现单向TCP,我只想澄清一下TCP发送器/接收器窗口和接收缓冲区的行为.

我对窗口化过程的理解如下:

窗口大小表示发送方可以一次发送的最大未确认字节数.

此尺寸在连接期间达成一致.

TCP发送方应该跟踪具有较低序列号的ACK,并且还在接收到ACK时将分组标记为已确认.如果最低序列号(它正在跟踪)与当前窗口中的第一个字节匹配,则向右滑动窗口.

现在,我对接收缓冲区的理解......

当数据包无序到达时使用.数据被放入缓冲区,接收器不会对其进行确认,而是继续确认在最早的无序数据包之前收到的最后一个数据包.这使得发送方在重复的ACK号之后"快速"重新发送下一个分组.

这是对这两个概念的正确理解,如果没有,请澄清.

谢谢!

buffer tcp network-protocols

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

获取设备网络网址调用

我正在尝试构建一个应用程序,为用户提供有关其网络使用情况的统计信息,

从3G/Wifi冲浪到应用网络使用.

我正在寻找的主要重要数据是网络呼叫的网址.

我有下一个代码,找到浏览器历史记录:

private void getBrowserHistory()
{
    String[] proj = new String[]{Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL};
    String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, 1 = bookmark
    Cursor mCur = this.managedQuery(Browser.BOOKMARKS_URI, proj, sel, null, null);
    this.startManagingCursor(mCur);
    mCur.moveToFirst();

    if (mCur.moveToFirst() && mCur.getCount() > 0)
    {
        while (mCur.isAfterLast() == false)
        {
            String title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));
            String url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));
            Log.d(LOG_TAG, "Site title: " + title);
            Log.d(LOG_TAG, "Site url: " + url);
            mCur.moveToNext();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但要找到应用程序网络使用情况,我需要更像WireShark的东西

我认为该问题的最终解决方案很复杂,但欢迎任何建议.

android network-protocols wireshark

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

为什么TCP/IP套件中的最大端口范围为65535?

我怀疑的是 - 一个端口是合乎逻辑的,为什么这样的限制呢?为什么我不能有9924593的端口或类似的东西?

ip networking tcp ports network-protocols

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