Студопедия

КАТЕГОРИИ:


Архитектура-(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→


= 0001 0011 0001 1000 1100 → 0x 3 1 8 С → 0011 0001 1000 1101 = 0x 3 1 8 D


0x318D + 0x14B2 = 0011 0001 1000 1101 + 0001 0100 1011 0010 =

0011 0001 1000 1101

0001 0100 1011 0010

0000 0100 0110 0011 1111→


= 0000 0100 0110 0011 1111 = 0x0463F → 0x463F

0x463F + 0xC281 = 0100 0110 0011 1111 + 1100 0010 1000 0001 =

0100 0110 0011 1111

1100 0010 1000 0001

0001 0000 1000 1100 0000→


= 0001 0000 1000 1100 0000 → 0000 1000 1100 0001 →0x08C1

 
 


Тепер знаходимо порозрядне доповнення до одиниці отриманого результату:

0x08C1 = 0000 1000 1100 0001 → 1111 0111 0011 1110 = 0xF73E або, інакше - 0xFFFF - 0x08C1 = 0xF73E. Це і є шукана контрольна сума

При отриманні повідомлення одержувач рахує контрольну суму заново (уже з урахуванням контрольної суми), і, якщо в результаті вийде двійкове число з шістнадцяти одиниць (тобто 0xffff), то контрольна сума вважається такою, що збіглася, і повідомлення приймається.

Таблиця переводу чисел

0hex = 0dec = 0oct           8hex = 8dec = 10oct        
1hex = 1dec = 1oct           9hex = 9dec = 11oct        
2hex = 2dec = 2oct           Ahex = 10dec = 12oct        
3hex = 3dec = 3oct           Bhex = 11dec = 13oct        
4hex = 4dec = 4oct           Chex = 12dec = 14oct        
5hex = 5dec = 5oct           Dhex = 13dec = 15oct        
6hex = 6dec = 6oct           Ehex = 14dec = 16oct        
7hex = 7dec = 7oct           Fhex = 15dec = 17oct        

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 532; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.