Формати повідомлень
ICMP повідомлення посилають за допомогою стандартного IP заголовка. Перший октет у полі даних датаграми - це поле типу ICMP повідомлення. Значення цього поля визначає формат всіх інших даних у датаграмі. Будь-яке поле, що позначене "unused", зареєстровано для наступних розробок і повинне при відправленні містити нулі. Однак одержувач не повинен використовувати значення цих полів (за винятком процедури обчислення контрольної суми). Якщо зворотне особливо не обговорене при описі окремих фрагментів, Internet заголовок повинен мати у своїх полях наступні значення:
Версія 4.
IHL Довжина Internet заголовка; одиниця виміру - 32-бітне слово.
Тип сервісу 0.
Загальна довжина - довжина Internet заголовка й поля даних в октетух.
Ідентифікація, прапори, зсув фрагмента - використовуються у випадку фрагментації, див. [1].
Час життя – час життя в секундах. Оскільки значення цього поля зменшується на одиницю в кожній машині, на якій обробляється дана датаграма, то значення цього поля повинне, принаймні, перевищувати кількість шлюзів, через які буде проходити дана датаграма.
Протокол ICMP=1.
Контрольна сума заголовка 16-бітне доповнення до одиниці суми доповнень до одиниці всіх 16-бітних слів у заголовку. При обчисленні даної суми варто спочатку встановлювати значення цього поля в нуль.
Надалі цей алгоритм обчислення контрольної суми повинен бути змінений.
Адреса відправлення – адреса шлюзу або хост-комп'ютера, що склав дане ICMP повідомлення. Якщо не обговорене зворотнє, у цьому полі може перебувати кожна з адрес шлюзу.
Адреса одержувача – адреса шлюзу або хост-комп'ютера, якому варто послати дане повідомлення.
Табл. 5 Повідомлення про недосяжність порту
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
не використовується | |||||||||||||||||||||||||||||||
Internet заголовок + 64 біта даних з вихідної датаграми |
Поля Internet протоколу:адреса одержувача, локальна мережа й адреса комп'ютера, що відправив вихідну датаграму.
Поля ICMP протоколу - тип 3.
Код
неможливо передати датаграму на локальну мережу, де перебуває адресат | |
неможливо передати датаграму на хост-комп'ютер, що є адресатом | |
не можна скористатися зазначеним протоколом | |
не можна передати дані на зазначений порт | |
для передачі датаграми по мережі потрібна фрагментація, однак виставлений прапор DF. | |
збій у маршрутизації при відправленні |
Контрольна сума - контрольна сума є 16-бітним доповненням до одиниці суми доповнень октетів у полях ICMP повідомлення, починаючи з поля типу ICMP. Для обчислення контрольної суми первинне значення цього поля обнуляється. У майбутньому процедура обчислення контрольної суми може бути змінена.
Internet заголовок + 64 біта даних з вихідної дата грами - дане поле містить Internet заголовок і перші 64 біта даних з вихідної датаграми для вироблення повідомлення для відповідного процесу. Якщо протокол більше високого рівня використовує номери портів, то передбачається, що ці номери перебувають у перших 64 бітах поля даних.
Опис - якщо, відповідно до інформації в таблицях маршрутизації шлюзу, локальна мережа, зазначена в Internet заголовку датаграми в поле адресата, є недосяжною, наприклад, через її надмірну дальність, то шлюз може послати хост-комп'ютеру, що відправив датаграму по Internet мережі, повідомлення про недосяжність адресата.
Крім цього, у деяких мережах шлюз може мати можливість визначати доступність окремого хост-компьютера. Шлюз у такій мережі може послати дане повідомлення, якщо хост-комп'ютер, що є адресатом, недоступний.
Інша ситуація виникає, коли для досягнення адресата датаграма повинна бути розбита шлюзом на окремі фрагменти, але встановлений прапор заборони фрагментації. Про цей випадок шлюз зобов'язаний ліквідувати датаграму й може при цьому послати повідомлення про недосяжність адресата.
Шлюз може послати повідомлення з кодами 0, 1, 4 і 5. Хост-Комп'ютер може послати повідомлення з кодами 2 і 3.
Табл. 6 Повідомлення про перевищення контрольного часу
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
не використовується | |||||||||||||||||||||||||||||||
Internet заголовок + 64 біта даних з вихідної датаграми |
Поля IP заголовка - запозичені мережа й адреса відправника з вихідної датаграми з даними. Поля ICMP повідомлення - тип 11.
Код
при передачі перевищений час життя | |
перевищено контрольний час при складанні фрагментів датаграми |
Контрольна сума – контрольна сума є 16-бітним доповненням до одиниці суми доповнень в ICMP повідомленні, починаючи з поля типу ICMP.
При обчисленні суми треба спершу обнулити поле контрольної суми. У майбутньому алгоритм контрольної суми може бути змінений.
Internet заголовок + 64 біта даних з вихідної дата грами - Internet заголовок плюс перші 64 біта даних з вихідної датаграми. Ці біти даних використовуються хост-комп'ютером для прив'язки повідомлення до відповідного процесу. Якщо протокол більш високого рівня використовує номери портів, то передбачається, що ці номери входять у перші 64 біта даних у вихідній датаграмі.
Опис – якщо фрагмент нульового розміру перевищив контрольний час, то повідомлення в цьому не посилається зовсім.
Шлюз може послати повідомлення з кодом 0, а хост - з кодом 1.
Табл. 7 Повідомлення про проблеми з параметром
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
покажчик | не використовується | ||||||||||||||||||||||||||||||
Internet заголовок + 64 біта даних з вихідної датаграми |
Поля IP заголовка – запозичені мережа й адреса відправника з вихідної датаграми з даними. Поля ICMP повідомлення - тип 12.
Код 0.
Покажчик показує помилку.
Контрольна сума - контрольна сума є 16-бітним доповненням до одиниці суми доповнень в ICMP повідомленні, починаючи з поля типу ICMP.
При обчисленні суми треба спочатку обнулити поле контрольної суми. У майбутньому алгоритм обчислення контрольної суми може бути змінений.
Покажчик - якщо код = 0, то він указує на октет, де була виявлена помилка. Internet заголовок + 64 біта даних з вихідної дата грами. Ці біти даних використовуються хост-комп'ютером для прив'язки повідомлення до відповідного процесу. Якщо протокол більш високого рівня використовує номери портів, то передбачається, що ці номери входять у перші 64 біта даних вихідної датаграми.
Опис – якщо шлюз або хост-комп'ютер, що обробляє датаграму, виявляє проблему з обробкою параметрів заголовка, і це не дозволяє завершити її обробку, то він повинен ліквідувати розглянуту датаграму. Однією з потенційних причин такої неприємності можуть бути неправильні аргументи в опції. Шлюз або хост-комп'ютер у повідомленні про проблему з параметрами може також згадати хост-комп'ютер, що породив датаграму з помилкою. Повідомлення такого типу посилають лише в тому випадку, якщо помилка приводить до ліквідації цієї датаграми.
Покажчик визначає октет у заголовку вихідної датаграми, де була виявлена помилка (цей помилковий октет може перебувати навіть всередині опції). Наприклад, 1 указує на те, що є якась помилка в полі типу сервісу, а (якщо є опції) 20 визначає, що є помилка в коді типу для першої опції. Код 0 повідомлення може приходити як від шлюзу, так і від хост-компьютера.
Табл. 8 Повідомлення для припинення відправника
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
не використовується | |||||||||||||||||||||||||||||||
Internet заголовок + 64 біта даних з вихідної датаграми |
Поля IP заголовка - запозичені мережа й адреса відправника з вихідної датаграми з даними.
Поля ICMP повідомлення -тип 4.
Код 0.
Контрольна сума – контрольна сума є 16-бітним доповненням до одиниці суми доповнень в ICMP повідомленні, починаючи з поля типу ICMP. При обчисленні контрольної суми треба спочатку обнулити поле контрольної суми. У майбутньому алгоритм обчислення контрольної суми може бути змінений.
Internet заголовок + 64 біта даних з вихідної дата грами- Internet заголовок плюс перші 64 біта даних з вихідної датаграми. Ці дані використовуються хост-комп'ютером для прив'язки повідомлення до відповідного процесу. Якщо протокол більш високого рівня використовує номери портів, то передбачається, що ці номери входять у перші 64 біта даних вихідної датаграми.
Опи – шлюз може ліквідувати Internet датаграми, якщо в нього немає місця в буфері для постановки цих датаграм у чергу на відправлення в чергову мережу по маршруті проходження до адресата.
Якщо шлюз ліквідує датаграму, то він повинен послати повідомлення для припинення хост-комп'ютеру в Internet системі, що відправив дану датаграму. Повідомлення про припинення може послати також сам адресат, якщо датаграми приходять занадто швидко, щоб встигнути їх обробити. Повідомлення про припинення є запросом для хост-комп'ютера зменшити швидкість посилки даних на цю конкретну адресу. Шлюз може посилати повідомлення для призупинки відправника в кожному випадку ліквідації. При одержанні такого повідомлення хост-комп'ютер, що відправив дані, повинен зменшити швидкість посилки даних по цій адресі доти, поки не перестануть приходити запити на припинення з даного шлюзу. Після цього хост-комп'ютер, що відправляє дані, може поступово збільшувати швидкість посилки даних по цій адресі, поки знову не стануть приходити повідомлення про припинення.
Шлюз або хост-комп'ютер може посилати повідомлення про припинення ще до досягнення граничної пропускної здатності, і не чекати, поки ця межа буде пройдена. Це означає, що датаграма з даними, що викликали появу повідомлення про припинення, все-таки може досягти свого адресата. І шлюз і хост-комп'ютер можуть відправити повідомлення з кодом 0.
Табл. 9 Повідомлення про переадресацію
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
Internet адреса шлюзу | |||||||||||||||||||||||||||||||
Internet заголовок + 64 біта даних з вихідної датаграми |
Поля IP заголовка – запозичені мережа й адреса відправника з вихідної датаграми з даними.
Поля ICMP повідомлення - тип 5.
Код:
- переадресація дата грам для мережі | |
- переадресація дата грам для хост-комп'ютера | |
- переадресація дата грам для типу послуг і мережі | |
- переадресація датаграм для типу послуг і хост-комп'ютера |
Контрольна сума – контрольна сума - це 16-бітне доповнення до одиниці суми доповнень в ICMP повідомленні, починаючи з поля типу ICMP. При обчисленні контрольної суми треба спочатку обнулити поле контрольної суми. У майбутньому алгоритм обчислення контрольної суми може бути змінений.
Internet адреса шлюзу – адреса шлюзу, на який повинен бути прокладений маршрут до мережі, зазначеної в полі адреси у вихідній датаграмі з даними.
Internet заголовок + 64 біта даних з вихідної дата грами – Internet заголовок плюс перші 64 біта даних з вихідної датаграми. Ці дані використовуються хост-комп'ютером для прив'язки повідомлення до відповідного процесу. Якщо протокол більш високого рівня використовує номери портів, то передбачається, що ці номери входять у перші 64 біта даних вихідної датаграми.
Опис – шлюз посилає повідомлення на хост-комп'ютер про переадресацію в наступній ситуації: Шлюз G1 одержує Internet датаграму від хост-комп'ютера в мережі, де він розташований. Шлюз G1 перевіряє таблицю маршрутизації й знаходить адресу наступного шлюзу G2 як маршрут для датаграми по шляху в мережу X, де розташований її адресат. Якщо G2 і вихідний хост-комп'ютер ідентифікуються Internet адресою які перебувають в одній і тій же мережі, то на хост-комп'ютер варто послати повідомлення про переадресацію. Повідомлення про переадресацію змушує хост-комп'ютер посилати датаграми для мережі X прямо на шлюз G2, оскільки це більш короткий шлях, ніж залучати ще шлюз G1. Шлюз передає дані вихідної датаграми їхньому адресатові в системі Internet.
Для датаграм із опціями IP маршрутизації відправлення й адресою шлюзу в поле одержувача повідомлення не посилає, навіть якщо й існує більш оптимальний маршрут до кінцевого адресата, чим наступна адреса, зазначена в такій опції маршруту. Шлюзом можуть бути передані повідомлення з кодами 0, 1, 2 і 3.
Табл. 10 Луна-повідомлення й повідомлення у відповідь на луну
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
Ідентифікатор | Номер черги | ||||||||||||||||||||||||||||||
Дані ..... |
Поля IP заголовка Адреси – адреса відправника в луну-повідомленні буде адресою одержувача у відповідному повідомленні. Щоб сформувати повідомлення відповіді, варто просто переставити місцями адреси відправника й одержувача, код типу змінити на 0 і перерахувати контрольну суму.
Поля ICMP повідомлення – тип.
- луна-повідомлення | |
- повідомлення у відповідь на луну |
Код 0.
Контрольна сума – контрольна сума – це 16-бітне доповнення до одиниці суми доповнень для ICMP повідомлення, починаючи з поля типу ICMP.
При обчисленні контрольної суми це поле повинне бути спочатку обнулено. Якщо загальна довжина повідомлення непарна, то для обчислення контрольної суми поле даних доповнюється ще одним нульовим октетом. У майбутньому алгоритм обчислення контрольної суми може бути змінений.
Ідентифікатор – якщо код = 0, то ідентифікатор для співвіднесення луна-повідомлень і відповідей на них, повинен бути обнулений.
Номер черги – якщо код = 0, то номер черги, службовець для співвіднесення луна-повідомлень і відповідей на них, повинен бути обнулений.
Опис – дані з луна-повідомлення повинні бути передані у відповіді на це повідомлення.
Ідентифікатор і номер черги може використовуватися відправником луна-повідомлення з метою ідентифікації приходящих пакетів. Наприклад, ідентифікатор може використовуватися як порт подібно протоколам TCP і UDP для ідентифікації сеансу. Номер черги може збільшуватися на одиницю при посилці кожного луна повідомлення (запиту). Комп'ютер, відкликнувшись на це повідомлення, повертає у своїй відповіді ті ж значення для ідентифікатора й номера черги, що були у вихідному луні-повідомленні.
Як шлюз, так і хост-комп'ютер можуть повертати повідомлення з кодом 0.
Табл. 11 Повідомлення зі штампом часу й повідомлення з відповіддю на штамп часу
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
Ідентифікатор | Номер черги | ||||||||||||||||||||||||||||||
Штамп часу відправлення | |||||||||||||||||||||||||||||||
Штамп часу одержання | |||||||||||||||||||||||||||||||
Штамп часу передачі |
Поля IP заголовка – адреса відправника в повідомленні зі штампом часу буде адресою одержувача в повідомленні з відповіддю. Щоб сформувати відповідь на повідомлення, варто просто поміняти місцями адреси відправника й одержувача, вибрати код типу 14, а також перерахувати контрольну суму.
Поля ICMP повідомлення - тип
3 - для повідомлення зі штампом часу; | |
4- для відповіді на повідомлення зі штампом часу. |
Код 0.
Контрольна сума – контрольна сума – це 16-бітне доповнення до одиниці суми доповнень для ICMP повідомлення, починаючи з поля типу ICMP.
При обчисленні контрольної суми це поле повинне бути спочатку обнулено. У майбутньому алгоритм обчислення контрольної суми може бути змінений.
Ідентифікатор – якщо код = 0, то ідентифікатор, що служить для співвіднесення повідомлень зі штампом часу й відповідей на них, повинен бути обнуленим.
Номер черги – якщо код = 0, то номер черги, службовець для співвіднесення повідомлень зі штампом часу й відповідей на них, повинен бути обнуленим.
Опис – дані з повідомлення (штамп часу) вертаються разом з відповіддю, при цьому в них додається ще один штамп часу. Штамп часу – це 32 біта, де записаний час у мілісекундах, що пройшло після напівночі за єдиним часом (UT). Один із прикладів використання таких тимчасових штампів наведений у документі [5].
Штамп часу відправлення – це час, що відправник фіксував останній раз перед посилкою повідомлення. Штамп часу одержання – це час, коли вихідне повідомлення вперше побачив одержувач первісного повідомлення. Штамп часу передачі – це час, що фіксував востаннє комп'ютер, що відправляє відповідне повідомлення.
Якщо немає можливості вимірювати час у мілісекундах або не можна визначити єдиний час (UT), то в штамп все-таки можна занести наявний час, постачивши його одиницею в старшому біті. Останнє також указує на запис нестандартного значення в цьому полі.
Ідентифікатор і номер черги можуть використовуватися відправником для співвіднесення повідомлень (запитів) і відповідей на них. Наприклад, ідентифікатор може використовуватися як порт, аналогічно протоколам TCP і UDP, для ідентифікації сесії. Номер черги може збільшуватися на одиницю при кожній посилці повідомлення (запиту). Адресат повертає для цих параметрів ті значення, які були виявлені в запиті. І шлюз і хост-комп'ютер можуть повертати повідомлення з кодом 0.
Табл. 12 Запит інформації й відповідне повідомлення з інформацією
Тип | Код | Контрольна сума | |||||||||||||||||||||||||||||
Ідентифікатор | Номер черги |
Поля IP заголовка Адреси – адреса відправника в повідомленні із запитом інформації виявиться адресою одержувача у відповідному повідомленні з інформацією. Щоб сформувати відповідне повідомлення, варто просто поміняти місцями адреси відправника й одержувача, код типу перемінити на 16, перерахувати контрольну суму.
Поля ICMP повідомлення – тип:
5 – повідомлення із запитом інформації | |
6 – відповідне повідомлення з інформацією |
Код 0.
Контрольна сума – контрольна сума – це 16-бітне доповнення до одиниці суми доповнень для ICMP повідомлення, починаючи з поля типу ICMP. При обчисленні контрольної суми треба попередньо обнулити поле самої контрольної суми. У майбутньому алгоритм обчислення контрольної суми може бути змінений.
Ідентифікатор – якщо код = 0, то ідентифікатор, що служить для співвіднесення запитів і відповідей, може бути обнуленим.
Номер черги – якщо код = 0, то номер черги, службовець для співвіднесення запитів і відповідей, може бути обнуленим.
Опи – дане повідомлення може бути послано, коли в IP заголовку в полях відправника й одержувача записані нулі (це означає "саме цю" локальну мережу). У відповідь повинен бути посланий IP модуль із повністю заданими адресами. Дане повідомлення є способом, за допомогою якого хост-комп'ютер зможе визначити номер мережі, куди він підключений.
Відправник повідомлень може використовувати ідентифікатор і номер черги для співвіднесення запитів і відповідей, що прийшли. Наприклад, ідентифікатор може використовуватися як порт у протоколах TCP і UDP для ідентифікації сеансу. Номер черги може збільшуватися на одиницю щораз, коли посилає запит. Адресат повертає у відповіді ті ж значення цих параметрів, які були виявлені в запиті.
І хост-комп'ютер і шлюз можуть повертати повідомлення з кодом 0.
Дата добавления: 2016-05-11; просмотров: 650;