너무너무 멋져 눈이눈이 부셔

네트워크 전송 계층이란 본문

천재적인 CS/네트워크

네트워크 전송 계층이란

강하다이녀석 2024. 9. 23. 21:19

신뢰할 수 있는 통신과, 연결형 통신을 가능하게 하여 IP의 한계(신뢰x, 비연결형) 극복.

포트 번호를 통해 응용 계층 애플리케이션 프로세스들을 식별

즉, IP의 한계를 극복하고 응용계층과 연결다리 역할을 한다.

신뢰할 수 없는 통신과 비연결형 통신

아래 계층인 네트워크 통신의 핵심 프로토콜은 IP이다.

IP는 비신뢰성 프로토콜이자, 비연결형 프로토콜인데 이는 IP를 통한 패킷의 전달은 신뢰성이 없고 연결을 수립하는 과정이 없는 통신이라는 뜻이다.

신뢰할 수 없는 통신

    • IP 프로토콜은, 패킷이 수신지까지 전송되었다는 보장을 하지 않는다. -> 데이터가 손상된 패킷, 중복된 패킷이 전송되어도 확인x, 재전송x, 순서 보장 x.

(최선형 전달이라고도 함)

비연결형 통신

  • 호스트 간 사전 연결 수립 작업이 없다.

왜 이렇게 통신하나요?

답 : 성능

  • 더 많은 시간, 대역폭, 부하가 요구되므로 성능상 악영향.
  • 금융 서비스의 경우 신뢰성이 중요하지만, 실시간 영상 통화같은 경우 어느정도의 패킷 손실은 괜찮은 경우도 있다.

 

IP의 한계를 보완하는 전송계층

 

연결형 통신

  • 대표적으로 TCP 프로토콜이 있음.
  • TCP 프로토콜은 미리 사전 연결을 수립하고, 송수신 동안에는 연결을 유지하고, 송수신이 끝나면 연결을 종료

신뢰성있는 통신

  • TCP는 패킷이 수신지까지 올바른 순서대로 전달되는 것을 보장함

비연결형이 필요하면요?

  • UDP가 있음. 신뢰할 수 없는 통신, 비연결형 통신을 가능하게 하는 전송 계층의 프로토콜. TCP보다 빠르다.

포트

내가 만약에 네트워크 외부에서 어떠한 사진을 받았다고 하자. 사진 패킷들이 내 컴퓨터에 도달하면 수신이 끝난 것이 아니고, 특정 애플리케이션 프로세스까지 전달되어야 한다.(게임, 웹브라우저 등) 이는 전송 시에도 마찬가지이다.
즉, 호스트 주소가 끝이 아니고, 패킷의 최종 수신 대상은 특정 애플리케이션 프로세스이다.
(여기서 프로세스는 실행 중인 프로그램을 말한다.)

  • 이떄, 특정 애플리케이션을 식별할 수 있는 정보가 포트이다.

포트의 분류

패킷 내 수신지 포트와 송신지 포트를 통해 송수신지 호스트의 애플리케이션을 식별할 수 있다.

  • TCP/UDP 모두 송수신지 포트번호를 포함하고 있다.
  • 포트 번호는 16비트로 표현 가능하고, 사용 가능한 포트 수는 2^16이다. 
    포트 종류 번호
    잘 알려진 포트 0~1023
    등록된 포트 1024~49151
    동적 포트 49152~65535
  • 잘 알려진 포트 : 시스템 포트 (범용적으로 사용되는 애플리케이션 프로토콜이 사용)

잘 알려진 포트

  • 등록된 포트 : 흔히 사용되는 애플리케이션 프로토콜에 할당. 일반적으로 3306은 MysQL, 6379는 Redis....
  • 동적 포트(사설포트, 임시포트) : 자유롭게 사용.

-서버에서 동작하는 프로그램은 일반적으로 잘 알려진 포트, 등록된 포트로 동작한다.,
-하지만, 클라이언트 프로그램은 동적 포트 중에서 임의로 할당되는 경우가 많다

일반적으로
192.168.0.14(IP주소):8080(포트번호) 형식으로 사용

포트 기반 NAT

NAT : IP주소 변환 기술.
네트워크 내부에서 사용되는 사설 IP주소와 네트워크 외부에서 사용되는 공인 IP주소를 변환.

 

 

NAT 변환 테이블


192.168.0.5 라는 사설 IP가 -> 네트워크 외부 호스트에게 패킷읋 전송할 때 -> NAT 라우터를 거쳐 네트워크 외부로 나가면 패킷의 송신지 주소는 공인 IP주소가 된다.(반대로 수신할때는 공인 IP가 사설IP가 된다.)

  • 하지만 이 방법은 문제가 있다. 바로 사설, 공인IP는 서로 일대일 대응이라는 것이다 -> 사설 IP만큼 공인IP가 필요하다.
  • 대부분의 NAT 기술은 다수의 사설 IP주소를 그보다 적은 수의 공인 IP로 변환

NAPT

여러 사설IP를 어떻게 하나의 공인 IP로 변환해서 고유한 주소에 대응하나요?
포트를 활용하여 하나의 공인 IP주소를 여러 사설 IP주소가 공유하도록 하는 것.

image


네트워크 외부 IP주소가 같아도, 포트 번호가 다르면, 네트워크 내부의 호스트를 특정가능.

포트 포워딩

네트워크 내 특정 호스트에 IP주소와 포트 번호를 미리 할당하고 해당 IP주소:포트번호로써 해당 호스트에게 패킷을 전달하는 기능.

공인 IP주소를 사설 IP주소들이 함께 공유하고 있을 때, 어떤 IP주소를 수신지로 삼을 지 모르는 경우가 있다. 이때, 특정 IP주소와 포트 번호 쌍을 특정 호스트에게 할당해서, 외부 호스트에게 해당 정보를 알려주는 것이다.
  • 주로 네트워크 외부에서 내부로 통신할 때, 접속 정보를 공개하기 위해 사용한다.
  • 공인IP주소:외부접속포트에 접속했을 때 어떤 사설IP주소:내부포트로 전달할 지 설정 가능하다.

 

IMCP
IP특성을 보완하기 위한 네트워크 계층의 프로토콜
IP 패킷의 전송 과정에 대한 피드백 메시지를 얻기 위해 사용. 신뢰성을 보장해주지는 않지만, 도와줌.

  1. 전송과정에서 발생한 문제 상황 오류 보고
  2. 네트워크 진단 정보. 네트워크 진단 정보

면접 키워드

전송 계층은?
포트란?
NAT이란?

 

'천재적인 CS > 네트워크' 카테고리의 다른 글

TCP의 오류 제어, 흐름 제어, 혼잡 제어  (0) 2024.09.25
네트워크 TCP와 UDP  (1) 2024.09.23
네트워크 HTTP, HTTPS  (1) 2023.12.16
CS 네트워크 기기  (0) 2023.12.14
네트워크 분류  (0) 2023.11.29