问题标签 [mss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

http - 如果以太网帧最大只有 1500 字节,如何将 HTTP 消息封装到以太网帧中?

以太网帧最大为 1500 字节 HTTP 消息可能比这大得多。

如果以太网帧最大只有 1500 字节,如何将 HTTP 消息封装到以太网帧中?[在此处输入图像描述][1]

问题说明:[1]:https ://i.stack.imgur.com/IOf92.jpg

0 投票
1 回答
414 浏览

c - linux中tcp的真正最大段大小是多少?

我能够从以下位置获得 mss 值getsockopt

tcpmss.c

输出

其他消息来源说,默认 mss 是1460. 但是如果我尝试从客户端检查它:

客户端.c

输出

这些值都不是真的。所以我对最大段大小有点困惑。我知道该read()块并将更多段提取tcp到内核接收缓冲区中,因此我无法从read()系统调用中看到真实的段大小,但是,如何确定window应对应于 MSS 的对等方之间的约定。在第一个read(),我得到了完整的缓冲区,(BUFSIZE == 8192),然后甚至没有一半,等等。

如何确定(全部来自我的示例)

  1. MSS
  2. 对等点之间的传播窗口(及其与 MSS 的关系)
  3. 每个发送操作之间有多少段大小变化(以及为什么)
0 投票
0 回答
67 浏览

c++ - getsockopt TCP_MAXSEG 返回一个不准确的值(linux)

我创建了一个套接字-> 设置套接字 mss-> 连接-> 调用GetMss并从设置的值中得到了一个较低的值(通常获取 mss 结果给出了设置的值负 12 ......但有时甚至是 -30 和 -50)。

我尝试设置的每个 mss 值都发生了这种情况……从 536 到 1280……。为什么会发生这种情况?为什么调用 get mss 时得到的值不准确?这是对齐问题吗?套接字 mss 确实设置为低于我尝试设置的原始 mss 的值?

为什么有时 getmss 结果是我尝试在套接字 mss 中设置的 mss 负 12,有时是负 20,有时是 -50?

0 投票
0 回答
73 浏览

android - 如何在 Android 中获取 TCP 连接的 MSS(最大段大小)?

是否有可能在 Android 的 3 次握手中获得协商的 MSS 或服务器提供的 MSS?我试图通过getsockopt(sock,IPPROTO_TCP,TCP_MAXSEG, (char *)& mss,&len)在本机代码中运行来获得它,但是当以 3 路交换的 MSS 为 1460 (SYN) 和 1440 (SYN + ACK) 时,我得到的值为 1024。我怀疑android不会让我在没有root权限的情况下阅读MSS

0 投票
0 回答
33 浏览

networking - MSS协商的正式解释是什么?

我一直试图找到 MSS 协商的正式机制,但似乎无法发现它。

“MSS 协商使用本地网络的 MTU。” 是我能找到的,但是,这并不能解释会发生什么。

0 投票
0 回答
81 浏览

ssl - SSL/HTTPS 连接中的数据包大小是否有某种限制?

在过去的几周里,我一直在开发一个在特定设备上执行固件更新的引导加载程序。设置如下:

  1. 固件二进制文件及其各自的 SHA1 哈希存储在 Web 服务器中;

  2. 该设备由 ESP8266 和 STM32 微控制器(STM32F401 或 STM32F030,有两个硬件版本,但我使用的是 F401)组成。ESP 仅与 AT+ 命令一起使用,即,我没有构建它的固件,只是使用了 Espressif 的最新版本。

这个想法是,STM32 引导加载程序应该使用 ESP 从网络服务器下载固件哈希和二进制文件,然后在哈希正常的情况下启动固件。下载是在被动模式下使用 ESP 进行的,即 STM 必须手动请求 X 字节才能从 ESP 缓冲区读取,目前我使用的是 1 MTU(1460 字节)。

起初,与网络服务器的连接是使用 HTTP 进行的,一切正常,但是,我不得不将其更改为 HTTPS,这就是问题开始的地方。在 STM 接收到大约 100kB 的固件(有 110kB)之后,ESP 每次请求只提供 30 个字节(应该是 1 MTU 左右),因此下载时间非常长。

我已经进行了一些挖掘,试图找出这是否与 ESP 有关,但没有找到任何东西。此外,这个 30 字节下载速率开始发生的点并不总是在 100kB 标记处,我已经用 170kB 固件进行了测试,它开始发生在 160kB ish,所以看起来它总是最后的 10kB。

当数据包大小小于 1 MTU 时,我还在固件中添加了一些延迟,以便为 ESP 提供更多时间来处理数据包,因为 SSL 解密需要更长的时间来处理;但它没有帮助。

我的问题是:HTTPS/SSL 协议中是否有一些特性可以减少数据包长度?这里发生的事情可能是什么原因?

0 投票
1 回答
105 浏览

tcp - TCP MSS 未强制执行

我正在两个虚拟机虚拟机之间做一些与 TCP 相关的实验。在客户端,我发送了一个 TCP syn 数据包,其 MSS 选项为 1400 字节。但是,服务器(发送方)似乎忽略了这个选项,并发出了一个非常大的有效载荷的数据包,比如 10000+ 字节。为什么服务器不接受 MSS 选项?顺便说一句,服务器是 Nginx 服务器。

下面是一些显示问题的 PCAP。首先是MSS=1400的SYN包。 在此处输入图像描述 其次是服务器发送的payload: 在此处输入图像描述 可以看出payload大小为11200。

顺便说一句,接口上的 MTU 是 1500 字节。

谢谢。

0 投票
0 回答
30 浏览

python - CoreGraphics.CGWindowListCreateImage() 失败

我在 OSX 10.13 和 python 3.8

该代码在从终端运行时工作正常,但在安排为 cron 时会引发错误

这是错误

文件“/Users/ishandutta2007/Documents/Projects/LaunchTerminalTabs/flip_ig_firefox.py”,第 78 行,在 easyocrclick screenshot = lib.take_screenshot(filename="screnshot") 文件“/Users/ishandutta2007/.pyenv/versions/3.8.0 /lib/python3.8/site-packages/RPA/Images.py”,第 167 行,在 take_screenshot image = sct.grab(sct.monitors[0]) 文件“/Users/ishandutta2007/.pyenv/versions/3.8. 0/lib/python3.8/site-packages/mss/base.py”,第 88 行,在抓取中返回 self._grab_impl(monitor) 文件“/Users/ishandutta2007/.pyenv/versions/3.8.0/lib/python3 .8/site-packages/mss/darwin.py",第 215 行,在 _grab_impl 中引发 ScreenShotError("CoreGraphics.CGWindowListCreateImage() failed.") mss.exception.ScreenShotError: CoreGraphics.CGWindowListCreateImage() failed.

0 投票
0 回答
9 浏览

python - python2 和库 mss

伙计们,我正在创建一个 python 脚本,用作黑客项目中的后门。我想在没有用户注意的情况下使用 mss 库来捕获屏幕。但是当我尝试使用“pip install mss”安装mss库时,它会抛出这个错误。错误:包'mss'需要不同的Python:2.7.18不在'> = 3.5'中我正在使用python 2.7帮助