2012-01-02 3 views
-1

레이어 2 (이더넷 레이어)는 ARP 프로토콜을 사용하여 MAC 주소를 인식합니다. 그것은 "모든 MAC 주소에 IP x가 있습니까?"라는 질문을 전체 네트워크에 보냅니다. 이것이 목적지 MAC 주소를 인식하는 방법입니다.레이어 3 (네트워크 레이어)는 IP 주소를 어떻게 인식합니까?

하지만 레이어 3 (IP 레이어)은 어떻게 IP 주소를 알고 있습니까? 전송 레이어 (레이어 4)에서 전달되지 않습니다. 포트 번호 만 전달됩니다.

내가 구체적 일 것을 희망합니다. 미리 감사드립니다.

답변

1

패킷과 관련된 두 개의 IP 주소 인 송신 (발신지라고도 함) IP와 대상 IP가 있습니다.

송신 IP - 송신 IP는 사소한 것으로 패킷을 전송할 네트워크 인터페이스의 구성 매개 변수입니다. DHCP를 통해 최신 네트워크에서 정적 또는보다 일반적으로 구성됩니다.

대상 IP - 대상 컴퓨터가 대상 컴퓨터가 로컬 컴퓨터인지 아니면 원격 컴퓨터인지에 따라 대상 IP가 약간 더 복잡 할 수 있습니다. 이 경우 원격은 대상 컴퓨터가 원본 컴퓨터와 동일한 서브넷에 있지 않음을 의미합니다.

원격 대상 DNS 서버 이름은 < -> IP 해상도로 사용됩니다. DNS는 사람들이 www.espn.com과 같은 우리의 힘을 사용하는 것을 허용하는 반면 컴퓨터는 10.5.0.1과 같은 IP 주소의 비트 표현을 사용할 수 있습니다. DNS 확인은 여러 가지 방법으로 구성 할 수 있지만 기본적으로 로컬 캐시를 검사하여 이전의 해결 방법이 있는지 확인하고 하나 이상의 DNS 서버에 쿼리를 해결하지 않는지 확인하는 것으로 끝납니다.

대상 컴퓨터가 로컬 인 경우 동일한 서브넷에서 MAC < -> IP 변환에 ARP/RARP가 사용됩니다. 새로운 ARP 요청을 생성하기 전에 (따라서 네트워크 대역폭을 사용하여) 캐시가 먼저 검사됩니다 (이 경우 ARP 캐시).

이 정보가 도움이되기를 바랍니다.

+0

답변 해 주셔서 감사합니다. 하지만 내 실제 질문은 : 레이어 3에서 수신하는 레이어 4는 IP 주소 (또는 호스트 이름)에 관한 내용을 포함하지 않습니다. 그래서, 어디에서 가져 왔습니까? 다른 말로하면 7 개 레이어에 동시에 사용할 수있는 공통적 인 또는 전체적인 정보 소스가 있습니까? 아니면 모든 레이어가 그 레이어의 정보 만 가져올 수 있습니까? 나는 분명하다. – Tony

+0

@Tony 당신은 당신의 근본적인 주장에 착각했습니다. – EJP

1

모든 레이어는 위의 레이어에 대한 인터페이스를 제공합니다. 이 인터페이스를 통해 layer4가 대상 IP 주소 인 layer3을 보냅니다. layer5 (응용 프로그램 계층)는 대화하려는 대상 IP 주소를 layer4로 보냅니다. 그러면 layer4가 계층 3으로 보냅니다. Layer3은 IP 패킷에 이것을 포함하고 layer2에이 패킷을 전달합니다 (목적지의 MAC 주소와 같은 다른 것들과 함께).

함수를 호출 할 때 인수를주는 것과 같습니다. layer4이 send_packet(srcIP, destIP)

1

처럼 될 수있다, 그것을 호출하지만 어떻게 3 (IP 층) 레이어 않는 IP 주소를 알고, 레이어 3에서 제공하는 인터페이스는 send_packet()입니다 가정? 전송 레이어 (레이어 4)에서 전달되지 않습니다. 포트 번호 만 전달됩니다.

정확하지 않습니다. TCP 또는 UDP 모두 실제로 IP 주소를 전달하는 명시적인 bind() 작업을가집니다. TCP에는 명시적인 connect() 작업도 있으며 IP 주소와 암시 적으로 bind() 작업을 전달하며 원본 IP 주소는 유니 캐스트 IP 라우팅 테이블에서 계산됩니다.

관련 문제