관리 메뉴

코딩하는 락커

3. 전송 계층 1 본문

🌐 네트워크

3. 전송 계층 1

락꿈사 2022. 3. 28. 17:26

3.1 트랜스포트 계층 서비스 및 개요

  • 트랜스포트 계층 프로토콜은 서로 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신Logical communication을 제공함.
    • 논리적 통신은 애플리케이션의 관점에서 보면 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보인다는 것을 의미함.
  • 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현됨.
  • 송신 측 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를 트랜스포트 계층 세그먼트Segment인 트랜스포트 계층 패킷으로 변환함.
  • 이러한 변환은 애플리케이션 메시지를 트랜스포트 계층 세그먼트로 만들기 위해 더 작은 조각으로 분할하고, 각각의 조각에 트랜스포트 계층 헤더를 추가함으로써 수행됨.
  • 수신측에서 네트워크 계층은 데이터그램으로부터 트랜스포트 계층 세그먼트를 추출하고 트랜스포트 계층으로 세그먼트를 보냄.
  • 이후에 트랜스포트 계층은 수신 애플리케이션에서 세그먼트 내부의 데이터를 이용할 수 있도록 수신된 세그먼트를 처리함.

 

트랜스포트 계층과 네트워크 계층 사이의 관계

  • 트랜스포트 계층 프로토콜은 서로 다른 호스트에서 동작하는 프로세스들 사이의 논리적 통신을 제공 -> a라는 호스트 위에서 실행 중인 b,c,d,e,f .. 등의 프로세스를 구분함.
  • 네트워크 계층 프로토콜은 호스트들 사이의 논리적 통신을 제공 -> a, b, c, d 등의 호스트를 구분함.

 

인터넷 트랜스포트 계층의 개요

  • 인터넷에서 트랜스포트 계층 패킷을 세그먼트로 일컫음.
  • TCP/UDP 패킷을 모두 세그먼트로 지칭, 네트워크 계층 패킷에 대해 데이터그램으로 지칭
  • 인터넷 네트워크 계층 프로토콜은 "인터넷 프로토콜", 줄여서 IP라고 부름
  • IP 서비스 모델은 호스트들 간에 논리적 통신을 제공하는 최선형 전달 서비스best effor delivery service임.
    • 이것은 IP가 통신하는 호스트들 간에 세그먼트를 전달하기 위해 최대한 노력하지만, 어떤 보장도 하지 않는다는 것을 의미.
    • 특히 IP는 세그먼트 전달을 보장하지 않고 세그먼트가 순서대로 전달되는 것을 보장하지 않음.
    • 또한 IP는 세그먼트 내부 데이터의 무결성을 보장하지 않음.
    • 이러한 이유로 IP를 비신뢰적인 서비스unreliable service
  • 각 호스트는 적어도 하나의 IP 주소를 가지고 있음
  • TCP/UDP의 가장 기본적인 기능은 종단 시스템 사이의 IP 전달 서비스를 종단 시스템에서 동작하는 두 프로세스 간의 전달 서비스로 확장하는 것.
  • 호스트-대-호스트 전달을 프로세스-대-프로세스 전달로 확장하는 것을 트랜스포트 다중화transport muliplexing역다중화demultiplexing이라고 부름

 

3.2 다중화와 역다중화

  • 목적지 호스트에서의 트랜스포트 계층은 바로 아래의 네트워크 계층으로부터 세그먼트를 수신함.
  • 트랜스포트 계층은 호스트에서 동작하는 해당 애플리케이션 프로세스에게 이 세그먼트의 데이터를 전달하는 의무를 가짐.
  • 트랜스포트 계층 세그먼트는 적절한 소켓으로 향해야 함.
  • 역다중화demultiplexing
    • 각각의 트랜스포트 계층 세그먼트는 이러한 목적을 위해 세그먼트에 필드 집합을 갖고 있음.
    • 수신 측의 트랜스포트 계층은 소켓을 식별하기 위해서 이들 필드를 검사함.
    • 그리고 이 세그먼트를 해당 소켓으로 보냄.
    • 역다중화:  트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업
  • 다중화multiplexing
    • 출발지 호스트에서 소켓으로부터 데이터를 모으고 이에 대한 세그먼트를 생성하기 위해서 각 데이터에 헤더 정보로 캡슐화함.
    • 다중화: 캡슐화된 세그먼트들을 네트워크 계층으로 전달하는 작업
  • 트랜스포트 계층 다중화에 필요한 것
    1. 소켓을 유일한 식별자를 가짐.
    2. 각 세그먼트는 세그먼트가 전달될 적절한 소켓을 가리키는 특별한 필드를 가짐
      • 특별한 필드는 출발지 포트 번호 필드목적지 포트 번호 필드를 의미함.
      • 그 중 0~1023까지의 포트번호를 잘 알려진 포트번호라고 하여 사용을 엄격하게 제한하고 있음.

 

연결지향형 다중화와 역다중화

  • TCP 역다중화
    • TCP 소켓은 4개 요소 집합에 의해 식별
      1. 출발지 IP 주소
      2. 출발지 포트 번호
      3. 목적지 IP 주소
      4. 목적지 포트 번호
    • 따라서 목적지 IP 주소, 목적지 포트 번호가 같은 세그먼트가 와도 출발지 IP 주소, 출발지 포트 번호에 따라 다른 소켓, 다른 프로세스로 올라감.
  • UDP 역다중화
    • UDP 소켓은 2개 요소 집합에 의해 식별
      1. 목적지 IP 주소
      2. 목적지 포트 번호
    • 따라서 출발지 IP 주소, 출발지 포트 번호가 다른 세그먼트와 와도 같은 소켓으로 올라감.

 

3.3 비연결형 트랜스포트: UDP

UDP 세그먼트 구조

32비트
출발지 포트 번호(16비트) 목적지 포트 번호(16비트)
길이 체크섬
애플리케이션 데이터(메시지)
  • UDP 헤더는 2바이트씩 구성된 4개의 필드를 가짐
  • 각 필드의 역할
    • 포트 번호:  목적지 호스트가 목적지 종단 시스템에서 동작하는 정확하는 프로세스에게 애플리케이션 데이터를 넘기게 해줌(역다중화)
    • 체크섬: 세그먼트에 오류가 발생했는지 검사하기 위해 수신 호스트에서 사용
      • 오류 발생시 올려보내지 않음

'🌐 네트워크' 카테고리의 다른 글

3. 전송 계층 3  (0) 2022.03.29
3. 전송 계층 2  (0) 2022.03.28
2. 어플리케이션 계층 2  (0) 2022.03.28
2. 어플리케이션 계층 1  (0) 2022.03.23
1. 컴퓨터 네트워크 기본  (0) 2022.03.23
Comments