보안세상
TCP 헤더 구조 본문
반응형
TCP 통신을 이해하기 위해서는 TCP 헤더에
무슨 내용이 들어 있는지 이해해야 함. TCP는 통신에 앞서 연결 설정을 하거나 승인 및 흐름 제어를 하기 위해 TCP 헤더 구조는 UDP
패킷의 구조와 비교하면 매우 복잡하게 되어 있음. 일반적으로 TCP 헤더는 20바이트의 크기임.
( 1 ) TCP 헤더 구조
0 | 15 | 16 | 31 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
← - | 32 비트 | - → |
비트 오프셋 |
0 - 3 |
4 - 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 - 31 |
0 |
원본 포트 |
대상 포트 | |||||||
32 |
시퀀스 번호 | ||||||||
64 |
승인 번호 | ||||||||
96 |
헤더 길이 |
예약 |
URG |
ACK |
PSH |
RST |
SYN |
FIN |
윈도우 크기 |
128 |
체크섬 |
긴급 포인터 | |||||||
160 |
(옵션) | ||||||||
데이터 |
( 2 ) TCP 헤더 구조
필드 | 설명 |
소스 포트
번호 (16 비트) |
원본 응용 프로그램을 식별하는
번호임. TCP는 UDP의 경우와 달리 소스 포트 번호를 0으로 할 수 없음. 1 ~ 65535까지 유효함. |
목적지 포트
번호 (16 비트) |
대상 응용 프로그램을 식별하는
번호임. 1 ~ 65535까지 유효함. ※ 0은 예약 |
시퀀스
번호 (32 비트) |
보내는 데이터에 순서를 붙이기를 위한
번호임. 보낼 데이터 1 바이트마다 시퀀스 번호를 1 씩 증가함. 2 32 을 넘으면 똑같은 번호를 반복함. |
승인
번호 (32 비트) |
받은 데이터에 대해 어디까지 받을 수 있었는지
바이트 위치를 나타내는 필드임. 수신 완료 데이터 위치의 순서 번호 +1을 반환함. ACK 플래그가 ON 인 경우에만 ACK 번호 필드를 사용함. |
헤더
길이 (4 비트) |
TCP 데이터가 시작되는 위치를 나타내는 필드임. TCP 헤더의 바로 뒤에 데이터 부분이 따르기 위하여, TCP 헤더의 크기라고 생각해도 됨. |
URG (1 비트) |
URG ... urgent :
긴급 긴급 데이터가 들어있는 것을 나타내는 플래그임. 기본값은 0,1에 ON 됨. 거의 사용되지 않음. |
ACK (1 비트) |
ACK * * *
acknowledge 유효한 ACK 번호가 TCP 헤더에있는 것을 나타내는 플래그임. TCP 3-Way Handshake 시 최초를 제외한 다른 모든 TCP 패킷은 ACK 플래그가 ON 으로 되어 있음. |
PSH (1 비트) |
PSH * * *
push 받은 데이터를 즉시 응용 프로그램에 전달할 것을 요구하는 플래그임. 버퍼링을 사용하면 응답성에 손상 가능성이 있으므로, Telnet에서는이 플래그를 ON 으로 하고 있음. |
RST (1 비트) |
RST ...
reset TCP 연결을 중단, 거부하고 싶은 경우에 설정되는 플래그임. RST 플래그를 ON 으로 한 TCP 패킷을 전송함으로써, 현재의 TCP 접속을 강제 종료할 수 있음. |
SYN (1 비트) |
SYN ...
synchronize 이상 패킷에 설정되지 않음. |
FIN (1 비트) |
FIN ...
finish TCP 연결을 종료하기 위해 설정되는 플래그임. 양쪽에서 FIN이 전송되면 TCP 연결이 종료됨. |
윈도우 (16 비트) |
수신 창 크기를 상대에게 전달하기 위하여 사용되는
필드임. 단위는 바이트로, 최대 65535 바이트됨. 0은 데이터를받을 수 없다는 것을 나타냄. |
체크섬 (16 비트) |
TCP 패킷의 무결성을 검사하기 위한 데이터가 들어가는 필드임. |
긴급
포인터 (16 비트) |
URG 플래그가 1 인 경우에만
적용함. 긴급 데이터의 위치를 나타냄. |
옵션 | TCP 연결 특성을 설정하는 데 사용되는 가변
길이 필드임. MSS 교환 등에 이용됨. 32 비트의 배수가 되도록 필요한 끝에 패딩(0) 매장됨. |
데이터 | TCP의 데이터
부분임. TCP 연결 시간이 초과하여 절단되지 않도록 데이터를 포함하지 않는 TCP 헤더에만 패킷을 보낼 수 있음. |
발췌 사이트 : http://zwish.tistory.com/1421
저작권 문제가 있을 시 바로 삭제하겠습니다.
반응형
'내 생각' 카테고리의 다른 글
explorer.exe 응용 프로그램 오류문제 (0) | 2015.06.30 |
---|---|
windosw(윈도우)에서 자동 실행 기능 비활성화 및 끄기 (0) | 2015.06.27 |
TCP 제어플래그, 3way handshake및 4way handshacke 개념도 (0) | 2015.06.27 |
산업/상업용전기 가정에서 사용하는 방법 (0) | 2015.06.24 |
dwm.exe 점유율,메모리 사용량 줄이기(Reduce memory usage) (0) | 2015.06.24 |
Comments