2016-01-31 63 views
0

我是一名学生,现在我正在学习操作系统课程。在学习考试的时候,我偶然发现了一个奇怪的答案,我找不到解释。网络缓冲区的最小尺寸

问题:假设我们有一个运行在低物理内存上的操作系统。因此,设计人员决定让缓冲区(处理所有连接到网络的工作)尽可能小。什么是最小的缓冲区大小?

答案:不能用一个字节来实现,但可以用2字节大小来实现。

我的想法:它有4个答案,其中一个是“3个字节以上的”,所以我认为这是一个正确的答案,因为为了建立你需要在列表中可以发送一个报头的连接tcp/udp或包含所有连接信息的类似包,所以我不知道为什么它是正确的答案(根据参考)。也许一些退化的情况?

感谢您的帮助。

+0

看起来像一个奇怪的答案,也是一个奇怪的问题。还有更多的上下文吗?一个IP头是20个字节。 – EJP

+0

不幸的是,这是整个问题..我想我错过了一些东西..但我想我不得不问问写这个问题的人。 –

+1

我想有一种说法,即一个字节的缓冲区不会为你购买任何东西,但是有两个字节的缓冲区,因为它将写入下一个阶段的时间减半。但是缓冲区必须被管理:有人必须知道他们的地址和长度,这比两个字节多得多,所以实际上你会想要在更大的缓冲区中分摊这个开销。 – EJP

回答

0

缓冲区必须至少与网络上的数据包大小一样大。这将取决于硬件接口的类型。我知道没有网络系统,甚至可以回到拨号时间,使用接近2个字节的任何东西。

也许理论上你可能有一个使用2字节数据包的网络系统。同样的逻辑可以让你使用1字节的数据包(在数据包中传输一个字节的小数部分)。

有时我想知道CS教授提出的问题。我想这就是为什么:

  1. 那些谁可以做,做;
  2. 那些谁不能做,教;
  3. 那些不能做,不能教,教PE的人。
+0

'一个字节的分数'? – EJP

+0

对4位数据进行编码,并且对于1字节封装具有4位开销。使用两个数据包来传输一个字节。 – user3344003

+0

有时我猜你对CS教授的评论可能是对的,但对我来说不是那么多,本学期教过我操作系统的人很聪明,他能做到甚至超出你的想象。他是Zcash加密货币背后的开发人员之一,他可能会在一天内改变知名的比特币。但我同意他们有时会问不清楚和困惑的问题。 –