2010-02-26 5 views
1

Я проверил страницу man tcpdump и подумал, что я понял пример, представленный там. Но тот, который я получаю, - это то, что я не могу полностью понять.Нужна помощь в интерпретации вывода tcpdump

ОРИГИНАЛ: Simulator Выходной

LINE 1: 20:01:13.442111 IP 10.0.0.1.12345 > 10.0.0.2.54321: S 1234:1234(0) win 65535 
LINE 2: 20:01:13.471705 IP 10.0.0.2.54321 > 10.0.0.1.12345: S 4321:4321(0) ack 1235 win 65535 
LINE 3: 20:01:13.497389 IP 10.0.0.1.14640 > 10.0.0.2.12756: . ack 4322 win 65535 
LINE 4: 20:01:13.497422 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 1235:2682(1447) win 65535 
LINE 5: 20:01:14.023273 IP 10.0.0.2.12756 > 10.0.0.1.14640: . ack 5768 win 65535 

Это то, что я понимаю:

LINE 1: 1 sends 2 0 bytes starting with SEQ number 1234 
LINE 2: 2 sends 1 0 bytes starting with SEQ number 4321 and an ACK = (1's SEQ + 1) i.e. 1235 
LINE 3: 1 sends 2 0 bytes with an ACK = (2's SEQ + 1) i.e. 4322 
LINE 4: 1 sends 2 1447 bytes starting with SEQ number 1235 until 2682 (1447 bytes in total) 
LINE 5: 2 sends 1 0 bytes with an ACK = 5768? What is this number? Isn't it supposed to be 2683? 

Может быть, я что-то не хватает слишком очевидно. Может кто-нибудь указать на это, пожалуйста?

EDIT 1: выход Simulator (grepped одну информацию о соединении)

20:01:13.442111 IP 10.0.0.1.12345 > 10.0.0.2.54321: S 1234:1234(0) win 65535 
20:01:13.471705 IP 10.0.0.2.54321 > 10.0.0.1.12345: S 4321:4321(0) ack 1235 win 65535 
20:01:13.497422 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 1235:2682(1447) win 65535 
20:01:14.573322 IP 10.0.0.2.54321 > 10.0.0.1.12345: . ack 5981 win 65535 
20:01:14.593870 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 4129:5576(1447) win 65535 
20:01:14.639457 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 7023:8470(1447) win 65535 
20:01:14.639606 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 9917:10640(723) win 65535 
20:01:14.660971 IP 10.0.0.2.54321 > 10.0.0.1.12345: . ack 11769 win 65535 
20:01:14.693847 IP 10.0.0.1.12345 > 10.0.0.2.54321: . 12087:13534(1447) win 65535 
20:01:14.726564 IP 10.0.0.2.54321 > 10.0.0.1.12345: . ack 15964 win 65535 

Вопрос: АСК до сих пор, кажется, по-другому. Это 5981 вместо 2683.

EDIT 2: выход Real TCP

22:20:14.492625 IP 72.14.204.99.80 > 10.0.2.15.59745: S 255616001:255616001(0) ack 1727704513 win 65535 <mss 1460> 
22:20:14.495606 IP 10.0.2.15.59745 > 72.14.204.99.80: . ack 255616002 win 5840 
22:20:14.501015 IP 10.0.2.15.59745 > 72.14.204.99.80: P 1727704513:1727705327(814) ack 255616002 win 5840 
22:20:14.501746 IP 72.14.204.99.80 > 10.0.2.15.59745: . ack 1727705327 win 65535 
22:20:14.562197 IP 72.14.204.99.80 > 10.0.2.15.59745: P 255616002:255616102(100) ack 1727705327 win 65535 
22:20:14.562298 IP 10.0.2.15.59745 > 72.14.204.99.80: . ack 255616102 win 5840 
22:20:14.630749 IP 10.0.2.15.59745 > 72.14.204.99.80: P 1727705327:1727706096(769) ack 255616102 win 5840 
22:20:14.631228 IP 72.14.204.99.80 > 10.0.2.15.59745: . ack 1727706096 win 65535 
22:20:14.692324 IP 72.14.204.99.80 > 10.0.2.15.59745: P 255616102:255616338(236) ack 1727706096 win 65535 
22:20:14.692361 IP 10.0.2.15.59745 > 72.14.204.99.80: . ack 255616338 win 6432 

Вопрос: Я пытался в соответствии с вашим предложением и grep'ed выход одно соединение в. Но на этот раз, почему ACK - это способ, а не SEQ + 1?

+0

Вы внедрили захват tcpdump в iOS? если да, то можете ли вы предложить мне способ сделать это. –

ответ

1

проверить номер порта. Кажется, что LINE1, LINE2 и LINE5 относятся к одному сеансу, тогда как LINE2 и LINE4 находятся в другом сеансе.

Вместо использования tcpdump для анализа пакетов я настоятельно рекомендую вам собирать пакеты с помощью tcpdump и анализировать результат с помощью инструмента wirehark.

EDIT: Для потока симулятора это беспорядок. Поскольку порядковые номера пакетов 10.0.0.1 -> 10.0.0.2 не являются полностью, поэтому я думаю, возможно, что какой-то пакет не был захвачен, а время не показывает реальный статус. поэтому вы можете игнорировать его.

Для настоящего потока это нормально. Для пакета syn, ack reply = seq +1; для отправки контента, ack = seq + len. Поток действительно показывает это нам.

+0

Любые объяснения, почему вы думаете, что они могут быть разными? Я использую симулятор для создания этого вывода и использую только на выходе TCP. Кроме того, мы можем наблюдать процесс рукопожатия TCP в LINES 1-3. Как вы думаете? – Legend

+0

@Legend, соединение ограничено парами портов; ваш tcdpump out может иметь отношение к реализации вашего симулятора сети. Лучше tcpdump реальный tcp для обучения, чтобы избавиться от поведения симулятора. –

+0

Спасибо за объяснение. Просто добавьте две части: EDIT 1 и EDIT 2. В первом я выделил несколько строк для одного соединения. В Edit 2 я скопировал реальный вывод tcp, который я получил ... Любое объяснение реального поведения tcp? – Legend