본 게시글은 생활코딩 Youtube를 바탕으로
네트워크를 이해하기 위한 가장 기초적인 내용을 정리한 글
라우터(공유기)
라우터 (Router, 공유기) : 최적의 경로를 찾아 데이터 패킷을 전송하는 네트워크 장치
인터넷을 사용하려면 통신사(ISP)와 계약을 하고 집에 있는 LAN선을 컴퓨터에 꽂으면 됨
하지만 컴퓨터가 여러대이고, 스마트폰에서도 WIFI를 사용하고 싶은데
각각의 장치마다 따로 계약을 하기는 비쌈
그래서 통신사와는 하나의 회선을 계약하고, '공유기'를 사용
WAN, LAN
WAN (Wide Area Network, 광역 네트워크) : 광범위한 지역을 단위로 구성하는 네트워크; 광역 통신망
LAN (Local Area Network, 근거리 네트워크) : 가까운 지역을 단위로 구성하는 네트워크; 근거리 통신망
라우터(공유기) 뒤쪽에 보면 따로 떨어져있는 포트 하나에 WAN이라고 적혀있는데
그 포트에 통신사와 계약해서 받은 선을 WAN에 꽂음
그리고 나머지 포트와 다른 장치들(컴퓨터나 노트북 등)을 유선으로 연결하고
무선으로 와이파이를 이용해 스마트폰과 연결하면 인터넷을 사용할 수 있음
이렇게 하면
라우터(공유기)가 공인 IP를 가지고 있는 것이고
라우터(공유기)가 다른 장치들에게 사설 IP를 부여하는 것
https://kairosial.tistory.com/10
이더넷
이더넷 (Ethernet) : 전 세계에서 폭넓게 이용되고 있는 네트워크 규격;
유선 네트워크의 경우 대부분 이더넷을 사용한다고 볼 수 있음
이더넷은 인터넷을 이용하기 위한 수단 중 하나
유선 방식인 이더넷 말고도
무선 방식인 와이파이나 LTE 등으로도
인터넷을 이용할 수 있음
이더넷은 각 기기들의 고유의 주소인 MAC 주소를 가지고 데이터를 주고받는 방식
MAC 주소
MAC 주소 (Media Access Control Address) : 네트워크 하드웨어를 식별하는 주소; 물리적인 주소;
기기마다 하나씩 할당, 중복X, 유일한 값
MAC 주소는 이더넷 망(로컬) 안에서만 사용하고
라우터를 지나 외부로 나가면 IP를 이용하여 통신
NAT
NAT (Network Address Translation, 네트워크 주소 변환) :
여러 정보(포트 숫자, IP 주소 등)를 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
내 컴퓨터가 192.168.0.4이고
네이버에 접속을 하려고 한다면
어떻게 동작할까?
일단 네이버를 띄워달라는 요청을
게이트웨이 주소(라우터 주소)인 192.168.0.1로 보냄
네이버는 내부 네트워크(로컬 네트워크) 상에 있는게 아니기 때문에
이 요청을 외부로 보내야 함
외부로 보내기 전에 공유기는 두 가지 일을 함
1. 이 요청은 192.168.0.4가 보낸 요청이라고 저장 (정보를 기록) Why? 응답을 돌려줘야 하기에
2. 192.168.0.4 → 59.6.66.238 로 변경 (데이터를 변경) Why? 192.168.0.4는 외부와 통신 불가
이 변경된 데이터를 네이버 서버(***.***.***.***)로 보내면
네이버에서 응답을 공유기인 59.6.66.238로 보냄
공유기는 처음에 요청을 보낸 곳이 192.168.0.4인 정보를 기록해놨기 때문에
네이버에서 온 응답을 최종적으로 내 컴퓨터인 192.168.0.4로 보냄
위의 프로세스는 192.168.0.4를 클라이언트(Client)로 사용했을 때이고
반대로 192.168.0.4를 서버(Server)로 사용할 때는 어떻게 할까?
'포트 포워딩' 이라는 개념이 필요한데
이 전에 '포트' 의 개념부터 알아보자
포트
포트 (Port) : 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위
하나의 컴퓨터에는 여러개의 서버가 있을 수 있음
그 서버들을 식별할 때 사용하는 것이 포트
0번에서 65535번까지 포트가 있는데
0번 ~ 1023번은 Well-known port
대표적으로
20번 : FTP(data)
21번 : FTP(control)
22번 : SSH
23번 : 텔넷
53번 : DNS
80번 : HTTP
만약 Web server를 하나 더 깔고 싶다면
80번 포트는 이미 사용중이기 때문에
이와 비슷한 8080번 포트를 사용하는 것이 관례
80번 포트와 8080번 포트에 Web server가 깔려있는 경우
웹에서 접속을 할 때 어떻게 할까?
비밀은 URL에
http://opentutorials.org (HTTP의 포트 번호인 80은 생략)
http://opentutorials.org:8080 (새로 만든 웹서버의 포트번호)
URL
URL (Uniform Resource Locator 또는 web address, 파일식별자) :
네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약 (웹에서는 파일을 자원 또는 리소스라고 부름);
방대한 웹에서 리소스를 구별하는 식별자
URL의 표현 방법
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
포트의 개념을 알았으니
2. NAT에서 192.168.0.4를 클라이언트가 아닌 서버로 사용하려면 어떻게 해야될까?
192.168.0.4에 웹서버를 만들고 사람들이 접근할 수 있도록 하고 싶음
192.168.0.4를 서버로 사용하겠다는 뜻
그러면 192.168.0.4를 사람들에게 알려주면 사람들이 들어올 수 있을까?
192.168.0.4는 사설 IP, 내부 IP이기 때문에 사람들이 접근할 수 없음
사설 IP인 192.168.0.4 대신, 공인 IP인 59.6.66.238을 알려주고
공유기가 192.168.0.4 쪽으로 연결시켜주면 된다!
포트를 이용해서
포트 포워딩
포트 포워딩 (Port Forwarding) : 외부에서 내부 네트워크의 사설 IP에 접근하기 위한 방법을 공유기에게 알려주는 것
라우터(공유기) 59.6.66.238의 8081번 포트로 접속 요청이 들어오면
내부 네트워크의 사설 IP 192.168.0.4의 80번 포트로 전달
결국 라우터(공유기)가 중간에서 안내자, 이정표 역할을 하도록 하는 것이 포트 포워딩
DHCP
DHCP (Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜) :
호스트 IP 구성 관리를 단순화하는 IP 표준;
DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 DHCP 사용 클라이언트에게 동적으로 할당
우리가 인터넷을 사용하기 위해
기기에 LAN선을 꽂든, 와이파이를 연결하든 하면
원래는 기본적인 세팅을 해줘야 하지만
이를 DHCP가 자동으로 설정해줌
인터넷 프로토콜 버전 4(TCP/IPv4) 속성에서
기본값으로 '자동으로 IP 주소 받기' 와 '자동으로 DNS 서버 주소 받기' 가 선택되어 있을 것
DHCP가 없었다면 IP 주소, 서브넷 마스크, 기본 게이트웨이 등을 수동으로 설정해줘야 했음
수동 설정 관련
https://kairosial.tistory.com/12
위 그림에서 8c:85:90:0c:e3:cc는
기기마다 하나씩 할당되어 있는 물리적인 주소인 MAC 주소
공유기는 DHCP Server를 내장하고 있고
인터넷을 사용하는 기기들(컴퓨터, 노트북, 스마트폰)은 DHCP Client를 내장하고 있음
서로 연결이 되면 MAC 주소를 이용해서
DHCP가 설정을 자동으로 진행
📝 참고
https://www.opentutorials.org/course/3265/20033
https://www.opentutorials.org/course/3265/20035
https://www.opentutorials.org/course/3265/20037
https://www.opentutorials.org/course/3265/20038
https://www.opentutorials.org/course/3265/20039
https://www.youtube.com/watch?v=GK3h936Co-k
https://storytown.tistory.com/14
'Programming > Network' 카테고리의 다른 글
IP 주소, 서브넷 마스크, 게이트웨이 (0) | 2021.11.12 |
---|---|
IP 주소, 공인 IP, 사설 IP, 고정 IP, 유동 IP (0) | 2021.11.12 |
[미해결] VS Code Remote-SSH (0) | 2021.11.11 |