2016-01-31 5 views
0

Я студент, и сейчас я занимаюсь операционными системами. Я наткнулся на странный ответ на вопрос, изучая экзамен, и я не мог найти объяснения.Минимальный размер сетевого буфера

Вопрос: Предположим, у нас есть операционная система, работающая на малой физической памяти. Таким образом, разработчики решили сделать буфер (который обрабатывает всю работу, связанную с сетью) как можно меньше. Каким может быть самый маленький размер буфера?

Не может быть реализован только с одним байтом, но может быть реализован с размером 2 байта.

Мои мысли: У него есть 4 ответа, один из них «3 байта или более», поэтому я подумал, что это правильный ответ, потому что для установления соединения, которое вам нужно в списке, чтобы отправлять заголовок tcp/udp или аналогичного пакета, который содержит всю информацию о подключении, поэтому я понятия не имею, почему это правильный ответ (согласно ссылке). Может, какой-то вырожденный случай?

Спасибо за помощь.

+0

Кажется, это странный ответ и странный вопрос. Есть ли еще какой-то контекст? IP-заголовок составляет 20 байтов. – EJP

+0

К сожалению, в этом весь вопрос. Я думал, что у меня что-то не хватает. Но я думаю, мне придется спросить того, кто написал этот вопрос. –

+1

Я думаю, есть аргумент, что один байтовый буфер не купит вам ничего, но буфер с двумя байтами, поскольку он сокращает записи до следующего этапа пополам. Но буферы необходимо администрировать: кто-то должен знать их адрес и длину, что намного больше двух байтов, поэтому на практике вам нужно будет амортизировать эти накладные расходы на гораздо большем буфере. – EJP

ответ

0

Размер буфера должен быть не меньше размера пакета в сети. Это будет зависеть от типа аппаратного интерфейса. Я не знаю ни одной сетевой системы, даже возвращаясь к дням коммутируемого доступа, которые использовали что-то близкое к 2 байтам.

Возможно, теоретически у вас может быть сетевая система, в которой используются 2-байтовые пакеты. Такая же логика позволит вам использовать 1-байтовые пакеты (передающие доли байта в пакетах).

Иногда мне интересно о вопросах, которые возникают у профессоров CS. Я думаю, именно поэтому:

  1. Те, кто может это сделать, делать;
  2. Те, кто не может делать, учить;
  3. Те, кто не могут заниматься и не могут учить, учат ЧП.
+0

'Фракции байта'? – EJP

+0

кодирует 4 бита данных и имеет 4 бита служебных данных для 1-байтового пакета. используйте два пакета для передачи одного байта. – user3344003

+0

Иногда я думаю, что ваш комментарий к профессорам CS может быть прав, но в моем случае не так много, тот, кто научил меня, что этот семестр блестящий, он может сделать и даже больше, чем вы можете себе представить. Он является одним из разработчиков за криптовалюты Zcash, который может очень хорошо изменить известный биткойн в один прекрасный день. Но я согласен, что они иногда задают непонятные и запутывающие вопросы. –

Смежные вопросы