주요 콘텐츠로 건너뛰기

누군가가 나에게 다음 추적을 보내고 "패킷 번호"가 중복되었기 때문에 다시 전송을 나타내는지 물었다.

T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0486 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 PA
R 0000 TCP host2.sub2.dom2.com host.subdomain.domain.co 4000 49957 A
R 0000 TCP host2.sub2.dom2.com host.subdomain.domain.co 4000 49957 A
R 0000 TCP host2.sub2.dom2.com host.subdomain.domain.co 4000 49957 A
R 0000 TCP host2.sub2.dom2.com host.subdomain.domain.co 4000 49957 A
R 0044 TCP host2.sub2.dom2.com host.subdomain.domain.co 4000 49957 PA
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A
T 0536 TCP host.subdomain.domain.com host2.sub2.dom2.com 49957 4000 A

나는 그녀의 "패킷 번호"를 사용하여 조금 혼란스러웠다. 그녀는 마지막 2 개의 숫자 칼럼을 언급했습니다. 나는 이들이 패킷 번호가 아니라 소스 및 대상 포트 번호라고 설명했다. 불행히도, 그녀는 TCP 패킷 헤더에서 충분한 정보를 캡처하지 않았기 때문에 그녀의 질문에 대답 할 수 없습니다.

TCP 패킷이 재전송인지 확인하려면 패킷의 시퀀스 번호를 캡처해야 합니다. 모든 TCP 연결의 시작 부분에서 두 호스트는 임의의 시퀀스 번호를 선택한 다음 전송하는 모든 TCP 데이터에 대한 시퀀스 번호를 증가시합니다. 수신 호스트는 승인 필드에 다음에 볼 것으로 예상되는 시퀀스 번호가 다시 울려 퍼집니다.

다음 예제에서는 packet_monitor 대한 최소 제어 인수 집합으로 권장하는 것을 보여 packet_monitor. 패킷을 보내거나 받은 정보 그 이상에 관심이 있다고 가정합니다. 인터페이스 인수는 모니터링할 IP 인터페이스를 식별합니다. 인터페이스 이름을 제공하지 않으면 모든 인터페이스를 모니터링할 packet_monitor 있습니다. Packet_monitor 많은 양의 스트림 메모리를 사용할 수 있으며 인터페이스 인수를 사용하면 이 양을 줄일 수 있습니다. -verbose 인수는 실제로 시퀀스 및 승인 번호를 인쇄하는 것입니다,이없이 다시 전송을 식별 할 수있는 방법이 없습니다. 또한 추적 분석에 유용한 다른 정보(예: TTL)와 창 크기(창) 값에 인쇄됩니다. -filter -host 및-포트 인수는 특정 연결을 식별하고 확인해야 하는 패킷 수를 줄이는 데 도움이 됩니다.

packet_monitor -interface #sdlmux.m16.11-2 -verbose -filter -host 172.16.1.34 -p
+ort 23
dir icmp 유형 tcp
dir len 프로토 소스 대상 src 포트 dst 포트 유형
Xmit IP Ver/HL 45, ToS 0, Len 29, ID 8569, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 9eaf, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953077,ack 1766884569, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 9c85, Urg-> 0000
Rcvd IP Ver/HL 45, ToS 0, Len 29, ID 45db, Flg/Frg 0, TTL 3c, Prtl 6
Cksum de3d, Src ac100122, Dst ac100174
TCP 172.16.1.34.telnet ~ phx_vos-m16.51094
seq 1766884569, ack 448953078,창 8192, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum c984, Urg-> 0000
Xmit IP Ver/HL 45, ToS 0, Len 29, ID 8576, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 9ea2, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953078,ack 1766884570, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum d883, Urg-> 0000
Rcvd IP Ver/HL 45, ToS 0, Len 29, ID 45dc, Flg/Frg 0, TTL 3c, Prtl 6
Cksum de3c, Src ac100122, Dst ac100174
TCP 172.16.1.34.telnet ~ phx_vos-m16.51094
seq 1766884570, ack 448953079,창 8192, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum c982, Urg-> 0000
Xmit IP Ver/HL 45, ToS 0, Len 28, ID 8580, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 9e99, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953079,ack 1766884571, 창 65535, 0 데이터 바이트, 플래그 Ack.
X/Off 05, 플래그 10, Cksum 098b, Urg-> 0000
Rcvd IP Ver/HL 45, ToS 0, Len 28, ID 45dd, Flg/Frg 0, TTL 3c, Prtl 6
Cksum de3c, Src ac100122, Dst ac100174
TCP 172.16.1.34.telnet ~ phx_vos-m16.51094
seq 1766884571, ack 448953079,창 8192, 0 데이터 바이트, 플래그 Ack.
X/Off 05, 플래그 10, Cksum e98a, Urg-> 0000

상기 시퀀스 번호는 각 패킷에 1바이트의 데이터만 포함되기 때문에 1씩 증가하고 있으며, 패킷에 10바이트, 23바이트 또는 1023바이트가 포함된 경우 시퀀스 번호가 10, 23 또는 1023으로 올라갈 것이다.

그렇다면 재전송은 어떤 모습일까요? 다시 전송을 사용하면 시퀀스 번호는 이전 시퀀스 번호보다 작거나 같으며 데이터 바이트가 1바이트 이상인 경우 데이터가 없는 패킷은 계산되지 않습니다. 다음 예에서는 서열 번호 448953089가 여러 번 반복된다. 그러나 첫 번째는 재전송입니다.

packet_monitor 인터페이스 #sdlmux.m16.11-2 -verbose -filter -host 172.16.1.34 -p
+ort 23
dir icmp 유형 tcp
dir len 프로토 소스 대상 src 포트 dst 포트 유형
Rcvd IP Ver/HL 45, ToS 0, Len 28, ID 4d43, Flg/Frg 0, TTL 3c, Prtl 6
Cksum d6d6, Src ac100122, Dst ac100174
TCP 172.16.1.34.telnet ~ phx_vos-m16.51094
seq 1766885133, ack 448953089,창 8192, 0 데이터 바이트, 플래그 Ack.
X/Off 05, 플래그 10, Cksum e74e, Urg-> 0000
Xmit IP Ver/HL 45, ToS 0, Len 29, ID 9191, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 9287, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953089,ack 1766885133, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 9745, Urg-> 0000
Xmit IP Ver/HL 45, ToS 0, Len 29, ID 919a, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 927e, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953089,ack 1766885133, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 9745, Urg-> 0000
Xmit IP Ver/HL 45, ToS 0, Len 29, ID 91a0, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 9278, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953089,ack 1766885133, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 9745, Urg-> 0000
. . .
Xmit IP Ver/HL 45, ToS 0, Len 29, ID 91f9, Flg/Frg 0, TTL 3c, Prtl 6
Cksum 921f, Src ac100174, Dst ac100122
tCP에서 phx_vos-m16.51094 ~ 172.16.1.34.telnet
seq   448953089,ack 1766885133, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 9745, Urg-> 0000
Rcvd IP Ver/HL 45, ToS 0, Len 29, ID 4f04, Flg/Frg 0, TTL 3c, Prtl 6
Cksum d514, Src ac100122, Dst ac100174
TCP 172.16.1.34.telnet ~ phx_vos-m16.51094
seq 1766885133, ack 448953090,창 8192, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 7744, Urg-> 0000

인터페이스와 자세한 인수 외에도 나는 time_stamp 숫자 인수를 포함 할 것이다. time_stamp 인수는 표시된 모든 패킷에 타임 스탬프를 두므로 로그 파일의 메시지를 추적과 쉽게 상호 연관시킬 수 있으며 재전송 시퀀스와 같은 이벤트가 실제로 지속되는 시간을 예측할 수 있습니다. 숫자 인수는 호스트 또는 포트 이름을 찾지 않음으로써 오버헤드를 줄입니다.

packet_monitor 인터페이스 #sdlmux.m16.11-2 -time_stamp -숫자 -필터
+ -호스트 172.16.1.34 -포트 23
디르 icmp 유형
+ tcp
hh:mm:ss.ttt dir len 프로토 소스 대상 src 포트 ds
+t 포트 유형
14:30:17.604 Xmit IP Ver/HL 45, ToS 0, Len 29, ID 9b7b, Flg/Frg 0, TTL 3
+c, 프롤 6
Cksum 889d, Src ac100174, Dst ac100122
TCP 172.16.1.116.51094 ~ 172.16.1.34.telnet
seq 448953090, ack 1766885134, 창 65535, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 9b43, Urg-> 0000
14:30:17.606 Rcvd IP Ver/HL 45, ToS 0, Len 29, ID 5442, Flg/Frg 0, TTL 3
+c, 프롤 6
Cksum cfd6, Src ac100122, Dst ac100174
TCP 172.16.1.34.telnet ~ 172.16.1.116.51094
seq 1766885134, ack 448953091, 창 32768, 1 데이터 바이트, 플래그 푸시 Ack.
X/Off 05, 플래그 18, Cksum 1b42, Urg-> 0000

문제가 TCP 또는 IP 계층에 있다는 것을 알고 있다면 일반적으로 필요한 모든 정보입니다. 그러나 응용 프로그램 계층에 문제가 있을 수 있는 경우 실제 데이터도 필요합니다. -hex_dump 인수로 데이터를 표시할 수 있습니다. 기본적으로 처음 128바이트의 데이터만 표시됩니다. 안전한 크기에 있기 위해 나는 항상 패킷에 있는 모든 데이터를 표시합니다 1500 길이로 설정합니다.

packet_monitor 인터페이스 #sdlmux.m16.11-2 -#sdlmux -time_stamp -숫자 -hex_du
+mp-길이 1500 -필터 -호스트 172.16.1.34 -포트 23
디르 icmp 유형
+ tcp
hh:mm:ss.ttt dir len 프로토 소스 대상 src 포트 ds
+t 포트 유형
10:25:19.387 Rcvd IP Ver/HL 45, ToS 0, Len 3b, ID f8f, Flg/Frg 0, TTL 3
+c, 프롤 6
Cksum 1478, Src ac100122, Dst ac100174
TCP 172.16.1.34.49562 ~ 172.16.116.telnet
seq 110526313, ack 1206659552, 창 32768, 19 데이터 바이트, 플래그 푸시 Ack
+.
X/Off 05, 플래그 18, Cksum d3ee, Urg-> 0000
오프셋 0 . . . 4 . . .   8 . . . C... 0...4... 8...C...
0 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 61 20 74 * 이것은 단지
10 65 73 74 * est
10:25:19.389 Xmit IP Ver/HL 45, ToS 0, Len 3b, ID f969, Flg/Frg 0, TTL 3
+c, 프롤 6
Cksum 2a9d, Src ac100174, Dst ac100122
TCP 172.16.1.116.telnet ~ 172.16.1.34.49562
seq 1206659552, ack 110526332, 창 8192, 19 데이터 바이트, 플래그 푸시 Ack
+.
X/Off 05, 플래그 18, Cksum 33dc, Urg-> 0000
오프셋 0 . . . 4 . . .   8 . . . C... 0...4... 8...C...
0 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 61 20 74 * 이것은 단지
10 65 73 74 * est
10:25:22.263 Xmit IP Ver/HL 45, ToS 0, Len 28, ID f994, Flg/Frg 0, TTL 3
+c, 프롤 6
Cksum 2a85, Src ac100174, Dst ac100122
TCP 172.16.1.116.telnet ~ 172.16.1.34.49562
seq 1206659571, ack 110526332, 창 8192, 0 데이터 바이트, 플래그 Ack.
X/Off 05, 플래그 10, Cksum 7b7a, 우르그>0000
tcp 데이터가 없습니다.

데이터로 packet_monitor 추적을 보내기 전에 누구나 데이터를 삭제해야 합니다- 텍스트와 육매 값 모두 독점 정보를 제거합니다. 경우에 따라 IP 주소를 소독할 수도 있습니다. IP 주소는 프로토콜 헤더 디코딩 라인에서 두 위치에서 발생하며 표준 점선 소수표 표기법으로 나타납니다. 디코딩 선 바로 위의 줄에서 hex 값으로 나타납니다.

10:25:22.263 Xmit IP Ver/HL 45, ToS 0, Len 28, ID f994, Flg/Frg 0, TTL 3
+c, 프롤 6
Cksum 2a85, Src ac100174,Dst ac100122
 TCP 에서 172.16.1.116. 텔넷은 172.16.1.34로. 49562
seq 1206659571, ack 110526332, 창 8192, 0 데이터 바이트, 플래그 Ack.
X/Off 05, 플래그 10, Cksum 7b7a, 우르그>0000
tcp 데이터가 없습니다.

© 2024 스트라투스 테크놀로지스.