네트워크
[03] 네트워크 계층
BGK97
2024. 5. 29. 13:45
- LAN을 넘어서는 다른 네트워크와 통신을 하려면 네트워크 계층의 역할이 필수적
데이터 링크 계층의 한계
- 물리, 데이터 링크 계층만으로는 다른 네트워크 까지의 도달경로 파악이 어려움
- 거리가 먼 사용자들 끼리 통신을 할 때, 패킷이 이동을 해야하는데, 이를 라우팅이라 함
- 하지만 물리와 데이터 링크 계층에는 라우팅이 수행 불가
- MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치 특정이 어려움
- 호스트가 모든 네트워크에 속한 호스트의 MAC주소를 알기는 어려움
- 네트워크 계층에서는 이를 대신해 IP 주소를 사용
- 이 때 MAC 주소를 물리주소, IP를 논리 주소라고 함
- IP는 호스트에 직접 할당하는데, DHCP를 통해 자동할당을 받거나 사용자가 임의 할당
인터넷 프로토콜(IP)
- 네트워크 계층의 가장 핵심적인 프로토콜
- IP에는 4버전과 6버전이 존재, 일반저긍로 4버전을 의미
IP 주소의 형태
- IP 주소는 4바이트 형태로 주소 표현 가능, 숫자당 8비트
- 점으로 구분되는 8비트를 옥텟이라고 함
IP의 기능
- IP 주소 지정, IP 단편화
- IP 주소 지정은 IP 주소를 바탕으로 송수신 대상을 지정
- IP 단편화는 전송하고자 하는 패킷의 크기가 MTU(최대 전송 단위)보다 클 경우, 이를 MTU 이하의 복수 패킷으로 나누는 것을 의미
- 일반적으로 MTU는 1500바이트 크기
IPv4
- IPv4패킷은 다음과 같이 표현
- 가장 중요한 부분은 7가지로, 식별자 부터 수신지 IP 주소까지 중 헤더 체크섬을 제외한 부분
식별자
- 패킷에 할당된 번호
- 패킷이 분할되어 전송됐을 시에, 이를 마지막에 재조합 할 때에 사용
플래그
- 총 세 개의 비트로 구성된 필드
- 처음은 0으로 예약된 비트로 사용 x
- 사용되는 나머지 두 개의 비트 중 하나는 DF (단편화 수행 여부 결정, 0이면 수행, 1이면 X)
- 나머지 하나난 MF (단편화된 패킷이 더 있는지 확인하는 비트로, 0이면 없다, 1이면 더 있다)
단편화 오프셋
- 패킷이 단편화 되기 전, 패킷의 초기 데이터에서 몇 번째로 떨어진 패킷인지 나타냄
TTL
- Time To Live의 약어로, 패킷의 수명을 의미
- 라우터를 거치면서 1씩 감소하며, 0으로 된 패킷은 폐기
- 패킷이 호스트나 라우터에 한 번 전달되는 것을 홉이라 함
- 홉마다 1씩 감소한다는 얘기임
- 무의미한 패킷이 네트워크상에 지속되어 남아있는 것을 방지하기 위함
프로토콜
- 상위 계층의 프로토콜이 무엇인지 나타내는 필드
- TCP는 6번, UDP는 17번...
송신지, 수신지 IP주소
- 송수신지의 IPv4 주소를 알 수 있음
IPv6
- IPv4의 용량 부족을 이유로 등장
- 16바이트로 주소 표현이 가능, 콜론으로 구분된 8개 그룹의 16진수로 표기
- 사실상 무한에 가까운 개수로 할당 가능함
- IPv6 패킷의 기본 헤더는 다음 헤더, 홉 제한, 송신지 IP 주소, 수신지 IP주소로 구성
다음 헤더
- 다음 상위 계층의 프로토콜이나 확장 헤더를 가리킴
- 확장 헤더란, 다음과 같음
홉 제한
- 홉 제한은 패킷의 수명을 나타내는 필드
송신지, 수신지 IP 주소
- IPv6 주소 지정이 가능
IPv4의 헤더는 옵션, 패딩 필드가 선택적으로 길이가 가변적이다
IPv6의 헤더는 40바이트로 고정적이다.
ARP
- IP주소를 통해 MAC 주소를 알아내는 프로토콜
- 다음과 같은 과정으로 MAC주소를 알아냄
- ARP 요청
- ARP 응답
- ARP 테이블 갱신
1. ARP 요청
- 호스트A 가 모든 호스트에게 브로드 캐스트 메세지를 보냄
- 여기서 브로드캐스트란, 자신을 제외한 모든 네트워크의 호스트에게 전송하는 방식임
2. ARP 응답
- 아닌 사람들은 모두 무시하고, 해당 통신매체만 응답을 함
- 이 때 자신의 MAC주소를 담은 메세지를 전송함
3. ARP 테이블 갱신
- ARP 테이블이라는 정보를유지 하는데, MAC 주소 테이블과 같다고 보면 될 듯함
- 응답을 받았으면 이 정보를 ARP 테이블에 갱신을 하고, 연관관계를 테이블에 추가함
- ARP는 동일 네트워크에 있는 호스트의 IP주소를 통해 MAC주소를 알아낸다!!
- 만약 다르다면?
- 라우터를 활용
라우터를 활용한 타 네트워크간 통신
- 라우터 A가 B에게 패킷을 전달해야함, 이 때 요청과 응답과정을 거쳐 B의 MAC주소를 가져옴
- 이제 라우터 B는 호스트 B에게 전달해야하므로 똑같은 과정을 거쳐 전달함
IP 주소
- 네트워크 주소와 호스트 주소로 이루어짐
네트워크 주소와 호스트 주소
- 네트워크 주소는 네트워크 ID, 네트워크 식별자 등으로 불리기도 함
- 호스트 주소는 똑같이 ID와 식별자로 불림
- 형태는 네트워크 주소 16비트, 호스트 주소 16비트로 구성
- 고정은 아니며, 옥텟의 구성 여부에 따라 달라짐
클래스풀 주소 체계
- 호스트, 네트워크 주소 공간을 효율적으로 할당하기 위해 생겨난 개념
- 네트워크 크기에 따라 IP 주소를 분류
- 필요한 호스트 IP 개수에 따라 네트워크 크기를 가변적으로 조정해, 네트워크와 호스트 주소를 구획
- 클래스를 기반으로 IP주소를 관리하는 체계를 클래스풀 주소 체계라고 함
- 그림에서 보면 A클래스가 할당 가능한 호스트가 가장 많음
- 네트워크 주소는 0으로 시작하고, 1옥텟으로 구성, 호스트는 3옥텟 구성
- 네트워크는 2의7승, 호스트는 2의 24승 구성이 가능
클래스풀 주소 체계에서, 호스트의 주소공간이 모두 0이거나 1인 경우는 사용할 수 없다
-> 0은 네트워크 주소로 사용, 1은 브로드캐스트 주소로 사용하기 때문
클래스리스 주소 체계
- 클래스풀 주소 체계보다 더 유동적이고 정교하게 네트워크를 구획할 수 있는 방법
- 개념 없이 클래스에 구애받지않고, 네트워크 영역을 나누어 호스트에게 IP주소 공간을 할당하는 방식
- 오늘날 주로 사용
서브넷 마스크
- IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열을 의미
- 네트워크 내의 부분적인 네트워크를 구분 짓는 비트열
- 서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것을 서브네팅
서브네팅 : 비트 AND 연산
- 네트워크와 호스트 주소를 구분짓는 방법
- 서브넷 마스크의 0이 8개이므로 호스트 주소도 8비트로 표현 가능!
- 여기서 네트워크 주소인 0과 브로드캐스트인 255를 제외한 이 사이 값을 이용 가능
서브넷 마스크 표기: CIDR 표기법
- 서브넷 마스크 표현에는 두가지 방식이 있음
- 10진법으로 표현
- IP 주소/서브넷 마스크 상의 1의 개수로 표기
- 여기서, IP 주소/서브넷 마스크 상의 1의 개수로 표기하는 형식을 CIDR 표기법이라 함
- 서브넷 마스크에서의 1의 개수를 / 뒤에 표현함
공인 IP와 사설 IP 주소
공인 IP 주소
- 전 세계에서 고유한 IP 주소
- 네트워크 간의 통신, 인터넷을 이용시 사용하는 IP 주소 등...
- ISP나 공인 IP 주소 할당 기관을 통해 발급 가능
사설 IP 주소와 NAT
- 사설 네트워크에서 사용하기 위한 IP주소
- 외부 네트워크에 공개되지 않은 네트워크
- 사설 네트워크로 사용하도록 예약된 주소 공간
- 사설 IP주소의 할당 주체는 일반적으로 라우터임
- 해당 호스트 상의 네트워크에서만 유효하기 때문에, 다른 네트워크상의 사설 IP 주소와 중복 가능
- 외부와 통신하고 싶을 땐 NAT를 사용( Network Address Translation )
- 네트워크 내부에서 사용하는 사설 IP와 외부에서 사용되는 공인 IP주소를 변환 시에 사용
- 대부분의 라우터와 공유기는 NAT 기능을 내장
- 사설 네트워크의 패킷 속 사설 IP 주소는 공유기를 통해 공인 IP로 변경 후 외부 네트워크 전송
- 외부 네트워크로 받은 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 로 변경 후사설 네트워크 속 호스트에게 전달
정적 Ip 주소와 동적 Ip 주소
- 정적 할당
- 수작업으로 IP 주소를 부여
- 동적 할당과 DHCP
- 수작업으로 잘못된 IP나 중복된 IP주소 입력을 방지하기 위함
- 사용하지 않을 경우 회수
- 이 때 사용되는 프로토콜이 DHCP( Dynamic Host Configuration Protocol)
- DHCP 서버 간 메세지를 통해, 할당 가능한 ip주소 목록을 관리하여 클라이언트 요청시마다 주소를 할당하는 방식을 사용
- 이 때 사용기간이 정해져 있어, 기간이 지나면 다시 DHCP 서버로 반납
- 그래서 임대로 표현하기도 한다...
DHCP Discover(클라이언트 -> DHCP 서버)
- 클라이언트에서 DHCP 서버를 찾는 메세지
DHCP Offer(DHCP 서버 -> 클라이언트)
- 클라이언트에게 ip주소를 제안하는 메세지
DHCP Request(클라이언트 -> DHCP 서버)
- Offer메세지에 대한 응답으로, 브로드 캐스트에 전송하여 주소 사용 가능 여부를 되물어봄
DHCP ACK(DHCP 서버 -> 클라이언트)
- 최종 승인 메세지로, 해당 메세지 이후 ip주소를 사용하여 임대기간 동안 사용
더 사용하고 싶으면, 임대갱신으로 기간 연장 가능!!