ㆍ 인터넷 네트워크에서 데이터를 송수신할 때 사용되는 프로토콜
ㆍ Network Layer의 프로토콜
ㆍ 인터넷 네트워크에서 통신하기 위해 각 컴퓨터에 부여된 주소
ㆍ 기기 식별, 데이터 전송, 라우팅 역할을 함
ㆍ IPv4, IPv6 두 가지 버전이 있음
ㆍ IPv4의 주소 부족 문제를 해결하기 위해 탄생
ㆍ 헤더 고정 길이로 변경
ㆍ 보안 기능 (IPSec 헤더 사용)
ㆍ 주소 자동 설정 기능 (plug&play, 애니캐스트 등으로 주소 할당)
ㆍ 물리적 위치에 제한받지 않고 같은 주소 사용 가능
ㆍ IP 주소 = 네트워크 주소 + 호스트 주소
네트워크 주소
ㆍ 공통 부분
ㆍ 네트워크를 식별하기 위해 사용
ㆍ 라우터를 이용하여 통신 가능함
ㆍ IP 주소 할당 기관에서 주소 할당
호스트 주소
ㆍ 유일한 식별자
ㆍ 호스트를 식별하기 위해 사용
ㆍ 네트워크 관리자가 주소 할당
네트워크 부 & 호스트 부 통신 방식
ㆍ IP 주소를 네트워크 영역과 호스트 영역으로 나누는 것 (32비트 기준)
ㆍ 부족한 IP 주소를 효율적으로 할당하기 위해 사용함
ㆍ 필요한 호스트 개수에 따라 네트워크의 크기를 다르게 할당함
ㆍ 네트워크 영역이 넓어질수록 호스트의 개수는 적어짐
ㆍ 클래스 A: 대규모 네트워크 환경에서 사용 / 8비트 네트워크 영역 (0~127번)
ㆍ 클래스 B: 중규모 네트워크 환경에서 사용 / 16비트 네트워크 영역 (128~191번)
ㆍ 클래스 C: 소규모 네트워크 환경에서 사용 / 24비트 네트워크 영역 (192~223번)
ㆍ 클래스 D: 멀티캐스팅 네트워크 환경에서 사용 (224~239번)
ㆍ 클래스 E: 연구용 네트워크 환경에서 사용 (240~255번)
더 알아보기
CIDR
ㆍ 클래스 없이 IP 주소를 할당하는 라우팅 기법
ㆍ 네트워크, 호스트 영역을 1비트 단위로 구분할 수 있음
ㆍ 클래스 기반 주소 할당은 주소 낭비가 심하여 CIDR가 도입됨
서브넷
ㆍ IP 주소의 네트워크 영역을 분할하여 얻은 서브 네트워크
ㆍ 주소 클래스와 마찬가지로 IP 주소를 효율적으로 할당하기 위해 사용함
서브넷 마스크
ㆍ 서브넷을 만들기 위해 사용하는 표기법
ㆍ IP 주소의 네트워크 영역과 호스트 영역을 이진수로 표시함
ㆍ 1이 연속되는 부분: 네트워크 부분, 0: 호스트 부분
정적 할당 - Static
ㆍ IP 주소를 수동으로 할당하는 방법
ㆍ IP 주소를 고정적으로 사용하고 싶을 때 유용함
ㆍ 사용할 IP, 서브넷마스크, 게이트웨이, DNS 주소를 직접 설정함
ㆍ 항상 같은 IP 주소로 접속해야 하는 장치에서 사용 (가정 프린터)
동적 할당 - DHCP
ㆍ IP 주소를 자동으로 설정하는 방법
ㆍ DHCP 프로토콜을 이용하여 IP 동적 할당이 이루어짐
ㆍ 사용할 IP, 서브넷마스크, 게이트웨이, DNS 주소가 자동으로 설정됨
ㆍ Ex) 공유기에 내장된 DHCP 서버가 스마트폰이 연결될 때마다 자동으로 IP 주소를 할당함
ㆍ IPv4 체계의 주소 부족 문제를 해결하기 위해 구분함
Public IP
ㆍ 공인기관(ISP)에서 할당한 IP
ㆍ 인터넷 상에서 유일한 IP
ㆍ 내/외부에서 접근 가능
ㆍ 외부에 공개되어 있어서 보안 프로그램 설치가 필요함
Private IP
ㆍ 공유기에 연결된 가정이나 회사 기기에 할당된 IP
ㆍ 하나의 네트워크 안에서 유일한 IP
ㆍ 외부에서 접근 불가능
ㆍ 인터넷 통신을 하기 위해서는 NAT을 이용해 IP 주소 변환이 필요함
ㆍ 네트워크 주소를 변환하는 기술
ㆍ private IP -> public IP 주소 변환을 하여 인터넷 통신을 가능하게 함
장점
ㆍ IP 주소 문제 해결
ㆍ 보안 강화 - private IP는 외부에서 접근할 수 없음
단점
ㆍ 호스트가 많을수록 네트워크가 복잡해져 성능이 낮아질 수 있음
ㆍ 인터넷 제어 메시지 프로토콜
ㆍ IP 통신 중 발생하는 에러의 원인과 네트워크 상태를 코드로 보고하는 프로토콜
ㆍ HTTP 상태 코드와 비슷한 결이라고 생각
타입 코드
ㆍ Type 0 Echo Reply: 네트워크 문제 진단
ㆍ Type 3 Destination Unreachable: 패킷이 해당 목적지에 도달할 수 없음
ㆍ Type 5 Redirect Message: 라우팅 경로가 잘못되었음
ㆍ Type 8 Echo Request: 네트워크 문제 진단
ㆍ Type 11 Time Exceeded: 타임아웃이 발생하여 IP 패킷이 폐기됨을 알림
ㆍ Type 12 Parameter Problem: 잘못된 IP 옵션으로 패킷이 폐기됨을 알림
ㆍ 패킷을 최적의 경로로 목적지까지 보내는 과정
ㆍ Network Layer에서 수행됨
정적 라우팅
ㆍ 라우팅 경로 고정적
ㆍ 관리자가 라우팅 테이블 관리함 (수동)
ㆍ 단순하고 저렴하지만 유지보수가 힘듦
동적 라우팅
ㆍ 라우팅 경로 유동적
ㆍ 라우팅 프로토콜에 의해 라우팅 테이블이 구성됨 (자동)
ㆍ 복잡한 네트워크에 적합
ㆍ 내부라우팅(IGP): 같은 AS 내부에서 라우팅 정보를 교환하는 프로토콜
ㆍ 외부라우팅(EGP): 다른 AS에 속하는 라우팅 정보를 교환하는 프로토콜
ㆍ *AS: 하나의 관리자에 의해 운영되는 네트워크
RIP
ㆍ 내부라우팅
ㆍ 거리 벡터 알고리즘 사용
ㆍ 30초마다 모든 라우터의 정보를 업데이트 함
ㆍ 홉(=경유지) 수 제한 있음
ㆍ 홉이 0이 되면 패킷을 버림
ㆍ 구조가 간단하지만, 홉 수의 제한으로 비효율적인 라우팅이 이루어질 수 있음
ㆍ 소규모 네트워크에 적합
OSPF
ㆍ 내부라우팅
ㆍ 다익스트라 알고리즘 사용
ㆍ 상태 변화가 있을 시에만 라우터의 정보를 업데이트 함
ㆍ 홉 수 제한 없음
ㆍ 최단 경로 우선임
ㆍ 연결 속도 면에서 장점이지만, 알고리즘이 복잡함
ㆍ 대규모 네트워크에 적합
BGP
ㆍ 외부라우팅
ㆍ 거리 벡터 알고리즘 사용
ㆍ 상태 변화가 있을 시에만 라우터의 정보를 업데이트 함
ㆍ 패킷을 어떤 AS에 전달해야 하는지 알기 위해 사용
ㆍ 대규모 네트워크에 적합
참고
ㆍ https://c0mp.tistory.com/927
ㆍ https://better-together.tistory.com/118
ㆍ https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hai0416&logNo=221566797342
ㆍ https://codedatasotrage.tistory.com/45
ㆍ https://gakari.tistory.com/entry/%EB%AC%B8-RIP-OSPF-BGP%EB%A5%BC-%EB%B9%84%EA%B5%90-%EC%84%A4%EB%AA%85
ㆍ https://hackforus.tistory.com/5
ㆍ https://itragdoll.tistory.com/47
ㆍ https://websecurity.tistory.com/112