Transport Layer: 두 판 사이의 차이

youngwiki
편집 요약 없음
5번째 줄: 5번째 줄:
'''Transport layer protocol'''은 서로 다른 호스트에서 실행되는 애플리케이션 프로세스들 사이의 '''logical communication'''을 제공한다. logical communication이란, 애플리케이션 관점에서 마치 프로세스가 실행되는 호스트들이 직접 연결된 것처럼 보이는 것을 의미한다. 실제로는 이 호스트들이 지구 반대편에 위치할 수도 있고, 수많은 라우터와 다양한 링크들을 통해 연결되어 있을 수 있다. 애플리케이션 프로세스는 전송 계층이 제공하는 logical communication을 이용해 메시지를 주고받으며, 이러한 메시지가 전달되는 물리적 인프라의 세부 사항에 대해서는 고려할 필요가 없다.  
'''Transport layer protocol'''은 서로 다른 호스트에서 실행되는 애플리케이션 프로세스들 사이의 '''logical communication'''을 제공한다. logical communication이란, 애플리케이션 관점에서 마치 프로세스가 실행되는 호스트들이 직접 연결된 것처럼 보이는 것을 의미한다. 실제로는 이 호스트들이 지구 반대편에 위치할 수도 있고, 수많은 라우터와 다양한 링크들을 통해 연결되어 있을 수 있다. 애플리케이션 프로세스는 전송 계층이 제공하는 logical communication을 이용해 메시지를 주고받으며, 이러한 메시지가 전달되는 물리적 인프라의 세부 사항에 대해서는 고려할 필요가 없다.  


Transport layer protocol은 host(end system) 내부에 구현되며, 라우터 내에서 구현되지 않는다. 송신 측에서는 applicaiton layer에서의 message를 '''segment'''로 변환한다. 이 과정에서는 message를 청크(chunk) 단위로 나누고, 각 청크마다 transport layer 헤더 파일을 붙인다. 또한 이 segment들은 송신측 host의 network layer로 전달되어 '''datagram'''으로 캡슐화되어 logical communication으로 연결된 host로 전달된다. 해당 host는 network layer로 부터 수신한 datagram에서 segment를 추출하여 이를 transport layer에 전달한다. transport layer는 해당 segments들을 message로 재조립하여 application layer에서 이용할 수 있도록 한다.
Transport layer protocol은 host(end system) 내부에 구현되며, 라우터 내에서 구현되지 않는다. 송신 측에서는 applicaiton layer에서의 message를 '''segment'''로 변환한다. 이 과정에서는 message를 청크(chunk) 단위로 나누고, 각 청크마다 transport layer 헤더 파일을 붙인다. 또한 이 segment들은 송신측 host의 network layer로 전달되어 '''datagram'''으로 캡슐화되어 logical communication으로 연결된 호스트로 전달된다. 해당 호스트는 network layer로 부터 수신한 datagram에서 segment를 추출하여 이를 transport layer에 전달한다. transport layer는 해당 segments들을 message로 재조립하여 application layer에서 이용할 수 있도록 한다.


==Transport Layer vs. network layer==
==Transport Layer vs. network layer==
33번째 줄: 33번째 줄:
|}
|}
위 예시에서 승빈이와 준영이는 자신의 할일을 묵묵히 할 뿐이다. 예를 들어 세종시와 서울 사이의 우편 센터에서 우편을 분류하거나, 한 센터에서 다른 센터로 운반하는 일에 관여하지 않는다. 마찬가지로 transport layer protocol도 end system 내에만 존재하며, 애플리케이션 프로세스에서부터 network layer까지 데이터를 전달하고, 반대로도 전달한다. 하지만 네트워크 내부에서 실제로 데이터가 어떻게 이동하는지에 대해서는 관여하지 않는다.  
위 예시에서 승빈이와 준영이는 자신의 할일을 묵묵히 할 뿐이다. 예를 들어 세종시와 서울 사이의 우편 센터에서 우편을 분류하거나, 한 센터에서 다른 센터로 운반하는 일에 관여하지 않는다. 마찬가지로 transport layer protocol도 end system 내에만 존재하며, 애플리케이션 프로세스에서부터 network layer까지 데이터를 전달하고, 반대로도 전달한다. 하지만 네트워크 내부에서 실제로 데이터가 어떻게 이동하는지에 대해서는 관여하지 않는다.  
==Multiplexing/demultiplexing==
[[파일:Transport-layer multiplexing and demultiplexing.png|대체글=Transport-layer multiplexing and demultiplexing|섬네일|400x400픽셀|'''Transport-layer multiplexing and demultiplexing''' ]]
목적지 호스트에서 전송 계층은 바로 아래에 있는 네트워크 계층의 datagram으로 부터 추출된 segment를 수신한다. 전송 계층은 이 segment에 담긴 데이터를 호스트 내에서 실행 중인 적절한 애플리케이션 프로세스로 전달해야 한다. 프로세스는 하나 이상의 socket을 가지며, 수신 host는 하나 이상의 socket을 가질 수 있으므로, 각 socket은 특별한 식별자를 가지고 있다.
'''Demultiplexing'''은 transport layer의 segment들을 segment안의 헤더 파일들을 이용하여 올바른 socket에 전달하는 과정을 일컫는 말이다. 반대로 송신 host에서 서로 다른 socket으로 부터 데이터를 모으고, 각 데이터 조각(chunk)에 헤더 파일을 붙여 segment를 생성하고 이를 network layer에 넘겨주는 작업을 '''multiplexing'''이라고 한다.


==[[UDP]]와 [[TCP]]==
==[[UDP]]와 [[TCP]]==

2025년 3월 31일 (월) 12:26 판

상위 문서: 컴퓨터 네트워크

개요

The transport layer provides logical rather than physical communication between application processes

Transport layer protocol은 서로 다른 호스트에서 실행되는 애플리케이션 프로세스들 사이의 logical communication을 제공한다. logical communication이란, 애플리케이션 관점에서 마치 프로세스가 실행되는 호스트들이 직접 연결된 것처럼 보이는 것을 의미한다. 실제로는 이 호스트들이 지구 반대편에 위치할 수도 있고, 수많은 라우터와 다양한 링크들을 통해 연결되어 있을 수 있다. 애플리케이션 프로세스는 전송 계층이 제공하는 logical communication을 이용해 메시지를 주고받으며, 이러한 메시지가 전달되는 물리적 인프라의 세부 사항에 대해서는 고려할 필요가 없다.

Transport layer protocol은 host(end system) 내부에 구현되며, 라우터 내에서 구현되지 않는다. 송신 측에서는 applicaiton layer에서의 message를 segment로 변환한다. 이 과정에서는 message를 청크(chunk) 단위로 나누고, 각 청크마다 transport layer 헤더 파일을 붙인다. 또한 이 segment들은 송신측 host의 network layer로 전달되어 datagram으로 캡슐화되어 logical communication으로 연결된 호스트로 전달된다. 해당 호스트는 network layer로 부터 수신한 datagram에서 segment를 추출하여 이를 transport layer에 전달한다. transport layer는 해당 segments들을 message로 재조립하여 application layer에서 이용할 수 있도록 한다.

Transport Layer vs. network layer

Transpot layer는 프로세스간의 logical communication을 제공한다. 반면 network layer는 host간의 logical communication을 제공한다. 이를 아래와 같은 예시를 통해서 이해해보자.

서울에는 승빈이가, 세종시에는 준영이가 살고 있는데 두 사람의 집에는 각각 12명의 아이가 살고 있다. 두 집의 아이들은 서로 편지쓰기를 매우 좋아해 주말만 되면 서로서로 편지를 써주며, 이는 우편 서비스를 통해서 각각 별도의 봉투에 담겨서 전달된다. 즉 주말마다 서로의 집에 총 144통(12X12)의 편지가 부쳐지는 셈이다. 서로의 집에 편지가 도착하면, 준영이와 승빈이는 집에 도착한 편지들을 수거하고, 수신인을 확인해 아이들에게 편지를 하나씩 나눠준다. 반대로 아이들이 편지를 쓰면 준영이와 승빈이는 편지를 모아 우체부에게 전달한다.
위의 예시에서 우편서비스는 두 집간의 logical communication을 제공한다. 즉 우편 서비스는 각 아이들 사이에서가 아니라 준영이와 승빈이의 집 사이에서 우편물을 전달한다. 반면, 준영이와 승빈이는 각각의 집안에 있는 아이들 간의 logical communication을 제공한다. 준영이와 승빈이는 아이들로부터 우편물을 수거하고, 아이들에게 우편물을 나눠주기 때문에 아이들 입장에서는 준영이와 승빈이가 우편 서비스이지만, 준영이와 승빈이는 단지 집에 살고 있는 사람들(end system의 일부)일 뿐이다.

네트워킹 용어 가정집의 비유
application message 봉투 속의 편지들
process 집 안의 아이들
host
transport layer protocol 준영이와 승빈
network layer protocol 우편 서비스(우체부 포함)

위 예시에서 승빈이와 준영이는 자신의 할일을 묵묵히 할 뿐이다. 예를 들어 세종시와 서울 사이의 우편 센터에서 우편을 분류하거나, 한 센터에서 다른 센터로 운반하는 일에 관여하지 않는다. 마찬가지로 transport layer protocol도 end system 내에만 존재하며, 애플리케이션 프로세스에서부터 network layer까지 데이터를 전달하고, 반대로도 전달한다. 하지만 네트워크 내부에서 실제로 데이터가 어떻게 이동하는지에 대해서는 관여하지 않는다.

Multiplexing/demultiplexing

Transport-layer multiplexing and demultiplexing
Transport-layer multiplexing and demultiplexing

목적지 호스트에서 전송 계층은 바로 아래에 있는 네트워크 계층의 datagram으로 부터 추출된 segment를 수신한다. 전송 계층은 이 segment에 담긴 데이터를 호스트 내에서 실행 중인 적절한 애플리케이션 프로세스로 전달해야 한다. 프로세스는 하나 이상의 socket을 가지며, 수신 host는 하나 이상의 socket을 가질 수 있으므로, 각 socket은 특별한 식별자를 가지고 있다.

Demultiplexing은 transport layer의 segment들을 segment안의 헤더 파일들을 이용하여 올바른 socket에 전달하는 과정을 일컫는 말이다. 반대로 송신 host에서 서로 다른 socket으로 부터 데이터를 모으고, 각 데이터 조각(chunk)에 헤더 파일을 붙여 segment를 생성하고 이를 network layer에 넘겨주는 작업을 multiplexing이라고 한다.


UDPTCP

UDP

자세한 내용은 UDP 문서를 참조하십시오.

TCP

자세한 내용은 TCP 문서를 참조하십시오.

각주