[지식창고]/네트워크

[컴퓨터 네트워크] 3.1 Transport-Layer services

개발새발주발 2023. 4. 6. 21:14
728x90

 1장에선 인터넷을 배우며 5계층에 대해 알아보았고 2장부터는 이 5계층에 대해 한 챕터씩 자세하게 배운다. 2장에서는 application layer에 대해 배웠고 3장에서는 Transport layer에 대해 배운다 ~~ 

 

서로 다른 호스트들은 locgical한 communication을 주고 받는다. 물론 이 communication 과정은 그냥 일어나는 것이 아니다! Transport layer를 통해 소통을 할 수 있다. 이 계층에서는 송신자와 수신자 사이에 연결을 설정하고 데이터 전송을 관리하는 프로토콜을 구현하기 때문이다. 조금 더 쉽게 다가가보자면 사용자의 요청(Message)를 담아 원하는 소켓으로 전송해주는 계층이다. 2장 마지막에서 배웠던 socket programming에 대해서 생각해보면 확실한 이해가 될 것이다. 


그럼 본격적으로 최교수님과 배운 내용을 리뷰하고 공부해보자 !

 

Transport Layer 개요

1. Transport services and protocols

  • 서로 다른 호스트에서 실행되는 애플리케이션 프로세스 간의 논리적인 연결(logical communicasegmetntion)을 제공한다. 
  • 전송 프로토콜은 end-system에서 동작한다
    • 송신 측 : 애플리케이션 메세지를 segment로 분할하여 네트워크 계층으로 전달한다. 
    • 수신 측 : segment를 메세지로 재조립하여 애플리케이션 계층으로 전달한다. 
  • 애플리케이션에서 사용할 수 있는 여러 전송 프로토콜 : TCP and UDP 

 

 

2. Transport vs Network layer

  • Network layer : 호스트 간의 logical communication 제공(라우팅)
  • transport layer : 프로세스 간의 Logical communication 제공(end-to-end)
    • 전송 계층은 네트워크 계층의 서비스를 기반으로 한다. 

호스트간의 Logical communication, 프로세스 간의 Logical communication가 확실히 다른 것은 알겠지만 왜, 어떻게 다른가?에 대해 고민해보자! 

 

Network Later는 라우팅과 경로 선택과 같은 네트워크 간의 연결 및 통신을 처리하고 Transport Layer는 End-to-End에서 데이터 전송의 신뢰성을 보장한다. 즉, 예를 들어 우리가 송신하고자하는 데이터가 수신 측에 주소(IP주소)를 찾을 때 사용되는 계층은 Network 계층이고 소켓을 통하여 신뢰성을 보장하는 transport계층을 지나고 나서야 전달될수 있는 것이다 ~ 

 

3. Internet Transport-layer protocols 

Transport Layer에서 사용하는 주 프로토콜은 TCP와 UDP이다. 이미 몇 번 들은 바 있겠고 어느정도 파악하고 있으니 조금 더 이해하기 쉬울 것이다. 

  • TCP : reliable, in-order delivery (신뢰할 수 있고, 정렬된)  
    • congestion control - 혼잡제어
    • flow control - 흐름 제어
    • connection 설정 
  • UDP : unreliable, unordered delivery (신뢰할 수 없고, 정렬되지 않은)
    • UDP가 IP프로토콜을 확장한 것이며, 'best-effort'방식의 IP를 단순히 따라하는 기능만 제공한다
    • 다음과 같은 서비스는 불가능 : 
      • delay guarantees : UDP가 패킷의 전송 지연 시간을 보장하지 않는다. 
        → 네트워크 혼잡 상황에 따라 패킷 전송에 소요되는 시간이 달라질 수 있으며, 이로 인해 패킷이 지연될 가능성이 있음 
      • bandwidth guarantees: 전송 대역폭을 보장하지 않는다.
        네트워크 혼잡 상황에 따라 전송 대역폭이 감소할 수 있으며 이로 인해 패킷의 전송 속도가 느려질 가능성이 있다. 

 

4. What transport service does an app need ? 

애플리케이션이 요구하는 전송 서비스에 대해 나열한 것, 각 애플리케이션이 필요로 하는 전송 서비스는 서로 다르기에 애플리케이션을 설계할 때 이러한 요구사항을 고려해야한다. 

1. data integrity - 데이터 무결성

: 데이터 무결성을 보장해야하는 애플리케이션( 예 : 파일 전송, 웹 트랜잭션)이 필요로 하는 전송 서비스 

이러한 앱들은 100% 신뢰성 있는 데이터 전송을 요구한다 ! 

 

2. timing - 타이밍 

: 인터넷 전화, interactive 게임 등 실시간으로 처리되어야하는 앱에서 필요한 전송 서비스 

 

3. throughput - 성능

: 멀티미디어와 같은 대용략 데이터를 처리해야하는 애플리케이션에서 요구되는 전송 서비스, 일부 애플리케이션은 최소한의 처리량을 필요로 하고, 다른 애플리케이션은 가능한 한 많은 처리량을 사용 

 

4. security - 보안 

: 데이터 보안을 필요로 하는 애플리케이션에 필요한 전송 서비스 → 암호화 및 데이터 무결성 등의 기능을 제공 

 

 


[참고 및 출처]

https://movefast.tistory.com/24

https://seungjuitmemo.tistory.com/83

https://k-elon.tistory.com/36  레이어 별 용어정리 

한국항공대학교 「컴퓨터 네트워크」 강의 자료