관리 메뉴

사과하는 제라스

[CS 지식 공부] 공유기의 원리(feat. NAT(Network Address Translation)) 본문

CS 지식 공부

[CS 지식 공부] 공유기의 원리(feat. NAT(Network Address Translation))

Xerath(제라스) 2024. 2. 20. 15:22

목차

    728x90
    반응형

    서론

    안녕하세요~ 좋은 공유기를 사고싶은 개발자 제라스입니다~!👋🏻🤖👋🏻

    여러분은 언제 처음 공유기를 접하게 되셨나용??

    저는 중1 때 처음으로 스마트폰을 접했는데 그때 산게 갤럭시 플레이어입니다 ㅎㅎ

    갤럭시 플레이어 YB-GB1

    지금보니 정말 옛날 기기 같은데 실제로 14년 전 제품이네요...!!(혹시 나도 Old Boy...?)

    이때 저는 처음으로 와이파이란 걸 알게 되고 어느 곳이든 와이파이를 연결하려고 애를 썼던 기억이 나네요.

    근데 집에서 부모님께서 카톡이나 게임을 많이 할까봐 일부러 공유기를 안놔주셨던...ㅠㅠㅠㅠㅠ

     

    그때부터였어요. 공유기에 집착하기 시작한게 ㅋㅋㅋㅋㅋㅋㅋ

    근데 이 공유기가 어떤 원리인지도 모르고 왜 있는지도 모르고 마냥 데이터 무료 생성기 정도로만 생각하고 있었죠.

     

    오늘은 한번 이 공유기에 대해 알아보면서 그 원리를 살펴보겠습니다.

    그럼 시작해봅시다~~💨💨

    공유기란?

    공유기는 여러 대의 컴퓨터가 하나의 인터넷 라인을 공유해서 동시에 인터넷 접근이 가능하게 하는 네트워크 기기입니다.

    사실 공유기는 라우터이기도 해요! 우리나라에선 공유기라고 해서 뭔가 Sharer 이런 느낌?이잖아요?

    근데 외국에서는 이걸 SOHO Router라고 부른다고 합니다.

    즉, 라우터의 소형 버젼인거죠!

    공유기의 원리와 역할은 뭔데?

    공유기는 WAN(Wide Area Network, 광대역 통신망), 즉, 다른 인터넷들과의 통신망과 LAN(Local Area Network, 근거리 통신망), 즉, 작은 지역에서 서로 연결된 여러 통신 기기들 간의 통신망을 연결하는 기기입니다.

     

    다음 그림을 보시면 대충 위치를 이해하실 수 있습니다.

    공유기와 연결된 장치들 형태

    그럼 공유기의 역할을 한번 살펴볼게요.

    우리는 일단 인터넷에서 나에게 부여하는 유일한 주소인 공인 IP(public IP)를 부여받습니다.

    근데 이건 되게 제한적이죠? 전세계에 몇 억대의 통신기기가 있을테니까요!

    그럼 얘네들한테 어떻게 일일히 다 부여하냐?

     

    이때 등장하는 기술! NAT(Network Address Translation)입니다.

     

    정해진 하나의 공인 IP가 공유기로 들어오면 그걸 공유기는 사설 IP(private IP) 여러개로 나눠요!

    이때 사설 IP는 192.168.x.x로 하는게 국룰입니다.(그 외에도 172.x.x.x, 10.x.x.x 등도 있음.) 그 중 공유기는 192.168.0.1을 스스로 갖고 나머지를 나눠줍니다.

    이러면 공유기에 연결된 스마트폰, 노트북, 데스크톱 등등이 이렇게 부여받는 사설 IP 중 하나씩을 가집니다.

     

    자 이때 만약 공유기에 연결되어 있는 스마트폰에서 자기 공유기랑 연결된 기기들이 아닌 다른 외부 기기들과 통신을 하려고 합니다.

    근데 이 스마트폰은 사설 IP를 갖고 있잖아요? 즉 다른 애들은 모른단 말이에요.

    예를 들면, 집에서 부모님은 저를 뽀동이라고 부르시는데 학교수업에서 제가 저를 뽀동이라고 설명하면서 얘기하면 못 알아듣는 꼴과 같습니다.

     

    그래서 이때 공유기는 IP 패킷의 TCP/UDP 포트 번호와 소스, 목적지의 IP 주소 등을 송신하면서 기록해 두고 자신의 공인 IP를 보내줍니다.

    즉, 어떤 데이터 통신 요청이 스마트폰 A에서 왔으면 그 스마트폰 A의 사설 IP와 그에 할당된 포트번호를 연결지어서 테이블에 써두고 외부 망에 보낼 땐 공인IP와 포트번호를 함께 패킷에 담아 보내주는 겁니다.

     

    그러면 외부망에선 작업 후 결과물을 공유기에 포트번호가 담긴 패킷으로 보내줄 거고 그것을 공유기는 읽고는 테이블에서 포트번호를 통해 매칭해서 어떤 사설IP를 가진 스마트폰과 연결되었는지 알 수 있죠.

    출처: https://blog.voidmainvoid.net/319

    위 그림을 가지고 설명하자면...

    외부 망과 통신하기 위해 NAT를 통해 사설IP(10.0.0.1)를 공인IP(150.150.0.1)로 변경을 한 후 데이터 요청을 전송하고 그 결과물을 받아서 공인 IP(150.150.0.1)를 사설 IP(10.0.0.1)로 바꿉니다. 이때 NAT 혹은 NAPT(얘는 간단히 설명하면 NAT에서 조금 더 보완된 형태라고 보시면 됩니다.) 테이블을 참조해서 바꾸는 겁니다. 그래야 정확한 사설 IP로 접근할 수 있죠.

    그럼 공유기와 라우터의 차이는?

    아까 제가 공유기는 라우터의 소형 버젼이라고 했죠?

    실제로 공유기는 라우터에 있는 수많은 기능들 중에서 NAT 기능을 쓱 빼와서 만들었습니다.

     

    그리고 또 다른 큰 차이점으로는 통신 용량 차이가 있어요!

    라우터는 한번에 큰 용량을 통신할 수 있지만 공유기에서는 그렇게 하는 순간 집안 전체의 통신이 마비가 될 겁니다.

     

    비유하자면, 우리가 2차선 도로를 달리는데 엄청 커다란 화물차가 두 차선을 모두 차지하고서 달리고 있으니 뒤에 있는 차량들은 막히는 그런 모습과 비슷한 거죠.

     

    '그러면 모두 라우터를 달면 되지 않냐...?'라고 생각하실 수 있는데

    비싸요...그냥 개비싸요. 그래서 보통 서버실이나 사용 범위가 좀 큰 곳, 뭐 회사라든지...회사라든지...회사라든지 그런 곳에서 사용을 합니다.

    마무리

    이렇듯 공유기는 꽤나 우리 주변에서 접하기 쉬운 기기입니다.

    하지만 그만큼 보안적인 부분도 중요하고 알아야 할 관련 개념들이 많습니다.

    이번에 공부를 해보면서 라우터와 공유기의 차이를 중심으로 살펴도 봤는데 허브, 스위치와의 차이도 꽤 중요하거든요?

    근데 와...이 영상 기깔납니다. 한번 보시면 후회 절대 안하십니다ㅋㅋㅋㅋㅋㅋㅋ 강추 그 잡채...

    https://youtu.be/1z0ULvg_pW8

    허브(Hub), 스위치(Switch), 라우터(Router)에 대한 개념, 엄청나게 간결하고 상당히 이해도가 쉬운 킹갓영상

    그럼 오늘도 끝까지 읽어주셔서 감사드리고 조만간 좋은 공유기 장만하시길 바랍니다 ㅎㅎㅎ

    다음에 더 좋은 포스팅으로 돌아오겠습니다. 행복하세요~~

     

    참고

    https://ggangtalife.tistory.com/13

     

    공유기 동작 원리

    목차 1. 공유기(Router)란? 2. 공유기의 필요성 3. 공유기 동작 원리 1. 공유기(Router)란? 단일 IP에서 하위 클라이언트 PC가 유선 또는 무선으로 하나의 인터넷 라인을 공유하여 동시에 인터넷 접속이

    ggangtalife.tistory.com

    https://sete3683.tistory.com/77

     

    공유기의 원리와 NAT 요약

    1. ip는 사설(private) ip와 공인(public) ip의 두 종류로 나뉜다. 사설 ip는 말그대로 private하여 로컬에서만 사용할 수 있고, 인터넷 상에서는 사용할 수 없다. 반대로 공인 ip는 인터넷 상에서 나를 대표

    sete3683.tistory.com

    https://www.stevenjlee.net/2020/07/11/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-nat-network-address-translation-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A3%BC%EC%86%8C-%EB%B3%80%ED%99%98/

     

    [이해하기] NAT (Network Address Translation) - 네트워크 주소 변환 | STEVEN J. LEE

    NAT (Network Address Translation – 네트워크 주소 변환) 이란, IP 패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받는 기술입니다.

    www.stevenjlee.net

    https://enlqn1010.tistory.com/9

     

    패킷이란 무엇일까? 패킷의 정의와 구조(What is packet?)

    네트워크 공부를 해보신 분들은 '패킷(packet)'이라는 단어를 들어본 적 있을 것입니다. 매번 패킷 패킷.. 말하기만 하지 패킷의 정의에 대해서 정확히 알지 못하는 경우가 많은데요. 쉽게 정리해

    enlqn1010.tistory.com

    https://blog.naver.com/reductionist101/221468851236

     

    허브, 스위치, 라우터, 공유기 차이

    허브, 스위치, 라우터, 공유기는 모두 네트워크를 구축하는 데 사용되는 장비들이다. 그러나 각각은 기능이...

    blog.naver.com

    https://code-lab1.tistory.com/320

     

    [네트워크] NAT(Network Address Translation)란? NAT의 동작 과정, NAT의 종류

    NAT(Network Address Translation)란? NAT는 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술을 말한다. -위키백과- NAT는 Network Addr

    code-lab1.tistory.com

    https://blog.voidmainvoid.net/319

     

    NAT IP란?

    NAT는 Network Address Translation의 줄임말 입니다. NAT는 사설 네트워크에 속한 여러 개의 호스트가하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위해 사용합니다. 쉽게말해서 외부망과 내부망을

    blog.voidmainvoid.net


    아직 꼬꼬마 개발자입니다.

    더 나은 설명이나 코드가 있다면 언제든 환영입니다.

    적극적인 조언과 피드백 부탁드립니다!

     

    그럼 오늘도 개발 가득한 하루되세요!

    - Xerath -

    🤖🤖🤖🤖🤖🤖🤖

     

    728x90
    반응형