전체 글

^_^
network security 요구조건 confidentiality 기밀성 : sender와 receiver 외에는 message를 몰라야 한다. 암호화 authentication : 내가 대화하는 대상이 내가 생각하는 대상이 맞는지 확신이 있어야 한다. messag integrity : 중간에 메세지 변형이 없이 전송되어야 한다. access and availability : 서비스 제공자는 24시간 사용자들에게 서비스를 제공할 수 있어야 한다. 서비스를 못하게 하는 디도스같은 공격으로부터 안전해야 한다. 이러한 중요한 보안 요구조건들이 인터넷 계층구조에 전혀 들어있지 않다. Alice와 Bob의 대화를 Trudy가 공격하는 상황을 생각하자. wireshark 같은 애플리케이션을 사용하면 ip pkt의..
어떻게 youtube같은 멀티미디어 서비스가 동작할까? Multimedia File Type 오디오 analog signal을 digital로 바꿔야 한다. 이 과정에서 에러(오차)가 발생한다 digital bit의 수가 많을수록 에러는 줄어든다. 주기를 촘촘하게 할 수록 에러는 줄어든다. (sampling rate or coding rate. ex) 초당 64000bit) 비디오 각 이미지를 frame이라 표현한다. 각 pixel에 어떤 색깔 value가 나타는지가 이미지를 결정한다. 인접한 pixel은 유사하므로 압축할 수 있다. coding rate가 높을수록 화질이 좋다. (2Mbps 의 coding rate : 이미지 표현에 초당 2mega bit 사용) application type multi..
http://www.kocw.net/home/cview.do?cid=6166c077e545b736 무선인터넷이라고 출발지부터 목적지까지 전체가 무선인 것은 아니다. 보통 첫 hop만 무선이고 나머지는 유선이다. 첫 hop은 gateway router까지 보내는 것이므로 link layer와 관련된 내용이다. wifi에 대해 중점적으로 다룬다. LTE는 학부 수준을 넘어선다. wireless network 802.11a,b,n이 wifi에 해당한다. 전송거리는 짧고 속도가 빠르다. 대부분의 우리가 쓰는 무선 네트워크는 infrastructure가 있는 single hop이다. wireless link characteristics hidden terminal problem 유선 링크는 케이블로 보호받기 때문..
패킷을 만들면 1차적인 목적지는 gateway router이다. 실제 link는 많은 host가 공유한다. 따라서 보내려는 message가 collision이 발생하게 된다. 이런 충돌이 발생하지 않게 하거나 충돌을 해결하는 것이 link layer의 일이다. link layer에서 다루는 내용은 src에서 dest까지 전체 여정에 대한 이야기가 아닌 한 hop에 관한 내용이다. (유 무선인 상황을 나눠서 다룬다) link layer 구현 위치 transport layer, network layer는 os 내부에 구현되어 있다. 즉 코드다. link layer는 network interface card에 구현되어 있다. network layer의 전송단위인 frame에 의해 전송하게 된다. mac pro..
클래스와 인터페이스 설계에 사용하는 강력한 요소를 활용하는 방법을 알아보자. [아이템 15] 클래스와 멤버의 접근권한을 최소화하라 잘 설계된 컴포넌트는 내부 구현을 완벽히 숨겨 구현과 API를 깔끔하게 분리한다. APi를 통해서만 다른 컴포넌트와 소통한다. 이것을 정보 은닉, 캡슐화라고 하며 sw 설계의 근간이 되는 원리다. 캡슐화의 장점은 다음과 같다 개발 속도가 높아진다. 여러 컴포넌트 병렬 개발이 가능하기 때문이다. 관리 비용을 낮춘다. 디버깅, 교체 부담이 적다. 성능 최적화에 도움을 준다. 최적화할 컴포넌트를 정하고 다른 컴포넌트에 영향을 주지 않고 최적화 할 수 있다. 재사용성을 높인다. 컴포넌트가 외부에 거의 의존하지 않고 독자적으로 동작할 수 있기 때문이다. 큰 시스템 제작 난이도를 낮춘다..
Object 클래스의 final이 아닌 메서드들은 재정의를 염두에 두고 설계된 것이라 재정의 시 지켜야 하는 일반 규약을 따라야 한다. 잘못 구현하면 클래스가 이 규약을 준수한다고 가정하는 HashMap 같은 클래스가 오동작할 수 있다. [아이템 10] equals는 일반 규약을 지켜 재정의하라 먼저 equals를 재정의하지 않아야 할 상황이 있다. 각 인스턴스가 본질적으로 고유하다 값이 아닌 동작하는 개체 표현 , Thread 논리적 동치성을 검사할 일이 없다 상위 클래스 equals가 하위 클래스에 들어맞는다 클래스가 private이거나 package-priavte이고 equals를 호출할 일이 없다. equals가 실수로라도 호출되는걸 막고 싶다면 오버라이딩해서 예외를 던지도록 하자 equals는 ..
[아이템 1] 생성자 대신 정적 팩터리 메서드를 고려하자 정적 팩터리 메서드는 그 클래스의 인스턴스를 반환하는 단순한 정적 메서드다. 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체로는 반환될 객체의 특성을 제대로 설명하지 못한다. 정적 팩터리 메서드는 이름만 잘 지으면 반환될 객체의 특성을 잘 묘사할 수 있다. 2. 호출될 떄마다 인스턴스를 새로 생성하지 않아도 된다. 생성자는 호출될 때마다 인스턴스를 만들어야 하지만, 정적 패터리 메서드는 그렇지 않다. 반복되는 요청에 같은 객체를 반환할 수 있다. 따라서 언제 어느 인스턴스를 살아있게 할지 통제할 수 있다. 이런 클래스를 인스턴스 통제 클래스라 한다. 3. 반환 타입의 하위 타입 객체를 반환할 수 있다. 반환될 객체의 타입을..
네트워크는 복잡한 시스템이고 이것을 계층적으로 나누어 놓았다. 상위 계층일수록 개념적이고 하위 계층일수록 구체적이다. transport layer 까지는 segment가 어떻게(어떤 경로로) 목적지를 향해 가는지는 관심이 없었다. network layer에서는 그 얘기를 해야한다. IP가 그러한 일을 하는 프로토콜이다. 네트워크 계층이 이러한 일을 하므로 라우터에는 phyiscal, link, network 계층까지 존재하는 것이다. nw layer가 하는 일 네트워크 레이어에서는 forwarding과 routing을 진행한다. forwarding은 pkt 헤더의 목적지를 보고, 라우터의 forwarding table에서 그 목적지로 가려면 어느 outgoing link를 선택해야 하는지 보고 그곳으로 ..
찌땀
공부함