Define My Life
article thumbnail

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 응답)

 

2023.09.27 - [Network/용어 및 개념] - [TCP] 4-way handshake

'Network > 용어 및 개념' 카테고리의 다른 글

[TCP] 4-way handshake  (0) 2023.09.27
profile

Define My Life

@BlackC

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!