TCP/IP 추적 읽기에 대한 기본 사항

기술 자료 번역 기술 자료 번역
기술 자료: 169292 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 TCP/IP 추적을 읽는 데 필요한 기본 개념과 팁 몇 가지를 다룹니다.

추가 정보

TCP 플래그

A, ACK-(Acknowledge): 받는 사람이 보낸 사람 시퀀스 번호에 TCP 계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK를 보냅니다.

SYN 및 FIN 플래그는 1바이트로 계산됩니다. 또한 ACK는 받는 사람이 받을 예정인 다음 옥텟의 시퀀스 번호로 생각될 수도 있습니다.

S, SYN-: 동기화(Synchronize)는 세션 설정 동안 사용되어 초기 시퀀스 번호에 일치시킵니다. 시퀀스 번호는 임의로 생성됩니다.

F, FIN-: 완료(Finish)는 세션을 닫는 동안 사용되어 보낸 사람이 더 이상 보낼 데이터가 없음을 보여줍니다.

R, RST-: 재설정(Reset)은 양방향에서 동시에 일어나는 중단 작업입니다(비정상적인 세션 연결 끊기).

P, PSH-: 밀어넣기(Push)는 버퍼가 채워지는 것을 기다리지 않고 데이터를 강제로 배달합니다. 이것은 대화형 트래픽에 사용됩니다. 데이터는 버퍼링 없이 받는 쪽의 응용 프로그램에도 배달됩니다.

U, URG- Urgent-: 데이터를 밴드 범위 밖에서 보냅니다.
세 방향 핸드셰이크의 예
--------------------------------------------------------------
시간      대상 IP          원본 IP        프로토콜     설명
20.862   157.57.24.193   157.57.11.169   TCP       ....S., len:    4, seq:
346564214, ack:         0, win: 8192,

20.866   157.57.11.169   157.57.24.193   TCP       .A..S., len:    4, seq:
339000739, ack: 346564215, win: 8760,

20.866   157.57.24.193   157.57.11.169   TCP       .A...., len:    0, seq:
346564215, ack: 339000740, win: 8760,


두 단계 닫기 작업(Graceful)의 예(수정된 세 방향 핸드셰이크)

시간     대상 IP          원본 IP        프로토콜     설명
39.295  157.57.11.169   157.57.24.193   TCP       .A...F, len:    0, seq:
339000917, ack: 346564257, win: 8718,

39.295  157.57.24.193   157.57.11.169   TCP       .A...., len:    0, seq:
346564257, ack: 339000918, win: 8583,

39.298  157.57.24.193   157.57.11.169   TCP       .A...F, len:    0, seq:
346564257, ack: 339000918, win: 8583,

39.300  157.57.11.169   157.57.24.193   TCP       .A...., len:    0, seq:
339000918, ack: 346564258, win: 8718,
				

위의 두 추적에서 전송 제어 프로토콜(TCP)이 가장 높은 계층 프로토콜이므로 관련 세션 정보를 추적의 요약 줄에서 읽을 수 있습니다. 더 높은 계층 프로토콜(NBT, SMB, Telnet, FTP 등)이 있을 경우 패킷에서 TCP 플래그, 응답 및 시퀀스 번호를 찾아야 합니다.

재전송 동작

("TCP/IP Implementation Details" 참조)

TCP는 각 아웃바운드 세그먼트를 IP에 전해줄 때마다 재전송 타이머를 시작합니다. 타이머가 만료될 때까지 해당 세그먼트에서 데이터에 대한 응답을 받지 못한 경우 TcpMaxDataRetransmissions 횟수에 도달할 때까지 세그먼트가 재전송됩니다. 이 매개 변수의 기본 값은 5입니다.

재전송 타이머는 TCP 연결이 설정되면 3초로 초기화됩니다. 그러나 RFC793에서 설명한 대로 SRTT(Smoothed Round Trip Time) 계산을 사용하여 연결의 특성과 일치하도록 "즉시" 조정됩니다. 해당 세그먼트의 타이머는 세그먼트를 재전송할 때마다 두 배가 됩니다. TCP는 이 알고리즘을 사용하여 연결을 "정상" 지연으로 자동 조정합니다. 많이 지연되는 링크에 TCP를 연결하면 적게 지연되는 링크에 연결하는 것보다 시간을 초과하는 데 훨씬 오래 걸립니다.

다음 추적 클립은 동일한 서브넷에 있는 이더넷을 통해 연결된 두 호스트에 대한 재전송 알고리즘을 보여줍니다. FTP 파일 전송이 진행 중에 받는 호스트가 네트워크에서 연결이 끊어졌습니다. 이 연결에 대한 SRTT는 매우 작기 때문에 첫 번째 재전송은 약 1/2초 후에 보내집니다. 그런 다음 재전송할 때마다 타이머는 두 배가 됩니다. 5번째 재전송 후에 타이머는 다시 한 번 두 배가 되며 타이머가 만료될 때까지 응답을 받지 못하는 경우 전송이 취소됩니다.
델타   원본 ip      대상 ip     프로토콜 플래그 설명
--------------------------------------------------------------
0.000 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

0.521 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

1.001 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

2.003 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

4.007 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760

8.130 10.57.10.32  10.57.9.138  TCP .A...., len: 1460, seq: 8043781, ack:
8153124, win: 8760
				

컴퓨터 "X"의 재시도 기회를 모두 사용한 후에는 "재설정"이 즉시 표시되지 않을 수 있습니다. 컴퓨터 "Y"가 마침내 응답하는 경우 컴퓨터 "X"는 연결을 다시 설정할 수 있습니다.

슬라이딩 창

핸드셰이크 동안 전송 창 크기는 다른 호스트의 수신 창 크기로 설정됩니다. 이 창 크기는 버퍼이며 보낸 사람이 보낼 수 있고 받는 사람이 응답 없이 받을 수 있는 데이터 양입니다. "창"은 해당 패킷을 인식한 후에 커질 수 있습니다.

8760의 수신 창에서 보낸 사람은 응답을 받기 전에 8760바이트를 보낼 수 있습니다. 받는 사람은 IP 스택과 타이밍에 따라 모든 패킷마다 또는 한 패킷씩 걸러서 응답하거나 전체 8760에 응답할 수 있습니다. (지연된 응답 타이머 및 재전송 타이머 참조) Windows NT는 다른 모든 패킷에 응답합니다. 패킷이 매우 빠르게 들어오는 경우 Windows NT는 둘 이상의 패킷에 응답할 수 있습니다. PUSH 비트가 설정된 경우 데이터는 응용 프로그램에 즉시 배달되지만 응답은 여전히 지연될 수 있습니다.

프레임 51의 시퀀스 번호는 349349990입니다. 프레임 57의 응답은 349358750입니다. 이것은 프레임 51의 시퀀스 번호에 프레임 51부터 56까지 받은 데이터 양을 더한 것입니다(6프레임 x 1460 =8760). 또한 응답 349358750은 호스트가 받을 예정인 다음 패킷의 시퀀스 번호입니다.
프레임   시간     기타 원본 주소    기타 대상 주소   프로토콜     설명
---------------------------------------------------------------------
50      3.923   157.57.11.169   157.57.24.193   TCP       .A...., len:
0, seq: 356870796, ack: 349349990, win: 8760,

51      3.924   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460
+ TCP: .A...., len: 1460, seq: 349349990, ack: 356870796, win: 8760, src:
20  dst: 1636

52      3.940   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

53      3.941   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

54      3.943   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

55      3.944   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

56      3.946   157.57.24.193   157.57.11.169   FTP       Data Transfer To
Client, Port = 1636, size 1460

57      3.947   157.57.11.169   157.57.24.193   TCP       .A...., len:
0, seq: 356870796, ack: 349358750, win: 4096,
				

창 크기는 흐름 제어에도 사용됩니다. 버퍼가 채워지고 있을 때 호스트가 더 작은 창 크기를 알리거나 창 크기가 0인 경우 데이터를 전혀 받지 못할 수 있습니다. 위의 프레임 50에서 호스트는 창 크기를 8760으로 알리고 있으며 프레임 57에서는 4096으로 떨어졌습니다.

포트, 연결 및 종점

포트 번호는 컴퓨터 내의 최종 대상을 정의합니다. 연결은 종점의 쌍으로 식별됩니다. 종점은 (호스트, 포트)입니다. 예: (199.199.40, 21)

포트 번호

포트 번호는 잘 알려진 포트, 등록된 포트 및 동적 및/또는 개인 포트 등 세 범위로 나뉩니다. 잘 알려진 포트는 0부터 1023, 등록된 포트는 1024부터 49151, 동적 및/또는 개인 포트는 49152부터 65535까지의 포트입니다.

잘 알려진 포트는 IANA(Internet Assigned Numbers Authority)에서 할당되며 권한이 있는 사용자가 실행하는 프로그램이나 시스템 프로세스에서만 사용해야 합니다. 이러한 포트 종류의 예는 80/TCP와 80/UDP가 있습니다. 이 포트는 권한이 필요하며 HTTP 프로토콜이 사용하도록 예약되어 있습니다.

등록된 포트는 IANA가 나열하며 대부분의 시스템에서 일반 사용자가 실행하는 프로그램이나 일반 사용자 프로세스에서 사용할 수 있습니다. 이러한 포트 종류의 예는 1723/TCP와 1723/UDP가 있습니다. 이 포트는 다른 프로세스에서 사용할 수 있지만 일반적으로 PPTP(지점간 터널링 프로토콜)에 대한 연결 제어 포트로 사용됩니다.

동적 또는 개인 포트는 모든 프로세스나 사용자가 사용할 수 있습니다. 여기에는 사용에 대한 제한이 없습니다.

IANA는 다음 웹 사이트에서 포트 목록을 제공합니다.
http://www.iana.org/assignments/port-numbers
이 문서에 포함된 다른 공급업체의 연락처 정보는 기술 지원을 받는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 예고 없이 변경될 수 있습니다. Microsoft는 이러한 다른 공급업체 연락처 정보의 정확성을 보증하지 않습니다.

추적 읽기 제안

원본과 대상 IP 주소 및 포트 번호를 사용하여 세션을 추적합니다. 재설정을 발견하면 처리되는 시퀀스 번호와 응답에 초점을 맞춥니다. 계산기를 사용하여 보낸 데이터 중 어떤 데이터에 대한 응답인지 확인합니다. NetMon의 최신 버전을 사용하면 이것을 계산할 수 있습니다. 보낸 사람이 재시도를 수행하고 있습니까? 재시도 횟수와 경과된 시간을 적어 둡니다. 기본 재시도 횟수는 5입니다. 받는 사람이 이전 시퀀스 번호에 응답(ACK)하여 사라진 프레임에 대해 요청하고 있습니까? 보낸 사람이 이전 패킷을 백업하고 다시 보냈습니까? 재설정은 TCP 계층에서의 시간 초과 또는 더 높은 계층 프로토콜의 시간 초과로 인한 것일 수 있습니다. TCP 계층에서 발생하는 재설정은 추적에서 쉽게 읽을 수 있습니다. 더 높은 계층 프로토콜에서 발생하는 재설정의 원인을 파악하는 것이 더 어려울 수 있습니다.

예를 들어, 서버 메시지 블록(SMB) 읽기는 45초 후 시간이 초과될 수 있으며 통신은 느리지만 TCP 계층에서 작동하는 경우에도 세션을 재설정하도록 할 수 있습니다. 추적은 어느 구성 요소에 오류가 있는지 범위를 좁히는 데만 사용할 수 있습니다. 따라서 원인을 파악하기 위해 다른 문제 해결 방법을 사용해야 할 수 있습니다.

더 높은 수준의 프로토콜이 있을 때 TCP 시퀀스를 확인하려면 네트워크 모니터를 시작하고 다음 단계를 수행하십시오.
  1. 캡처를 누른 다음 캡처된 데이터 표시를 선택합니다.
  2. 표시를 누른 다음 옵션을 선택합니다.
  3. 자동(표시 필터의 프로토콜 기준)을 선택한 다음 확인을 누릅니다.
  4. 표시를 누른 다음 필터를 선택합니다.
  5. Protocol=Any를 두 번 누릅니다.
  6. 프로토콜 탭을 누른 다음 모두 사용 안함을 누릅니다.
  7. 사용할 수 없는 프로토콜 목록 상자에서 TCP를 선택합니다.
  8. 사용을 누른 다음 확인을 누릅니다.
  9. 확인을 누릅니다.

참조

TCP/IP Illustrated Volume 1; W. Richard Stevens
TCP/IP Illustrated Volume 2 ; Gary R. Wright 및 W. Richard Stevens
Internetworking with TCP/IP Volume 1; Douglas E. Comer
Internetworking with TCP/IP Volume 2; Douglas E. Comer 및 David L. Stevens
"TCP/IP Implementation Details"; Dave MacDonald



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 169292 - 마지막 검토: 2003년 5월 5일 월요일 - 수정: 2.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
키워드:?
kbinfo KB169292

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com