공유기를 사용하는 환경에서 웹서버를 운영하기 위해 필요한 지식들에 대한 강의 생활코딩-Home Server 를 학습했다.
WEB에 대한 배경지식이 많지 않은 상태에서 본 강의를 통해 배운 네트워크 관련 핵심 개념들 정리
한국인이라면 친숙하디 친숙할 공유기 (iptime.. 한 번쯤은 들어봤잖아요?)
와이파이 연결해주는 기계 정도로만 알고 있었지만, 정확히 하는 일은 바로 LAN과 WAN의 중개자 역할!
무슨소리인지 모르겠다면 아래의 개념을 차례차례 습득할 것.
특정 공간에 형성되는 지역 네트워크
한 공유기에 스마트폰, 데스크탑, 노트북이 연결되어 있다면 이 내부 네트워크가 지역 네트워크이다.
LAN 내부에서만 유효한 네트워크인지라, 인터넷을 사용하고 싶다면 공유기를 통해 유/무선으로 접속해야한다.
: 전 세계의 장치들이 서로 통신하기 위한 광역 네트워크 (인터넷이라고 생각하면 쉽다.)
인터넷 상으로 연결된 컴퓨터들 사이에서 서로 정보를 주고받기 위해 필요한 주소. 전화번호와 비슷한 개념이라고 생각하면 쉽다.
(편의상 아래부터 IP주소라고 표기)
WAN에서 공유기로 접속할 수 있게 해주는 IP 주소
LAN안에서 사용할 수 있는 IP주소
예를 들어 위 그림에서 스마트폰, 데스크탑, 노트북이 가지고 있는 각각의 IP주소(192.168.0.x)를 뜻한다.
공유기 자체에 부여되는 private IP address
공유기에 연결된 각 장치들이 외부 네트워크에 있는 다른 장치들과 통신할 수 있도록 해주는 기술
예를 들어 스마트폰으로 Velog에 접속하고자 한다면,
1. 🔵 스마트폰 : 공유기에게 Velog에 접속하고 싶은 사실을 알린다.
2. ⚫ 공유기 : 스마트폰의 사설 IP + Velog 접속 요청을 공유기에 기록한다.
또 NAT 기술을 통해 스마트폰의 사설 IP를 공인 IP로 변환한다.
3. 🟢 Velog : 공유기에게 요청에 대해 응답한다.
4. ⚫ 공유기 : 응답을 확인하고, 저장해두었던 사설IP를 통해 스마트폰에게 전달한다.
하나의 컴퓨터에 여러 개의 웹 서버를 설치할 수 있도록 해주는, 항구와 같은 역할
포트는 총 65,536여개까지 명시할 수 있는데, 이 중 0부터 1023까지는 이미 상용화된 프로토콜을 위해 예약된 Well-known 포트이다. (우리가 함부로 사용할 수 없음)
ex. HTTP 프로토콜의 경우에는 80번 포트를 사용하는 것으로 약속이 되어 있다. 따라서 브라우저를 통해 웹 서버에 접속할 때는 기본적으로 80번 포트에 접속하는 중인 것.
외부에서 공유기로 들어온 포트 번호가 무엇인지에 따라서 내부 네트워크에 있는 특정한 머신(ex. 스마트폰, 컴퓨터 등) 의 특정 포트로 요청을 포워딩 하는 기능이다. 이 때 공유기는 일종의 안내자 역할을 한다.
ex. 외부 네트워크의 기기가 공유기에 public IP로 접속하면, 공유기가 내부 네트워크 IP:80 (80번 포트)로 보내버리도록 설정하는 것.
ISP(통신사)가 가입자들에게 IP를 임대하면서 (돌려막기 하면서) 제공하는 것
단점 : 웹서버를 깔아놨거나 하면 Client가 이전에 사용하던 ip주소로 접속할 수도 있다.
컴퓨터에 IP를 고정시켜서 독점적으로 사용하는 것
단점 : ISP에 별도 비용을 주어야 한다.
인터넷에 연결된 각 컴퓨터들의 설정을 자동으로 바꿔주는 프로토콜이라는 뜻인데, 공유기가 각 장치들에게 사설 IP를 부여하는 원리라고 생각하면 된다.
공유기에는 보통 DHCP Server 프로그램이 내장되어 있고,
인터넷을 사용하는 기계에는 DHCP Client 프로그램이 내장되어 있다.
⬜ DHCP Client : 제 MAC Address는 ~인데요, IP가 없어요!
🟦 DHCP Server : 음 여기있습니다. XXX.XXX.X.X로 쓰세요!
⬜ DHCP Client : 네, 이걸로 쓰겠습니다.
🟦 DHCP Server : (내부 기록완료) 네, 임대시간은 ~시간입니다!
cf) MAC Address / Physical Address : 통신 부품의 식별자
위 메커니즘으로 자동으로 IP가 부여된다.
(나는 대화체로 정리해야 쏙쏙 이해가 잘된다..😏)
알고리즘과 다른 강의를 통해 Javascipt 학습에 좀 더 집중했었는데,
Web 관련 지식도 놓치지않고 꾸준히 살펴봐야겠다. 아주 조금이나마 시야가 넓어진 느낌!