Мережеві протоколи

по старому перевіреному протоколу TCP. В результаті в голові зміцнюється думка, яку я постійно чую від багатьох людей: “Так, TCP гарантує, що дані прийдуть туди, куди треба”. Проте насправді, ця заява неправильна. TCP або Transmission Control Protocol – це протокол орієнтований на з'єднання. UDP або User Datagram Protocol не вимагає з'єднання. Що ж це в точності означає? Добре, якщо ви читали мої статті про TCP, ви повинні були відмітити, що TCP має дуже багато параметрів, включених в заголовок. Ці самі параметри (номер послідовності TCP, номер підтвердження) роблять цей протокол орієнтованим на з'єднання. Нарешті, TCP має заголовок стандартної довжини в 20 байт, замість 8 у UDP. Чим відрізняється UDP?Добре, наш протокол UDP має довжину заголовка 8 байт. Це на 12 байтів менше, ніж для TCP. В результаті цього UDP набагато швидше, оскільки необхідно менше передавати. Здається, що 12 байтів це не багато, але, помноживши їх на тисячі пакетів, ми швидко побачимо різницю для вашої мережі.  Але якщо заголовок UDP набагато менший, то, як тоді він виглядає, ви запитаєте мене? Хороше питання! Подивитеся, будь ласка, на діаграму нижче і побачите, як виглядає заголовок UDP. _____________________________________________________2 байти номер порту відправника | 2 байти номер порту одержувача _____________________________________________________2 байти довжина пакету UDP | 2 байти значення контрольної суми UDP ____________________________________________________ Дані, якщо такі єОтже, з діаграми вище, ми бачимо, що додаткові 12 байтів в заголовку можуть привести до значних відмінностей. В результаті цього UDP не орієнтований на з'єднання. Ви напевно відмітили, що в заголовку UDP також є контрольна сума. Зараз я б хотів нагадати вам, що все 4 основних протоколу - IP, TCP, UDP, ICMP – мають контрольну суму. У всіх чотирьох основних протоколах за наявності даних в заголовку присутня контрольна сума. Ще я б хотів згадати про UDP і його контрольну суму, що її використання необов'язкове. По суті, воно не повинно використовуватися, а в TCP, ICMP, і IP, навпроти необхідно
Це гарантовано?Добре, тепер знаючи, що UDP не гарантує доставку, і що він має набагато менше вбудованих параметрів для цього, чому ви хочете його використовувати? Це необхідно пам'ятати програмістам при виборі транспортного протоколу, який вони хочуть використовувати, при розробці нового застосування або протоколу іншого рівня. Існує велике число місць, при розробці яких необхідно вибирати між швидкістю і розміром пакету. Якщо ці чинники важливі для розробника, то йому слід вибрати UDP як транспортного протоколу. Так, все це здорово, але насправді чи використовує який-небудь додаток або інший протокол, UDP-протокол? Відмінне питання, і відповідь на нього позитивна. Існує декілька застосувань, які використовують як транспорт протокол UDP. Одне з найвідоміших – це DNS (domain name system – доменна служба імен). Трафік, формований DNS, насправді передається по UDP. DNS – це один з тих протоколів, який використовує і UDP і DNS. Проте варто сказати, що активність DNS в основному складається із запитів і відповідей DNS. Які, як згадувалося раніше, передаються по UDP. А ми розглянемо пакет UDP!Тепер, коли я відчуваю ваше передчуття дізнатися будову UDP, ми розглянемо пакет UDP і різні поля, які можна бачити в прикладі. 02:00:04. 079943 192. 168. 1. 100. 53 > 192. 168. 1. 200. 57746: [udp sum ok] 60865 FormErr% [0q] 0/0/0 (12) (DF) (ttl 253, id 9987, len 40)0x0000 4500 0028
1 2 3 4 5 6 7 8 9 10 11

Схожі роботи