[Web] 네트워크 개념 및 관련 용어 정리, IP ,port 등

hyewon jeong·2023년 3월 4일
0

Network

목록 보기
1/1

📌 공인(Public) && 사설(Private) IP의 차이점

1. 공인 IP (Public IP)

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.

공인 IP는 전세계에서 유일한 IP 주소를 갖는다.

공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP 주소를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치할 필요가 있다.

2. 사설 IP (Private IP)

일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다. IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.

2.1. 사설IP 주소대역
사설IP 주소는 다음 3가지 주소대역으로 고정된다.

Class A : 10.0.0.0 ~ 10.255.255.255
Class B : 172.16.0.0 ~ 172.31.255.255
Class C : 192.168.0.0 ~ 192.168.255.255

3. 사설 IP와 공인 IP의 차이

공인 IP (Public IP) 사설 IP (Private IP)
할당 주체 ISP(인터넷 서비스 공급자) 라우터(공유기)
할당 대상 개인 또는 회사의 서버(라우터) 개인 또는 회사의 기기
고유성 인터넷 상에서 유일한 주소 하나의 네트워크 안에서 유일
공개 여부 내/외부 접근 가능. 외부 접근 불가능

❗ 사설 IP 주소만으로는 인터넷에 직접 연결할 수 없다. 라우터를 통해 1개의 공인(Public) IP만 할당하고, 라우터에 연결된 개인 PC는 사설(Private) IP를 각각 할당 받아 인터넷에 접속할 수 있게 된다.

아래의 그림을 보면 이해가 쉽다.

💻➡🌏 : 사설 IP를 할당받은 스마트폰 혹은 개인 PC가 데이터 패킷을 인터넷으로 전송하면, 라우터(공유기)가 해당 사설 IP를 공인 IP로 바꿔서 전송한다.

🌏➡💻 : 인터넷에서 오는 데이터 패킷의 목적지도 해당하는 사설 IP로 변경한 후 개인 스마트폰 혹은 PC에 전송한다.

라우터(router[a] 혹은 라우팅 기능을 갖는 공유기)는 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치다. 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전달한다. 이때 최적의 경로는 일반적으로는 가장 빠르게 통신이 가능한 경로이므로, 일반적으로는 최단 거리일 수 있지만, 돌아가는 경우라도 고속의 전송로를 통하여 전달이 될 수도 있다. 간단히 말해, 서로 다른 네트워크 간에 중계 역할을 해주는 장치다.

📌 Port (포트) vs IP or port80 and port8080

1. 포트(port)

포트(port)는 "논리적인 접속장소", 특히 인터넷 프로토콜인 TCP/IP를 사용할
때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하느 방법으로 사용된다.
네트워크 상에서 통신을 할 때 IP를 토대로 해당 서버가 있는 컴퓨터에 접근한다.

2. Ip

인터넷 주소는 IP 이다.
123.123.134.124 과 같은 32비트 숫자이다.
한개의 호스트, 즉 아이피를 가지고 있는 컴퓨터(또는 서버)에서 여러가지 인터넷 서비스를 할 수 있다.
대표적으로 인터넷웹 서비스 , 메일 서비스, DNS서비스 , FTP 서비스 등이 있다.
한개의 호스트로 오는 패킷이 어떤 서비스에 대한 요청인지 파악하기 위해서 포트번호라는 것을 사용한다.
(포트는 프로세스 식별자라고도 한다. 4계층에서 해당 포트를 이용해 목적지로 전송한다. )

IP와 PORT의 차이

  • IP : 컴퓨터를 찾을 때 필요한 주소
  • Port : 그 컴퓨터 안에서 프로그램을 찾기 위한 수단.

✅ 핵심
그런데 대부분의 경우 하나의 컴퓨터에는 여러 개의 서버가 실행될 수 있다.
컴퓨터에 여러 개의 서버가 실행되고 있다면, 어느 서버에 접속해야 하는지 컴퓨터에게 알려줘야 한다.
이때 사용되는 것이 포트 번호

가령 인터넷 웹 서비스, 즉 HTTP 서버는 80 포트를 이용한다.
메일 서비스, 즉 SMTP 서버는 25번을 사용한다.
DNS 서버는 52번 , FTP는 21번(passive port는 별도)을 사용한다.

port 443

HTTPS는 암호화되지 않은 HTTP 서버가 아닌 웹 서버와 암호화 된 연결을 설정한다.
HTTP와 HTTPS는 서로 다른 프로토콜이므로 두 개의 서로 다른 포트를 사용한다.
HTTP는 포트 80에서 사용할 수 있고 HTTPS는 포트 443에서 사용할 수 있다.
"https : //"로 시작하는 웹 사이트에 연결할 때마다 또는 자물쇠 아이콘이 표시 될 때마다 포트 443을 통해 해당 웹 서버에 연결된다.

한개의 호스트에서 두개 이상의 웹 사이트를 운영하고 싶을 때에 두가지 방법이 있다.

1. domain 별로 운영

www.dream.com 과 dream.security.com 또는 아예 다른 도메인 www.dream123.com 등으로 나누어서 관리를 하자.
한개의 웹 서버(아파치 , IIS)에서 이렇게 도메일 별로 root directory 등 설정을 달리하여 따로 관리할 수 있는 기능이 있다.
80포트를 이용한 한개의 서비스이지만, 그 서비스 내에서 도메인에 따라 다르게 동작하도록 하는 것이다.

2. 다른 포트로 서비스 이용하기

이 방법은 성격이 다른 서비스를 운영하고 싶을 때에 좋다.
80포트를 사용하는 웹서버 말고, 또 하나의 웹서버를 설치한다.
웹사이트의 특성에 따라 서버의 종류와 특성이 다를 수 있기 때문에 아예 서비스하는 데몬 자체가 달라야할 필요가 있을때이다.

다른 포트로 서비스를 할 때에 주로 쓰는 번호가 8080 이다.
8080 포트는 IANA 에서 HTTP Alternate(see port 80)라고 정의하고 있다.

대부분의 브라우저에서는 크롬이나 인터넷 익스플로러 등 모두가 웹 서비스 포트는 80 이라고 생각하고 동작한다.
만약 8080 포트로 서비스하는 웹 서버에 접속하려면 도메인 끝에 콜로(:)와 함께 포트번호도 명시해야 한다.

http://www.dream.com:8080 이런식이다.
http://www.dream.com 으로 검색하면 웹 브라우저는 80 포트로 접속한다.(80은 생략 가능하기 때문)

📌 HTTP Flow. 브라우저에 www.naver.com을 치면 어떤 일이 일어나나요?

  1. 웹 브라우저에 www.naver.com 을 입력
  2. 사용자가 입력한 url 주소 중 도메인네임 부분을 DNS서버에 검색하고, DNS서버에서 도메인의 해당 ip주소를 찾아온다.
  3. HTTP 프로토콜을 사용해서 페이지 url정보와 찾은 ip 주소를 포함한 HTTP 요청 메세지를 생성하고, 생성된 HTTP요청메세지는 TCP프로토콜을 이용해서 인터넷망을 통해 해당 ip주소의 컴퓨터로 전송된다.
  4. HTTP 요청메세지를 받은 컴퓨터(서버)는 웹페이지 URL 정보 중 path와 HTTP method에 맞는 액션을 취한다.
    (여기서는 네이버 페이지를 띄우기 위해 필요한 html 등의 리소스를 찾는다. )
  5. 생성된 응답 데이터는 또 다시 HTTP프로토콜 사용하여 HTTP응답메세지로 만들어지고 TCP프로토콜을 사용하여 인터넷망을 통해 요청했던 컴퓨터(클라이언트) 전송한다.
  6. 도착한 HTTP 응답메세지는 웹브라우저에 브라우저의 렌더링 과정을 거쳐 화면에 출력되어 사용자가 볼 수 있게 된다.

📌 보안 설정의 인바운드규칙과 아웃바운드 규칙

**인바운드 규칙**은

 외부네트워크에서 내부 네트워크로 데이터 패킷을 보내는 것을 의미 함 

예 ) 전화를 받는 고객센터 

보안상의 유지를 위해 포트를 다열어 주지 않고, 필요한 포트만 열어준다 .

- SSH : 다른서버 이용시 필요한 포트 22
- HTTP : 인터넷 웹서비스 포트 80
- HTTPS : 보안기능을 추가한 HTTP 443
- 사용자지정 TCP : 기존 웹서버와 다른 성격의 웹 서비스를 제공하기 위한 새로운 서버 사용시 주로 쓰는 번호는 8080

**아웃바운드 규칙**은 

내부네트워크에서 외부네트워크로 데이터패킷을 보내는 것을 의미 함 

웹서비스를 원활한 활용을 위해 보통의 경우 모든서버에 대해 열어 둔다 .

하지만 보안상의 문제로 제한할 경우도 있다.

참고
https://velog.io/@attosisss_/%ED%8F%AC%ED%8A%B8-80-vs-8080

profile
개발자꿈나무

0개의 댓글

관련 채용 정보