КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Приклад розрахунку контрольної суми в протоколах ТСР/ІР
Перед розрахунком контрольної суми в протоколах ТСР/ІР повідомлення доповнюється в кінці нульовими бітами до довжини, кратної 16 бітам (додаткові нульові біти не відправляються разом з повідомленням). Початкове значення контрольної суми у час розрахунку контрольної суми повідомлення, що відправляється, приймається за нуль. Для розрахунку контрольної суми уся інформація, для якої розраховується контрольна сума, розбивається на слова (1 слово = 2 байти (2 октети) = 16 біт). Потім розраховується порозрядне доповнення до одиниці суми всіх слів з порозрядним доповненням. Результат записується у відповідне поле заголовку. У тому випадку, якщо контрольна сума вийшла рівною нулю, поле заповнюють одиницями. Якщо контрольну суму не потрібно розраховувати, значення поля залишають нульовим. Для прикладу розрахуємо контрольну суму декількох 16-бітових слів: 0x398А, 0xF802, 0x14B2, 0xC281. Нагадаємо, що тут, як і в деяких мовах програмування позначка “0х” є префіксом, ознакою того, що далі записане число в шістьнадцатьковій системі числення. Знаходимо їх суму з переносом старшої (п’ятої) тетради (в разі її наявності) до молодшої та доповненням останнього біта молодшої тетради: 0x 3 9 8 A + 0x F 8 0 2 = 0011 1001 1000 1010 + 1111 1000 0000 0010 = 0011 1001 1000 1010 1111 1000 0000 0010 00010011 0001 1000 1100→
0x318D + 0x14B2 = 0011 0001 1000 1101 + 0001 0100 1011 0010 = 0011 0001 1000 1101 0001 0100 1011 0010 0000 0100 0110 0011 1111→
0x463F + 0xC281 = 0100 0110 0011 1111 + 1100 0010 1000 0001 = 0100 0110 0011 1111 1100 0010 1000 0001 0001 0000 1000 1100 0000→
Тепер знаходимо порозрядне доповнення до одиниці отриманого результату: 0x08C1 = 0000 1000 1100 0001 → 1111 0111 0011 1110 = 0xF73E або, інакше - 0xFFFF - 0x08C1 = 0xF73E. Це і є шукана контрольна сума При отриманні повідомлення одержувач рахує контрольну суму заново (уже з урахуванням контрольної суми), і, якщо в результаті вийде двійкове число з шістнадцяти одиниць (тобто 0xffff), то контрольна сума вважається такою, що збіглася, і повідомлення приймається. Таблиця переводу чисел
Дата добавления: 2014-01-04; Просмотров: 574; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |