4계층 [트랜스포트 계층] part1 다중화와 역다중화

이름이름·2022년 10월 12일
1

컴퓨터 네트워크

목록 보기
5/11
post-thumbnail

트랜스포트 계층은 뭘 할까?

애플리케이션 계층에서 네트워크 계층까지 전달하는 역할을 담당합니다.
편의상 애플리케이션 계층을 app계층이라고 하겠습니다
송신호스트(보내는 쪽)와 수신호스트가(받는 쪽)이 있잖아요? 이 때 양측의 트랜스포트 계층이 하는 일을 보면 아래와 같습니다.

  • 보내는쪽: app 계층에서 준 메시지를 segments라는 것으로 쪼개고 헤더를 붙여 네트워크 계층으로 보냄
  • 받는쪽: segments들을 재조립해 app 계층으로 보냄

결국 네트워크 계층은 host간의 통신이고
트랜스포트 계층은 프로세스간의 통신임

  • 왜? 트랜스포트는 app계층의 어떤 프로세스가 준 segments(메시지)들을 네트워크 계층에 보내기만 하면되고 받는 쪽은 또 받는 프로세스에게 주니까 이는 프로세스간의 통신으로 볼 수 있죠
    또 네트워크 계층은 받는 쪽으로(수신 호스트) 주고 받으니 host간의 통신으로 볼 수 있는 것이구요

우편으로 이해하는 예시

<앤과 빌의 예시>

  • 서부와 동부에 집이 하나씩 있다고 생각합시다.
  • 각 집에는 12명의 아이들이 있고 서부와 동부의 아이들은 서로 사촌지간의 관계라 편지를 많이 주고받습니다.
  • 12명중에서 한명이 모든 편지를 모아 우편배달부한테 전달해주는데 그 역할을
    서부에는 앤, 동부에는 빌이 하고있다
  • 여기서 역할들을 비유해보자면 아래와 같습니다.

    애플리케이션 메시지 = 봉투 안의 편지
    프로세스 = 사촌형제
    호스트(host or end system) = 집
    트랜스포츠 계층 프로토콜 = 앤 과 빌
    네트워크 계층 프로토콜 = 우편서비스 (우편 집배원을 포함한)

multiplexing and demultiplexing 다중화와 역다중화

이를 위의 앤과 빌의 예시로 설명해보겠습니다.

  • 앤과 빌이 다른 11명의 아이들에게 편지를 받아서 모아서 우편 집배원에게 주는 것을 다중화 (multiplexing)라고 하고
  • 또 우편 집배원한테 편지들을 받아서 이것들을 각 11명의 아이들에게 나눠주는 것을 역다중화(demultiplexing)라고 합니다.

트랜스포트 계층은 app계층으로부터 메시지를 받아서 이것들을 조각내어 segments들로 만들고 여기에 헤더를 붙이고
그런 segments들을 네트워크 계층으로 캡슐화 하여 전달합니다.
캡슐화란? : segment에 필요한 헤더들을 붙이는 과정

이렇게 캡슐화하여 네트워크 계층으로 전달하는 것을 다중화 라고합니다.

이렇게 해서 네트워크 계층이 상대 호스트에게 보내고 상대 호스트쪽의 트랜스포트 계층은 segments들의 포트번호와 헤더를 보고 적절한 소켓에 전달해줌
소켓이란? : 애플리케이션 계층과 트랜스포터 계층사이에 메시지를 주고받는 통로임

이렇게 다중화할 때 필요한 헤더를 붙인다고 했잖아요?
여기에는 두 가지 요구사항이 있습니다.

  1. 소켓은 유일한 식별자를 가진다.
  2. 각 세그먼트는 세그먼트가 전달될 적절한 소켓을 가리키는 특별한 필드를 가진다.

    특별한 필드라는 것은 출발지 포트번호와 목적지 포트 번호를 의미합니다.
    각각의 포트 번호는 0 ~ 65535까지 사용할 수 있고. 그중에서 0 ~ 1023까지의 포트 번호를 잘 알려진 포트 번호(wel-known porn number)라고 하여 사용을 엄격하게 제한하고 있습니다. ex) HTTP(포트 번호 80)

역다중화 과정

그럼 이제 역다중화의 과정을 볼까요?
1. 호스트의 각 소켓은 포트 번호를 할당받습니다.
2. 그리고 세그먼트가 호스트에 도착하면, 트랜스포트 계층은 세그먼트 안의 목적지 포트번호를 검사하고 이에 상응하는 소켓으로 세그먼트를 보내게 됩니다.
3. 그러면 세그먼트의 데이터는 소켓을 통해 해당되는 프로세스로 전달됩니다.

위 방식은 UDP의 기본적인 동작 방식이며, TCP의 경우는 위보다 좀 더 많은 의미를 가지고 있습니다.

참고 (TCP소켓과 UDP소켓)

즉, 소켓에는 TCP소켓이랑 UDP소켓이 있는데
TCP 소켓은

  • source IP주소
  • source port number
  • dest IP 주소
  • dest port number 이 4개로 식별합니다.
    여러 개의 segments들을 받을 때 이 4개가 일치하지 않으면 목적지가 같아도 서로 다른 소켓(통로)을 사용합니다.

IP

네트워크 계층에서의 프로토콜을 인터넷 프로토콜 이라고 하고 줄여서 IP라고 합니다.
IP는 호스트간의 데이터 전달을 위해 최대한 노력을 하지만 데이터가 잘 전달됐는지, 순서대로 잘 갔는지 등의 책임은 지지 않습니다. (보장을 안해줌)
그래서 IP를 비신뢰적인 서비스라고 합니다.

profile
공부 정리

2개의 댓글

comment-user-thumbnail
2022년 10월 15일

잘 읽었습니다~!

1개의 답글