9/3 스핑크스, Python-mysql 연결, DHCP와 IP주소 할당 원리

스핑크스(sphinx) 설치, 사용해 봄 CLCP의 dependancy들은 pip의 requirements 명령어로 설치.

Python과 MySQL을 연결하는 dependancy는 가끔 버전상의 오류로 (혹은 게시 된 파일 Porting 오류로) 잘 되지 않는 경우가 발생. https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient에서 내 개발환경에 맞게 수동으로 검색해서 다운로드 받은 후 pip install (다운로드한 wheel)로 설치.
MobaXterm 설치 : Putty처럼 SSL 접속하는 프로그램인데 GUI를 통해 더 쉽고 FTP 기능도 갖춤.

0.0.0.0 의 의미 : 호스트가 아직 자기의 IP 주소를 모른다는 뜻.

그럼 동적 IP주소가 어떻게 할당 되는지? : 부트스트랩시(디바이스 전원이 들어와서 작동이 되기 시작할 때) 호스트는 255.255.255.255로 메시지를 전송. 255.255.255.255는 DHCP IP이며, DHCP는 호스트가 보낸 메시지를 보고 IP를 할당해 줌. 구체적인 프로세스는 밑의 DHCP

DHCP?
- 동적으로 IP주소를 할당해주는 프로토콜. 임대->갱신->반환 프로세스를 거친다.
- 임대 : 4단계에 걸친 임대 (discovery, offer, request, acknowledge)
discover : IP주소가 할당되지 않은 클라이언트들이 자신의 MAC주소를 담아 로컬 네트워크를 향해 Discover 패킷을 Broadcast한다. Broadcast이기 때문에 다른 클라이언트들도 메시지를 수신하는데 MAC주소가 자신의 MAC주소와 다르면 그냥 폐기한다. offer : DHCP서버는 discover 패킷을 받고, discover 패킷에 내장 된 MAC주소를 offer 패킷에 담아 broadcast한다. 클라이언트들은 mac주소가 자기 것과 같으면 DHCP가 있다고 판단하고 request를 준비하며 mac주소가 다른 클라이언트들은 폐기한다. request : IP를 실질적으로 요청하는 패킷이며, 마찬가지로 브로드캐스팅 되고 다른 클라이언트들은 이를 폐기한다. acknowledge : request 패킷을 받은 DHCP는 자신의 IP 임대 풀에서 사용가능한 IP를 찾고, 비어있는 IP주소 중 가장 앞의 것부터 할당해준다.

- 갱신 : 임대를 성공하면 주기적으로 임대를 갱신한다. 임대 시간의 50%에 도달했을 때와 87.5%에 도달했을 때 임대 갱신을 시도한다. (갱신은 DHCP를 다시 찾지 않아도 되므로 DORA 프로세스 중 request, acknowledge만 발생하며, 또한 이미 클라이언트와 DHCP는 서로가 존재하는 것을 알았었기 때문에 굳이 Broadcast하지 않고 unicast방식으로 통신하게 된다.)

- 반환 : 임대기간이 끝났거나, 더 이상 사용하지 않는 IP는 반환받는다.
MAC주소란?

-

댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용