Fast Retransmit (빠른 재전송)

 

- 재전송 타이머 값이 종종 상대적으로 길어지므로, 손실된 패킷의 재전송 전에 지연시간이 커진다.

 

- 위의 상항을 해결하고자 중복 ACKs를 통해 손실된 세그먼트를 검출한다.

 

- 송신측에서 바로바로 여러 개의 세그먼트를 전송할 경우, 세그먼트가 손실되면 수신측에서는 중복 ACK를 보내게 되는데, 타임아웃 전에 송신측에서 중복 ACK3받게 되면 세그먼트를 즉시 전송한다. , 수신측이 기다리는 순서번호의 세그먼트보다 큰 순서번호의 세그먼트가 3개 도착할 경우를 의미한다.

 

[ ACK2 의 중복수신 3번 이후 3번 데이터 즉시 전송 ]


 

 

 

 

Flow Control

 

- TCP 송신자가 데이터를 너무 빠르게 또는 너무 많이 전송하여 수신버퍼가 오버플로우(Overflow)하는 것을 방지한다.

 

- TCP의 수신자는 수신버퍼(receive buffer)를 가지는데, 상위 계층으로 세그먼트를 보내는 애플리케이션 프로세스가 수신버퍼로부터 데이터를 읽는 속도가 느릴 수 있다.

 

- 목표 : 애플리케이션 프로세스의 읽는 속도 = 송신자가 데이터를 전송하는 속도

 

- , 흐름제어는 속도를 일치시키는 서비스이다.


 


 

- Receive Window(rwnd) : 수신버퍼의 가용 바이트 수로, 송신 윈도우 크기를 결정한다.


LastByteRcvd - LastByteRead <= RcvBuffer


[밑에서 수신 받은 번호 - 위로 올려 보낸 번호 = 수신했지만 상위계층으로 전송되지 않은 데이터들]


=> 항상 수신 버퍼보다 작아야한다. 초과하면 오버플로우 발생.


rwnd = RcvBuffer - (LastByteRcvd - LastByteRead)

    = RcvBuffer - (수신했지만 상위 계층으로 전송하지 않은 데이터들)




- 수신자는 TCP헤더에 수신버퍼안에 있는 여유공간(Receive Window, rwnd) 값을 포함함으로써 버퍼에 공간이 있음을 송신자에게 알린다.

 

- 수신버퍼의 크기는 소켓의 옵션을 통해 설정되는데 디폴트 값이 4096바이트이다.

 









 

 

TCP Overview

 

- 점대점(Point-to-Point) : 단일 송/수신자간의 통신   ex) 일대일 통신, Unicast 전송

  • Unicast : 고유 주소로 식별된 하나의 네트워크 목적지에 메시지를 전송하는 방식
  • Broadcast : 송신 가능한 모든 목적지에 동일한 데이터를 전송
  • Multicast : 특별한 주소 지정 방식을 통해 정해진 여러 목적지로 데이터를 전송
  • 호스트가 무수히 많은 경우, Unicast로 데이터를 전송하면, 각각의 네트워크 연결마다 호스트의 컴퓨팅 리소스(자원)을 소비할 뿐 아니라 각각 다른 네트워크 대역폭을 필요로 하기 때문에 전송 비용이 많이 든다는 단점이 있다.

 

- 파이프라인(Pipeline) : TCP의 혼잡 제어 및 흐름 제어가 윈도우 크기(Window size)를 결정한다.

  • Window size : ACK받지 않은 데이터 중 최대 송신가능한 바이트 수, 수신자가 한 번에 버퍼링할 수 있는 최대 데이터 크기
  • Sliding Window : 두 개의 네트워크 호스트 간의 패킷의 흐름을 제어하기 위한 방법으로, TCP 프로토콜은 데이터의 전달을 보증해야 하므로 패킷 하나 하나가 정상적으로 전달되었음을 알리는 확인 신호(Acknowledgement, ACK)를 수신자가 송신자에게 보내야 한다.
  • 패킷에 오류가 생겼을 경우, 송신측에서 해당 패킷을 재전송해야 하는데 이 때 Sliding WindowWindow Size(메모리 버퍼의 일정 영역)에 포함되는 모든 패킷을 전송하고, 패킷의 전달이 확인되는 대로 이 Window를 옆으로 옮김(Sliding)으로써 그 다음 패킷들을 전송할 준비를 한다.

 

- 전이중성 데이터(Full-duplex Data) : 같은 연결 상에서 양방향 데이터 흐름

 

- 최대 세그먼트 크기 (Maximum Segment Size, MSS)

  • 헤더를 제외하고 TCP가 실을 수 있는 최대 데이터 크기
  • 기본값은 IPv4 -> 536 Byte, IPv6 -> 1220 Byte이다
  • 최대 전송 단위(MTU)에 의해 값이 결정되며, MSS값은 헤더의 MSS 옵션 필드에 저장된다.
  • 연결에 참여하는 두 장비가 서로 다른 MSS값을 갖을 수도 있다.

 

- 최대 전송 단위(Maximum Transmission Unit, MTU)

  • 데이터 링크(2계층) 또는 네트워크(3계층)에서 하나의 프레임 또는 패킷에 담아 운반할 수 있는 헤더를 포함한 최대 데이터 크기
  • 최소 권고값은 2계층 기준 1500Byte이며, 3계층 기준 IPv4MSS 크기에서 40byte(IP헤더+TCP헤더)를 추가한 576Byte이고, IPv61280Byte이다.
  • 실제로는 최대 65,646바이트 범위까지 생성가능하다.

 

- MTUIP 기반의 정보인 반면, MSSTCP 기반의 정보이다.

 

- TCP는 연결지향형으로 제어 메시지들의 교환(Handshaking)이 이루어진다. 핸드쉐이킹을 통해 데이터 교환 전에 송신자 및 수신자의 상태를 초기화한다.

 

- 흐름 제어(Flow Control) : 수신자의 속도에 맞춰서 송신자가 데이터를 보낸다.

 

 


 

TCP Segment

 


- Source port number : 출발지 포트 번호

 

- Destination port number : 도착지 포트 번호

 

- Sequence number : 순서번호(Seq#), 세그먼트에서 첫 번째 바이트의 바이트 스트림 번호값이 저장된다.

 

- Response number : 확인응답(누적된 ACK)번호로, 상대방으로부터 받아야할 다음 바이트의 순서번호값이 저장된다.

ex) ACK100이 들어있으면 99번 데이터까지 잘 받았음을 의미한다.

 

- Header length : 헤더의 길이로, Option이 없으면 헤더값에 5개의 비트값이 들어간다. 그러나 일반적으로 32비트이다.

 

- Reservation : 나중에 다시 설명

 

- Control flag 

  • 구체적으로 flag순서는 URG, PSH, RST, SYN, FIN이고 각각 1비트로 표현되는 값이 저장된다.

  • 중요한 부분만 집어보자면, 통신과정에서 연결 설정이 필요할 때 RST, SYN, FIN을 사용한다

  • RST는 연결을 재설정(Reset)할 때 연결을 종료하기 위한 비트값으로 비정상적인 세션 연결 끊기가 해다된다

  • 연결 요청 시에는 SYN=1 의 비트값을 넣어 세그먼트를 전송한다.

  • 연결 해제할 때는 FIN=1 의 비트값을 저장하여 세그먼트를 전송한다.

 

- Window : 수신측의 윈도우 크기(Window size), 받을 수 있는 최대 데이터 크기값이 저장되어 있다.

 

- TCP Checksum : 검사합(Checksum)이 저장되는 데, 체크섬값이란 세그먼트의 합에 1의 보수를 취한 값을 말하며, 수신측에서 체크섬과 세그먼트의 실제 데이터를 더한 결과를 통해 오류를 검출한다.

 

- Emergency Data point : 생략

 

- Option : 변수의 길이로 설명은 생략.

 

- Data : 헤더를 제외한 실제 세그먼트에 들어있는 데이터의 크기로 MSS에 의해 제한되어진다.

 

 

 

TCP Round Trip Time, Timeout

 

- TCP는 신뢰적인 데이터 전송(RDT)처럼 세그먼트의 손실을 발견하기 위해 타임아웃/재전송 메커니즘을 사용한다. 이 때, 송신측에서 데이터를 전송한 후, ACK받기까지 걸린 시간을 RTT(Rount Trip Time)이라 표현한다.

 

- 타임아웃(timeout) 주기는 RTT보다 길어야 한다. 너무 짧으면 타임아웃이 자주 발생하여 세그먼트의 불필요한 재전송이 발생하므로 링크를 비효율적으로 사용하게 된다. 반대로 너무 길게 되면, 세그먼트의 손실에 대한 느린 대응으로 회복이 비효율적이게 된다.

 

- SampleRTT : 세그먼트가 송신된 시간부터 ACK 받기까지 측정된 시간으로, 재전송한 세그먼트는 무시한다. 값은 네트워크 부하에 따라 가변적이다.

 

- 현재 SampleRTT 값이 아닌 최근의 값들의 평균값으로 추정한다.

 

- 추정RTT : EstimatedRTT = (1-a) * EstimatedRTT + a * SampleRTT

일반적으로 a=0.125이고, 지수적 가중 이동 평균(EWMA)방식으로 과거 샘플들의 영향이 지수적으로 감소한다. a가 높을수록 SampleRTT에 더 영향을 준다.

 

- DevRTT : RTT 변화율로, SampleRTTEstimatedRTT의 편차값이다. , 현재 RTT값이 추정 RTT값으로부터 얼마나 벗어났는가에 대한 정보이다.

 

- 재전송 타임아웃 주기 (Timeout Interval) = EstimatedRTT + 4 * DevRTT

 

- 타임아웃나서 세그먼트를 재전송하게 되면, 재전송한 세그먼트에 대한 타이머가 시작된다.

 

 

 


TCPRDT

 

- TCP는 비신뢰적인 인터넷 네트워크 계층(IP서비스)의 상위 계층에서 신뢰적인 데이터 전달(Reliable Data Transfer, RDT) 서비스를 제공한다.

 

- 파이프라인되는 세그먼트 (ACK의 응답이 없어도 다수의 세그먼트를 전송가능)

 

- 누적된 ACKs

 

- 단 하나의 재전송 타이머

 

- 재전송은 타임아웃이 되거나, 중복 ACKs를 수신했을 경우 발생한다.

 

- “간소화된 TCP 송신자는 중복 ACKs를 무시하고 흐름제어 및 혼잡제어를 무시한다.

 



 

 

TCP 송신자의 3가지 상황(Sender Events)

 

- 상위 계층으로부터 수신된 데이터 : 데이터를 받았으므로 상위 계층으로부터 데이터 전송 요청이 오게 된다.

  • 순서번호(Seq#)를 가진 세그먼트 생성 (Seq# : 세그먼트의 첫 번째 바이트의 바이트 스트림 번호)

  • 타이머가 실행되지 않고 있으면 타이머를 시작한다.

  • 타이머의 만료주기는 Timout Interval 로 계산한다.

 

- 타임아웃 : 타임아웃에 의해 세그먼트가 재전송되고, 전송했으나 ACK 받지 않은 가장 오래된 세그먼트에 대해 타이머가 다시 시작한다.

 

- ACK를 수신한 경우 : 이전에 ACK받지 않은 세그먼트의 ACK 이면, 해당 세그먼트를 ACK 응답된 세그먼트로 표시한다. , 윈도우 크기를 조정한다. 아직 ACK받지 못한 세그먼트들이 존재한다면 타이머를 시작한다.

 


 

NextSeqNum = InitialSeqNum

SendBase = InitialSeqNum   //송신했으나 ACK되지 않은 가장 오래된 순서 번호

 

loop(forever) {

switch(event) {

event : data received from application above // 상위 계층으로부터 수신된 데이터

create TCP segment with sequence number NextSeqNum // 다음 순서번호를 가진 TCP 세그먼트 생성

if(timer currently not running) { // 아직 타이머가 시작하지 않았다면

    start timer //타이머 시작

}

pass segment to IP // 생성한 세그먼트 목적지 IP주소로 전송

NextSeqNum = NextSeqNum + length(data) // 전송할 세그먼트의 순서번호 변경


event : timer timeout // 타임아웃

retransmit not-yet-acknowledged segment with smallest sequence number

start timer

 

event : ACK received, with ACK field value of y //y번의 ACK를 수신한 경우

if (y > SendBase) { // 누적된 ACK가 도착한 경우(새 데이터가 온 경우)

SendBase = y;

if (there are currently not-yet-acknowledged segments) { //아직 ACK받지 않은 데이터가 남은 경우

    start timer //타이머 시작

}

}

}

}



 

- 세 가지 상황에 대한 재전송 시나리오

 

 

 





TCP 수신자의 4가지 상황(Receiver Events)

 

<문제가 없는 상황>

- 기다리는 순서번호의 세그먼트가 도착. , 이전의 데이터들은 모두 ACK받은 경우

 => 지연된 ACK 발생. 다음 세그먼트를 위한 500msACK타이머가 설정되고, 시간 안에 다음 세그먼트가 오지 않을 경우 ACK를 전송한다.

 

[ 오른쪽이 지연된 ACK의 모습 ]


 

- 기다리는 순서번호의 세그먼트가 도착. 하나의 다른 세그먼트가 ACK 지연시간(500ms)안에 수신된 경우

 => 하나의 누적 ACK를 송신측으로 즉시 전송한다.

 



<문제가 있는 상황>

- 기다리는 것보다 높은 순서번호를 가진 세그먼트가 도착. , 송신측에서 여러 개의 세그먼트를 전송한 후 중간 세그먼트가 손실된 경우 => 즉시 기다리는 바이트의 순서번호에 해당하는 중복 ACK를 전송한다. 이 때, 보낼 세그먼트가 없더라도 ACK를 위해 헤더만 별도로 생성하여 송신측으로 전송한다. (ACK는 항상 세그먼트의 헤더에 포함되어 있음 - piggybacked ACK 방식)

 


- 위의 상황에서 발생한 갭(손실된 세그먼트)를 부분적으로 또는 모두 채워주는 세그먼트가 도착한 경우 => 부분적으로 도착하면 아직 받지 못한 세그먼트 중 가장 낮은(오래된) 순서번호의 ACK를 전송한다. 모두 도착했다면 위의 상황에서 높은 순서번호를 가진 세그먼트의 다음 세그먼트의 순서번호를 가진 ACK를 전송한다.

 

[ 왼쪽은 중복ACK, 오른쪽은 갭을 채우는 세그먼트가 모두 도착한 경우 ]

 

 

 

 

 

 

 

 

다중화 (Multiplexing)

 

- 다수의 신호들을 단일 데이터 링크로 동시에 전송하게 하는 기술

 

- 다중화기 (Mulitplexer, MUX) : 다수의 스트림들을 하나의 스트림으로 결합하는 기기

 

- 다중복구기 (Demultiplexer, DEMUX) : 하나의 스트림을 다수의 스트림으로 분리하는 기기

 

- 채널 (Channel) : 주어진 라인(stream)들을 전송하는 단일 링크의 일부로, 하나의 링크에 여러 채널이 존재한다.

 

 

- 유형

  • 주파수 분할 다중화 방식 (Frequency Division Multiplexing, FDM)
  • 파장 분할 다중화 방식 (Wavelength Division Multiplexing, WDM)
  • 시 분할 다중화 방식 (Time Division Multiplexing, TDM)

 

 

 

주파수 분할 다중화 방식 (Frequency Division Multiplexing, FDM)

 


- 각 송신측에서 생성된 신호들(Input lines)이 입력 신호에 맞게 다른 반송 주파수를 변조한 후, 변조된 신호들이 링크에 전송될 수 있는 하나의 복합 신호로 결합되어진다.

 

- 쉽게 말해, 하나의 복합 신호라는 것은 링크에서 이용 가능한 총 대역폭을 겹치지 않게 주파수 하부 대역으로 분리시켜서 각각의 개별 신호를 담아 동시에 전송하는 것을 뜻한다. 따라서 아날로그 다중화 방식이다.

 

- 가드 밴드 (Guard Band) : 채널간 혼선, 간섭을 막기 위한 대역으로, 지정된 채널들 사이에 이용되지 않는 좁은 주파수 대역


 

[ 다중화기 ]

[ 다중복구기 ]

저렇게 각기 다른 채널의 대역폭(신호)을 겹치지 않게 하나로 합쳐서 단일링크에 전송 ]

 

- 예제1)  각각 100kHz의 대역폭을 가진 5개의 채널이 함께 전송되어진다. 이 때, 링크에서 대역폭이 겹치지 않게 10kHz의 가드밴드가 요구되어진다면, 링크의 최소 대역폭은 얼마인가?


- 예제2) 채널당 자료 전송율이 1Mbps 4개의 채널이 1MHz인 하나의 위성채널을 이용하여 전송된다. 적절한 구성을 표현하라.


- FDM의 아날로그 계층

 

[ 5개의 채널을 묶어서 Group,

10개의 Group을 묶어서 Super group

6개의 Super group을 묶어서 Master group

또 다시 이 그룹을 묶어서 Jumbo group 이라고 표현한다. ]


 

 

 

파장 분할 다중화 방식 (Wavelength Division Multiplexing, WDM)

 

- 다른 파장(다른 색)을 사용하여 여러 반송파 신호를 단일 광섬유에 적용하는 방식으로 아날로그 다중화 방식이다.

 

- 동축 케이블의 높은 데이터 수용력을 이용하므로 주파수가 높고 속도가 빠르다.

 

- 주파수 분할 다중화(FDM)이 일반적으로 주파수에 적용되는 반면, 파장 분할 다중화(WDM)은 일반적으로 빛 반송파에 적용된다. 파장과 주파수는 직접적인 반비례 관계를 통해 연관되어 있기 때문에, 파장 분할 다중화와 주파수 분할 다중화는 같은 개념을 설명한다.

 



 

 

시 분할 다중화 방식 (Time Division Multiplexing, TDM)

 

- 하나의 링크를 시간 단위(Time Slot)로 나누어 여러 채널이 링크의 대역폭을 공유하게 하는 방식으로, 디지털 다중화 방식이다.

 


- 유형

  • 동기식 시분할 다중화 방식 (Synchronous TDM)
  • 통계적 시분할 다중화 방식 (Statistical TDM)

 

 

 

동기식 시분할 다중화 방식 (Synchronous TDM)

 

- 각각의 입력 채널(신호)들에게 정확하게 동일한 타임 슬롯을 할당하는 방식이다.

 

- Frame : 각 채널들로부터 할당한 타임 슬롯이 모인 것, 완전한 사이클(Cycle) 또는 주기

 

[링크에 있는 신호들은 입력 신호보다 시간이 3분의 1로 줄었기 때문에 속도가 3배 빠르다.]


- 예제1) 위의 그림 속 각 입력 신호가 1kbps의 속도를 가진다. 만약 시간(time slot)1bit가 다중화된다면,


Q1) 하나의 입력신호에서 시간 슬롯은 얼마인가?


Q2) 링크의 하나의 시간 슬롯(output time slot)은 얼마인가?

 

Q3) 하나의 프레임 주기는 얼마인가?

 

- Data Rate Management ( 자료 전송율 관리) : 정확하게 동일한 시간 슬롯을 부여하기 위함.

  • 다치 다중화 (Multilevel Multiplexing) : 입력 라인(채널)에서 소수의 라인 속도가 다수의 라인보다 작을 경우 같은 속도로 맞추기 위해 소수의 자료 전송율을 합치는 방식이다.

  • 다중 슬롯 다중화 (Multiple-Slot Allocation) : 소수의 라인 속도가 다수의 라인 속도보다 클 경우, 다수의 라인 속도에 맞추기 위해 해당 자료전송율을 분할하는 방식이다.


  • 비트 채우기 (Pulse Stuffing) : 여러 입력 라인의 속도가 배수로 나누어 떨어지지 않아서 위의 두가지 방식을 사용할 수 없을 경우에 사용하는 방식이다. 다수의 입력 라인의 속도에 비해 조금 낮은 하나의 입력라인이 있다면 dummy bits를 추가하여 가장 높은 자료전송율에 맞춘다.

 


- 프레임 동기화 (Frame Synchronizing) : 프레임의 시작점에 싱크 비트를 추가하여 다중화기 및 다중복구기를 동기화시킨다.

 

 

- 디지털 신호 서비스 (Digital Signal Service) : 잡음이 진폭에 영향을 주기 때문에 음성을 디지털 정보로 변환하는 것이다. 이를 위해 전화망 사업자들이 디지털 계층이나 디지털 신호의 계층을 통해 TDM을 구현한다.

 

- 초당 샘플링 수 = 초당 프레임 수

 

- 샘플링당 샘플 수 = 프레임당 타임슬롯 수

 

[ 1개의 오디오 채널 - 펄스 부호 변조(PCM) 방식 ]


- 설명 : 1개의 오디오 채널을 예시로 들면, 사람의 음성은 0~4kHz의 범위의 대역폭을 가지며이므로 최소 1초에 8000번의 Sampling을 한다는 의미이다. 위의 경우 샘플링당 1바이트(8비트)이므로

따라서 위의 맨 왼쪽 그림에서 64kbps값이 나온 것이다. 각 채널이 64kbp24개의 채널이 TDM 방식으로 그룹화되어 모이면 두 번째 1,544 Mbps가 된다. 이 때, 초당 샘플링이 8000개 되므로, 프레임 수는 8000개이다. 각 프레임당 1비트씩 프레이밍 비트가 추가되면 전체적으로 1bit * 8000 = 8000비트가 오버헤드 된다. 따라서 64kbps * 24(channel) + 8kbps = 1,544 Mbps가 나오는 것이다. 참고로 1바이트씩 샘플링 했으므로 타임슬롯당 1바이트이다.

 

- T Lines : DS를 구현하기 위해 이용된다.

 


 

 

통계적 시분할 다중화 방식 (Statistical TDM)

 

- 기존의 시분할 다중화 방식에서는 해당 시간에 데이터가 전송되지 않더라도 채널이 할당되기 때문에 링크의 비효율적인 사용이 있었다. , 링크의 수용력(Capacity)를 낭비할 수 있기 때문에 해결 하고자 통계적 시분할 다중화 방식을 사용한다.

 

- 타임 슬롯들이 동적으로 할당되어 진다.

 

- 프레임당 타임 슬롯 수 < 입력 라인의 수 (기존에는 같았다.)

 

- 링크의 수용력 < 입력 채널의 수용력의 합 (위의 것보다 더 정화한 표현이다.)

 

- 다중화기가 라운드 로빈 방식으로 각각의 입력 라인을 확인한다.

 

- 각각의 타임슬롯은 데이터를 목적지 주소로 잘 옮겨야 한다.

 

- 싱크 비트가 없다.

 

- 동시에 많이 보낼 것을 대비하여 다중화기에 큐가 있다.

 

첫 번째 그림은 동기식 시분할 다중화방식인데프레임당 슬롯수가 최대 5개이다.

    두 번째 그림은 통계적 시분할 다중화방식인데프레임당 슬롯수가 최대 3개이다. ]


- 대역 확산 방식 (Spread Spectrum, SS)

  • 초기에는 군사용으로 사용한 전자파를 이용하여 무선통신에서 적에게 도청되지 않고, 적의 방해전파에도 강한 통신방식을 구현하기 위함이었다. 현재는 이동통신환경(무선통신)에서 자주 쓰이고 있으며, 외부의 전자파 잡음에 강하도록 특정 신호의 주파수 대역(spectrum)을 넓히는 기술을 뜻한다.
  • Spreading code를 이용하여 대역폭을 확산시킨다.
  • 대역폭의 효율성이 뛰어나며, 노이즈에 강하고, 보안성을 갖추고 있다.

 

 

- 주파수 도약 방식 (Frequency Hopping Spread Spectrum, FHSS)

  • 출발지 신호(입력 신호)에 의해 변조된 N개의 다른 반송 주파수를 이용하는 방식으로, 유효한 통신 대역폭(링크)N개의 주파수 슬롯으로 분할하여 전송할 때가 되면 일부 유효 슬롯을 통해 정보를 전송한다.
  • 처리 과정
  1. 랜덤 패턴 생성기에서 매 주파수에 머무는 시간마다 k-bit 패턴을 생성한다.
  2. 주파수 테이블이 시간 별로 사용될 주파수를 찾기 위해 그 패턴을 이용한다.
  3. 그리고 해당 주파수를 주파수 신시사이저(Synthesizer)로 넘긴다.
  4. 주파수 신시사이저가 해당 주파수의 반송파를 생성한다. 그리고 입력신호에 맞게 반송파가 변조된다.

[전체적인 과정]


[ 세부적인 모습 ]


[ 주파수 테이블에 따른 k-bit 패턴 ]


사용자들끼리 주파수가 겹치지 않도록 다른 패턴으로 링크가 공유되어진다. ]


[ FDM vs FHSS 가 대역폭을 공유하는 모습 ]


- 직접 확산 방식 (Direct Sequence Spread Spectrum, DSSS)

  • 입력 신호에 주파수가 높은 디지털 신호(확산 코드)를 곱(XOR)하여 대역폭을 확산시키는 방식이다.
  • FHSS보다 전력 효율이나 대역폭 효율면에서 훨씬 좋으며, 이동통신의 CDMA와 같은 의미로 받아들여진다.
  • 처리과정
  1. 전송될 각각의 이진 데이터 신호(비트)칩 코드(Chip)라고 하는 다른 이진 코드로 변조하여 사용주파수 전역으로 확산시켜서 전송한다.
  2. 수신측에서는 칩이 다시 원래의 비트 단위로 변환되어 데이터가 복원된다. 칩이 크면 클수록 원래의 데이터로 복원될 가능성이 커진다.

 


 

 

Analog-to-Analog Conversion

 

- 아날로그 정보를 아날로그 신호로 변환하는 방식

 

- 변조는 매체가 대역 필터(Bandpass)인 경우에만 필요하다.

 

- 유형

  • 진폭 변조 (Amplitude Modulation, AM)
  • 주파수 변조 (Frequency Modulation, FM)
  • 위상 변조 (Phase Modulation, PM)

 

 

 


진폭 변조 (Amplitude Modulation, AM)

 


- 입력 신호의 진폭이 변화함에 따라 반송파를 변조시키는 방식이다.

 

-   (입력신호의 대역폭 )


 

 

주파수 변조 (Frequency Modulation, FM)

 


- 입력 신호의 주파수가 변화함에 따라 반송파를 변조시키는 방식이다.

 

  (보통 4의 값을 가진다.)

 

- AM보다 대역폭이 5, 입력신호보다 10배의 대역폭이 요구된다.

 

- 노이즈의 영향을 덜받으므로 깨끗한 음성을 지원한다. 노이즈는 주로 진폭에 영향을 많이준다.

 

 

 

위상 변조 (Phase Modulation, PM)

 


- 입력 신호의 위상이 변화함에 따라 반송파를 변조시키는 방식이다.

 

( 협대역(narrowband)에서는 1, 광대역(wideband)에서는 3의 값을 가진다. )

+ Recent posts