[TIL] 23.03.31 전송계층 _신뢰할 수 있는 데이터 전송하기

hyewon jeong·2023년 3월 31일
0

TIL

목록 보기
112/138

1. 전송계층의 역할

1) 데이터가 제대로 도착했는지 확인

패킷이 전송 과정에서 아무 문제 없이 제대로 수신지 컴퓨터에 도착할 수 있도록 패킷 전송을 제어하는 역할은 전송 계층이 담당합니다. 전송 계층은 네트워크 혼잡 상황에 따라 패킷의 전송량을 조절하여 패킷의 흐름을 제어하고 패킷 전송의 오류를 점검해서 수신지 컴퓨터까지 패킷이 제대로 도착했는지 확인하는 역할을 합니다. 다시 말해 전송 계층은 수신지 컴퓨터까지 신뢰할 수 있는 데이터를 전송하기 위해 필요한 계층입니다.

데이터를 전송하는 궁극적인 목적은 애플리케이션이 데이터를 처리하여 애플리케이션의 목적에 따른 서비스를 제공하기 위한 것입니다. 따라서 데이터는 수신지 컴퓨터가 아니라 수신지 컴퓨터 내의 애플리케이션까지 전송되어야 최종 목적지에 도착하게 됩니다.

2) 전송된 데이터의 목적지가 어떤 애플리케이션인지 포트번호를 통해 식별

애플리케이션이라는 최종 목적지까지 데이터 전송을 책임지는 것이 전송 계층의 또 다른 역할입니다. 즉, 전송 계층은 다양한 애플리케이션이 동작하는 컴퓨터 내에서 어떤 애플리케이션이 사용하는 데이터인지 식별하여 수신지 컴퓨터에 도착한 데이터를 수신지 컴퓨터 내의 애플리케이션에 배분하는 역할을 합니다. 인터넷 계층이 컴퓨터(호스트) 간의 데이터 통신을, 전송 계층이 애플리케이션 간의 데이터 통신을 구현한다고 볼 수 있습니다. 인터넷 계층이 호스트를 식별하기 위해 IP 주소를 사용하는 것처럼, 전송 계층에서는 애플리케이션을 식별하기 위해 포트 번호를 사용합니다.

2.포트번호

2-1. 애플리케이션의 식별과 포트 번호

택배나 우편물 배송을 의뢰할 때 집주소와 함께 받는 사람의 이름을 적습니다. 집주소에 의해 택배나 우편물이 수신지인 집까지 배달되면 받는 사람의 이름을 보고 누구 앞으로 온 것인지를 판단합니다. 인터넷에서는 IP 주소가 집 주소, 포트 번호가 받는 사람의 이름과 같은 역할을 합니다. 한 집에 여러 사람이 거주하는 것처럼 한 컴퓨터에서 여러 가지 애플리케이션이 동작하기 때문에 애플리케이션을 식별하는 번호가 필요한 것입니다.


인터넷 계층에서 IP 주소를 보고 수신지 컴퓨터로 데이터를 전송하면 전송 계층에서 포트 번호를 보고 어떤 애플리케이션이 사용할 데이터인지 식별합니다. 한마디로 포트 번호(Port Number)는 동일한 컴퓨터 안에서 통신을 하고 있는 애플리케이션을 식별할 때 사용하는 애플리케이션의 주소라고 할 수 있습니다.

2-2. 포트를 이용한 다중 연결

웹 브라우저로 여러 웹 페이지를 보거나, 동시에 여러 애플리케이션으로 인터넷에 접속하고 있을 때 서로 다른 데이터가 오고 가는 상황에서도 애플리케이션끼리 혼선이 생기지 않는 것은 전송 계층이 포트를 여러 개 사용하여 각각 따로 통신을 하기 때문입니다.

전송 계층이 포트 번호로 애플리케이션을 식별하여 데이터를 각 애플리케이션에 배분한다고 했습니다. 이를 달리 표현하면 포트는 데이터가 전송 계층과 응용 계층 사이를 이동할 수 있는 출입구 역할을 하고, 각 출입구를 구별하기 위해 번호를 붙인 것이 포트 번호라 할 수 있습니다. 예를 들어, 웹 브라우저라는 애플리케이션은 포트 번호가 80번인 통로로만 데이터를 보낼 수 있고, FTP 애플리케이션은 포트 번호가 21번인 통로로만 데이터를 보낼 수 있는 것입니다.


따라서 응용 계층에서 웹 브라우저가 보내는 데이터를 전송 계층의 80번 포트로 전송해야만 응용 계층과 전송 계층 간에 통신이 가능한 것입니다. 이처럼 응용 계층과 전송 계층이 같은 포트를 사용해야 통신이 가능하기 때문에 전송 계층에서는 포트를 여러 개 사용하여 응용 계층의 애플리케이션들과 각각 따로 통신을 하며 데이터를 전송하는 것입니다. 즉, 포트 번호를 사용하여 여러 애플리케이션이 동시에 통신하는 다중 연결이 이루어집니다.

2-3. 포트 번호를 이용한 웹 서버와 웹 브라우저의 통신

  1. 웹서비스를 제공하는 웹서버 애플리케이션은 공인 ip주소를 공개하고, 포트번호 80번을 사용합니다.
  2. 따라서 웹서버 애플리케이션에 접속하기 위해서는 웹브라우저에 ip번호 또는 도메인과 함께 포트번호를 입력해야 합니다.
    ( 만약에 포트번호를 입력하지 않으면 웹서버에 접속은 가능하지만 서버 내의 애플리케이션에 데이터가 전송되지 못한다.
    다만, 웹 브라우저를 사용하여 웹서버에 접속할때 ip 주소나 도메인에 자동으로 포트번호 80번이 입력되기 때문에 생략 가능하지만 만약 포트번호가 80번이 아닌 웹피에지에 접속하려면 웹 브라우저에 주소를 입력할때 포트번호를 입력해야 한다. )
  3. 웹브라우저가 웹서버의 ip주소와 포트번호로 웹페이지를 제공하는 웹서버 애플리케이션에 접속할 때 웹브라우저가 설치된 운영체제에서 사용할 임의의 포트를 할당한다.
  4. 웹서버 애플리케이이션은 이 포트번호를 통해 웹브라우저와 통신하며 , 웹페이지를 전송하게 된다.

참고
https://better-together.tistory.com/134

profile
개발자꿈나무

0개의 댓글