[네트워크 상식 25] 전송계층의 기능에 대해 알아보자
관리자 | 2024-02-05 | 조회 21
[네트워크 상식] 전송계층의 기능에 대해 알아보자
전송계층 프로토콜은 오류 제어, 흐름 제어, 데이터 순서화 등의 기능면에서 데이터링크
계층과 특징이 유사하다. 그러나 데이터링크 계층이 물리적인 전송선로로 직접 연결된
두 물리적 호스트 사이의 데이터 전송을 담당하는 반면, 전송계층은 네트워크 끝단에
위치하는 통신 주체가 중간의 논리적 선로(라우터로 연결된 컴퓨터 네트워크)를 통해
데이터를 주고받는다.
상기 그림은 전송 계층과 데이터 링크 계층의 역할이 어떻게 다른지를 개괄적으로 설명한다. 데이터 링크 계층은 단순히 물리적 선로를 통해 데이터를 직접 전달하기 때문에 네트워크 계층의 중개 기능이 필요 없다. 하지만 전송 계층은 중간에 위치한 논리적 네트워크의 중개 기능을 사용해 전송 기능을 수행한다. 전송 계층에서는 네트워크에서 제공하는 다양한 논리적 자원(예: 데이터 링크 계층의 기능, 잠재적 기억 장치에 의한 데이터 저장과 그에 따른 지연 현상)을 사용한다.
전송 계층의 서비스를 이용해 연결을 설정하면 양 끝단의 호스트에서 실행되는 프로세스가 데이터를 주고 받을 수 있다. 이 과정에서 필요한 주요 기능 중 하나가 흐름제어이다.
앞서 언급한 것처럼 데이터링크 계층에서도 라우터 사이의 프레임 전송 과정에서 흐름 제어 기능을 수행한다. 그러나 라우터를 연결하는 물리적 선로의 수는 전송 계층이 관여하는 호스트 사이의 논리적 연결 수보다 상대적으로 적다. 따라서 두 계층이 지원 하는 흐름 제어 기능은 기본 목적을 비롯해 유사한 특징이 많음에도 불구하고, 서로 다른 버퍼 관리 방법이 필요하다.
수신자가 송신자의 전송 속도보다 느리게 데이터를 수신하면 버퍼 용량이 초과하여 데이터를 분실할 수 있다. 이 경우에 송신자는 타임아웃 기능을 통해 재전송 과정을 수행하므로 전체 네트워크의 전송 효율이 점점 느려진다. 이론적으로 흐름 제어 기능은 수신자가 슬라이딩 윈도우 프로토콜의 윈도우 하단 값을 조정한다. 즉, 송신자가 보낼 수 있는 패킷의 한계를 지정하는 방법으로 문제를 해결한다.
데이터를 전송하는 과정에서 발생할 수 있는 오류의 종류에는 데이터링크 계층에서 설명한 것처럼 데이터 변형과 데이터 분실이 있다. 전송 오류의 발생에 따라 수신데이터의 내용이 깨지거나 분실되면 데이터 재전송에 의한 오류 제어 기능에 의해 복구 절차가 진행된다. 데이터 재전송 절차는 수신자의 요구에 의해 이루어질 수도 있고, 송신자 스스로 판단해 이루어질 수도 있다.
전송 계층에서 발생하는 오류는 선로 오류보다 논리적으로 구축된 각 계층의 소프트웨어가 동작하는 과정에서 데이터를 분실하는 경우가 대부분이다. 예를 들어, 전송 데이터를 특정 목적지까지 라우팅하는 과정에서 네트워크 계층의 기능적 한계나 잘못된 목적지 호스트의 위치 정보에 의해 올바르게 전달되지 않을 수 있다.
상위 계층에서 전송을 요구한 데이터 크기가 전송 계층에서 처리할 수 있는 데이터 크기보다 크면 데이터를 쪼개 전송해야 한다. 데이터를 전송하기 전에 적합한 크기로 나누는 과정을 분할(Segmentation)이라 한다. 반대로 수신 측에서 수신한 데이터를 원래 크기로 다시 모으는 과정을 병합(Reassembly)이라고 한다. 수신 측에서 상위 계층에 데이터를 보낼 때는 반드시 데이터의 병합 과정을 거쳐야 계층 구조의 틀이 유지된다.
전송 서비스 프리미티브(Primitive)는 전송 계층 사용자가 전송 계층 서비스를 사용하기 위한 인터페이스다. 네트워크 계층에서 제공하는 서비스는 일반적으로 비신뢰성을 바탕으로 한 비연결형 서비스 프리미티브가 정의된다. 전송 계층에서는 비연결형 서비스뿐만 아니라, 신뢰성이 향상된 연결된 서비스도 제공한다. 그러므로 이러한 특징이 반영되어 전송 계층이 네트워크 계층의 서비스 프리미티브보다 간단하다고 볼 수 있다.
참조문헌: 데이터 통신과 컴퓨터 네트워크