• 이 계층에서도 TCP 헤더를 붙여 세그먼트(Segment)를 만드는 캡슐화를 진행한다.

  • 연결형 통신에 사용
  • 연결이라는 통신로를 확보해야 한다.
    • 가상의 통신로
  • 연결을 확립하기 위해서는 TCP 헤더의 코드 비트를 확인해야 한다.
  • 코드 비트는 연결의 제어 정보가 기록되는 곳이다.
  • 코드 비트의 종류
    • SYN
    • ACK
    • FIN
    • etc

3 Way Hand shake

  • 통신 전에 컴퓨터 2에게 허락을 받는다. 연결 확립 허가를 위한 요청(SYN)을 보낸다.
  • 컴퓨터 2는 1의 요청을 받은 후, 허가한다는 응답을 회신한다. (ACK) 마찬가지로 컴퓨터 1에게 데이터 전송 허가를 받기 위해 연결 확립 요청을 보낸다.(SYN)
  • 컴퓨터 2의 요청에 대해 1은 허가한다는 응답으로 ACK를 보낸다.

이렇게 연결 확립을 위해 패킷 요청을 3번 교환하는 것을 3-way hankshake 라 한다.

4 way handshake

  • 컴퓨터 1에서 2로 연결 종료 요청을 보낸다.(FIN)
  • 2에서 1로 연결 종료 응답을 보낸다.(ACK)
  • 2에서도 1로 연결 종료 요쳥을 보낸다.(FIN)
  • 1에서 2로 연결 종료 응답을 반환한다.(ACK)

일련번호와 확인 응답 번호

  • 이제 연결은 되었고, 실제 데이터를 보내고 받아야 한다.
  • 이 때는 TCP 헤더의 일련 번호와 응답 번호를 사용한다.
  • TCP는 데이터를 분할해서 보내는데, 일련번호는 송신측에서 수신측에 이 데이터가 몇번째 데이터 인지 알려주는 역할을 한다.
  • 확인 응답 번호는 수신측이 몇번째 데이터를 수신했는지 알려주는 역할을 한다.
    • 이 번호를 가지고 다음 번호의 데이터를 요청하는데 사용한다.
    • 만약 10번을 수신했다면, 다시 송신측에 11번을 달라고 요청한다.

  1. 컴퓨터 1이 2한테 200바이트 데이터를 전송
  2. 2는 200바이트 수신 후에 다음 수신 데이터 번호를 확인응답번호에 넣는다.
    • 3001 + 200 = 3201이니 이 데이터를 요청한다.
  3. 1은 2로 다시 3201부터 200 바이트의 데이터를 전송한다.
  4. 2는 200바이트를 수신하고 다음 수신 데이터를 번호에 넣는다.

이러한 방법을 반복하게 된다. 데이터가 항상 올바르게 전달되지는 않으므로 이 두개의 값을 사용해서 손실되거나 유실된 경우, 다시 재전송하게 되어 있다. 이를 재전송 제어 라고 한다.