IP, MAC, ARP, ICMP란 무엇인가요?
IP는 영어 Internet Protocol(네트워크 간 상호 연결을 위한 프로토콜)의 약어이고, 중국어 약어는 "Network Association"으로 컴퓨터 네트워크가 서로 연결되어 통신하도록 설계된 프로토콜입니다. 인터넷에서는 인터넷에 연결된 모든 컴퓨터 네트워크가 서로 통신할 수 있도록 하는 일련의 규칙으로, 인터넷에서 통신할 때 컴퓨터가 준수해야 할 규칙을 규정합니다. 모든 제조업체에서 생산한 컴퓨터 시스템은 IP 프로토콜을 준수하는 한 인터넷과 상호 연결할 수 있습니다. IP 주소는 고유하며 사용자의 성격에 따라 5가지 범주로 나눌 수 있습니다. 또한 IP에는 접근보호, 지적재산권, 포인터 레지스터 등의 의미도 있습니다.
MAC: Media Access Control MAC 프로토콜의 가장 중요한 기능은 인터넷상의 스테이션이 채널을 점유하는지 여부, 즉 채널 할당 문제를 결정하는 것입니다. 공유 채널의 경우 일반적으로 사용되는 것은 무엇입니까? 충돌 없는 채널 액세스 프로토콜(폴링, 예약, 주파수 분할, 시분할 등) 충돌 충돌 채널 액세스 프로토콜 기존 이더넷은 버스 구조를 사용하고 MAC는 채널을 점유하기 위해 경쟁 방식을 사용합니다(CSMA). /CD) CSMA/CD MAC 프로토콜의 주요 기능은 공정성과 효과적인 자원 공유를 보장하는 ALOHA의 아이디어에서 비롯된 CSMA입니다. MAC 메커니즘은 주로 두 가지 범주로 나뉩니다. 1. 경쟁 기반 프로토콜 2. 경쟁 없는 채널 프로토콜. 경쟁 기반 프로토콜은 네트워크에 채널 자원을 할당할 중앙 엔터티가 없다고 가정합니다. 각 노드는 전송할 미디어 자원을 두고 경쟁해야 합니다. 둘 이상의 노드가 동시에 전송을 시도하면 충돌이 발생합니다. 이와 대조적으로, 무경합 프로토콜은 통신해야 하는 각 노드에 전용 채널 리소스를 할당합니다. 무경합 프로토콜은 버스트 데이터 서비스에 대한 채널 활용도를 낮추는 대신 충돌을 효과적으로 줄일 수 있습니다.
ARP 프로토콜은 "Address Resolution Protocol"의 약어입니다. LAN에서 실제로 네트워크에 전송되는 것은 "프레임"이며, 프레임에는 대상 호스트의 MAC 주소가 포함됩니다. 이더넷에서 호스트가 다른 호스트와 직접 통신하려면 대상 호스트의 MAC 주소를 알아야 합니다. 그런데 이 대상 MAC 주소는 어떻게 얻나요? 이는 주소 확인 프로토콜을 통해 획득됩니다. 소위 "주소 확인"은 호스트가 프레임을 보내기 전에 대상 IP 주소를 대상 MAC 주소로 변환하는 프로세스입니다. ARP 프로토콜의 기본 기능은 원활한 통신을 위해 대상 장치의 IP 주소를 통해 대상 장치의 MAC 주소를 쿼리하는 것입니다.
ICMP 프로토콜은 크게 두 가지 범주로 나누어집니다. 하나는 쿼리 메시지이고 다른 하나는 오류 메시지입니다. 쿼리 메시지의 용도는 다음과 같습니다. 1. 핑 쿼리(핑 프로그램을 모른다고 말하지 마세요) 2. 서브넷 마스크 쿼리(디스크 없는 워크스테이션이 자체적으로 초기화될 때 서브넷 마스크를 초기화하는 데 사용됨) 3. 타임스탬프 쿼리 (시간을 동기화하는 데 사용할 수 있음)
1. ICMP 프로토콜 소개 IP 프로토콜은 데이터 전달을 보장하지 않습니다. 당연히 데이터 전달을 보장하는 작업은 다른 사람이 수행해야 합니다. 완료할 모듈. 중요한 모듈 중 하나는 ICMP(Network Control Message) 프로토콜입니다. IP 데이터 패킷을 전송할 때 호스트에 연결할 수 없거나 경로에 연결할 수 없는 등 오류가 발생하면 ICMP 프로토콜은 오류 정보를 캡슐화하여 호스트로 다시 보냅니다. 호스트에게 오류를 처리할 수 있는 기회를 제공하십시오. 이것이 IP 계층 위에 구축된 프로토콜이 잠재적으로 안전한 이유입니다. ICMP 데이터 패킷은 8비트 오류 유형, 8비트 코드 및 16비트 체크섬으로 구성됩니다. 처음 16비트는 ICMP가 전송할 정보를 구성합니다. 책의 그림 6-3은 오류 유형과 코드의 조합이 무엇을 나타내는지 명확하게 보여줍니다. 대부분의 경우 잘못된 패킷 전달로 인해 ICMP 오류 메시지가 생성되어야 하지만, 특별한 경우에는 ICMP 오류 메시지가 생성되지 않습니다. 다음과 같습니다: 1. ICMP 오류 메시지는 ICMP 오류 메시지(IMCP 쿼리 메시지)를 생성하지 않습니다(IMCP의 무제한 생성 및 전송을 방지하기 위해). 2. 대상 주소가 브로드캐스트 주소 또는 멀티캐스트 주소인 IP 데이터그램. 3. 링크 계층에서 브로드캐스트하는 데이터그램입니다. 4. IP 단편화의 첫 번째 부분은 아닙니다. 5. 소스 주소는 단일 호스트에 대한 데이터그램이 아닙니다.
즉, 소스 주소는 0 주소, 루프백 주소, 브로드캐스트 주소 또는 멀티캐스트 주소가 될 수 없습니다. 일부 규정은 아직 명확하지 않지만 이러한 모든 규정은 ICMP 메시지의 무제한 전파를 방지하기 위해 정의되었습니다. ICMP 프로토콜은 크게 두 가지 범주로 나누어집니다. 하나는 쿼리 메시지이고 다른 하나는 오류 메시지입니다. 쿼리 메시지에는 다음과 같은 용도가 있습니다: 1. 핑 쿼리(핑 프로그램을 모른다고 말하지 마세요) 2. 서브넷 마스크 쿼리(디스크 없는 워크스테이션이 자체적으로 초기화될 때 서브넷 마스크를 초기화하는 데 사용됨) 데이터 전송 중 오류가 발생하면 타임스탬프 쿼리(시간을 동기화하는 데 사용할 수 있음) 및 오류 메시지가 생성됩니다. 자세한 내용은 다루지 않겠습니다. 2. ICMP 애플리케이션 Ping은 특정 웹사이트에 접속할 수 없을 때 사용되는 가장 유명한 ICMP 애플리케이션이라고 할 수 있습니다. 일반적으로 이 웹사이트를 ping합니다. 핑은 몇 가지 유용한 정보를 다시 표시합니다. 일반 정보는 다음과 같습니다: 10.4.24.1에서 응답: bytes=32 time<1ms TTL=255 10.4.24.1에서 응답: bytes=32 time<1ms TTL=255 10.4.24.1에 대한 Ping 통계: 패킷: 전송됨 = 4, 수신됨 = 4, 손실됨 = 0(0% 손실), 대략적인 왕복 시간(밀리초): 최소값 = 0ms, 최대값 = 0ms, 평균 = 0ms 핑이라는 단어는 소나 포지셔닝에서 유래하며 이 프로그램은 정확히 이를 수행합니다. 프로토콜 패킷을 사용하여 다른 호스트에 연결할 수 있는지 여부를 감지합니다. 원칙은 유형 코드 0의 ICMP를 사용하여 요청을 보내고, 요청을 받은 호스트는 ICMP 유형 코드 8로 응답하는 것입니다. ping 프로그램을 사용하여 간격을 계산하고 전달된 패킷 수를 계산합니다. 사용자는 네트워크의 전반적인 상황을 판단할 수 있습니다. ping이 전송 시간과 TTL 데이터를 제공하는 것을 볼 수 있습니다. 제가 제시한 예는 경로가 적고 일부 패킷 손실이 관찰될 수 있으며 프로그램 실행 시간이 길어지기 때문에 그다지 좋지 않습니다. Ping은 또한 호스트에서 대상 호스트까지의 경로를 볼 수 있는 기회를 제공합니다. 이는 ICMP 핑 요청 데이터그램이 라우터를 통과할 때마다 라우터가 자신의 IP 주소를 데이터그램에 넣기 때문입니다. 대상 호스트는 이 IP 목록을 응답 ICMP 데이터 패킷에 복사하여 호스트로 다시 보냅니다. 그러나 어떠한 경우에도 IP 헤더에 기록될 수 있는 경로의 목록은 매우 제한적입니다. 라우팅을 관찰하려면 Traceroute(Windows에서는 Tracert라고 함)라는 더 나은 도구를 사용해야 합니다. 3. ICMP 적용 Traceroute는 호스트와 대상 호스트 간의 라우팅 상황을 감지하는 데 사용되는 중요한 도구이자 가장 편리한 도구이기도 합니다. 앞서 언급했듯이 ping 도구는 탐지도 수행할 수 있지만 IP 헤더의 제한으로 인해 ping은 통과하는 라우터를 완전히 기록할 수 없습니다. 따라서 Traceroute는 이러한 격차를 메워줍니다. Traceroute의 원리는 매우 흥미롭습니다. 대상 호스트의 IP를 수신한 후 먼저 TTL=1(TTL이 무엇인지 기억하시나요?)의 UDP(UDP가 무엇인지 알 수 있음) 데이터 패킷을 대상 호스트로 보냅니다. 통과한 첫 번째 라우터는 이 데이터 패킷을 수신한 후 자동으로 TTL을 1씩 감소시킵니다. TTL이 0이 된 후 라우터는 해당 패킷을 폐기하고 동시에 호스트에 연결할 수 없음을 나타내는 ICMP 데이터그램을 생성합니다. 주인. 이 데이터그램을 받은 후 호스트는 TTL=2인 UDP 데이터그램을 대상 호스트에 보낸 다음 두 번째 라우터가 호스트에 ICMP 데이터그램을 보내도록 자극합니다. 이는 대상 호스트에 도달할 때까지 앞뒤로 진행됩니다. 이러한 방식으로 Traceroute는 모든 라우터 IP를 가져옵니다. 이렇게 하면 IP 헤더가 제한된 라우팅 IP만 기록할 수 있다는 문제가 방지됩니다.
누군가가 UDP가 대상 호스트에 도달했는지 어떻게 알 수 있는지 묻고 싶어합니다. 이는 기술적인 문제와 관련이 있습니다. TCP 및 UDP 프로토콜에는 포트 번호 정의가 있지만 일반 네트워크 프로그램은 80, 23 등과 같이 더 작은 숫자의 포트만 모니터링합니다. Traceroute는 포트 번호가 30000보다 큰(정말 비정상) UDP 패킷을 전송하므로 대상 호스트에 도달하면 대상 호스트는 연결할 수 없는 포트가 있는 ICMP 데이터그램만 호스트에 보낼 수 있습니다. 이 보고서를 받은 호스트는 호스트가 도착했음을 알게 됩니다. 따라서 Traceroute는 거짓말쟁이라고 해도 과언이 아닙니다. :) Traceroute 프로그램은 IP 라우팅 옵션을 포함하여 매우 유용한 옵션을 제공합니다. 문서를 이해하기 위해 여기서는 자세히 설명하지 않겠습니다.