혼자 공부하는 네트워크 CH3. 네트워크 계층

2024. 12. 12. 23:29·CS

 

1. 네트워크 계층이 왜 필요할까?

1.1 물리 계층(1 계층)과 데이터 링크 계층(2 계층)

  • 물리 계층은 실제 데이터를 신호로 변환해서 보내는 부분입니다. 물리적으로 연결된 장치 간에만 데이터가 전송되며, 물리 계층에서는 단순히 신호를 전달할 뿐, 데이터를 어디로 보내야 하는지 모릅니다.
  • 데이터 링크 계층은 MAC 주소를 통해 장치를 구별합니다. 하지만 MAC 주소는 같은 네트워크 내에서만 유효하고, 다른 네트워크로 데이터를 보내는 기능이 없습니다.

1.2 네트워크 계층의 역할

네트워크 계층은 데이터를 어디로 보낼지 알려주는 역할을 합니다.

이를 위해 IP 주소라는 고유한 번호를 사용하고, 라우팅이라는 기술로 데이터를 정확하게 목적지로 보냅니다.

여기서 개발자에게 중요한 점
서버와 클라이언트가 서로 데이터를 주고받을 때, IP 주소를 통해 정확한 목적지에 데이터를 전달합니다 !


2. IP 주소란?

IP 주소는 인터넷에 연결된 각 장치의 고유한 주소입니다. 인터넷에서 이메일을 보내거나 웹 페이지를 요청할 때, 어떤 장치로 보낼지 알아야 하는데, 이때 사용하는 것이 바로 IP 주소입니다.

IP 주소를 집 주소로 비유하면?

  • IP 주소는 집 주소와 같습니다. 집에 우편물을 보낼 때 정확한 집 주소가 필요하듯, 인터넷에서 데이터를 보낼 때도 IP 주소가 필요합니다.
  • 192.168.1.1이라는 주소는 한 집의 주소이고, 이 주소를 통해 데이터를 정확한 장치로 보낼 수 있습니다.

3. IPv4와 IPv6: IP 주소는 어떻게 구조가 되어있을까?

3.1 IPv4 주소

  • IPv4는 32비트로 구성된 주소입니다. 이를 사람이 이해하기 쉽게 4개의 숫자로 나누고, 숫자 사이에 점(.)을 찍어서 구분합니다.
    ex) 192.168.1.1
  • 이 주소는 두 부분으로 나뉩니다.
    1. 네트워크 ID: 이 부분은 어디에 연결된 장치인지를 나타냅니다.
    2. 호스트 ID: 이 부분은 같은 네트워크 내에서 특정 장치(컴퓨터, 서버 등)를 구별합니다.

-> 네트워크 ID는 해당 IP 주소가 속한 네트워크를, 호스트 ID는 네트워크 내에서 특정 장치를 식별합니다.

3.2 IPv6 주소

  • IPv6는 IPv4가 한계를 겪으면서 나온 128비트 주소 체계입니다. 더 많은 장치가 인터넷에 연결되기 때문에, 더 많은 주소가 필요해졌습니다.
  • IPv6는 16진수로 표현되고, 콜론(:)으로 구분됩니다.
    ex) 2001:0db8:85a3::8a2e:0370:7334
  • IPv6의 확장성 : IPv6는 주소 공간이 매우 커서 사물인터넷(IoT)처럼 많은 장치들이 인터넷에 연결되는 시대에 필수적입니다.
    ex)
    스마트홈 기기나 자율 주행차는 각각 고유의 IPv6 주소를 가지게 됩니다.

4. 서브넷 마스크: 네트워크와 장치를 구별하는 방법

4.1 서브넷 마스크란?

  • 서브넷 마스크는 IP 주소에서 어떤 부분이 네트워크이고 어떤 부분이 장치인지를 구분하는 도구입니다.
    ex) 서브넷 마스크가 255.255.255.0일 때,
    • 255.255.255 부분 : 네트워크
    • 0 부분 : 장치

→ 쉽게 말하면, 네트워크가 더 잘 나뉘어야 할 때 서브넷 마스크가 필요한 것으로 볼 수 있습니다. ex) 회사 내부 네트워크에서 서버들을 구별할 때 사용

4.2 서브넷 마스크 예시

  • IP 주소가 192.168.1.10이고 서브넷 마스크가 255.255.255.0이라면,
    • 네트워크 ID는 192.168.1
    • 호스트 ID는 10 (특정 장치 번호)

→ 서브넷 마스크는 서버를 세분화하고 관리하는 데 유용합니다.


5. 라우팅: 데이터를 최적의 경로로 보내는 방법

라우팅은 데이터를 어디로 보낼지 결정하는 과정입니다. 라우터는 라우팅 테이블을 사용하여 데이터가 갈 경로를 결정합니다.

라우터는 "이 데이터를 어디로 보낼까?"를 결정하는데, 이를 통해 인터넷에서 웹 페이지를 볼 때 데이터를 빠르고 정확하게 전달합니다.

여기서 개발자에게 중요한 점
서버와 클라이언트가 여러 네트워크를 거쳐서 데이터를 주고받을 때, 라우터는 이들을 정확한 경로로 안내합니다.


6. 공인 IP와 사설 IP + NAT

6.1 공인 IP

  • 공인 IP는 인터넷에 직접 연결되는 고유한 주소입니다. ex) 8.8.8.8 : 구글의 DNS 서버 IP

6.2 사설 IP

  • 사설 IP는 내부 네트워크에서만 사용되는 주소입니다. 192.168.x.x 같은 주소는 집이나 회사의 내부 네트워크에서만 사용되며, 외부와의 연결은 NAT(Network Address Translation)을 통해 이루어집니다.
  • 사설 IP는 외부와의 통신이 불가능하지만, NAT를 사용하면 인터넷과 연결할 수 있습니다.
  • 네트워크 내부적으로 사용되는 고유한 주소로, 내 컴퓨터에서 사용하는 로컬 IP라고도 불린다.

6.3 NAT (Network Address Translation)

NAT는 사설 IP 주소를 공인 IP 주소로 변환해주는 기술입니다. 이를 통해 여러 대의 컴퓨터가 하나의 공인 IP 주소를 사용해 인터넷에 연결될 수 있습니다.

  1. 사내 컴퓨터들은 사설 IP(예: 192.168.0.xxx)를 사용합니다. 이 주소는 외부 인터넷에서는 접근할 수 없습니다.
  2. 하지만 인터넷에 접속하려면, 공인 IP가 필요합니다.
  3. 공유기(라우터)는 내부 컴퓨터들이 요청한 데이터를 공인 IP로 변환하고, 외부로 보냅니다.
  4. 외부에서 응답이 오면, 공유기는 이 응답을 요청한 컴퓨터로 다시 보냅니다.

왜 중요한가?

  • IP 주소 절약 : 하나의 공인 IP로 여러 컴퓨터가 인터넷을 사용할 수 있습니다.
  • 보안 : 외부에서 사설 IP에 직접 접근할 수 없어서 보안이 강화됩니다.

다시 정리하자면, NAT는 공유기가 여러 사내 컴퓨터의 사설 IP를 하나의 공인 IP로 변환하여 인터넷과 연결되게 도와주는 기술입니다.

여기서 개발자에게 중요한 점
웹 애플리케이션을 로컬에서 실행하는 경우, http://localhost:8080 또는 http://192.168.x.x:8080으로 접근할 수 있습니다.
여기서 192.168.x.x는 사설 IP 주소로, 이때 애플리케이션은 외부에서 접근할 수 없습니다. 왜냐하면 해당 IP는 내부 네트워크에서만 유효하기 때문입니다.

- 웹 애플리케이션을 인터넷 상에 배포하면, 배포한 서버는 공인 IP 주소를 할당받게 됩니다. 공인 IP 주소는 인터넷에서 접근할 수 있는 주소로, 사용자는 이 주소를 통해 웹 애플리케이션에 접근할 수 있습니다.
- AWS EC2 등을 이용해 서버를 배포하면 해당 서버는 공인 IP 주소를 가지고, 전 세계 어디서나 인터넷을 통해 접속할 수 있게 됩니다.


7. HTTP 주소와 IP 주소의 관계

7.1 HTTP 주소 (URL)

HTTP 주소는 웹 페이지나 리소스에 접근할 수 있는 사용자 친화적인 주소입니다.

ex) http://www.example.com과 같은 형태 -> 사용자는 이 주소를 통해 웹 사이트나 웹 리소스를 찾습니다.

7.2 IP 주소의 역할

하지만 웹 브라우저는 실제로 IP 주소를 사용하여 서버에 연결합니다.

즉, HTTP 주소(http://www.example.com)는 결국 IP 주소로 변환되어야만 서버와 연결할 수 있습니다.

  1. DNS 변환: 사용자가 http://www.example.com을 입력하면, DNS(Domain Name System) 서버가 이를 IP 주소(192.168.1.1)로 변환합니다.
  2. 서버 연결: 웹 브라우저는 변환된 IP 주소(192.168.1.1)로 서버에 연결하고, 서버는 HTTP 요청에 대해 HTTP 응답을 보냅니다.
  3. 데이터 전송: 서버는 웹 페이지를 데이터 형태로 전송하고, 브라우저는 이를 화면에 표시합니다.

여기서 개발자에게 중요한 점
서버와 클라이언트가 데이터를 주고받을 때 IP 주소는 물리적 위치를, HTTP 주소는 웹 리소스를 정의합니다. 개발자는 이 두 주소를 연결하고, 서버와 클라이언트 간 데이터 흐름을 이해해야 합니다.

 


8. 결론

  • IP 주소는 데이터를 정확하게 전달하는 데 꼭 필요한 주소입니다. IPv4와 IPv6는 각각 주소 체계가 다르지만, 결국 장치와 장치가 데이터를 주고받기 위한 주소로 사용됩니다.
  • 서브넷 마스크와 라우팅은 네트워크 관리에서 중요한 역할을 하며, 서버와 클라이언트 간의 연결에서 효율성과 보안을 높이는 데 필요합니다.
  • HTTP 주소와 IP 주소는 서로 밀접하게 연결되어 있습니다. HTTP 주소는 사용자에게 웹 리소스를 요청할 수 있는 주소를 제공하고, IP 주소는 서버에 연결하기 위해 반드시 필요합니다.

개발자 관점에서 IP 주소와 네트워크 계층을 이해하면 서버 설정, API 통신, 네트워크 성능 최적화 등을 더 효율적으로 할 수 있습니다.


 

'CS' 카테고리의 다른 글

개발자가 컴퓨터 구조를 알아야 하는 이유  (0) 2025.01.13
웹 개발 시 꼭 챙겨야 할 보안 체크 리스트  (0) 2025.01.07
혼자 공부하는 네트워크 CH5. 응용 계층  (2) 2024.12.19
혼자 공부하는 네트워크 CH4. 전송 계층  (1) 2024.12.17
혼자 공부하는 네트워크 CH2. 물리 계층과 데이터 링크 계층  (3) 2024.12.09
'CS' 카테고리의 다른 글
  • 웹 개발 시 꼭 챙겨야 할 보안 체크 리스트
  • 혼자 공부하는 네트워크 CH5. 응용 계층
  • 혼자 공부하는 네트워크 CH4. 전송 계층
  • 혼자 공부하는 네트워크 CH2. 물리 계층과 데이터 링크 계층
uoaheu
uoaheu
uoaheu 님의 블로그 입니다.
  • uoaheu
    uoaheu 님의 블로그
    uoaheu
  • 전체
    오늘
    어제
    • 분류 전체보기 (50)
      • 알고리즘 (7)
      • CS (9)
      • FRONTEND (9)
        • React (12)
        • Kotlin (1)
        • JS (5)
        • HTML (2)
      • SQL (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이더넷프레임
    리액트usestate
    토스 uiux
    토스 앱 분석
    멀티캠퍼스it부트캠프
    부트캠프후기
    toss 분석
    백준1926번
    boj25418
    mysql
    useactionstate
    toss uiux
    알고리즘
    BFS
    mysql로 피벗테이블만들기
    mysql 피벗테이블
    유레카3기
    토스분석
    엘지유플러스유레카프론트엔드
    혼자서 공부하는 네트워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
uoaheu
혼자 공부하는 네트워크 CH3. 네트워크 계층
상단으로

티스토리툴바