Wireshark

TCP анализ на улавяне на пакети

TCP анализ на улавяне на пакети

Какво е TCP?

TCP (Transmission Control Protocol) е протокол на транспортния слой, ориентиран към връзка.

Намерение на тази статия:

Да разбереш целия TCP не е лесна задача. В тази статия ще се опитаме да разберем основните обмени на пакети на TCP чрез Wireshark. Теорията може да се чете чрез интернет. Ще се съсредоточим повече върху анализа на улавяне на пакети.

Защо TCP е известен?

Има много причини, поради които TCP е толкова известен:

  1. TCP е ориентиран към връзката протокол, така че надеждността е много висока.
  2. TCP може сам да контролира задръстванията.
  3. TCP може да открие грешка.
  4. TCP използва протокол за контрол на потока.
  5. TCP има функции за забавяне на ACK.
  6. TCP има селективна функция ACK.
  7. TCP има функция за извикване на прозорци за подобряване на производителността.

Има толкова много други функции, които правят TCP толкова известен.

Анализ на TCP:

Ще следваме няколко стъпки за генериране на TCP рамки.

Етап 1: Най-лесният начин за генериране на TCP пакети е чрез достъп до който и да е HTTP уебсайт. Причината е, че HTTP е протокол на приложния слой и той използва TCP като основен протокол на транспортния слой.

За да знаете за HTTP, следвайте връзката по-долу

https: // linuxhint.com / http_wireshark /

Стъпка 2: Стартирайте Wireshark.

Стъпка 3: Отворете връзката отдолу във всеки браузър.

http: // gaia.cs.umass.edu / wireshark-labs / alice.текст

Стъпка 4: Спрете Wireshark и поставете TCP като филтър.

Стъпка 5: АНАЛИЗ

Сега трябва да видим TCP 3-пътни пакети за ръкостискане. Ето простата диаграма.

Рамка 1: SYN [Синхронизация]

SYN е първият пакет, идващ от клиента към сървъра. В нашия случай 192.168.1.6 е клиентът [Системата, в която отворихме браузъра] и gaia.cs.umass.edu е сървърът.

Ето някои важни полета в рамката SYN

SYN рамката е необходима за изпращане на възможностите на клиента към сървъра.

Рамка 2: SYN + ACK [Синхронизация + Потвърждение]

SYN, ACK е вторият пакет, идващ от сървъра към клиента.

Ето някои важни полета в рамката SYN, ACK

SYN, ACK кадър е необходим за изпращане на възможностите на сървъра до клиента.

Сега клиентът и сървърът са споделили своите възможности.

Рамка 3: ACK [Потвърждение]

ACK е третият пакет, идващ от клиента към сървъра. Това е основно потвърждение от клиент към сървър, а също така е приемане на възможностите, изпратени от сървъра.

Ето важните полета за ACK.

Нека проверим важната информация, споделена между клиент и сървър:

КлиентСървър

Размер на прозореца за получаване: 64240 байта                          Размер на прозореца за получаване: 29200 байта

Максимален размер на сегмента: 1460 байта                         Максимален размер на сегмента: 1412 байта

ЧАНТА Разрешено: Да                                                 ЧАНТА Разрешено: Да

Мащаб на прозореца: 8 (умножете по 256)                          Мащаб на прозореца: 7 (умножете по 128)

Забелязахме, че има разлики в стойностите. Ако клиентът или сървърът приемат възможностите на други, тогава 3-посочното ръкостискане е успешно.

TCP заглавка:

Ето важните полета на заглавката на TCP:

  1. Изходен порт (16 бита): Това е изпращащият порт.
Пример: Изходен порт: 50026 (50026)
  1. Целеви порт (16 бита): Това е приемащият порт.
Пример: Пристанищен порт: http (80)
  1. Пореден номер (32 бита):
Пример: Пореден номер: 0 (относителен пореден номер)
  1. Номер за потвърждение (32 бита): Ако е зададен флаг ACK, тогава стойността на това поле е следващият пореден номер, който подателят на ACK очаква.
Пример: Номер на потвърждение: 0
  1. Дължина на заглавката: Размерът на заглавката може да варира от 20 байта и максимум 60 байта.
Пример: 1000 ... = Дължина на заглавката: 32 байта (8)
  1. Флагове (9 бита):
Пример:
... = Резервирано: Не е зададено
… 0… = Nonce: Не е зададено
… 0… = Намален прозорец за задръствания (CWR): Не е зададено
… 0… = ECN-Echo: Не е зададено
… 0… = Спешно: Не е зададено
… 0… = Потвърждение: Не е зададено
… 0… = Push: Не е зададено
… 0… = Нулиране: Не е зададено
... 1. = Syn: Задайте
… 0 = Fin: Не е зададено
  1. Размер на прозореца (16 бита): Това е размерът на прозореца за получаване в байтове.
Пример: Стойност на размера на прозореца: 64240
  1. Контролна сума (16 бита):

Използва се проверка за грешка на заглавката.

Пример: Контролна сума: 0x436f
  1. Спешен указател (16 бита):

Това е отклонение от поредния номер, показващ последния байт за спешни данни.

Пример: Спешен указател: 0
  1. Настроики:
Пример:
TCP опция - Максимален размер на сегмента: 1460 байта
TCP опция - без операция (NOP)
TCP опция - Мащаб на прозореца: 8 (умножете по 256)
Опция за TCP - разрешено SACK

Наблюдение:

Размерът на TCP заглавката на SYN е 32 байта.

TCP размер на заглавката на SYN, ACK е 32 байта.

Размерът на TCP заглавката на ACK е 20 байта, тъй като няма полета за опции.

TCP данни:

Ето екранната снимка с обяснение за TCP данни и TCP ACK. Тук можем да видим TCP функция за забавяне на TCP. Сървърът е изпратил три TCP пакета с данни до клиента и клиентът е изпратил едно забавяне ACK, за да каже на сървъра, че е получил и трите TCP пакета с данни. Ето защо в TCP ACK [номер на пакета 96 на екранна снимка] виждаме ACK = 14121, което означава, че клиентът е получил до 14121 байта.

Справка:

За основна теория на TCP вижте

https: // en.wikipedia.org / wiki / Transmission_Control_Protocol

5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...