370 likes | 770 Views
컴퓨터 네트워크 7 주차. 수원과학대학교 정보통신과. 오늘의 목표. ARP 를 이해한다 . RARP 를 이해한다 . ICMP 를 이해한다 . IGMP 를 이해한다. 7.1 ARP. 주소 변환 프로토콜 (ARP: address resolution protocol) IP 주소를 MAC 주소로 변환 , MAC 주소를 알아야 전송이 가능 ARP operation. IP 주소 141.23.56.23 을 갖고 있는 호스트의 MAC 주소를 알려달라고 메시지를 브로드캐스팅. 해당 호스트가
E N D
컴퓨터 네트워크 7주차 수원과학대학교 정보통신과
오늘의 목표 • ARP 를 이해한다. • RARP 를 이해한다. • ICMP 를 이해한다. • IGMP 를 이해한다.
7.1 ARP • 주소 변환 프로토콜 (ARP: address resolution protocol) • IP 주소를 MAC 주소로 변환, MAC 주소를 알아야 전송이 가능 • ARP operation IP 주소 141.23.56.23을 갖고 있는 호스트의 MAC 주소를 알려달라고 메시지를 브로드캐스팅 해당 호스트가 자신의 물리주소는 A46EF45983AB라고 응답
ARP 패킷 형식 • HTYPE (hardware type) – LAN의 유형, 예로 이더넷의 경우는 1 • PTYPE (protocol type) – ARP를 사용하는 네트워크 프로토콜을 정의, 예로 IPv4의 경우는 0x0800 • HLEN (hardware length) –물리주소의 길이, 이더넷의 경우는 6 • PLEN (protocol length) - 네트워크주소의 길이, IPv4의 경우는 4 • OPER (operation) – ARP 요청인 경우는 1, 응답인 경우는 2 • SHA (sender hardware address) –송신 호스트의 물리주소 • SPA (sender protocol address) –송신 호스트의 네트워크 주소 • THA (target hardware address) –수신 호스트의 물리주소 • TPA (target protocol address) –수신 호스트의 네트워크 주소
Encapsulation of ARP Packet • ARP 패킷은 데이터링크층 프레임에 캡슐화(encapsulation)됨 • 이더넷 프레임의 type 필드는 0x0806으로 전송되는 데이터가 ARP임을 나타냄
ARP 헤더의 값 –예제 7.1 브로드캐스팅 물리주소 사용 수신호스트의 물리주소는 0으로 채워서 보냄 FFFFFFFFFFFF 0001 자신의 물리주소 자신의 물리주소로 응답
7.2 RARP • Reverse Address Resolution Protocol (역주소 변환 프로토콜) • 물리주소에 대응되는 IP 주소를 알아낼 때 사용 • 과거 디스크가 없는 시스템이 네트워킹을 하기 위해 IP 주소가 필요할 때 외부 서버로부터 받아오기 개발됨 • 현재는 보다 기능이 풍부한 BOOTP나 DHCP로 역할이 대체되어 사용되지 않음
7.3 ICMP • IP의 단점 • 여러가지 이유에 의해 패킷이 폐기되어도 발신지에게 그 사실을 통보할 수단을 보유하고 있지 않음 • 다른 라우터나 호스트의 상태를 파악하기 위한 방법 부재 • ICMP (internet control message protocol) • 위 2가지 단점을 보완하기 위한 IP의 보조프로토콜 • 네트워크층 프로토콜이나 IP 패킷에 캡슐화되어 전달됨 IP 헤더의 protocol 필드 값은 1
ICMP 메시지 형식 • Type – ICMP 메시지 타입 • Code –특정 메시지에 대한 세부 타입 • Checksum –전체 메시지 내용에 대한 16비트 checksum
7.3.1 ICMP 오류 보고 메시지 • ICMP 오류 보고의 특징 • 오류 메시지는 최초 송신지에게 전달된다. • 오류의 종류 • 목적지 도달 불가, 송신지 억제, 시간경과, 매개변수 문제, 재지정 • 오류가 보고되지 않는 경우 • ICMP 오류 메지지를 전달하는 데이터그램에 오류가 발생할 때 • 단편화된 첫번째 데이터그램이 아닌 데이터그램에 오류가 발생할 때 • 멀티캐스트 주소를 가진 데이터그램에 오류가 발생할 때 • 127.0.0.0이나 0.0.0.0과 같은 특별한 주소를 가진 데이터그램에 오류가 발생할 때 • 오류 메시지의 데이터 부분에는 원래 데이터그램의 IP 헤더와 데이터 중 처음 8바이트(TCP 나 UCP 포트번호가 포함된 TCP 헤더의 일부나 UDP 헤더)가 포함됨
목적지 도달 불가 (Desitnation Unreachable) 메시지 • 라우터나 호스트가 데이터그램을 라우팅하거나 배달할 수 없을 때 데이터그램을 폐기하고, 송신지 호스트에게 “ICMP Destination Unreachble”(목적지 도달 불가) 메시지를 보냄 • 코드 필드에 16개의 오류 코드를 기록하여 오류 원인을 표시함 • 표 9.6 참고
발신지 억제 (Source Quench) 메시지 • 라우터나 호스트에서 처리할 수 있는 속도 이상의 데이터그램이 계속 유입되어 버퍼의 용량를 초과하게 되면 데이터그램이 폐기되는데 이때 이 메시지를 발신 호스트로 보낸다. • 이 메시지를 받은 발신 호스트는 발신 속도를 일시적으로 떨어뜨린 후 다시 서서히 올리는 데 이 메시지가 또 수신되면 다시 속도를 떨어뜨림으로써 흐름제어를 제공한다.
시간 초과 (Time Exceeded) 메시지 • 데이터그램이 라우터를 통과할 때마다 TTL 필드값이 1씩 줄어드는데 이 필드가 0이되면 라우터는 이 데이터그램을 폐기하고 폐기 내역을 송신 호스트에게 통보한다 (Code 필드값 = 0). • 또한 단편이 손실되어 재조립 시간이 타임 아웃되었을 경우도 이 메시지가 송신호스트에게 전달된다 (Code 필드값 = 1). • 시간초과 메시지를 이용한 대표적인 응용: traceroute (Windows: tracert)
traceroute 목적지까지의 경로상에 위치한 라우터들의 주소를 알아낼 수 있다.
매개변수 문제 (Parameter Problem) 메시지 • 라우터나 호스트는 데이터그램의 IP 헤더 매개변수에 오류가 있을 경우 데이터그램을 폐기하고 parameter problem 메시지를 송신지로 보냄 • 포인터 필드값은 오류가 있는 위치를 가리킨다. • 코드 필드 • 0x00: 헤더의 필수 필드에 오류가 있다. • 0x11: 헤더의 옵션 필드에 오류가 있다.
재지정 (Redirect) 메시지 (1) • 경로 재지정 메시지로 라우터가 목적지 네트워크에 대해 더 좋은 경로가 있다는 것을 호스트에게 알려줌 • 재지정의 예
재지정 메시지 (2) • 코드값에 따라 재지정 정보가 결정됨
3.7.2 ICMP 질의 메시지 • 네트워크 문제 진단 목적 • 질의 메시지의 종류
에코요청과 응답 (Echo Request and Reply) 메시지 • 원격 네트워크나 호스트에 도달할 수 있는지를 테스트 하기 위한 것. • ICMP 에코 요구(Type&Code:0x0800) 메시지를 받은 원격 라우터나 호스트는 ICMP 에코 응답(Type&Code:0x0000)을 사용하여 수신된 메시지의 내용을 그대로 송신지로 보내준다. • 전형적인 예: ping • 송신측은 identifier와 sequence number에 ping 메시지마다 서로 다른 값을 부여함으로써 각 ping에 대한 응답메시지를 구별한다.
타임스탬프 요청과 응답 메시지 • 어떤 시스템이 다른 시스템에게 현재 시간을 알아보고자 할 때 사용된다. 이렇게 알아낸 시간 정보는 round-trip delay와 혼잡도를 측정할 때 사용한다. 요청하는 시스템은 originate timestamp 필드에 송신시간을 적어 보내고, 요청받은 시스템은 receive timestamp에 수신시간을 그리고 transmit timestamp에 응답을 전송하는 시간을 적어 보낸다. • 왕복시간(round-trip delay) = (응답을 받은 시간 – transmit time stamp) + (receive timestamp – original timestamp)
주소 마스크 요청과 응답 메시지 • 디스크가 없는 시스템이나 자신의 서브넷 마스크를 특별히 요청하고자 호스트가 사용한다. 라우터가 보통 이 메시지에 응답한다.
라우터 정보 요청과 광고 메시지 • 호스트가 자신의 네트워크에 연결된 라우터의 주소 및 라우터의 정상동작을 알고자 할 때 발송 • 라우터 요청(router solicitation) 메시지 형식 • 라우터 광고(router advertisement) 메시지 형식
7.4 IGMP • IGMP란? • Internet Group Management Protocol • 멀티캐스트 패킷을 라우팅하는 프로토콜이 아니라, IP 멀티캐스트 그룹의 소속원을 관리하는 프로토콜 • IP 멀티캐스트 그룹 – 특정 멀티캐스트 주소를 가진 IP 패킷을 주고받을 수 있는 호스트나 라우터 집단 • 멀티캐스트 라우터(mrouter) • 멀티캐스트 패킷을 보내주고, 멀티캐스트 그룹을 관리하는 라우터 • 멀티캐스트 그룹을 관리하는 프로토콜 – IGMP • 멀티캐스트 데이터를 전달하는 프로토콜 - IP
7.4.2 IP 멀티캐스팅의 특징 • 멀티캐스트 그룹의 멤버십은 동적이다. • 멀티캐스트 그룹의 크기 제한은 없다. • 한 멀티캐스트 그룹에 속하는 호스트들이 여러 네트워크에 산재해 있을 수 있다. • 호스트는 멀티캐스트 그룹에 속하지 않고도 멀티캐스트 패킷을 보낼 수 있다. • 호스트가 멀티캐스트 패킷을 받으려면 해당 응용 프로그램이 이를 IP에게 알려주어야, 이더넷의 주소를 프로그래밍하여 원하는 IP 멀티캐스트 주소에 대응하는 MAC 주소의 패킷을 받을 수 있음.
7.4.3 멀티캐스트 레벨 • 레벨 0: 멀티캐스트 패킷을 받지도 보내지도 않음 • 레벨 1: 멀티캐스트 패킷을 보내되 받지 않음 • 레벨 2: 멀키개스트 패킷을 보내고 받을 수 있음
7.4.4 멀티캐스트 주소 • 클래스 D 주소 • 224.0.0.0 ~ 239.255.255.255 • 224.0.0.0 – 사용 안함 • 224.0.0.1 ~ 224.0.0.255 – 라우팅 프로토콜용 • 224.0.1.0 ~ 238.255.255.255 – 멀티캐스트 응용 프로그램용 • 239.0.0.0 ~ 239.255.255.255 – 관리용 응용 프로그램용
7.4.5 IGMP 메시지 • IPv4의 IGMP의 버전은 IGMPv2 • IGMP 메시지 종류 • 일반질의(general query), 특별질의(special query), 멤버십보고(membership report), 탈퇴보고(leave report) • IGMP 메시지 형식 메시지 종류 일반/특별질의-0x11 멤버십보고 – 0x16 탈퇴보고 – 0x17 질의에 응답해야 하는 시간 10분의1초 단위 오류 검사
호스트의 동작 • 호스트의 동작 • 프로세스가 새로운 멀티캐스트 그룹에 참여한다면, 호스트는 멤버십 보고 메시지 발송 • 프로세스가 기존의 멀티캐스트 그룹에 참여한다면, 호스트는 아무 것도 안함 • 멀티캐스트 그룹에서 모든 프로세스가 탈퇴하였다면 탈퇴 보고 메시지를 발송
라우터의 동작 • 라우터의 동작 • 어떤 호스트가 새로운 멀티캐스트 그룹에 가입하였다면 멤버십 보고 메시지를 다른 라우터에게 발송 • 모든 호스트가 특정 멀티캐스트 그룹에서 탈퇴하였다면 탈퇴보고 메시지를 다른 라우터에게 발송하고 그룹 삭제 • 그룹 삭제시 특별 질의 메시지를 보내 삭제해도 되는 지 확인 • 탈퇴보고 없이 호스트가 종료되면 멀티캐스트 그룹에 계속 남기 때문에 주기적으로 일반 질의 메시지를 보내 확인
7.4.8 IP 멀티캐스팅 활용 • 파일 전송 • 음성/화상 회의 • 멀티캐스팅 방송