23. 전송 계층의 역할

이전 물리계층, 데이터링크계층, 네트워크계층에서는 목적지에 데이터를 보내주는 역할을 전송 계층은 데이터가 잘 도착했는지 확인한다.

전송 계층의 두가지 역할

전송 계층은 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요하다.

  • 오류를 점검하는 기능 → 오류, 손실이 발생한 데이터가 오면 데이터 재요청
  • 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능


연결형 통신과 비연결형 통신

  • 연결형 통신:

    이미지

    • 상대편을 확인해가며 데이터를 전송
    • 신뢰성/정확성 👍
    • 프로토콜 : TCP
  • 비 연결형 통신:

    이미지

    • 확인과정없이 일방적으로 데이터를 전송
    • 효율성 👍
    • 프로토콜 : UDP


24. TCP의 구조

TCP란?

전송제어 프로토콜이다. 기본적으로 TCP는 IP와 함께사용이 된다. 아래 TCP 헤더의 구조이다.

1. 출발지 포트번호(16비트) 2. 목적지 포트번호(16비트) 3. 일련번호(32비트) 4. 확인응답번호(32비트)
5. 헤더길이(4비트) 6. 예약영역(6비트) 7. 코드비트(6비트) 8. 윈도우크기(16비트) 9.체크섬(16비트)
10. 긴급포인터(16비트) 11.옵션
  • 코드비트 (6비트)

    URG ACK
    (확인응답)
    PSH RST SYN
    (연결요청)
    FIN
    (연결종료)
    0 0 0 0 0 0

초기값은 0 이고 활성화 되면 1이된다.

3-way 핸드셰이크란?

  • 연결

    연결은 SYN과 ACK를 사용하여 확립된다. 그리고 데이터를 전송하기 전에 아래의 순서대로 세번 확인한다.

    이미지

    1 연결 확립 요청

    URG ACK PSH RST SYN FIN
    0 0 0 0 1 0

    2 연결 확립 응답+연결 확립요청

    URG ACK PSH RST SYN FIN
    0 1 0 0 1 0

    3 연결 확립 응답

    URG ACK PSH RST SYN FIN
    0 1 0 0 1 0


  • 연결 종료시

    이미지

    1 연결 종료 요청

    URG ACK PSH RST SYN FIN
    0 0 0 0 0 1

    2 연결 종료 응답

    URG ACK PSH RST SYN FIN
    0 1 0 0 0 0

    3 연결 종료 요청

    URG ACK PSH RST SYN FIN
    0 0 0 0 0 1

    4 연결 종료 응답

    URG ACK PSH RST SYN FIN
    0 1 0 0 0 0

25. 일련번호와 확인 응답 번호의 구조

일련번호와 확인응답번호란?

초기 일련번호와 확인응답번호는 3-way핸드셰이크 과정에서 결정된다.

  • 일련번호
    • 수신측에 이 데이터가 몇번째 데이터인지 알려준다. (데이터를 전송할때는 패킷이라는 작은 조각으로 나누어 전송한다고했다 이 패킷이 몇번째인지를 알려주는 역할을 한다.)
  • 확인 응답 번호
    • 수신측이 몇번째 데이터를 수신했는지 송신측에 알려주는 역할을 한다.
    • 일련번호를 통해 데이터가 손상, 유실되면 재전송이 이루어 진다.

    이미지


윈도우 크기란?

매번 세그먼트하나를 주고받을때 마다 위와같이 확인과정을 거치면 전송속도가 늦어진다. 그래서 일정 단위만큼 한번에 주고 한번에 확인 받고 하는 방식을 사용하고 있다.

이런 방식을 사용하기 위해서는 세그먼트들을 응용 계층에 바로 넘기지 않고 임시로 저장해둘 공간이 필요한데 이장소를 버퍼 라고 한다. 그리고 이 버퍼의 한계크기를 윈도우크기 라고 한다.

데이터가 이 윈도우 크기에 넘쳐버리면 오버플로(overflow)가 발생한다.

윈도우크기는 3-way 핸드셰이크할 때 일련번호와 확인응답번호와 함깨 알려준다.

이미지


26. 포트 번호의 구조

전송계층의 역할중 “전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능” 이있었다. 목적지가 어느 애플리케이션인지 구별을 못하게 되면 컴퓨터는 이 데이터가 웹 브라우저를 사용하는지, 메일 어플리케이션을 사용하는지 알 수가 없다.

이 애플리케이션의 식별이 가능하기 위해서 출발지 포트번호와 목적지 포트번호가 필요하다.

  • 잘 알려진 포트 : 1~1023번 포트는 주요 프로토콜이 사용하도록 예약이 되어 있다.
  • 랜덤 포트 : 1025이상의 번호. 클라이언트 측의 송신 포트로 사용된다.
애플리케이션 포트번호
SSH 22
SMTP 25
DNS 53
HTTP 80
POP3 110
HTTPS 443


27. UDP의 구조

UDP란?

위에서 말한 비 연결형 통신을 돕는 프로토콜이다.

  • 비 연결형 통신
    • 프로토콜 : UDP

      이미지

    • 확인과정없이 일방적으로 데이터를 전송
    • 효율성 👍
    • 프로토콜 : UDP
    • UDP 헤더

      1. 출발지 포트번호 2. 목적지 포트번호 3. 길이 4. 체크섬

이와 같은 프로토콜은 동영상, 스트리밍, 등 과 같은곳에서 사용된다. 이렇게 연결된 네트워크 장비에 데이터를 일괄적으로 보내는 것을 브로드캐스트 라고한다.





< Refer to >

미즈구치 카츠야,『모두의 네트워크』, 이승률 옮김, 길벗, 2018

Leave a comment