안녕하세요!

FE 개발자 유진주입니다.

CS/네트워크

[컴퓨터네트워크] Chapter3.1~2 트랜스포트 계층 서비스 / 다중화와 역다중화

ypearl 2023. 10. 25. 15:43

Chapter3.1  트랜스포트계층서비스

  • 네트워크(=인터넷) 계층 서비스
  • 트랜스포트 계층 서비스
  • 트랜스포트 다중화/역다중화

 

네트워크 계층 서비스

  • 호스트(Host) 간의 통신 // → 네트워크 계층의 역할
    • 인터넷 호스트 간에 패킷(데이터그램) 전달
    • 호스트의 인터넷 통신 장치: NIC(Network Interface Card)

 

  • 최선형(Best-effort) 서비스 (↔ 보장형(Guaranteed) 서비스)
    • 자원이 허락하는 범위내에서 최적의 통신 서비스 제공
    • 자원이 부족한 경우 지연시간 발생, 패킷 훼손/손실 발생 가능: 비신뢰 서비스(unreliable service)

 

  • 비연결형(Connectionless) 서비스
    • 패킷 전달 경로가 다를 수 있음
    • 패킷 도착 순서가 바뀔 수 있음

 

*연결을 하지 않아, 상황에 따라 독립된 경로로 전달될 수 있음

→ 도착 순서 바뀔 수 있음(+패킷 훼손될수도, 순서 바뀌어 도착할수도)

  • IP(Internet Protocol)
    • IP 주소 기반의 패킷(데이터그램) 전달
    • IP 주소: 인터넷에 연결된 NIC(호스트) 구분

 

[네트워크 계층]

*출발지 호스트의 NIC부터 ~ 목적지 호스트의 NIC까지 데이터그램을 최선형 서비스로 제공한다.

 

트랜스포트 계층 서비스(5가지)

- 응용 프로세스(Application Process)간의 통신

*트랜스포트 계층은 네트워크 계층에서 제공되는 통신 서비스를 사용해서,

응용 계층에 대한 통신 서비스를 제공한다.

* Application

  -----------------

  Transport

  -----------------

  Network

[트랜스포트 계층]

*출발지의 특정 프로세스부터 ~ 목적지의 특정 프로세스까지 통신 서비스 담당

 

*호스트에는 네트워크 서비스를 이용하는 어플리케이션 프로세서 여러 개가 있을 수 있다.

여러 개의 프로세스가 각각에 대해서 다른 호스트에 있는 프로세스까지

네트워크 서비스를 활용해 통신 서비스를 접근하는 역할을 담당하는 것이 트랜스포트 계층이다.

 

- 1) 세그멘테이션 / 리어셈플리(Segmentation/Reassembly)

  • 응용 프로세스가 전송 요구하는  메시지
    네트워크 계층이 교환 가능한 크기의 단위(세그먼트)로 나누어 네트워크 계층에 전달
  • 네트워크 계층을 통해 수신되는 세그먼트들을 메시지로 재조립하여 응용 프로세스에게 전달

 

- 2) 다중화(multiplexing) / 역다중화(demultiplexing)

  • 다수의 응용 프로세스가 전송 요구하는 메시지를 구분가능한 정보를 추가한 세그먼트로 만들어 네트워크 계층에 전달 : 포트번호(Port Number) 
  • 네트워크 계층을 통해 수신되는 세그먼트의 포트번호를 사용하여 메시지를 전달할 응용 프로세스 선택

*다중화의 원래 의미: 여러 개를 한 개로 대응시킨다!

*트랜스포트에서의 의미: 어플리케이션의 여러 프로세스를 트랜스포트 계층(프로토콜) 하나로 대응시킨다!

 

 

- 3) 무결성(Integrity) 확인

  • 수신 세그먼트 비트의 손상 여부 확인
  • Checksum(검사합) 기술 적용

 

- 4) 신뢰 전송(Reliable Transfer)

  • 오류 복구(Error Recovery): 손상 또는 손실 세그먼트 복구
  • 흐름 제어(Flow Control): 수신 버퍼 오버플로어(overflow) 방지

 

- 5) 혼잡 제어(Congestion Control)

  • 전송량 조절을 통해 네트워크 혼잡 상황 회피 및 해소

 

- 트랜스포트 프로토콜

  • TCP, UDP (*UDP는 TCP에 비해 아주 간단한 프로토콜임)

 

 

트랜스포트 다중화/역다중화

- 다중화/역다중화 개념   

*특정 어플리케이션을 구분하기 위한 주소: 1) IP주소+2) 포트번호

*Encapsulation(캡슐화)

 

- 소켓(socket)

  • 트랜스포트 계층이 제공하는 응용 프로세스 통신 통로 자료구조
  • 응용 프로세스 주소: 소켓 주소 (IP 주소 + 포트번호)

- 다중화 유형

  • 연결형(connection-oriented): 통신 소켓간에 1:1 논리적 연결 설정

  • 비연결형(connectionless): 통신 소켓간에 1:1 논리적 연결 미설정