Рассмотрим tcp/ip и ethernet протоколы на примере. Для этого я установил соединение c tcp сервером на ПК, через модем GPRS на модеме SIM900(о том как работать с SIM900 смотрите эту статью).
Для отслеживания сетевых пакетов на ПК используется программа анализатор трафика(сниффер) wireshark. Данная программа позволяет не только отслеживать сетевые данные, но и получать полную информацию о пакетах различных протоколов их вложенность и содержание.
Ethernet
Формат кадра Ethernet:
Рассмотрим на примере первого пакета — запроса на установление tcp соединения.
-
DA (destination adress) 0x90 0x2b 0x34 0x13 0x33 0x73. Это MAC адрес узла назначения.
-
SA (source adress) 0xf0 0x7d 0x68 0x9b 0x80 0xf8. Это MAC адрес узла отправителя.
-
T (type) 0x08 0x00. Условный код протокола верхнего уровня. 0x0800 — соответствует протоколу IP. Поле отвечает за подуровень LLC — на этом подуровне существуют алгоритмы (логические процедуры), позволяющие устанавливать или не устанавливать связь перед передачей кадров, восстанавливать или не восстанавливать кадры при их потере или обнаружении ошибок. В Ethernet v2 реализуется LLC1 — услуга без установления соединения и без подтверждения получения данных на уровне ethernet(это реализует tcp). подробнее в литературе
-
Данные (включает в себя пакеты tcp/ip и данные, если они есть)
-
FSC 0xa3 0xcb. Контрольная сумма (CRC32). Последние четыре байта в самом конце пакета(после tcp/ip и данных).