TCP 3-way handshake 란?
TCP(Transmission Control Protocol)은 데이터를 안정적으로 전송하기 위한 프로토콜로 신뢰성 있는 통신을 지원합니다.
이 프로토콜을 사용하여 통신을 시작하려면 클라이언트와 서버 간에 초기 연결이 필요합니다.
이 연결 설정 과정을 바로 3-Way handshake라고 합니다!
3-Way handshake 동작방식
동작방식은 3단계로 이루어집니다.
1. Clinet > Server : SYN Flag
→ 클라이언트가 서버에게 연결을 요청하는 메세지를 보냅니다.
→ 클라이언트는 초기 순차번호(ISN, Initial Sequence Number)를 생성 후 포함하여 SYN 패킷을 보냅니다.
→ SYN 패킷의 목적은 연결을 설정하기 위한 서버에게 알리는 용도입니다.
2. Server > Client : SYN + ACK Flag
→ 서버가 클라이언트의 요청을 수신, 연결을 수락할 준비가 되었다는 신호로 클라이언트에게 응답합니다.
→ 서버는 클라이언트의 ISN을 확인하고 자체적인 초기 순차번호(서버의 ISN)를 생성하여 SYN 패킷을 보냅니다.
→ SYN-ACK 패킷은 클라이언트에게 전송되어 서버의 응답을 알립니다.
3. Client > Server : ACK Flag
→ 클라이언트가 서버의 SYN-ACK 패킷을 받으면 이에 대한 확인 응답을 보냅니다.
→ ACK 패킷에는 클라이언트의 ISN과 서버의 ISN이 포함되어 있습니다.
3개의 과정을 통해 클라이언트와 서버 간에 연결이 확립되고 데이터 전송이 시작될 수 있습니다.
TCP Flag에 대해서 먼저 공부하게 된다면 이해에 도움이 될거 같습니다.
SYN : 연결 요청
ACK : 응답
쉽게 생각하자면!
"웹 서버" 라는 음식점을 오픈하였다. (Listen 상태)
1. 손님이 입구에서 지금 장사하나요? 라고 질문 (SYN 요청)
2. 알바생은 네! 열려있습니다. 들어오시겠어요?(SYN + ACK)
3. 손님이 네.라고 응답 (ACK 응답)
'Network > 용어 및 개념' 카테고리의 다른 글
[TCP] 4-way handshake (0) | 2023.09.27 |
---|