보안세상
TCP 제어플래그, 3way handshake및 4way handshacke 개념도 본문
( 1 ) TCP 제어 플래그
| URG | ACK | PSH | RST | SYN | FIN
|
각각 1비트로 TCP 세그먼트 필드 안에
CONTROL BIT 또는 FLAG BIT 로 정의 되어 있음.
① URG (Urgent) - 긴급
데이터
Urgent Pointer 유효한 것인지를
나타냄. Urgent Pointer란 전송하는 데이터 중에서 긴급히 전달해야 할 내용이 있을 경우에 사용함.
긴급한 데이터는 다른 데이터에 비해 우선순위가 높아야
함.
ex) Ping 명령어 실행 도중 Ctrl+C
입력
② ACK (Acknowledgement) -
응답
받는 사람이 보낸 사람 시퀀스 번호에 TCP
계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK를 보냄.(일반적으로 +1 하여 보냄)
ACK의 번호와 응답을 통해 보낸 패킷에 대한 손실을 판단하여 재전송 하거나 다음 패킷을 전송함.
③ PSH (Push) - 밀어넣기
대화형 트래픽(Telnet 등)에 사용되는 것으로 버퍼가 채워지기를 기다리지 않고
데이터를 전달함. 데이터는 버퍼링 없이 바로 위 Layer가
아닌 7 Layer의 응용프로그램으로 바로 전달함.
④ RST (Reset) - 재연결
종료
재설정(Reset)을 하는 과정이며 양방향에서
동시에 일어나는 중단 작업을 말함. 비정상적인 세션 연결 끊기에 해당함.
⑤ SYN (Synchronization) - 연결
요청
세션을 설정하는 데에 사용되며 초기에 시퀀스
번호를 보내게 됨. 시퀀스 번호는 임의적으로 생성하여 보냄.
⑥ FIN (Finish) - 연결
종료
세션을 종료시키는 데에 사용되며 보낸 사람이
더이상 보낸 데이터가 없음을 보여줌.
( 2
) 3-Way Handshake
TCP를 사용한 데이터 송수신 간의 정확한 전송을 보장하기 위한 세션 수립 과정
Client Server
(Connect) (Listen,
Accept) TCP 제어 플래그
| SYN, SEQ=J
| ↓
| ---------------------->
| : 연결요청 (SYN=1, ACK=0)
| SYN, ACK=J+1, SEQ=K
|
|
<---------------------- | : 연결허락 (SYN=1, ACK=1)
| ACK=K+1
|
|
----------------------> | : 연결설정 (ACK=1)
|
|
| (연결통로
확보) |
|
<---------------------> | : 이후 회선이 작동되며, 통신의 양측
에서 데이터를 주고 받기 시작
※ 참고로 여기서 J, K는 임의의 Sequence Number
① 호스트 A는 호스트 B에게 연결을 설정하고자 한다는 것을 알리기
위한 세그먼트를 전송함.
② 호스트 B는 A의 요구를
확인 응답하기 위한 세그먼트를 전송함.
호스트
B는 B로부터 A로 향하는 트래픽에 대한 초기화 정보를 포함하는 세그먼트를 전송함.
③ 호스트 A는 B의 요구를 확인 응답하기 위한 세그먼트를
전송함.
( 3
) 4-Way Handshake
TCP를 사용한 데이터 송수신 간의 정확한 전송을 보장하기 위한 세션 종료 과정
Client Server
(Connect) (Listen,
Accept) TCP 제어 플래그
| FIN, SEQ=J
| ↓
| ---------------------->
| : 종료요청 (FIN=1, ACK=0)
| ACK=J+1
|
|
<---------------------- | : 종료응답 (ACK=1)
| FIN, ACK=J+1, SEQ=K
|
|
<---------------------- | : 종료완료 (FIN=1, ACK=1)
| ACK=K+1
|
|
----------------------> | : 확인응답 (ACK=1)
※ 여기서 J, K는 임의의 Sequence Number
① 호스트 A는 연결을 종료하고자 한다는 것을 알리는 세그먼트를
전송함.
② 호스트 B는 A의 요구를 확인 응답하는
세그먼트를 전송함.
- 한 방향의 연결은 종료되지만
다른 방향의 연결은 계속 유지함.
- 호스트 B는
A로 데이터를 계속 전송함.
③ 호스트 B가 자신의
데이터 전송을 완료하면, B는 자신이 연결을 해지하고자 한다는 것을 알리기 위한 세그먼트를 전송함.
④ 호스트 A는 B의 요구를 확인 응답함.
'내 생각' 카테고리의 다른 글
windosw(윈도우)에서 자동 실행 기능 비활성화 및 끄기 (0) | 2015.06.27 |
---|---|
TCP 헤더 구조 (0) | 2015.06.27 |
산업/상업용전기 가정에서 사용하는 방법 (0) | 2015.06.24 |
dwm.exe 점유율,메모리 사용량 줄이기(Reduce memory usage) (0) | 2015.06.24 |
svchost.exe 100% 일때와 cpu점유율 문제 (0) | 2015.06.24 |