Step by Security Study
3 Way Handshaking 본문
개념
TCP 통신 즉, 신뢰성 있는 통신을 위한 네트워크 연결 과정
-> TCP로 데이터를 전송하기 위해서는 3 way handshaking 이라는 과정을 거쳐 연결을 하게 된다.
과정
SYN
SYN + ACK
ACK
먼저 서버에서 열려 있는 포트는 LISTEN 상태이고, 클라이언트에서는 CLOSED 상태이다.
1. 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다.
이 메시지에는 자체(랜덤?) 시퀀스 번호(TCP에서 신뢰성 및 흐름제어 기능 제공) X가 있으며, 이것을 서버가 받는다.
2. 서버에서 해당 포트는 LISTEN 상태에서 SYN 데이터를 받고 SYN-RECEIVED 상태로 변경된다. 그리고 요청을 정상적으로 받았다는 대답(ACK)와 클라이언트도 포트를 열어 달라는 SYN을 같이 보낸다. 이 메시지는 자체 시퀀스 번호y와 응답 번호 X+1을 포함시켜 보낸다.
3. 클라이언트에서 SYN+ACK를 받고 Established로 상태를 변경하고 서버에 요청을 잘 받았다는 ACK를 전송한다. ACK를 받은 서버는 상태가 ESTABLISHED로 변경된다. 이제 클라이언트와 서버의 세션이 맺어지고, 데이터를 주고 받게 된다.
이 메시지는 응답 번호 y + 1이 포함되며, 서버는 이에 응답할 필요는 없다.
용어 정리
CLOSED : 닫힌 상태
LISTEN : 포트가 열린 상태로 연결 요청 대기중
ESTABLISHED: 포트 연결
SYN_RECEIVED : SYN 요청을 받고 상대방의 응답을 기다리는 중
SYN : 연결 요청
ACK : 응답 패킷
'네트워크' 카테고리의 다른 글
ICMP 정리 (0) | 2023.09.23 |
---|---|
4 Way Handshaking (0) | 2023.09.23 |
캡슐화 인캡슐레이션 디캡슐레이션 정리 (0) | 2023.09.23 |
TCP/IP 4계층 모델 (0) | 2023.09.23 |
OSI 7 계층 장비 (0) | 2023.09.23 |