[Network 11. 03]07. 졸업시험정리

2010. 11. 3. 21:44Network

초반에 내용을 정리할려니 귀찮다..!!

- 데이터링크 계층과 LAN (교재 2장)--> 에러검출 및 교정 코드, CSMA/CD
1. 에러검출, 교정(Detection, Correction) 기법
  순방향 에러정정(FEC: Forward ErrorCorrection)
    여분의 에러 정정코드(많은 양의 추가정보)를 포함시켜 전송
    전파 지연이 큰 원거리 전송에서 사용
  자동반복요청(ARQ: Automatic Repeat Request)방식
    에러가 있는지 없는지를 검출할 수 있을 정도의 적은 비트의 에러검출 코드를 포함시켜 전송
    정정은 재전송으로 해결
    고 신뢰성을 확보하기 위해 사용
1.1 패리티 검사(parity check)
 패리티 비트를 프레임의 각 단에 끝에 첨가
 패리티 비트값은 단어의 1의 개수가 짝수
 (even parity)이거나 홀수 (odd parity)가 되도록 선정

원래코드:    011010101 
짝수패리티: 0110101011
홀수패리티: 0110101010

단점: 혹시나 두개의 비트가 오류가 된다면 에러를 검출하지 못함

1.2 순환 중복검사(CRC: Cyclic Redundancy check)
  에러 검출에 주로 사용되며 매우 강력하면서도 쉽게 구현할 수 있는 기술
 방법:
        G(x): 송수신측간에 합의된 생성 다항식
        M(x): 전송할 데이터
        R(x): M(x)/G(x)의 나머지(FCS)
        모듈로 2연산사용: exclusive-OR연산    



1.3 Hamming Code
  N-bit의 데이터 정보를 보호하기 위해 k-bit 의 패리티 비트를 사용한다.
방법
     1bit 오류를 정정
     n bit의 데이터와 k개의 패리티 비트 사용
     2^(k-1)>=n+k관계가 성립되어야 한다.
     수신측은 syndrome를 계산, syndrome이 표현하는 십진수가 오류 발생위치



2. CSMA/CD

2.1 IEEE 802.3 MAC
  보통 이더넷이라고 한다.   CSMA/CD방식은 채널을 사용할 때 먼저 다른 스테이션이 채널을 이용하는지의 여부를 모니터링한 다음 사용하는 방법으로써 경쟁에 의해 채널 사용권리를 얻는다. 충돌이 발생했음을 탐지해 내어 일정 시간에 다시 전송을 재개해야 한다.

동작:
1. 먼저 어댑터는 자신의 부모 노드로 부터 네트워크 계층 PDU를 받아서 이더넷 프레임을 만든 후 그 프레임을 어뎁터의 버퍼에 저장한다.

2. 유휴한 것을 감지하면 프레임 전송을 시작한다 만일 어댑터가 채널이 바쁜것을 감지하게 되면 어떠한 신호 에너지도 감지되지 않을때 까지 기다렸다가. 프레임을 전송하기를 시작한다.

3. 전송하는동안 다른 어댑터로부터의 신호에너지가 있는지 감시한다. 만일 다른 어댑터로부터의 신호에너지를 검출하지 못한채 전체프레임을 전송하면 처리를 완료한 것이다.

4. 만일 어댑터가 전송 도중에 다른 어댑터로 부터의 신호 에너지를 검출하면 자신의 프레임 전송을 즉시 중단하고 대신 48비트 잼 신호를 전송한다.

5. 잼신호를 전송한후 어댑터는 지수적 백오프 단계로 들어간다 이때 대기시간은 (k^n-1)-1에서 선택하며 선택한것에서 k*512bit 전송시간을 한다.

장점: 채널의 제어가 각 기기에 완전히 분배되어 있고 채널은 수동적이기 때문에 어느 한 기기가 고장이 나도 다른 기기의 통신에 전혀 영향을 미치지 않는다.

가격이 저렴하며 소규모에서 대규모 LAN까지 경제적인 구성이 가능

2.2 IEEE 802.3 물리계층

 
- 네트워크 계층과 라우팅(교재 3장)--> 라우팅 알고리즘, IP 주소
3. 라우팅 알고리즘
3.1 Distance vector 라우팅

3.2 Link state 라우팅

4.IP주소

- 응용계층(교재 5장)--> HTTP
5. HTTP
5.1 개요
5.2 비지속 연결과 지속연결
5.2.1 비지속 연결 
5.2.2 지속 연결
 단점
첫째. 각 요청객체에 대한 새로운 연결이 설정되고 유지되어야 한다. TCP버퍼가 할당되어야 하고 TCP변수들이 클라이언트와 서버 양쪽에 유지되어야 한다. TCP버퍼가 할당되어야 하고 TCP변수들이 클라이언트와 서버 양쪽에 유지되어야 한다.
->수많은 다른 클라이언트로 부터의 요청을 동시에 서비스해야하는 웹서버에게 심각한 부담감을 줄 수 있다.

둘째. 앞서 언급한대로 각 객체는 2RTT(TCP연결을 설정하는데 1RTT그리고 객체를 요청하려고 받는데 걸리는 1RTT)를 필요한다. 지속연결에서는 서버간의 이후 요청과 응답은 같은 연결을 통해 보내진다. 특히 전체 웹페이지를 하나의 지속 TCP연결을 통해 보낼 수 있다. 또한 같은 서버에 있는 여러 웹페이지들이 하나의 지속 TCP연결을 통해 보내질 수 있다.

 방식
파이프라이닝(Pipelining)방식 과 비파이프라이닝(non Piplining)방식


- 데이터 압축 및 보안(교재 8장)--> 압축코드
6. 데이터 압축
 
6.1 허프만(Huffman)코드
 빈도수 의존 코드라고도 한다.

 각각 0.5, 0.3, 0.15, 0.05 4개의 값 x1, x2, x3, x4가 있다고 가정하자 만일 x1~x4값 각각을 나타ㅐ기 위해 코드 값 00,01,10,11을 사용한다면 xi값을 전송하기 위해 2비트가 필요하다. 그러나 만일 x1을 나타내기 위해 0,x2를 나태기 위해 10, x3을 나타내기 위해 110, x4를 나태내기위해 111을 사용한다면 평균 0.5x1+0.3x2+0.15x3+0.05x3=1.7비트가 필요하다.
어떤 코드값도 다른 코드값의 시작 부분과 같지 않기 때문이다. 이런 성질을 갖는 코드를 접두 코드라고 한다.

6.2 Run Length 인코딩
 팩시밀리 신호를 부호화 하고 압축하는데 사용되는데 간단하면서도 효율적인 데이터 압축 알고리즘이다.
각비트는 각 줄에 있는 점들이 흰색인지 검은색인지를 나타낸다. 흰점을 0으로 나타내고 검은점을 1로 나태낸다.
그대로 출력한다면 상대적으로 비효율적이나. 인코딩을 거치면 용량을 줄일수 있다.

 000100000100000010000000000000010000001000100000001101000000101
 run 3,5,6,14,6,3,7,0,1,6,1 <-요기서 1이 두번 나오는 부분은 0이 된다.
 3bit심볼을 사용하면 011 101 110 111 111 000 110 011 111 000 000 001 110 001
 다음과 같이 하면 34%의 절약효과를 얻을 수 있다.

6.3 상대적 인코딩(Relative Encoding)
 동영상 프레임을 보낼때 앞프레임과 비교해 다른부분만 데이터를 바꾼다.

 처음프레임은 보내지고 수신기의 버퍼에 이것이 저장된다. 송신기는 두번째 프레임을 처음것과 비교하고 그 차이를 인코드한다. 그리고 그것을 프레임 포맷으로 보내게 된다. 수신기는 그 프레임을 얻고 그 프레임이 가지고 있는 차이를 적용해서 송신기가 가졌던 두 번째 프레임을 만들어 낸다. 위의 과정을 반복하여 출력한다.

6.4 Lempel-Ziv 인코딩
 흔하게 되풀이되어지는 문자열을 찾아서 단지 한번만 저장한다.
여러번 나타나는 단어나 문장은 원래의 것을 가릐키는 포인터와 길이를 나타내는 값으로 대치된다.

 the other one is the oldest
 the o[1,3]r[4,2]n[3,2]is[4,1][1,5]ld[3,1][16,1][1,1]
 실제 알고리즘은 위와같이 되지 않고 약간 다르게 구현하기 쉽도록 수정된 알고리즘을 사용하면 압축률은 조금 떨어진다. 


- 기타(기본적인 네트워크 및 프로토콜 상식)

'Network' 카테고리의 다른 글

[Network] 닫기  (0) 2011.10.19
[Network 09. 28]05. Chapter5 UDP  (0) 2010.09.28
[Network 09. 27]04. Chapter4 Mulit Threaded Socket  (0) 2010.09.27
[Network 09. 27]03. Chapter3 TCP  (0) 2010.09.26
[Network 09. 26]02. Chapter2 Socket  (0) 2010.09.26