TCP 커넥션

모든 HTTP 통신은 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP/IP를 통해 이루어짐.

TCP/IP 커넥션이 맺어지면 클라이언트와 서버 간에 주고받는 메시지들은 손실 혹은 손상되거나 순서가 바뀌지 않고 안전하게 전달됨.

TCP는 IP 패킷이라고 불리는 작은 조각을 통해 데이터를 전송한다.

데이터 전달 과정

네트워크 계층은 HTTP-(TLS or SSL)-TCP-IP-Network Interfaces 순의 계층구조를 갖는다.

Untitled

메시지 전달 과정은 다음과 같다.

  1. HTTP는 현재 연결되어 있는 TCP 커넥션을 통해서 메시지 데이터의 내용을 순서대로 보낸다.
  2. TCP는 세그먼트라는 단위로 데이터 스트림을 잘게 나누고, 세그먼트를 IP 패킷이라고 불리는 봉투에 담아 인터넷을 통해 데이터를 전달한다.
  3. 각 TCP 세그먼트는 하나의 IP 주소에서 다른 IP 주소로 IP 패킷에 담겨 전달된다. 각 IP 패킷은 IP 패킷 헤더, TCP 세그먼트 헤더, TCP 데이터 조각으로 구성된다.

Untitled

TCP 커넥션 유지하기

컴퓨터는 항상 TCP 커넥션을 여러 개 가지고 있다. TCP는 포트 번호를 통해 여러 개의 커넥션을 유지한다.

TCP 커넥션은 네 가지 값으로 식별한다.

<발신지 IP 주소, 발신지 포트, 수신지 IP 주소, 수신지 포트>

서로 다른 커넥션이 네 가지 커넥션 구성요소를 모두 똑같이 가리키고 있을 수는 없다.(일부 요소는 같을 수 있음)