본문 바로가기

IT

[Openflow/SDN]Java로 SDN을 위한 Openflow Controller 를 만들기 위해 공부하면 좋은 사전 지식들 이번 포스트는 개인적인 공부를 위해 수시로 업데이트할까 생각중입니다. SDN을 Java에서 구축함으로써 조금 더 좋은 인터페이스로 시뮬레이션을 하기 위함인데, Openflow가 어떻게 동작하는지, 그리고 스위치와 컨트롤러 사이에는 어떠한 프로세스들이 진행되는지를 알고 싶어 검색하던 도중 발견한 귀한 사이트들을 적어두겠습니다. 1) Openflow에 대한 전반적인 지식을 알고 싶은 경우 www.jidum.com/jidums/view.do?jidumId=1076 지식덤프 1. OpenFlow의 개념 - 네트워크 장치의 Control Plane과 Data Plane 간의 인터페이스 위한 표준 통신 프로토콜 - 패킷을 제어하는 기능과 전달하는 기능을 분리하고 프로그래밍을 통해 네트워크를 제어하 www.jidum.. 더보기
[Linux/Virtual Box Oracle/Ubuntu기초] Virtual Box 가상 머신에 Ubuntu를 설치하기 이번에는 Linux 사용을 위해 Virtual Box라는 가상 머신에 Ubuntu를 설치하는 과정에 대하여 설명드리겠습니다. 1) Virtual Box 다운로드 하기 www.virtualbox.org/ Oracle VM VirtualBox Welcome to VirtualBox.org! News Flash Important November 16th, 2020We're hiring! Looking for a new challenge? We're hiring a VirtualBox senior developer in 3D area (Europe/Russia/India). Important October 27th, 2020We're hiring! Looking for a new challenge www.vir.. 더보기
[파이썬/Python/인공지능/웹크롤링] Anaconda를 이용해 Jupyter Notebook을 실행해보기 "요즘 가장 많이 쓰는 프로그래묑 언어가 무엇인가?" 라는 질문을 받으면 보통 C언어를 떠올립니다. 저 역시 가장 많이 사용하는 언어는 Java나 C, C++일 것이라 예상했었습니다. 하지만 최근 인공지능이 떠오르면서 사용량이 급증하게 된 프로그래밍 언어가 있습니다. 바로 Python입니다. Google에서는 Tensorflow라는 인공지능 라이브러리를 무료로 배포하는데 이 Tensorflow를 포함한 인공지능 라이브러리들 인해 Python이 떠오른 가장 큰 요인이지 않을까 싶습니다. 저도 Java 위주로 언어를 공부하였고, 부가적으로 C언어를 공부하였지만 Python을 사용하면서 느낀 점은, "깔끔하고 굉장히 쉽다" 였습니다. Java는 기본적으로 코드가 매우 길고 초반 진입 장벽이 높은편(처음 Jav.. 더보기
[Java 소켓 프로그래밍 기초/실습] 간단한 채팅 프로그램 구현해보기 이 포스팅은 개인적인 socket programming 공부를 위해 여러 글들과 코드들을 참조하였습니다. 포스트 맨 아래, 그리고 코드 윗부분에 주석으로 참조를 첨부하였으니 확인 부탁드립니다. 이번에는 Java Socket Programming을 이용하여 간단한 채팅 프로그램을 구현해보고자 합니다. 들어가기에 앞서서... 항상 상속에 대하여 헷갈리는 부분이 있었기에 정리하고 가겠습니다. Java에서 상속(Inheritance)은 extends와 implements 두 가지가 존재합니다. 1) extends - 부모 메소드를 그대로 사용할 수 있으며 오버라이딩(메소드 재정의)을 할 필요가 없습니다. - class가 class를 상속할 때, interface가 interface를 상속할 때 extends를 .. 더보기
[Java 소켓 프로그래밍 기초/실습] Server-Client 통신해보기 최근 Java Socket Programming을 이용하여 해야 하는 프로젝트에 참여하게 되어 기초부터 공부하기 위해 작성한 글입니다. 다른 블로거 분들의 코드와 글을 참고하였으니 포스트 제일 하단 부분의 참조(reference) 확인 부탁드립니다. Java Socket Programming을 시작하게 되면 제일 먼저 시작하는 것이 Server-Client 간의 통신 구축입니다. 이를 위해서는 Server와 Client, 2개의 Class를 만들어야 합니다. 기존에 좋은 코드가 있어서 참고를 하고 제가 이해 안가거나 모르는 부분은 주석으로 상세히 설명해놓았습니다. Java 소켓 프로그래밍을 공부하시는 분들께 도움이 되었으면 합니다. 실습에 앞서서... Java라는 언어에 대한 깨알 설명 몇가지를 첨부하였.. 더보기
[Socket/SDN 기초] Socket Programming과 Software Defined Network(SDN)에 대한 사전 지식 Openflow를 이용한 SDN(Software Defined Network) Controller를 GUI와 함께 구현하는 과제를 받았습니다. 이를 위하여 Java Socket Programming을 이용하려고 합니다. GUI(Graphic User Interface)와 더불어 Agent를 SDN Controller에서 Openflow를 이용해 조작하기 위해서는 Fox라는 단순화(Simplified)된 SDN Controller를 이용하여 구현합니다. FOX는 C언어 기반으로 구현되어 있기 때문에 GUI가 좋지 않습니다. C에서 그럴싸하게 GUI 구현하는 것은 매우 어렵다고 합니다. 하지만 Java에서는 AWT나 Swing이라는 GUI를 제공하기 때문에 편하게 구현이 가능합니다. SDN 컨트롤러 구현에 .. 더보기
Mininet을 이용한 SDN 실습[1.실습 환경 구축 및 간단한 토폴로지 구성] 최근 SDN에 관심이 생기면서 Mininet이라는 것을 알게 되었다. OMNET++과 비슷하게 가상 네트워크 환경에서 시뮬레이션 할 수 있는 툴 같은데 OMNET++보다 Mininet을 사용하는 것이 SDN과 Openflow를 이해하고 실험하는데 더 좋다고 하여 공부하기 시작하였다.(사실 Mininet과 OMNET++의 차이도 잘 모를 뿐더러 사용은 해봤지만 아직도OMNET++을 잘 모른다.) 미리 말하자면, 멘땅에 해딩으로 시작하는 글이기 때문에 Mininet에서 제공하는 Tutorial을 참고하며 진행했지만 절대로 신용하면서 이 글을 읽지는 않는것이 좋다. "뭔가 틀린 거 같은데..."라는 생각이 든다면 정말 틀렸을 가능성이 크다. 피드백 해주면 정말 고맙겠다. 실습 환경 구축에 대한 Tutorial.. 더보기
[SDN 기초 지식] SDN 시작 전 기초지식 요약(1) 위 내용은 SDN 공부를 위한 개인적인 정리 용도로 제작되었으며, 를 참고하였습니다. 네트워크 장비의 구조 1) Data Plane : 패킷의 송수신 담당 2) Control Plane : 패킷 경로 설정, 관리 및 제어 기능 담당 3) Management Plane : 동작 상태 및 성능 관리 기능 담당 데이터센터에 요구되는 네트워크 디자인 요약 1) Flat Network : 네트워크 홉 최소화 2) Fat Tree : 대규모 서버 Access 환경 및 최적 경로 3) Fast Switching : 낮은 네트워크 대기 시간을 보장 4) Simplicity : 구성 운영 및 관리 용이성 현재 네트워크 구조와 한계 1) 운영 자동화와 중앙관리의 어려움 개별 장비에서 3가지 기능(Data, Control,.. 더보기