라우터가 연결된 장치를 어떻게 감지합니까? (ENC28J60 모듈)


0

배경:

저는 실제로 Arduino 초보자이며 이더넷을 통해 인터넷에 연결하는 법을 배우고 있습니다.

저는 Wiznet W5100 / W5200 칩을 기반으로하는보다 보편적으로 사용되는 이더넷 쉴드를 사용하지 않고 ENC28J60 칩을 사용합니다. 차이점은 TCP 처리 (?)가 소프트웨어로 수행되어야한다는 것입니다 반면 W5100 / W5200 칩에는 하드웨어가 내장되어 있습니다.

나는 코드로 불만을 처리하는 라이브러리를 사용하고있다. 나는 완전히 이해하지는 못했지만 Arduino를 웹 서버와 웹 클라이언트로 설정하는 데 이미 성공했습니다.

문제:

내 문제는 일관성입니다. 종종 Arduino + 이더넷 모듈은 라우터에 의해 감지되지 않으므로 IP 주소를 얻지 못하기 때문에 작동하지 않습니다. LAN 케이블 문제는 아닙니다. 내가 컴퓨터에 연결하면 라우터의 클라이언트 테이블에 나타나지만 이더넷 모듈을 통해 장치 (즉, Arduino)에 연결하면 나타나지 않습니다.

내 질문은 : 라우터가 컴퓨터 / 연결된 장치를 어떻게 감지합니까? Google에서 검색 한 결과 "컴퓨터가 라우터를 어떻게 감지합니까?"라는 결과가 나타났습니다. 나는 다른 방향으로 그것을 원한다.

나는 라우터가 탐지를하는지에 대한 일반적인 이해를 원한다. 왜냐하면 나는 연결 실패가 장치 측인지 아니면 라우터 측인지를 판단 할 수 없기 때문이다.

나는 네트워킹에 관한 기술에 대해 무지하지만 PING-ing 및 DHCP와 고정 IP 주소의 개념에 익숙합니다.이 모든 것이 실제 연결을 통해 배제됩니다. 이것이 저의 걸림돌입니다. 문제가 실제로 어디 있는지 알아 내려면 평신도 설명이나 적어도 몇 가지 문제 해결 팁을 부탁드립니다.


라이브러리를 사용하고있는 링크를 게시 할 수 있습니까? 당신의 칩 + arduino + 라우터의 이름에 대한 봤어? IIRC Arduino는 이더넷 쉴드를 USB와 공유합니다. USB 대역폭을 많이 사용하는 장치가 있습니까?
lorenzog

실드는 SPI 버스를 사용하고 USB는 UART를 공유합니다. 나는 Arduino에 아직도 아주 새롭다, 그래서 "은행에 그것을"가지고 가지 않는다 :) 나는 도서관이 문제다고 생각하지 않는다, 나는 그것을 한 번 일하고 그러나 얻지 못했다 왜 지금은 그렇지 않은지 알겠습니다. 하드웨어와 관련이있어서 케이블 자체에서 무슨 일이 벌어지고 있는지 이해하려고합니다.
Bouncing_Back

답변:


1

모든 라우터에는 적어도 두 개의 네트워크 인터페이스가 있습니다. 이 답변을 위해 라우터에 WAN 이더넷 및 LAN + 무선 이더넷 (일반적으로 브리지로 연결되어 사실상 단일 인터페이스)의 두 가지 인터페이스 만있는 일반적인 가정 설치를 가정합니다.

라우터가 WAN 인터페이스에서 DHCP 요청을 발행하면 ISP의 DHCP 서버가 공개 IP 정보로 응답합니다. 그런 다음 라우터는이를 사용하여 WAN 인터페이스의 IP를 구성합니다.

라우터 자체는 대개 LAN을 통해 연결된 IP에 IP를 전달하는 자체 DHCP 서버를 실행합니다. WAN 인터페이스에 IP를 제공하지 않습니다.

대안으로 APIPA가 있습니다.이 장치는 APIPA 범위에서 임의의 IP를 선택하고 다른 사람이이 장치를 사용하고 있는지 확인하기 위해 ARP를 발급 한 다음 아무도 응답하지 않으면 장치를 사용하기 시작합니다. APIPA 서브넷이 아닌 다른 서브넷을 사용하려는 경우에는 좋지 않습니다.

IPv6 자동 구성도 비슷하게 작동합니다.

Arduino에 대한 많은 경험이 없지만 DHCP 클라이언트 기능이 필요합니다.


1
귀하의 회신에 감사 드리며, 나는 그것이 유용하다고 생각하지만 투표 할 수는 없습니다. 그것은 그 전선들 사이에서 일어나는 일들과 외부에 대한 평신도들의 이해를 도왔습니다! ARP가 더 자세히 무엇인지 찾아야합니다 :)
Bouncing_Back

0

라우터에는 거의 확실하게 DHCP 기능 (동적 IP 주소 할당)이 있습니다. DHCP 클라이언트는 주소가없는 브로드 캐스트와 IP 주소가 들어있는 보낸 사람에게 패킷을 반환하여 응답하는 로컬 네트워크의 DHCP 서버를 보냅니다. 이더넷은 각 장치에서 하드 코딩 된 MAC 주소를 로컬로 사용하기 때문에 가능합니다.

라우터에 MAC 주소에 대한 DHCP 할당을 보여주는 테이블이있을 것입니다. Arduino가 여기에 나타 납니까?


과연. 중요한 점은 DHCP가 "풀 (pull)"서비스라는 것입니다. 클라이언트를 검색하지 않습니다. 사실 반대로. 대부분의 라우터에서 (순전히 정보!) 목록은 ARP 스니핑을 사용하여 채워집니다.
Daniel B

Arduino가 나타나지 않습니다.이 질문은 라우터의 "잘못"또는 Arduino (및 모듈)가 문제가되는 이유를 해결하는 데 도움이됩니다. 연결이 작동하면 한 번 나타 났지만 알아 내려고합니다. 그 후로 바뀐 것. "풀 (pull)"서비스와 "ARP 스니핑 (sniffing)"에 감사드립니다 - 이것은 상황을 더 자세히 연구하는 데 도움이 될 것입니다.
Bouncing_Back

0

라우터는 컴퓨터를 감지하지 못하며 컴퓨터가 라우터를 감지하지도 않습니다 (IPV6 컴퓨터는 라우터를 감지합니다).

라우터는 라우터 (기본 게이트웨이)로 트래픽을 보낼 때까지 네트워크상의 모든 컴퓨터를 인식하지 못합니다. 이제 라우터가 DHCP 서버로 설정된 경우 DHCP (기본값은 true)를 사용하도록 구성된 컴퓨터가 매번 DHCP 요청을 보냅니다. 이 요청은 라우터에서 수신하고 IP 주소가 컴퓨터에 제공됩니다. 이 상태에서 라우터는 컴퓨터를 인식합니다.

Arduino를 부팅 중이고 IP 주소를 얻지 못하고 라우터에 DHCP 클라이언트로 표시되지 않으면 Arduino 또는 네트워크 연결에 문제가있어 네트워크의 다른 모든 장치에 문제가 없다고 가정합니다 .

Arduino에 연결하고 IP 주소를 새로 고치려고 시도하는 것이 좋습니다. eth0 또는 eth1의 상태를보고 네트워크에 연결되어 있는지 여부를 알려줍니다.

https://serverfault.com/questions/15776/how-to-check-the-physical-status-of-an-ethernet-port-in-linux


링크를 주셔서 감사합니다 - 그게 내가 바라는대로 일종의 링크입니다 - 리눅스는 아니지만 더 나은 사진을 얻으려면 fm 모든 사람들의 반응은 어떻게됩니까 b / n 라우터 & amp; 클라이언트, 아마도 NT 정말 내가 무엇을 찾고해야합니다. yr "no detection going"에 대한 진술. 정말 내 이해에 도움이된다. 문제는 라우터가 아니라 Arduino쪽에 있다고 결론을 내릴 수 있다고 생각한다. 그냥 내 질문에 수정 된 것으로 나타났습니다, 아마 모듈에서 오는 불충분 한 전압의 문제라고 생각 했어요 - 잭에서 LED가 켜지고 & amp; 활동을 보여주는 깜박임이 있지만 라우터가 "듣는"충분한 전압이 아닐 수도 있습니다.
Bouncing_Back

"txt language"이상으로 유감스럽게 생각합니다. - 내 의견이 바다에 빠져 나갔고 캐릭터 한도에 도달하려고 해킹당했습니다. 어쨌든, 고맙습니다. - 내 대답이 내가 원하는 것에 가장 가깝다고 생각합니다. , 그러나 모두의 대답은 아마 광범위한 쿼리 였을 것입니다.
Bouncing_Back
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.