네트워크 - Transport Layer Services

2020-11-21

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


트랜스포트 레이어는 어떠한 기능을 제공하는가를 여기서 살펴 봅시다.

Transport Layer Function

네트워크 레이어에서 가장 중요한 것은 인터넷 프로토콜이고,

다음에 전송 계층에서 대표적인 프로토콜은 TCP, UDP 이런 것이 있습니다.

전송 계층에서 제공하는 가장 대표적인 서비스는 무엇이냐면

프로세스들 간에 논리적인 연결입니다.

이것을 이해 하려면 네트워크 레이어에 대해서도 좀 알아야 합니다.

네트워크 레이어에서는 인터넷 프로토콜을 사용하고,

인터넷 프로토콜을 사용한다는 의미는 각각의 컴퓨터에 IP주소, 인터넷 주소가 할당 되어 있다는 이야기입니다.

그러나 인터넷 주소를 가지고는 그 호스트, 컴퓨터까지는 데이터를 보낼 수 있습니다.

그런데 이 컴퓨터 하나에는 여러 개의 프로세스가 동시에 기동하는 중 입니다.

그 중에 어떤 프로세스한테 전달 해야 되는 내용인가를 알 수가 없다는 것 입니다.

그래서 트랜스포트 레이어에서는, 하나의 컴퓨터에서 돌고 있는 여러 개의 프로세스들 중에서

특별한 어떤 하나의 프로세스를 지칭하기 위해서 그리고 데이터를 전달하기 위한 어떤 정보를 제공합니다.

전송 계층에서의 가장 기본적인 기능이라고 하면

하나의 컴퓨터 안에 들어 있는 여러 프로세스들을 구별해서 내 컴퓨터에서 동작하고 있는 하나의 프로세스와

상대방 컴퓨터에서 동작 하고 있는 하나의 프로세스간의 논리적인 연결을 구성하기 위한 기능을 제공합니다.

프로세스를 구별하는 그런 기능과 함께

전송 계층에서 제공하는 기능을 보내는 쪽과 받는 쪽으로 나누어 보면 아래의 그림과 같습니다.

보내는 쪽에서는 애플리케이션이 주는 메시지를 하부에 내려줍니다.

큰 사이즈의 데이터는 한 번에 전송하기가 매우 어렵습니다.

그래서 이것을 fragmentation, 분할을 해서 segment라는 것에 담아서 보내게 됩니다.

트랜스포트 레이어, 전송 계층에서의 정보 단위는 보통 segment라고 사용을 합니다.

애플리케이션이 내려 준 메시지를 전송 계층의 segment로 담아서,

네트워크 레이어를 통해 전송하는 역할을 send side에서 하는 것 입니다.

recv side에서는 이렇게 분할 되어 온 여러 가지 segment들을 다시 합쳐서 원래의 메시지로 합치는 역할을 합니다.

그리고 트랜스포트 프로토콜은 여러 가지가 있지만,

인터넷에서 사용하는 것은 TCP와 UDP가 가장 대표적인 내용이 되겠습니다.

TCP(Transmission Control Protocol)

  • 신뢰성 있는 전송이다

  • in-order delivery하다.

    전송하는 사람이 보낸 순서 그대로 송신자한테 도착한다는 것입니다. 여기서 기억 해야 할 것은 송신자가 보낸 순서대로 수신자의 컴퓨터에 꼭 도달한다는 뜻은 아닙니다.

  • Connection-oriented service

UDP(User Datagram Protocol)

  • 신뢰성이 없다.

    에러가 섞여 있을 수도 있고 패킷이 빠져 있을 수도 있고 순서가 좀 어긋나 있을 수도 있다.

  • Connectionless service

관련지어 생각할 수 있는 것

circuit-switched 방식, 회선 교환망이라고 했던 방식과 packet-switched 방식을 생각 해 볼 수 있습니다.

circuit-switched 방식의 대표적인 것은 전화망입니다.

전화망의 특징은 송신자와 수신자 사이에 배타적인 어떤 연결(회선)이 먼저 설립 입니다.

그러다 보니까 에러도 발생하지 않고 너무 빠른 속도로 전송한다거나

받는 쪽에서 처리 할 수 없을 정도로 데이터가 온다거나 하는 일이 없습니다.

TCP는 이런 circuit-switched를 흉내 내고 싶어 했습니다.

그렇지만 TCP가 circuit과는 같을 수가 없는게, TCP나 UDP는 인터넷 프로토콜을 기반으로 서비스를 하고 있는데

인터넷 프로토콜 자체가 packet 교환 방식입니다.

Circuit과 동일하게 어떤 물리적인 주파수를 할당한다던지 시간을 할당한다던지 이런 것을 할 수가 없습니다.

그래서 어차피 circuit을 설립 할 수는 없지만 그래도 이 circuit-switched 방식의 안정적인 서비스를 제공하고 싶기 때문에

TCP에서는 connection이라는 개념을 도입 했습니다.

둘 사이의 통신을 하기 전에 먼저 connection을 설정 해서

둘 사이에 흘러가는 전체 데이터들의 에러라던지 그 데이터에 흐르는 속도라던지 이런 것들을 제어해서

전체적으로 안정적인 서비스를 제공하고자 하는 것이 TCP입니다.

반면에 UDP는 connectionless, 이런 connection과 관련이 없습니다.

그냥 순전히 아래 레벨에 있는 인터넷 프로토콜의 능력에 맡기는 것 입니다.