이 포스팅은 네트워크 기초 시리즈 5 편 중 4 번째 글 입니다.
목차
네트워크 계층
네트워크 간의 통신
- 네트워크 연결 구조
- 데이터 링크 계층에서는 이더넷 규칙을 기반으로 같은 네트워크 내에 있는 컴퓨터끼리 연결했다.
- 다른 네트워크에 있는 목적지로 데이터를 전달하려면 다른 기술이 필요하다.
- 한 컴퓨터에서 다른 컴퓨터로 데이터를 전송하기 위해 스위치가 필요했던 것 처럼,
- 하나의 네트워크에서 다른 네트워크로 데이터를 전송하기 위해 라우터를 사용한다.
- 라우터는 데이터의 목적지가 정해지면, 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려주는 역할을 한다.
- 이번의 목적지는 다른 네트워크이다. 특정 MAC 주소가 아니다.
- 그래서 다른 네트워크의 목적지를 알아야하는데, 그 주소를 IP 주소라 한다.
IP
- 논리적 주소 체계
- 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 해주는 주소
- 그래서 IP 주소만 있다면 다른 네트워크의 목적지를 지정할 수 있다.
- 그런데, 어떤 경로로 보낼지도 결정해야 한다.
- 이런 경로를 결정하는 것을 라우팅이라고 한다.
- 라우터에는 이를 위한 라우팅 테이블 이 있다.
- IP 프로토콜
- 데이터 링크 계층에서 이더넷 헤더를 붙이는 것과 같이
- 네트워크 계층에서는 IP 헤더를 붙인다.
- 이 붙인 패킷을 IP 패킷이라 한다. 이 부분에서 중요한 것은, 출발지, 목적지 IP 주소를 넣는 다는 점이다.
IP 패킷
IP 주소의 버전
- 그럼 이 IP 주소는 누가 만들까?
- MAC 주소같은 경우 제작사, 제작사 일련번호로 구성되어 있었다.
- 인터넷 서비스 제공자(ISP)가 제공한다.
- 통신사가 대표적인 예이다.
- IP는 IPv4, IPv6 두가지 버전이 존재
- v4는 32비트, v6는 128비트이다.
- IPv4는 수가 한정적이기 때문에, 인터넷에 직접 연결되는 컴퓨터(서버) 또는 라우터에는 공인 IP 주소를 할당하고, 가정이나 회사에는 사설 IP 주소를 사용한다.
- 내부적으로 사용하는 경우 DHCP(Dynamic Host Configuration Protocol) 기능을 사용하여 IP 주소를 자동으로 할당 (동적 IP)
IP 주소의 구조
- MAC 주소
- 48비트
- 16진수(4비트) 12개의 숫자로 구성
- IP 주소
- 32비트
- 8비트씩 쪼개고, 10진수로 변환하여 사용
- 8비트를 옥텟 이라 부른다.
- IP Address = 네트워크 ID + Host ID
- network ID
- 인터넷 상에서 모든 Host(말단 장치)를 관리하기 어렵기 때문에, 범위를 지정한 것
- Host ID
- 호스트를 개별적으로 관리하기 위해 사용하게 된 것
- 택배 배달 아파트 주소 : Network ID
- 특정 호수 주소 : Host ID
- 192.168.0.3 -> 192.168.0 은 네트워크 아이디, 3은 호스트 아이디
- 이거는 크기에 따라 달라짐
- network ID
IP 주소 클래스
IP 클래스
- 위에서 크기에 따라 달라진다는 것이 이의미
- 네트워크 주소를 크게 만들거나 작게 만들어 네트워크 크기를 조정할 수 있다.
- 일반 네트워크 : A~C
- A : 처음 8비트가 네트워크 주소, 나머지 24비트는 호스트 ID
- 원리는 상동
- 주의 사항
- 공인 IP 주소와 사설 IP 주소가 정해져있음
- 내부적으로 큰 망을 쓰도록 하여 부족한 IP주소를 메꾸기위한 방편
- 공인 IP
- 전 세계에서 유일한 IP로 ISP가 제공하며 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 장비로부터 접근이 가능하다.
- 사설 IP
- 한 네트워크 안에서 사용되는 IP 주소 IPv4의 부족으로 인해 모든 네트워크가 공인 IP를 사용하는 것은 불가능하기 때문에 네트워크 안에서 라우터를 통해 할당받는 가상의 주소이다. 외부에서 접속할 수 없다.
네트워크 주소와 브로드캐스트 주소
- 브로드캐스트는 앞에서 스위치(또는 지금은 라우터)에 연결된 모든 호스트에 요청을 보내는 것을 의미했다.
- 이런 용도로 사용되는 특별한 주소를 말한다.
- 브로드 캐스트 주소
- 호스트 ID가 255인 주소이다.
- 해당 네트워크에 있는 컴퓨터나 장비에 한번에 데이터를 전송하는데 사용되는 주소
- 네트워크 주소
- 호스트 ID가 0인 주소
- 전체 네트워크에서 작은 네트워크를 식별하는데 사용된다.
- 즉, 작은 네트워크를 대표하는 주소
서브넷의 구조
- 만약 A 클래스 네트워크에서 연결된 모든 장비에 브로드캐스트 패킷을 전송한다고 생각해보자.
- A 클래스는 호스트 ID가 24비트여서 2^24개의 IP 주소를 사용할 수 있다.
- 네트워크는 지연되고 정체될 것이다.
- 이렇게 대규모 네트워크를 작은 네트워크로 분할하여 브로드 캐스트로 전송되는 패킷의 범위를 줄일 수 있는데, 이렇게 네트워크를 분할하는 것을 서브네팅(Subneting) 이라 한다.
- 분할된 네트워크를 서브넷이라 한다.
- 이전에는 네트워크 ID, 호스트 ID 였는데, 이 개념이 추가되면 3개로 나눠진다.
- 즉 호스트 ID 에서 비트를 빌려 서브넷으로 만들 수 있다.
서브넷
서브넷 마스크
- IP 주소를 서브네팅하면, 어디까지가 네트워크 ID이고, 어디부터가 호스트 ID 인지 판단이 어렵다.
- 이를 위해 서브넷 마스크라는 값을 사용한다.
- C 클래스 기준으로 예시를 살펴보자.
서브넷 마스크 예시
- 호스트 ID에서 4비트를 빌려 네트워크 ID를 28비트로 만들었다.
- 즉, 네트워크 ID 24, 서브넷 ID 4, 호스트 ID 4가 된다.
- 같은 네트워크 주소를 가지고 있지만, 아래와 같은 마스크를 가지고 있어 그 범위를 알 수 있다.
- 원래 알수 있는 마스크가 255.255.255.0이었다면,
- 마스크인 이유는 해당 값을 비트로 바꾸면 11111111이 되어 연산을 통해 그 범위를 알 수 있기 때문이다.
- 255.255.255.240/28로 된다.
- 뒤에 28은, 서브넷 마스크의 개수가 28개라는 뜻이다.
라우터의 구조
- 네트워크를 분리하는 역할을 수행
- 위에서 체계는 알았으나, 그래서 실제 네트워크를 누가 분리하는지는 몰랐다.
- 라우터가 이 역하을 수행한다.
- 129.168.1.0/24의 네트워크의 첫번째 컴퓨터에서 192.168.2.0/24 네트워크의 첫번째 컴퓨터로 데이터를 전송하려면 어떻게 해야 할까.
- 이 때, 라우터의 IP 주소를 설정해야 한다. 네트워크의 출입구를 설정하는 것으로, 기본 게이트웨이를 설정해야 한다.
- 컴퓨터에서 자동으로 IP 주소 받기를 체크하면, 기본 게이트웨이를 설정할 수 있다.
- 하지만 내 게이트웨이만 설정했다고 해서 다른 네트워크에 데이터를 보낼 수 없다.
라우팅
- 현재 네트워크에서 다른 네트워크로 최적 경로를 통해 데이터를 전송
- 경로 정보는 라우팅 테이블에 등록
- 라우팅 테이블에 경로 정보를 등록하는 방법은 수동 등록과 자동 등록이 있다.
- 수동 등록은 소규모 네트워크에 적합하다.
- 자동 등록은 대규모 네트워크에 적합
- 자동으로 할 경우, 라우터 간에 경로정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정한다.
- 이렇게 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜 이라 한다.
라우팅
맥 주소가 있는데 IP 주소를 왜 쓸까?
- 주민등록번호, DNA 구조 : MAC 주소 - 완전 고유한 번호인거지, 다시 태어나지 않는이상 못바꿈
- 사람 이름 : IP 주소 - 바뀔수도 있는거지
- 별명 : Host 이름(www.naver.com) - 더 부르기 편하고 자주 부르는 거지
- 서버와 연결하는 과정
- 내PC -> www.naver.com의 ip 주소를 알기위해 등록된 DNS 서버와 통신한다.
- 내PC -> DNS 서버로 부터 www.naver.com 이라는 호스트이름의 IP 주소가 211.115.211.8 라는걸 알아낸다.
- 내PC -> 211.115.211.8 주소가 로컬네트웍이 아님을 알고 로컬라우터로 패킷보낸다.
- 인터넷->한통이든 뭐가 됐든 ISP들의 라우터들이 패킷을 라우팅해서 네이버웹서버가 있는 물리적인 공간까지 즉, 그 지역 라우터까지 패킷이 전달된다.
- 네이버측라우터-> 211.115.211.8 이라는 IP주소가 누군지 알아내기 위해 ARP Request 한다.
- 웹서버-> 자신의 IP 주소가 일치함을 확인하고 자신의 MAC 주소를 라우터한테 알려준다
- 네이버측라우터-> 그 MAC주소를 목적지로 하는 이더넷패킷을 만들어 전송한다.
- 오는 과정은 DNS 빼고 똑같다.
- 결국 IP주소를 가지고 하는 짓은 라우팅이다.
- 맥주소만 가지고는 이러한 집합 개념을 사용하기 어렵다.
- 만약 MAC만 가지고 한다면, ISP 내의 모든 라우터는 전세계 모든 서버들의 MAC 주소를 다 가지고 있어야 한다.
- 정리
- IP 주소체계는 변경 가능하고, 라우팅하는데 효과적이다.