adsense

글 목록

ARP, ICMP 에 대하여

ARP(Address Resolution Protocol)

정보 전달 과정에서, 다음 홉의 IP 주소를 찾기 위해 라우팅 테이블을 참조한다.
IP는 데이터링크 계층의 서비스를 이용하므로 다음 홉의 물리주소(MAC)가 필요하다.


이 때


정적 변환 시
논리 주소와 물리 주소를 연관시키는 테이블을 사용한다.

이 경우 다음과 같은 한계가 존재한다.

  1. 기계는 NIC(Network Interface Card) 바꿀 수 없고, 새 물리주소를 가지게 된다.
  2. LocalTalk와 같은 LAN의 경우, 컴퓨터가 켜질 때마다 물리주소가 변한다.
  3. 이동 컴퓨터는 하나의 물리적 네트워크에서 다른 네트워크로 이동할 수 있고, 이 경우 물리 주소가 변한다.
이를 위해서 변환 테이블을 주기적으로 갱신해야 한다.(네트워크에 큰 오버헤드)


동적 변환 시
주소 변환 프로토콜(ARP:Address Resolution Protocol), RARP(Reverse ARP) 등의 프로토콜을 이용한다.





ARP 프로토콜

IP 프로토콜로부터 논리주소를 받아 이에 해당하는 물리주소로 변환 후, 데이터링크 계층에 전달하는 역할을 수행한다.
TCP_IP Protocol Suite 4th ed. - B. Forouzan (McGraw-Hill, 2010)



ARP 동작 과정

TCP_IP Protocol Suite 4th ed. - B. Forouzan (McGraw-Hill, 2010)













다른 호스트라우터의 물리 주소 필요 시 ARP 질의 패킷 네트워크 상에 브로드캐스트
해당되는 수신자만이 IP주소 인식하고 ARP 응답 패킷 유니캐스트




  1. 송신자의 타깃 IP 주소 알고 있는 상황에서 ARP에게 요청 메시지 생성하도록 요청송신자의 MAC/IP 주소타깃 IP주소는 채워지지만 MAC주소는 0으로 채워짐
  2. 메시지는 데이터링크에 전달되고 송신자의 MAC주소를 발신지 주소로, MAC 브로드캐스트 주소를 목적지 주소로 하는 프레임에 의해 캡슐화
  3. 모든 호스트라우터는 이 프레임 수신하여 자신의 ARP에게 전달타깃만을 제외하고 이 패킷 폐기타깃은 IP 주소 인식
  4. 자신의 MAC 주소 포함하는 ARP 메시지 응답 유니캐스트
  5. 송신자는 응답 메시지 통해 타깃의 MAC 주소 확인
  6. IP 데이터그램은 이 MAC 주소 가지는 프레임으로 캡슐화되어 유니캐스트




ICMP(Internet Control Message Protocol)

IP 프로토콜은 오류 보고와 오류 수정 기능이 없다.
이를 보완하기 위해 ICMP가 설계되었다.



TCP_IP Protocol Suite 4th ed. - B. Forouzan (McGraw-Hill, 2010)



ICMP는 직접 데이터링크 계층으로 전달되지 않고 IP 데이터그램 내에 캡슐화된다.






메시지 유형


TCP_IP Protocol Suite 4th ed. - B. Forouzan (McGraw-Hill, 2010)




오류 보고(error-reporting) 메시지
라우터나 호스트가 IP 패킷을 처리하는 도중 탐지되는 문제를 보고한다.

최초의 발신지로 오류 메시지를 보고한다.(오류 수정하지 않음)

ICMP 오류 메시지에 대한 주요사항
  • ICMP 오류 메시지를 전달하는 데이터그램에 대해서는 ICMP 오류 메시지 생성 안됨
  • 처음 단편이 아닌 단편화된 데이터그램에 대해서는 ICMP 오류 메시지 생성 안됨
  • 멀티캐스트 주소를 가진 데이터그램에 대해서는 ICMP 오류 메시지 생성 안됨
  • 127.0.0.0이나 0.0.0.0같은 특별한 주소 가진 데이터그램에 대해서는 오류 메시지 생성 안됨



TCP_IP Protocol Suite 4th ed. - B. Forouzan (McGraw-Hill, 2010)



목적지 도달 불가(destination Unreachable)
  • 라우터가 데이터그램을 전달할 수 없거나 호스트가 데이터그램을 배달할 수 없을 때 데이터그램은 폐기되고 라우터나 호스트는 데이터그램을 시작했던 발신지 호스트에게 목적지 도달 불가(destination unreachable) 메시지 전송
  • 라우터가 패킷 배달하는 모든 문제 발견할 수 없으므로 목적지 배달 불가 메시지를 보고하지 않았다고 해서 데이터그램이 배달된 것은 아님




발신지 억제(Source quench)
  • IP 흐름 제어와 혼잡 제어 기능과 유사한 기능을 추가하기 위해 설계
  • 혼잡으로 인해 데이터그램 폐기하면 데이터그램의 송신자에게 발신지 억제 메시지 전송데이터그램이 폐기되었음을 발신지에 알림
  • 경로상에서 혼잡 일어났으므로 발신지는 송신을 천천히 하여야 함을 경고
  • 혼잡을 겪고 있는 라우터나 목적지 호스트는 폐기되는 데이터그램 하나 당 발신지 억제 메시지 하나를 발신지 호스트에 보내야 함
  • 혼잡 해소되었음을 알리는 매커니즘은 없기 때문에 발신지 억제 메시지가 수신되지 않을 때까지 송신 속도를 낮춰야 함




시간 경과(Time exceeded)
라우터가 데이터그램의 수명 필드를 감소한 후 이 값이 0이 되면 데이터그램을 폐기하고 시간 경과 메시지를 원 발신지에게 전송
최종 목적지가 정해진 시간 내에 모든 단편을 받지 못한 경우 이미 수신된 단편은 폐기하고 원래의 발신지로 시간 경과 메시지를 전송




매개변수 문제(Parameter problem)
  • 데이터그램의 헤더 부분에 불명확하거나 빠진 값 발견 시 데이터그램 폐기하고 매개변수 문제 메시지를 발신지에 전송




재지정(Redirection)
  • 인터넷 내에는 라우터 수보다 더 많은 호스트가 존재하므로 효율성 이유로 호스트는 라우팅 갱신 프로세스에 참여하지 않음
  • 일반적으로 호스트는 정적 라우팅 사용하여 다른 네트워크로 데이터그램을 전송할 때 잘못된 라우터에게 전송 할 수 있음
  • 데이터그램 받은 라우터는 호스트의 라우팅 테이블 갱신 위해 호스트에게 재지정 메시지 전송




질의(query) 메시지
호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용한다.



에코 요청과 응답(echo request and reply)
  • 고장 진단의 목적으로 설계
  • 네트워크 관리자가 IP 프로토콜의 동작을 검사하기 위하여 사용할 수 있음
  • 호스트의 도달 가능성(reachability) 검사 할 수 있음



타임스탬프 요청과 응답
  • IP 데이터그램이 두 시스템 사이를 지나는데 필요한 왕복시간 확인 및 두 장치의 시계 동기화 


송신 시간 수신 타임스탬프 – 원래 타임스탬프
수신 시간 패킷이 돌아온 시간 – 전달 타임스탬프
왕복 시간 송신 시간 수신 시간
시간 차 수신 타임스탬프 – (원래 타임스탬프 편도 시간 구간)


Ex)
원래 타임스탬프 값 : 46
전달 타임스탬프 값 : 59
수신 타임스탬프 값 : 60
패킷 도착 시간 : 67





송신 시간 = 59 – 46 = 13ms
수신 시간 = 67 – 60 = 7ms
왕복 시간 = 13 + 7 = 20ms
시간 차 = 59 – (46+10) = 3ms