2

Я надеюсь, что я нахожусь в правильном дочернем сайте stackexchange (кажется, не могу найти связанный с сетью дочерний сайт ..)

У меня есть 2 вопроса относительно сетевого протокола CSMA/CD:

  1. Перед отправкой некоторых (скажем, 5) сообщений по шине, существует ли какая-то формула, сколько времени потребуется для успешной передачи всех сообщений (без коллизий)? Или время неизвестно, когда начинается передача?

  2. Если (1) нет -> Можно ли рассчитать максимальное время передачи? Так например -> 'это займет макс. 10 мсек, прежде чем все сообщения будут успешно переданы ».

Надеюсь мои вопросы вам понятны! Если нет, я рад прояснить, когда это необходимо!

Спасибо за ваше время!

2 ответа2

1

В случае, если вы находитесь в одиночном и в противном случае пустом домене коллизий, вычисление должно быть следующим для Ethernet:

Inter fram gap = 96 Bit / link speed (in MBit/s)
Packetsize = Preamble (8 bytes) + Ethernetframe (68-1522 bytes)
Time = Packetsize / Link speed (either 10 MBit/s, 100 MBit/s, 1 GBit/s, 10 GBit/s) + Inter frame gap

Таким образом, чтобы передать полный размер стандартного кадра

8 bytes preamble + 22 bytes header + 1500 bytes payload = 1530 bytes

через соединение 1 Гбит / с

Time = 1530 bytes / 1 GBit/s = 12.24 µs

межкадровый промежуток 96 нс составляет 12,336 мкс.

Сделайте этот расчет для каждого пакета и добавьте продолжительность.

Это минимальный временной интервал, необходимый, поскольку, как только вы не находитесь в своем собственном домене коллизий, нет никакого способа рассчитать необходимое время, поскольку может даже оказаться, что вы вообще не можете его отправить.

1

CSMA/CD по своей природе не полностью предсказуем, потому что вы не знаете, что будут делать другие станции в сети. Вы можете рассчитать минимальное время (как это сделал бот47), но максимальное время не известно заранее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .