해당 주차에서의 질문들은 네트워크의 가장 기본적인 개념인 5계층인 Network Layer에 대한 내용을 다루고 있습니다.
해당 내용들은 굳이 추가 정리할 이유가 없기 때문에 별도의 정리를 하지 않고 한번에 답변을 적는 것으로 마무리 하겠습니다.
IP 주소는 네트워크 장치의 위치를 표현하기 위해서 사용하는 주소 체계입니다.
IP 주소는 기본적으로 32비트 혹은 128비트로 구성되어 있으며 10진수의 숫자 혹은 16진수 숫자로 이루어져 있습니다. 각 숫자는 콜론으로 구분되며 이것을 통해서 고유한 위치를 표현할 수 있습니다.
과거에 클래스 기반의 주소 체계를 사용하다가 CIDR 방식의 주소 체계로 변경되었으며 서브넷을 사용하여 호스트 그룹과 호스트들을 구분하는 방식으로 체계적인 주소 체계를 이루고 있습니다.
IPv4는 32비트의 숫자로 고유한 주소를 나타내는 방식이고, IPv6는 128비트의 숫자로 고유한 주소를 나타내는 방식입니다.
과거에는 32비트의 숫자만을 가지고 충분히 모든 주소를 표현할 수 있었지만, 네트워크의 발달로 인해서 모든 네트워크 장치들의 주소를 담기 힘들어졌기 때문에 128비트의 주소 체계를 사용하는 방식이 추가되었습니다.
IPv4는 10진수의 숫자들과 콜론으로 표현되며, IPv6는 16진수의 숫자들과 콜론으로 표현됩니다.
이 외에도 보안적인 측면으로 IPsec의 차이가 존재하고, 멀티캐스트와 같은 부분에서 차이가 존재합니다.
서브넷은 호스트들의 그룹을 표현하기 위해서 사용하는 표현 방식으로 네트워크 그룹망을 형성할 수 있습니다. 서브넷 마스크는 IP 주소 체계 표현 방식에서 해당 그룹이 어떠한 IP 주소를 가지고 있는지 알려줍니다.
라우팅은 네트워크 내에서 데이터 패킷이 목적지까지 최적의 경로를 따라 이동하도록 하는 과정입니다. 이 과정에서 라우터가 사용되며 라우터는 다른 네트워크 장치들과 정보를 교환하여 최적의 데이터 경로를 결정합니다.
라우팅을 수행하기 위해서 패킷 포워딩, 라우팅 알고리즘 등이 사용될 수 있고, 동적혹은 정적인 방식으로 구분될 수 있습니다.
Public IP는 네트워크에서 사용되는 고유한 IP 주소를 의미하고, Private IP는 네트워크 사설망에서만 사용할 수 있는 IP 주소를 의미합니다.
Public IP는 외부 통신을 하기 위해서 사용되는 것에 반해, Private IP는 사설망에서 사용되기 때문에 보안적으로 사용될 수 있으며 이를 위해서 별도의 NAT와 같은 작업을 요구합니다.
라우팅 프로토콜은 라우팅을 적절하게 수행하기 위해서 최적의 경로를 결정하는데 사용되는 프로토콜입니다.
라우팅 프로토콜의 주된 목적은 네트워크의 현재 상태를 기반으로 최적의 경로를 동적으로 계산하고, 이 정보를 네트워크 내의 다른 라우터와 공유하여 데이터 패킷이 목적지까지 효율적으로 전송될 수 있도록 하는 것입니다.
라우팅 프로토콜은 IGP와 BGP로 구분될 수 있으며, IGP는 내부 네트워크의 라우팅을 결정하기 위해서 사용되는 것으로 대표적인 알고리즘으로 OSPF가 있습니다. BGP는 AS간에 라우팅을 결정하기 위한 프로토콜로 AS 정책에 맞게 설계됩니다.
고유한 IP 주소는 ISP로부터 할당을 받습니다. 만약, 호스트가 동적으로 IP 주소를 할당받으려면 DHCP를 이용하여 IP 주소를 할당받게 됩니다.
DHCP는 사용자가 특정 네트워크 내에서 사용할 수 있는 IP 주소를 동적으로 할당해주고, 이 과정에서 Discover, Offer, Request, Acknowledge 로 구성된 4단계의 브로드캐스트 과정을 수행합니다.
NAT는 Network Adress Translation의 약자로, 공인 IP 주소와 사설 IP 주소간의 변환을 수행하는 프로세스입니다. 하나의 공인 IP 주소와 여러 개의 사설 IP 주소를 연결하여 사설 네트워크 내에 있는 여러 장치들이 고유한 IP 주소를 사용할 수 있도록 해줍니다.
라우터 혹은 스위치 L4 이상에서 사용될 수 있으며, 해당 기능을 통하여 IP 주소를 효율적으로 사용할 수 있으며 사설망의 IP 주소를 숨겨주기 때문에 보안적인 이점도 가져올 수 있습니다.
ICMP는 Internet Control Message Protocol의 약자로, 패킷이 어떠한 중간 장치를 거쳐가는지 확인하는데 사용될 수 있으며 그 과정에서 네트워크의 상황을 확인할 수 있게 해줍니다.
ICMP는 네트워크 장치간의 오류 메시지와 운영 정보를 전달하는데 사용됩니다. 주요 기능으로 오류 보고와 진단 도구로 ping과 traceroute의 작동을 기반으로 합니다.
작동 방식으로는 네트워크 계층 기반의 동작을 수행하기 때문에 IP 데이터그램안에 캡슐화되어 전송되고 각 메시지에는 메시지 유형과 코드가 포함되어 있습니다. 목적지 도달 불가 혹은 TTL 만료와 같은 상황을 알려줍니다.