네트워크

[모두의 네트워크] -05 네트워크 계층 : 목적지에 데이터 전달하기

Slow Motion~ 2023. 3. 20. 01:27
728x90
  • 네트워크 간의 연결 구조

OSI 3계층에 해당하는 네트워크 계층은 네트워크에 있는 목적지로 데이터를 전송하기 위한 계층이다.

 

이전에서 설명한 데이터 링크 계층의 이더넷은 같은 네트워크에 있는 컴퓨터로는 전송이 가능하지만 인터넷이나 다른 네트워크로는 전송이 불가능하다.

 

따라서 네트워크 간의 통신을 하기 위해 라우터(Router)를 사용하여 데이터를 주고 받는다.

 

우리가 가정에서 많이 사용하는 Iptime 등이 라우터의 기능을 하고 있다 ISP(인터넷 제공자)로부터 받은 인터넷은 로컬 인터넷으로 공유하여 인터넷이 가능하도록 한다.

 

라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는것이 좋은지를 알려준다.

 

데이터 링크 계층에서는 MAC주소를 활용하였듯이 네트워크 계층에서도 주소를 활용하는데 네트워크 계층IP주소을 활용한다.

 

로컬로 활용하고 있는 여러 장비들이 각자의 IP주소를 가지고 있을 텐데 그 IP주소를 저장해놓은 것이 라우팅 테이블(Routing table)이다. 

 

  • IP(Internet Protocal)란? 

IP는 네트워크 계층의 프로토콜이다. 데이터를 다른 네트워크를 통해 전달하기 위해서는 IP가 필요하다.

 

데이터 링크 계층과 마찬가지로 네트워크 계층에서도 헤더를 붙이는데 이 헤더를 IP헤더 라고 부른다

 

IP 헤더에는 이와 같은 정보들이 포함되어 있다.

  • Version: IP 프로토콜 버전 (4 또는 6)
  • Header Length: IP 헤더의 길이 (32비트 워드 단위)
  • Differentiated Services Code Point (DSCP): 서비스 품질(QoS)과 관련된 정보
  • Explicit Congestion Notification (ECN): 네트워크 혼잡 상태 정보
  • Total Length: IP 패킷의 전체 길이 (헤더와 페이로드의 합)
  • Identification: 패킷을 구분하는 식별자
  • Flags: 패킷의 조각화 정보 (분할된 패킷의 경우)
  • Fragment Offset: 분할된 패킷의 위치 정보
  • Time to Live (TTL): 패킷의 수명 (라우팅 중 생략될 때마다 1씩 감소)
  • Protocol: 페이로드 데이터의 상위 계층 프로토콜 (TCP, UDP 등)
  • Header Checksum: IP 헤더의 오류 검사
  • Source IP Address: 송신자의 IP 주소
  • Destination IP Address: 수신자의 IP 주소

이렇게 IP헤더가 추가된 데이터를 IP 패킷이라고 한다.

 

  • IP 주소란?

IP 주소는 말그대로 주소이다.

 

학교를 예로 들어보면 학년과 반으로 나누어져 정확한 정보를 알 수 있듯이 IP주소도 이와 같은 역할을 한다.

 

IP 주소는 ISP(인터넷 서비스 제공자)가 제공하며 ISP는 우리가 흔히 알고 있는 KT, SKT, U+가 있다

 

IP 주소의 종류는 공인 IP사설 IP가 있는데 인터넷에 직접 연결되는 컴퓨터나 라우터는 공인 IP 주소를 할당하고 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당한다.

 

사설 IP 주소를 할당할때 보통은 자유롭게 할당을 하기 보다는 DHCP(Dynamic Host Configratuion) 프로토콜을 사용하여 주소를 자동으로 할당하는 경우가 많다.

 

 

  • IP 주소의 클래스 구조

  • 네트워크 주소와 브로드캐스트 주소

IP주소에는 네트워크 ID와 호스트 ID 가 있다. 위에 표에서 비율을 표시했듯이

예를 들어 192.168.0.1이면 네트워크 ID에 해당하는 부분이 192.168.0 호스트 ID 가 1이다.

 

네트워크 주소는 호스트 ID가 처음시작인 0이고 브로드캐스드 주소는 끝 자리인 255이다.

네트워크 주소
브로드캐스트 주소


네트워크 ID는 네트워크 자체를 식별하는 역할을 하며 호스트 ID는 네트워크 내에서 각각의 호스트를 식별하는 역할을 한다.

 

네트워크 주소는 IP주소에서 네트워크ID만 나타낸다.

 

브로드캐스트 주소는 특정 네트워크 내의 모든 호스트들에게 메시지를 전송하는 데 사용된다. 브로드캐스트 주소는 해당 네트워크의 네트워크 ID 부분은 유지하고 호스트 ID 부분을 모두 1로 설정한 것이다.

즉, 네트워크 ID와 호스트 ID를 조합하여 IP 주소를 만들고, 네트워크 주소는 해당 네트워크의 네트워크 ID 부분만을 나타내고, 브로드캐스트 주소는 해당 네트워크의 모든 호스트에게 메시지를 전달하는 데 사용되는 것이다.

 

  • 서브넷(Subnet)의 구조

네트워크를 분할하는 것을 서브넷팅이라고 한다.

 

예를 들어 A클래스는 1677만 7214개의 IP 주소를 사용할 수 있다. 이렇게 많은 수의 컴퓨터가 브로드캐스트 패킷을 전송하면 모든 컴퓨터에 패킷이 전송되고 네트워크가 혼잡해질 우려가 있다.

그래서 대규모 네트워크를 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 좁힌다.

 

이처럼 네트워크를 분할하는 것을 서브넷팅(Subneting)이라고하고 분할된 네트워크를 서브넷(Subnet)이라고 한다.

 

A클래스의 경우 네트워크 ID가 8비트 호스트ID가 24비트인데 이 상태를 서브넷팅하면 네트워크ID, 서브넷ID, 호스트ID로 나누어지게 된다.

 

바꾸는 방식은 원래 호스트ID로 사용되던 비트를 서브넷 ID로 바꾸는 것이다.

 

네트워크가 얼마나 분리되었는지 확인하기 위해 서브넷 마스크 값을 사용한다.

 

많이들 사용하는 방법으로 프리픽스(Prefix) 표기법이 있다.

 

프리픽스 표기법은 서브넷 마스크를 슬래시(/)로 표현하는 방법이다.

 

예를 들어 255.255.255.0/28 같이 나타낸다

 

이 경우 네트워크 ID는 C클래스이므로 네트워크 ID가 24비트지만 네트워클 ID를 28비트로 변경하면 4 비트를 호스트 ID에서 빌리게 되는 것이다. 이때 할당하게 될 비트는 네트워크 관리자가 결정할 수 있다.

 

위의 경우 255.255.255.0/28의 서브넷 마스크는 11111111|11111111|11111111|11110000인 255.255.255.240이 된다.

 

이렇게 네트워크를 분리하게 될 경우 호스트 ID에 해당하는 0000부분의 양 만큼 분리를 할 수 있게 된다.

0000이 분리할 수 있는 네트워크는 2의 4 제곱인 16이다.

 

++ 추가

 

만약 내가 192.168.0.1의 네트워크 주소를 가지고 있다고 해보자.

이는 C클래스에 해당하고 C클래스는 앞 3칸은 네트워크ID 뒤의 1칸은 호스트 ID로 사용된다. 그러면 256개의 호스트 ID를 가질 수 있게 된다.

 

이 경우 네트워크를 더 분할하여 관리하기 용이하게 만들 수 있는데 서브넷팅을 하여 192.168.0.1/26으로 설정하였다고 가정을 해보자. 여기서의 서브넷 마스크인 /26은 2진수 1을 쭉 나열한 11111111|11111111|11111111|11000000며 이를 10진수로 환산하면 255.255.255.192이다.

 

그러면 네트워크 주소가 192.168.0.0부터 192.168.0.63을 사용할 수 있다. 총 64의 호스트ID를 사용할 수 있는데

원래의 호스트 ID 개수가 256개 이므로 256/64를 하여 4개의 서브넷으로 분할이 가능하다.

분리된 서브넷 1의 경우 192.168.0.0은 네트워크 주소가 될 것이고 192.168.0.63은 브로드 캐스트 주소가 될 것이다.

각 서브넷은 62개의 호스트 주소를 사용할 수 있게 된다.

  • 서브넷 1: 192.168.0.0 - 192.168.0.63
  • 서브넷 2: 192.168.0.64 - 192.168.0.127
  • 서브넷 3: 192.168.0.128 - 192.168.0.191
  • 서브넷 4: 192.168.0.192 - 192.168.0.255

 

  • 라우터의 구조

서로 다른 네트워크가 통신을 하기 위해서는 라우터가 필요하다.

 

라우터는 네트워크 분리를 할 수 있다. 모두가 이런 기능을 하지 않는다. 스위치는 서로 같은 네트워크를 공유한다.

 

둘이 다른 네트워크를 공유하는 컴퓨터 1에서 컴퓨터 2로 데이터를 전송하기 위해서는 라우터 IP주소를 설정해야 한다. 이것은 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이(Default Gateway)라고 한다.

 

예를 들어보면

데이터를 전송하는 컴퓨터 1은 목적지 IP 주소를 가진 컴퓨터 2로 데이터를 보내고, 컴퓨터 1은 자신의 서브넷에 있는 경우에는 바로 컴퓨터 2로 데이터를 전송할 수 있지만, 다른 서브넷에 있는 경우에는 해당 서브넷의 라우터(게이트웨이)에게 전송한다. 이 라우터는 자신이 속한 서브넷과 목적지 서브넷을 판단하여, 다시 다른 라우터(게이트웨이)에게 데이터를 전송하거나 목적지 컴퓨터에게 직접 전송한다.

다른 네트워크로 데이터를 전송하는 경우

  • 라우팅(Routing)

라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전달한다.

 

이러한 경로의 정보가 등록되어 있는 테이블이 라우팅 테이블이다.

 

라우팅 테이블에 경로를 등록하는 방법은 수동으로 등록하는 방법과 자동으로 등록하는 방법이 존재하며 각각 소규모 네트워크대규모 네트워크에 적합하다.

 

라우터는 자동으로 라우팅 정보를 교환하기 위해 라우팅 프로토콜을 사용하며, 이를 통해 라우터 간에 경로 정보를 서로 교환하고 그것을 라우팅 테이블에 등록한다. 대표적인 라우팅 프로토콜로는 RIP, OSPF, BGP 등이 있다. 이를 통해 라우터는 다른 네트워크에 있는 호스트로 데이터를 전송할 수 있다.