TCP 커넥션

클라이언트와 서버는 데이터를 주고받기 위해 TCP 커넥션을 생성한다. TCP 커넥션을 통해 요청과 응답을 보낸다.

  • 클라이언트와 서버 간에 데이터를 안정적으로 전달하기위한 커넥션
  • HTTP 통신은 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP / IP 를 통해 이루어짐

 

3-Way Handshake

  • TCP / IP 프로토콜을 이용해서 통신을 할 때 연결을 수립하기 위한 과정. 해당 과정을 통해 TCP 커넥션을 생성한다.
  • 순서
    1. 통신을 하기 위해 클라이언트에서 서버로 데이터 전송을 허가받기 위해 SYN(요청) 플래그를 서버에 전송
    2. 서버쪽에서 응답을 회신하기 위해 연결 확립에 대한 응답을 보냄. 클라이언트의 요청을 허가하는 ACK(응답) 플래그와 함께 서버 역시 클라이언트에게 데이터 전송을 허가받기 위해 SYN 플래그를 클라이언트에게 전송.
    3. 클라이언트 쪽에서 서버의 데이터 전송을 허가하는 ACK 플래그를 전송

 

TCP 커넥션 생성

  • TCP 커넥션을 생성하기 위해서는 4가지 값이 필요
    • 발신지 IP 주소, 발신지 포트, 수신지 IP 주소, 수신지 포트
    • 요청 URL과 3-Way Handshake 의 과정을 통해 얻은 정보로 TCP 커넥션을 생성

 

4-Way Handshake

  • TCP / IP 프로토콜을 이용해서 통신을 할 때 연결을 종료하기 위한 과정. 해당 과정을 통해 TCP 커넥션을 종료한다.
  • 순서
    1. 클라이언트에서 연결을 종료하기 위해 서버에게 FIN(연결 종료) 플래그를 서버에 전송
    2. 서버에서 클라이언트로부터 받은 연결 종료 요청에 대한 응답으로 ASK 플래그를 전송
    3. 서버에서 연결 종료 작업을 처리 후 FIN 플래그를 클라이언트에게 전송
    4. 클라이언트에서 서버로부터 받은 연결 종료 요청에 대한 응답으로 ASK 플래그를 전송

'Network' 카테고리의 다른 글

TCP/IP - 인터넷 계층  (0) 2022.08.21
TCP/IP - 전송 계층  (1) 2022.08.20
TCP/IP - 응용 계층  (0) 2022.08.20
TCP/IP 프로토콜  (0) 2022.08.13
OSI 참조 모델  (0) 2022.08.04

+ Recent posts