K 개발자

기타 네트워크 계층 프로토콜 본문

OS/네트워크

기타 네트워크 계층 프로토콜

ddingz 2021. 8. 2. 14:51

ARP 프로토콜

네트워크 환경에서 임의의 호스트가 다른 호스트에 데이터를 전송하려면 수신 호스트의 IP 주소뿐 아니라, MAC 주소도 알아야 한다.
수신 호스트의 IP 주소는 보통 응용 프로그램 사용자가 프로그램을 실행하는 과정에서 직접 입력하므로, IP 주소로부터 수신 호스트의 MAC 주소를 얻는 작업이 추가로 필요하다.

MAC 주소

IP 프로토콜 헤더에서 필요한 송수신 호스트의 IP 주소와 함께 MAC 계층에서도 송수신 호스트의 MAC 주소가 필요하다.
송신 호스트의 IP 주소는 자신의 파일시스템에 보관되어 있으므로 손쉽게 구할 수 있다.
또한 수신 호스트의 IP 주소는 일반 사용자가 접속하고자 하는 호스트의 IP 주소를 지정해준다.
사용자는 일반적으로 도메인 이름을 입력하는데, 도메인 이름은 DNS 서비스를 통해 IP 주소로 쉽게 변환할 수 있다.

ARP의 필요성

MAC 주소의 경우를 살펴보면 송신 호스트의 MAC 주소는 자신의 LAN 카드에 내장되므로 이 값을 읽으면 된다.
문제는 수신 호스트의 MAC 주소이다.
송신 호스트의 내부 정보로는 얻을 수 없다.
따라서 수신 호스트의 IP 주소를 매개변수로 하여 ARPAddress Resolution Protocol 기능을 통해 수신 호스트의 MAC 주소를 얻어야 한다.

RARP 프로토콜의 필요성

RARP의 필요성

ARP는 IP 주소를 이용해 해당 호스트의 MAC 주소를 제공하는 역할을 한다.
이와 유사한 기능을 수행하는 프로토콜인 RARPReverse Address Resolution Protocol는 반대로 MAC 주소를 이용해 IP 주소를 제공한다.
디스크가 존재하지 않는 시스템이나 X윈도우 터미널 등에서는 자신의 LAN 카드 정보를 읽어 MAC 주소를 얻을 수 있지만, 파일 시스템이 없으므로 IP 주소를 보관할 방법이 없다.
이런 경우 자신의 MAC 주소와 IP 주소의 매핑 값을 보관하는 서버 호스트로부터 IP 주소를 얻어야 한다.


ICMP 프로토콜

ICMPInternet Control Message Protocol는 인터넷 환경에서 오류에 관한 처리를 지원한다.
IP 프로토콜은 데이터 전송 과정에서 패킷 폐기 등의 오류가 발생해도 이를 보고하는 기능이 없다.
따라서 이를 대체 지원하기 위해 네트워크 계층 프로토콜인 ICMP는 오류가 발생한 IP 패킷에 대하여 그 원인을 송신 호스트에 전달한다.
TCP/IP 기반의 통신망에서 전송 과정에 문제가 발생하면 라우터에 의해 ICMP 메시지가 자동으로 발생한다.

ICMP 메시지

ICMP에 의해 발생하는 메시지의 종류는 크게 오류 보고 메시지와 질의 메시지로 나뉜다.
오류 보고 메시지Error-Reporting Message는 IP 패킷을 전송하는 과정에서 발생하는 문제를 보고하는 것이 목적이며, IP 패킷을 전송한 송신 호스트에 전달된다.
ICMP는 단순히 오류 발생 사실을 통보하는 것이므로 오류를 해결하는 것은 상위 계층의 몫이다.
주요한 오류 보고 메시지는 다음과 같다.

메시지 설명
DESTINATION UNREACHABLE 수신 호스트가 존재하지 않거나, 존재해도 필요한 프로토콜이나 포트 번호 등이 없어 수신 호스트에 접근이 불가능한 경우에 발생한다. IP 헤더의 DF 필드가 설정된 패킷을 라우터가 분할해야 하는 경우에도 해당 패킷을 버리고 이 메시지를 회신해준다.
SOURCE QUENCH 네트워크에 필요한 자원이 부족하여 패킷이 버려지는 경우에 발생한다. 이 메시지를 이용해 송신 호스트에 혼잡 가능성을 경고함으로써, 패킷을 송신하는 호스트가 데이터를 천천히 전송하도록 알릴 수 있다.
TIME EXCEEDED 패킷의 TTLTime To Live 필드 값이 0이 되어 패킷이 버려진 경우에 주로 발생한다. 기타 시간 초과 현상에 의해 패킷이 버려진 경우도 이에 해당한다.

질의 메시지Query Message는 라우터 혹은 다른 호스트들의 정보를 획득하려는 목적으로 사용되며 다음과 같다.

메시지 설명
ECHO REQUEST, ECHO REPLY 유닉스Unix의 ping 프로그램에서 네트워크의 신뢰성을 검증하기 위하여 ECHO REQUEST 메시지를 전송하고, 이를 수신한 호스트는 ECHO REPLY를 전송해 응답한다. 특정 호스트가 인터넷에서 활성화되어 동작하는지 확인할 수 있다.
TIMESTAMP REQUEST, TIMESTAMP REPLY 두 호스트 간의 네트워크 지연을 계산하는 용도로 사용한다.

IGMP 프로토콜

특정 그룹에 속하는 모든 호스트에 메시지를 전송하는 방식을 멀티캐스팅Multicasting이라 한다.
그리고 이때 필요한 라우팅 알고리즘을 멀티캐스트 라우팅Multicast Routing이라 한다.

그룹 관리

멀티캐스트 라우팅에서는 다수의 호스트를 논리적인 하나의 단위로 관리하기 위한 그룹 관리 기능이 필요하다.
그룹 관리의 주요 기능에는 그룹의 생성·제거, 전송 호스트의 그룹 참가·탈퇴 등이 있다.
목적지 주소가 멀티캐스트 그룹 주소로 지정된 패킷을 그룹의 모든 호스트에 전달하려면, 라우터가 입력 패킷을 호스트의 수만큼 복사해 전달하는 기능을 수행해야 한다.
멀티캐스팅은 다음과 같은 측면에서 유니캐스팅보다 복잡한 기능을 제공한다.

  • 다중 수신 호스트를 표시하는 멀티캐스트 그룹 주소 표기 방법을 통일해야 한다.
  • 라우터에서 IP 멀티캐스트 주소와 이 그룹에 속하는 멤버 호스트의 네트워크 주소 사이의 연관성을 처리할 수 있다.
  • 멀티캐스트 라우팅 알고리즘은 그룹에 속한 모든 멤버에게 도달하는 가장 짧은 경로를 선택하는 기능을 제공한다.

IGMP 메시지

IGMPInternet Group Management Protocol는 임의의 호스트가 멀티캐스트 주소로 정의된 멀티캐스트 그룹에 가입하거나 탈퇴할 때 사용하는 프로토콜이다.
또한 멀티캐스트 그룹에 가입한 호스트와 라우터 사이에 멤버 정보를 교환하는 용도로도 사용된다.
IGMP 메시지는 크게 질의 메시지Query Message와 보고 메시지Report Message로 구분된다.
질의 메시지는 멀티캐스트 라우터가 그룹에 대한 정보를 얻기 위하여 호스트에 전달하며, 이에 대한 응답으로 호스트가 보고 메시지를 회신한다.

'OS > 네트워크' 카테고리의 다른 글

TCP 프로토콜  (0) 2021.08.03
전송 계층의 기능  (0) 2021.08.02
이동 IP 프로토콜  (0) 2021.08.01
IPv6 프로토콜  (0) 2021.08.01
IP 프로토콜  (1) 2021.07.31
Comments