개발/네트워크

OSI 7계층 - 전송계층(TCP와 UDP 비교)

라니킴 2023. 1. 19. 20:52

OSI 7계층

1. 전송 계층(Transport Layer)이란?

사용자들이 데이터를 주고받을 수 있게 하는 계층이다.

물리 계층, 데이터 링크 계층, 네트워크 계층의 3 계층이 있으면 목적지에 데이터를 보낼 수 있다.

하지만, 데이터가 손상되거나 유실되더라도 이들 계층에서는 아무것도 해주지 않는다.

전송계층은 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요하다.

 

2.  역할

1. 전송계층에는 오류를 점검하는 기능이 있어, 오류가 발생하면 데이터를 재전송하도록 요청한다.

2. 전송 받은 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능이 있다.

 

예를 들면, 게임도 하고 있고 음악도 듣고 있으면 데이터가 왔을 때 컴퓨터는 전송받은 데이터가 음악 데이터 인지 게임 데이터인지 구분을 해서 애플리케이션에 전달되어야 한다. 이러한 기능을 전송계층에서 담당하는 것이다.

 

3. 특징

  • 연결형 통신 : 상대편을 확인해 가면서 통신하는 방식
    • 신뢰성/정확성이 높다 =>  데이터를 목적지에 문제없이 전달하는 것
  • 비연결형 통신 : 상대편을 확인하지 않고 일방적으로 데이터를 전송하는 방식
    • 효율성이 높다 => 데이터를 빠르고 효율적으로 전달하는 것
    • 예 ) 동영상 볼 때

두가지 통신 모두 장단점이 있으므로, 신뢰할 수 있고 정확한 데이터 전송이 필요한 애플리케이션에는 연결형 통신을 사용하고,

효율적인 데이터 전송이 필요한 애플리케이션에는 비연결형 통신을 사용하면 된다.

 

연결형 통신 프로토콜에는 TCP가 사용되고, 비연결형 통신 프로토콜에는 UDP가 사용된다.

 

3.1 TCP

3.1.1. TCP특징

1. 연결 지향

3 way handshake로 연결이 확립된 후에 데이터를 전송하고 그때 확인 응답을 한다.

3 way handshake란 , 데이터를 보내기 전에 연결을 확립하기 위해 패킷 요청을 세 번 교환하는 것을 말한다.

데이터를 전송한 후에는 연결을 끊기 위한 요청도 교환해야 한다. 

 

컴퓨터 1에서 2로 연결 종료 요청(FIN)을 보내면, 2에서 1로 연결 종료 응답(ACK)을 반환한다.

또한, 컴퓨터 2에서도 연결 종료 요청(FIN)을 보내면, 2에서 1로 연결 종료 응답(ACK)을 반환한다.

 

2. 데이터 전달 보증, 순서 보장

 

TCP헤더의 일련번호와 확인 응답 번호를 사용한다.

TCP 헤더란?
데이터 송신 측에서 응용 계층부터 물리 계층까지 계층별로 데이터를 전달할 때 데이터에 관한 정보를 담고 있는 헤더를 데이터에 붙여서 보낸다. TCP로 전송할 때 붙이는 헤더를 TCP헤더라고 한다.
TCP헤더는 목적지까지 데이터를 제대로 전송하기 위해 필요한 정보를 가지고 있다. 

TCP는 데이터를 분할해서 보내는데 일련번호는 송신 측에서 수신 측에 이 데이터가 몇 번째 데이터인지 알려주는 역할을 한다.

확인 응답 번호는 수신 측이 몇 번째 데이터를 수신했는지 송신 측에 알려주는 역할을 한다.

 예를 들어,  10번 데이터를 수신하면 11번 데이터를 송신 측에 요청한다.

일련번호와 확인 응답 번호를 사용해서 데이터가 손상되거나 유실된 경우에 데이터를 재전송하도록 되어 있다.

3. 2. UDP

데이터 전달 및 순서가 보장되지 않아 신뢰성이나 정확성이 떨어지지만, 연결을 확인하는 과정이 없기 때문에 빠르다는 장점이 있다.

UDP를 사용하면 랜에 있는 컴퓨터나 네트워크 장비에 데이터를 일괄로 보낼 수 있는 broadcast 가 가능하다.

TCP는 1:1로 연결을 확인 한 후 하나씩 보내야 하기 때문에 broadcast와 같이 불특정 다수에게 보내는 통신은 적합하지 않다. 

 

주로 실시간 서비스(streaming)에 이용된다. 

 

 

 

책<모두의 네트워크>공부 후 정리한 자료입니다.