본문 바로가기

CS/네트워크

9. 전송 계층의 기능

쉽게 배우는 데이터 통신과 컴퓨터 네트워크를 정리한 내용입니다

1. 전송 계층의 기능

전송계층은 네트워크 양 끝단에서 통신을 수행하는 당사자 간의 단대단(End-to-End)연결을 제공한다.

전송계층프로토콜은 네트워크 계층에서 제공하는 제공하는 서비스를 이용해 상위 계층의 사용자에게 신뢰성 있는 서비스를 제공한다. 

전송계층은 데이터 링크 계층과 매우 유사함.
데이터 링크 계층은 물리적인 선로를 이용한 물리적 호스트(컴퓨터, 라우터) 사이의 데이터 전송을 담당하는 반면,
전송 계층은 논리적인 선로(라우터로 연결된 컴퓨터 네트워크)를 통해 데이터를 주고 받는다

1) 흐름 제어

전송 계층의 서비스를 이용해 연결 설정시, 양 끝단의 송수신 호스트의 전송시 속도 제어를 한다.

이론적으로 송신 프로세스가 보낼 수 있는 패킷의 한계를 지정하는 방법으로 문제를 해결한다

 

2) 오류 제어 

데이터 변형, 데이터 분실로 인해 일어나는 전송 오류가 발생하면 데이터 재전송에 의한 오류 제어 기능에 의해 복구가 실행된다. 

전송 계층에서 발생하는 오류는 대부분 논리적으로 구축된 각 계층의 소프트웨어가 동작하는 과정에서 데이터를 분실하는 경우가 대부분

 

3) 분할과 병합

상위 계층에서 요구한 데이터의 크기에 맞춰 전송 계층에서 데이터를 쪼개고 모으는 과정을 거친다

 

4) 전송 서비스 프리미티브

전송 계층 사용자가 전송 계층 서비스를 이용하기 위한 인터페이스이다. 일반적으로 네트워크에서는 비신뢰성을 바탕으로한 비연결형 서비스 프리미티브가 정의되지만, 전송 계층에서는 연결형 서비스(신뢰성 향샹됨)도 제공됨

 

2. 설계시 고려사항

주소 표현, 멀티 플랙싱, 연결 설정 관리등이 있다

1) 주소 표현

전송 계층에서 주소를 TSAP(Transport Service Access Point)라 한다.

TCP/IP 환경에서 사용하는 호스트 IP주소+포트번호 조합은 네트워크 계층과 전송 계층에서 사용하는 주소 표현 방식의 하나!

- 구조적 표현 : 여러개의 계층적 필드로 구분

- 비구조적 표현 : 값만 해석해서는 컴퓨터의 논리적인 위치를 파악하기 어려움

  • 211.123.201.30 : 네트워크&호스트의 계층적 특정은 O, 위치 정보와 관련해서는 비구조적임
  • www.korea.co.kr : 구조적인 위치정보도 제공

2) 멀티 플렉싱

전송 계층에서 전송 데이터의 단위는 TPDU(Transport Protocol Data Unit)임.

만약 목적지가 동일한 호스트일경우 이 데이터들을 하나의 가상회선에 실어보내는게 유리한데, 이런 방법을 멀티 플랙싱이라고 함

멀티플렉싱의 종류

  • 상방향(a) : 다수의 전송 계층 연결에 대해 하부 1개의 연결이 생성되는 경우로
    네트워크 계층의 가상 회선 연결개수를 줄일 수 있어 연결 설정에 걸리는 시간이 단축 된다
  • 하방향(b) : 하나의 연결 설정을 의미하는 포트에 다수의 네트워크 계층의 가상 회선을 할당한다.
    데이터의 특성에 따라 개별 가상 회선이 할당되어 효과적인 통신이 가능하다

 

3) 연결 설정

전송 계층의 연결 설정은 연결요청 요구인 Conn_Req와 상대편 프로세스의 연결 수락 의미인 Conn_Ack의 회신으로 진행되며 양쪽의 합의가 필요하다

실제로 해당 개념을 실제로 적용시 전달 과정에서의 분실,변형,복사등의 문제를 고려해야해 좀더 복잡해진다. 

  1. A프로세스가 Conn_req(x)메세지를 통해 연결설정을 요청한다
  2. B프로세스는 A프로세스에게 Conn_Ack메세지를 통해 x에 대한 응답을 보낸다. y는 자기의 초기 송신번호를 알리는데 사용
  3. A프로세스는 Conn_Ack를 잘 받았다고 응답해줘야 한다.  Data_Req(데이터전송+응답 수행)전송해준다

4) 연결 해제

크게 두가지로 일방적 연결 해결 방식과, 점진적 연결 해결 방식이 존재한다.

- 일방적 연결 해제 : 통신하는 한쪽 프로세스가 일방적으로 연결 해제 요청인 Disc_Req를 전송해 연결 종료를 선언할 수 있음(상대동의X)
전송할 데이터가 남아있거나, 전송중이나 완료되지 않은 상태에서도 연결 종료가 이루어짐

- 점진적 연결 해제 : 어느 한쪽에서 연결 해제 요구가 발생해도 그 프로세스가 송신하는 연결만 해제되고 나머지 한쪽의 송신은 진행됨.
두 프로세스 사이의 연결을 완전히 해제하려면 두 프로세스 모두 Disc_Req를 전송해야함