Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_m1 / lab_m1.doc
Скачиваний:
67
Добавлен:
07.02.2016
Размер:
2.69 Mб
Скачать

3.2 Фрагментація ip -пакетов

На шляху пакету від відправника до одержувача можуть зустрічатися локальні і глобальні мережі різних типів з різними допустимими розмірами полий цих кадрів канального рівня (MTU). Так, наприклад, мережі Ethernet можуть передавати кадри розміром до 1500 байт, мережі FDDI - до 4500 байт, в інших мережах діють свої обмеження. Протокол IP уміє передавати дейтаграммы, довжина яких більше MTU проміжної мережі, за рахунок фрагментації - розбиття "великого пакету" на деяку кількість частин (фрагментів), розмір кожної з яких задовольняє проміжну мережу. Після того, як усі фрагменти будуть передані через проміжну мережу, вони будуть зібрані на вузлі-одержувачі модулем протоколу IP назад в "великий пакет". Відмітимо, що зборку пакету з фрагментів здійснює тільки одержувач, а не який-небудь з проміжних маршрутизаторів. Маршрутизатори можуть тільки фрагментувати пакети, але не збирати їх. Це пов'язано з тим, що різні фрагменти одного пакету не обов'язково проходитимуть через одні і ті ж маршрутизатори.

Для того, щоб не переплутати фрагменти різних пакетів, використовується поле "Ідентифікація", значення якого має бути однаковим для усіх фрагментів одного пакету і не повторюватися для різних пакетів, поки у обох пакетів не витік час життя.

При діленні даних пакету, розмір усіх фрагментів, окрім останнього, має бути кратний 8 байтам. Це дозволяє відвести менше місця в заголовку під поле "Зміщення фрагмента".

Другий біт поля "Прапори" (MF), якщо дорівнює одиниці, вказує на те, що цей фрагмент - не останній в пакеті.

Якщо пакет вирушає без фрагментації, прапор MF встановлюється в 0, а поле Зміщення фрагмента - заповнюється нульовими бітами.

Якщо перший біт поля "Прапори" (DF) дорівнює одиниці, то фрагментація пакету заборонена. Якщо цей пакет має бути переданий через мережу з недостатнім MTU, то маршрутизатор вимушений буде його відкинути (і повідомити про це відправникові за допомогою протоколу ICMP). Цей прапор використовується у випадках, коли відправникові відомо, що у одержувача немає досить ресурсів по відновленню пакетів з фрагментів.

3.3 Базові утиліти для тестування мереж tcp/ip

Утиліта Ping дозволяє перевірити існування вказаного вузла і виміряти час передачі до нього одного пакету (можна задавати різні розміри пакету для дослідження проміжних мереж). Ця утиліта виконує передачу ICMP -сообщения типу 8 (Echo request), на яке одержувач повинен відповісти ICMP -сообщением типу 0 (Echo reply).

Утиліта Traceroute показує послідовність вузлів, через які проходить пакет на шляху до одержувача. Реалізовано це таким чином: послідовно вирушають пакети із зростаючим значенням в полі TTL : 1,2,3 і так далі. Той маршрутизатор, який зменшить TTL до нуля, зобов'язаний буде відправити ICMP -сообщение типу 11 (Time exceeded). В результаті будуть отримані такі ICMP -сообщения по черзі від усіх маршрутизаторів на шляху пакету до одержувача. У різних ОС ця утиліта реалізована по-різному: в ОС сімейства Windows вирушають ICMP -сообщения (подібно до утиліти ping), а в Linux/FreeBSD - UDP -сообщения.

3.4 Протоколи транспортного рівня

3.4.1 Функції транспортного рівня

Відправником і одержувачем даних, передаваних через мережу, з точки зору транспортного рівня, являється застосування (процес). Як будь-яка програма, процеси створюються і знищуються, на кожному вузлі може виконуватися декілька процесів, а кожен процес може мати декілька точок підключення до мережі. Такі логічні точки (програмно організовувані, як правило, у вигляді черг повідомлень) називаються портами (англ. port). Номер порту однозначно ідентифікує процес. Коли вузол отримує дейтаграмму транспортного рівня, він направляє її прикладному процесу, використовуючи номер порту, заданий при встановленні зв'язку.

Порти нумеруються позитивними цілими 16-бітовими числами. Різні протоколи транспортного рівня нумерую свої порти незалежно, тобто, наприклад, порт 20 протоколу TCP і порт 20 протоколу UDP абсолютно не пов'язані один з одним.

Деякі номери портів задані стандартами. Ці номери виділяються організацією IANA (англ. Internet Assigned Numbers Authority). Нині під стандартні порти відведений діапазон від 0 до 1023 (раніше - до 255). Інші порти можуть вільно використовуватися прикладними процесами. Порти в діапазоні від 1024 до 5000 називаються тимчасовими (англ. ephemeral). Призначення цих портів не стандартизовано, але IANA підтримує інформацію про їх використання.

Пара "порт - IP - адреса" називається (у термінології TCP/IP) гніздом або сокетом (англ. socket) і однозначно вказує програмний процес, що виконується на одному з вузлів в мережі.