본문 바로가기

COMPUTER435

무차별모드 네트워크에서 패킷을 스니핑하기 위해 promiscuous모드 드라이버가 지원되는 네트워크 인터페이스가 필요하다.promiscuous모드는 네트워크 인터페이스카드(NIC)가 케이블링 시스템을 통해 흐르는 모든 패킷을 볼 수 있게 허용한다. 일반적으로 네트워크 인터페이스 카드가 promiscuos모드가 아닐 때는 브로드캐스트로 오는 패킷에 대해 자신의 패킷이 아니면 받지 않는다. 네트워크 인터페이스 카드가 promiscuous모드 일때는 모든 패킷을 받아들이고 CPU는 그것을 처리하게 한다. 2017. 4. 2.
트래픽 네트워크 트래픽은 브로드캐스트, 멀티캐스트 ,유니캐스트의 세 가지로 분류된다. 각 분류는 패킷이 네트워크 하드웨어에 의해 어떻게 처리되는지를 결정하는 개별적인 특징을 가진다. 브로트캐스트 트래핏(패킷)해당 포트가 허브, 스위치, 라우터인지에 상관없이 네트워크 세그먼트에 있는 모든 포트로 데이터를 보낸다. 허브->오직 브로드캐스트 트래픽을 보내는 기능만 가진다 멀티캐스트 트래픽한 컴퓨터에서 여러 대의 컴퓨터레 동시적으로 패킷 전송 유니캐스트 트래픽한 컴퓨터에서 다른 컴퓨터로 데이터를 직접 전송 2017. 4. 2.
네트워크 하드웨어 허브허브는 네트워크 장치들을 서로 연결해 통신할 수 있게 설계되었다.물리 계층에서 패킷을 전달하는 역할!!하나의 포트로부터 패킷을 받아서 그 패킷을 같은 허브 상의 다른 모든 포트로 전달하는 기능을 한다.즉, 원하지 않아도 데이터를 받게 된다.=쓸모없는 트래픽이 많이 생기게 된다. 스위치네트워크상에서 전송량이 많을경우 허브보다는 스위치!스위치는 데이터를 받기 위해 필요한 컴퓨터에게만 패킷을 보낸다. 스위치는 스위치에 연결된 모든 장치들의MAC주소를 CAM테이블이라고 불리는 곳에 저장한다. 패킷이 전송될 때 스위치는 패킷의 계층 2 헤더 정보를 읽고 CAM 테이블을 참조해 패킷을 어떤 포트로 보낼 것인지를 결정한다. 라우터두 개 이상의 네트워크 사이에서 패킷을 전달해 주는 역할! 계층 3에서 동작네트워크 .. 2017. 4. 2.
네트워크 프로토콜 네트워크상에는 다양한 플랫폼과 다양한 시스템이 있다. 각기 다른 시스템과 플랫폼들이 서로 통신을 하기 위해 네트워크 프로토콜이라 불리는 공통 규약을 사용한다.일반적인 네트워크 프로토콜은 TCP,IP,ARP,DHCP등이 있다. 네트워크 프로토콜을 Open System Interconnections(OSI)참조 모델로 불리는 산업 표준 참조 모델에서 사용되는 기능에 기반해 구분된다.OSI 모델은 네트워크 통신을 관리하기 위해 7개의 계층으로 구분된다. 1.물리: 네트워크 데이터가 전송될때 사용되는 물리적 매개테, 전압, 허브 ,네트워크 어댑터, 리피터, 케이블 명세서를 포함해 모든 하드웨어의 물리적이고 전자적인 특성, 아날로그를 디지털로 디지털을 아날로그로 바꾼다. 2.데이터 링크: 물리적인 네트워크 사이의.. 2017. 4. 2.
인터페이스 인터페이스인터페이스(Interface)는 다른 언어들에서는 찾기 힘든 자바의 고급 기능이다.이 이해하기 힘든 인터페이스는 도대체 왜 필요하게 된 걸까?다음의 경우를 생각 해 보자.난 동물원의 사육사이다. 육식동물이 들어오면 난 고기를 던져준다. 호랑이던 사자던 상관하지 않는다.이런 케이스를 코드로 담아보자.Animal.javapublic class Animal { String name; public void setName(String name) { this.name = name; } } Tiger.javapublic class Tiger extends Animal { } Lion.javapublic class Lion extends Animal { } ZooKeeper.javapublic class Zo.. 2017. 4. 1.
생성자 생성자이번에는 클래스의 생성자(Constructor)에 대해서 알아보자.다음은 지금까지 만들어 온 클래스들이다.Animal.javapublic class Animal { String name; public void setName(String name) { this.name = name; } } Dog.javapublic class Dog extends Animal { public void sleep() { System.out.println(this.name+" zzz"); } } HouseDog.javapublic class HouseDog extends Dog { public static void main(String[] args) { HouseDog houseDog = new HouseDog(); h.. 2017. 4. 1.
상속 상속이번엔 자바의 상속(Inheritance) 개념에 대해서 알아보자. 상속은 말 그대로 무언가를 물려받는 것이다.Animal 클래스를 상속하는 Dog 클래스를 만들어 보자.Animal.javapublic class Animal { String name; public void setName(String name) { this.name = name; } } Dog.javapublic class Dog extends Animal { } 클래스 상속을 위해서는 extends 키워드를 사용한다. 위 Dog 클래스는 Animal 클래스를 상속했다.Dog 클래스에 name 이라는 변수와 setName 이라는 메소드를 만들지 않았지만 상속을 받았기에 그대로 사용이 가능하다. Dog 클래스에 다음과 같은 main 메소.. 2017. 4. 1.
call by value class Updator { public void update(int count) { count++; } } public class Counter { int count = 0; public static void main(String[] args) { Counter myCounter = new Counter(); System.out.println("before update:"+myCounter.count); Updator myUpdator = new Updator(); myUpdator.update(myCounter.count); System.out.println("after update:"+myCounter.count); } } Counter 객체 myCounter의 count값을 Updator 객체 m.. 2017. 4. 1.
메소드 메소드클래스에는 인스턴스 변수와 더불어 메소드(Method)라는 것이 있다. 메소드는 클래스 내에 구현된 함수를 의미하는데 보통 함수라고 말하지 않고 메소드라고 말한다. 변수가 정적인 의미라면 메소드는 동적인 의미가 강하다. 말로 백번 하는것보다 실제 코드를 작성하는 것이 이해가 빠를 것이다.이제 메소드를 이용하여 Animal 클래스의 인스턴스 변수인 name 에 값을 설정해 보자.아래와 같이 setName 메소드를 추가 해 보자.public class Animal { String name; public void setName(String name) { this.name = name; } public static void main(String[] args) { Animal cat = new Animal(.. 2017. 4. 1.