[GCP] Cloud 개요: 포트, 게이트웨이, 패킷, 라우터

서경·2024년 9월 11일
post-thumbnail

포트 (port)

  • 네트워크 상의 호스트를 식별 하였으면 해당 호스트의 통신 대상 프로그램을 식별 해야한다.

  • 네트워크에 연결된 호스트의 통신 대상 프로그램(프로세스, Process)을 식별 하는 번호를 포트 번호(port number)라 한다.

  • 포트 번호는 2 byte 크기, 0 ~ 65525번까지 사용

  • 0 ~ 1023번까지는 미리 예약되어 있다. 예약 번호에 연결된 프로그램(프로세스)은 제공되는 기능이 정해져 있다.

  • 1024 ~ 49999번 까지는 예비 번호로 사용 (주로 기업용 서비스)

  • 50000번 이상의 포트 번호를 임의로 정의하여 사용할 수 있다.

  • 하나의 포트 번호에는 하나의 프로그램만 연결되어 있어야 한다.
    중복 연결이 불가하여 두 개의 프로세스에 같은 포트 번호로 연결하는 건 불가능하다.


IP Address로 컴퓨터를 식별하고, Port 번호로 프로그램을 식별할 수 있다.
음수가 아닌 양수만 사용한다.

1024번 부터 50000번까지 기업들이 web으로 공개할 때 많이 사용한다.
임의로 Port 번호를 지정하면 50000번 이상을 사용하는 것이 안전하다.
50000 안으로 사용이 가능하지만, 안전하게 사용하기 위해서는 50000 이상을 추천한다.






1. 예약된 포트 번호

1.1. 20번, 21번

FTP (File Transport Protocol)

1.2. 22번

SSH (Secure SHell)

1.3. 80번

HTTP (Hyper Text Transport Protocol, Web)

1.4. 443번

HTTPS (HTTP secure)


SHell로 클라우드를 통해 생성한가상 머신을 접속할 때 22번 Port 번호를 사용한다.
88번은 웹 서버 보안이 안 되어 있는 웹 서비스이고,
443번은 보안이 적용된 웹 서비스이다.
최근에는 보안 문제로 HTTPS 사용을 권장한다.

보통 통신을 하기 위해 상대방을 지정해야 한다.
통신 시 컴퓨터 식별을 위해 앞에 IP Address를 작성하고
컴퓨터 프로세스 식별을 위해 Port 번호를 작성한다.






2. IP Address와 포트 번호 사용 형식

2.1. 192.168.0.10:80

192.168.0.10번 호스트의 80번 포트에 연결된 프로그램과 통신한다는 의미






3. 참고

3.1. 포트 번호

https://ko.wikipedia.org/wiki/%ED%8F%AC%ED%8A%B8_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9)


위 사진은 소규모 네트워크 LEN으로 대규모 네트워크 WEN을 만들어 인터넷으로 연결한 것을 표현했다.
IP Address는 내 네트워크 안에서만 유일하면 되고, 인터넷에서는 중복될 수 있다.

반드시 네트워크망을 생성해야 인터넷이 가능하며 개인 PC가 단독으로 인터넷을 연결하는 건 허용되지 않는다.
기본적으로 네트워크를 생성하고 다른 네트워크와 연결해야 인터넷이 된다.

사설 네트워크 수는 정해져 있으며, 사설 네트워크를 인터넷으로 연결하면 인터넷으로 들어갈 수 있는 공인 IP가 할당된다.

송신하는 쪽이 192.168.10.23:1500번 포트 쓴다 가정하고
수신은 192.168.0.11:5000번 포트로 가정을 한다면,
192.168.0.11:5000번 포트가 수신쪽 호스트와 프로세스 정보가 된다.
패킷 생성 시 위와 같은 정보가 포함된다.









게이트 웨이 (Gateway)

Gateway는 우리 네트워크에서 외부로 나가는 통로라고 생각하면 된다.
Gateway가 설정이 되어있지 않다면, 외부로 나갈 수 없다.
기본적으로 외부로 나가거나 내부로 들어오려면 반드시 Gateway를 통해야 한다.



인터넷 게이트웨이 (Internet Gateway)

Internet Gateway는 인터넷에 연결되어 우리가 인터넷을 통해 데이터를 보내거나 받을 수 있다.



1. 네트워크 유형

  • 다른 종류의 네트워크와 연결하고자 할 때 사용

  • 서로 다른 네트워크상의 프로토콜을 적절히 변환해 주는 역할

  • 사설 네트워크를 인터넷에 연결할 경우 게이트웨이 사용

  • 통상 해당 IP Address 호스트 ID 1번 사용



1.1. 공용 네트워크

○ 인터넷에 연결된 네트워크

○ 공인 IP Address 필요



TIP!

1번 IP는 해당하는 네트워크의 Gateway로 설정되기 때문에 1번은 사용하면 안된다.



1.2. 사설 네트워크

○ 인터넷에 연결되지 않은 네트워크

○ 사설 IP Address를 이용하여 호스트 IP Address 부여






2. 참고

https://ko.wikipedia.org/wiki/%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4









패킷 (Packet)

  • 네트워크 상에서 호스트간 주고 받는 데이터 형식

  • 패킷에는 패킷번호와 데이터를 송신하는 호스트 IP address/port 번호와 수신하는 호스트의 IP address/port 번호가 포함 되어 있다.

  • 네트워크 데이터 전송 방식에 따른 구분






1. 회선 교환 방식

  • 1:1 통신 방식

  • 한 호스트가 네트워크를 독점적으로 사용하는 방식

  • 예로 아날로그 전화, 2G/3G 전화






2. 패킷 교환 방식

  • 데이터 전송을 패킷 단위로 전송하여 여러 호스트가 네트워크를 공유할 수 있는 방식

  • 하나의 데이터는 여러 패킷으로 나누어져서 네트워크를 통해 전송 되며 수신측에서 전송 받은 패킷을 맞추어서 사용

  • 현재 기본 네트워크 전송 방식






3. 패킷 전송 테스트 명령 - ping

ping <패킷 전송 테스트 IP address>



3.1. 구글 DNS에 패킷 전송 테스트

ping 8.8.8.8



3.2. 구글 DNS에 패킷 전송 테스트 (개수 지정)

ping -c [개수] 8.8.8.8



3.3. 로컬 호스트 패킷 전송 테스트

ping 127.0.0.1



TIP!

Packet 안에는 송신자 IP Address, 송신자 Port 번호, 수신자 IP Address, 수신자 Port 번호, 데이터까지 총 5개가 포함되어 있다.
패킷을 이용하여 상대방에게 전달하는데, 이때 패킷 번호가 중요하다.

서울 지하철 노선도 보면 A 지역이 B 지역으로 이동하는 경로가 하나만 있는 게 아니 듯이, 네트워크 연결에서도 경로가 하나만 존재하지 않다.

실제 경로가 굉장히 복잡하고 첫 번째 패킷과 두 번째 패킷 간 경로가 달라 패킷 도착 순서가 섞여 갈 수 있다.
따라서, 수신 측에서는 수신된 순서대로 패킷을 받는 것이 아니라,
패킷 번호를 확인하여 순서대로 패킷을 받으면 된다.









라우터 (router)

  • 인터넷에 연결된 호스트간 통신을 수행할 때 패킷을 전송할 경로를 탐색하고 실제 해당 경로를 이용하여 패킷 전송 역할

  • 라우터는 내부에 라우팅 테이블이라는 테이블에 경로 정보를 가지고 있다.

  • 원하는 호스트 까지의 경로를 탐색하고 실제 패킷을 해당 경로로 전송하는 역할



TIP!

패킷을 전송할 경로를 탐색하는 방법을 router라고 한다.

패킷을 전달하기 위해서는 수신처 IP Address를 찾아가는 경로를 알아내야 한다.
라우터는 또 다른 네트워크를 찾으며 라우터끼리 경로 탐색을 한다.

A라는 컴퓨터에서 B라는 네트워크 경로를 라우터를 통해서 경로 탐색을 하고
알아낸 경로를 통해 데이터를 보낸다.

하지만, 경로는 하나만 존재하지 않고 다양한 경로가 존재하기 때문에 패킷이 순서대로 전달되지 않는다.
그래서 패킷의 번호로 조립을 해야한다.






1. 참고

https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%84%B0

0개의 댓글