전공 과목/컴퓨터 네트워크

Computer Network Lecture.02 MAC

arsenic-dev 2024. 9. 4. 23:28

경희대학교 이성원 교수님의 컴퓨터 네트워크 수업을 기반으로 정리한 글입니다.

Contents

  • Basic Terminologies
  • MAC Overview
  • Random Access Protocols
  • Controlled Access Protocols
  • Channelization Protocols

Basic Terminologies

Five Basic Terminologies

▶ 컴퓨터 네트워크를 이해하기 위한 기본 단어

 

1. Message

송신하는 쪽에서 수신하는 쪽으로 보내는 정보로, 0과 1의 조합을 띈 형태를 주로 말한다.

2. Sender

메시지를 보내는 장치로, 송신단이라고도 한다.

3. Receiver

메시지를 받는 장치로, 수신단이라고도 한다.

4. Medium

Sender가 Receiver에게 보낼 때 필요한 1계층 통신 매체로 통산 유선이거나 무선이다.

5. Protocol

Sender가 Medium을 통해 Receiver에게 Message를 보낼 때 Message 자체의 형태,  Medium을 통해 어떻게 보낼 건지, 보내기 전/후에 대한 Sender와 Receiver의 동작들을 정의하는 약속이다.

Data Flow Direction

▶ 컴퓨터 네트워크에서 정보를 주고 받는 방향별 명칭

 

1. Simplex

특정 A라는 device에서 B라는 device로 일방적으로 보내는 것을 말한다. ex) 라디오, 텔레비전

2. Half-duplex

송신과 수신을 동시에 할 수 없고, 송신 혹은 수신을 해야 하는 것을 말한다. ex) 무전기

3. Full-duplex

동일 시점에서 왼쪽과 오른쪽으로 정보가 동시에 오갈 수 있는 것을 말한다. ex) 전화

 

※ Full-duplex와 달리 Half-duplex는 송신에서 수신 모드로, 또는 그 반대로 전환하는 T0에 시간 지연이 발생한다.

Physical Structure

▶ 컴퓨터 네트워크에서 Medium의 연결 방식에 대한 명칭

Physical Topology

▶ 컴퓨터 네트워크의 대표적인 연결 형태(들)

 

1. Mesh Topology

  • 장점: 하나의 station이 다른 station에 대해 전용의 dediated된 링크를 가지고 있어서 통신을 할 때 다른 컴퓨터들이 방해하지 못하여 성능과 보안이 좋다. 또한, station과 station 사이의 줄이 끊어져도 우회 가능하여 안정적이다.
  • 단점: station(node)의 개수가 많아지면 물리적으로 불합리하여 네트워크의 네트워크를 만들 때 주로 사용한다.

2. Star (or Tree) Topology

  • 장점: station이 가져야 할 줄의 개수가 1개뿐이다. 또한, station의 줄이 끊어져도 다른 station은 영향을 받지 않는다.
  • 단점: 허브라는 장치가 따로 필요하고, 허브 고장시 통신이 두절된다. 또한 줄이 끊어지면 해당 station은 통신을 못한다.

3. Bus Topology

  • 장점: 설치가 용이하며, 특별한 장치가 필요 없고 줄의 개수도 많지 않아 가격이 저렴하다.
  • 단점: 공유하고 있는 줄이 끊기면 네트워크의 전체 통신이 두절된다.

4. Ring Topology

  • 장점: 설치가 용이하며, 줄이 끊어졌을 경우 끊어진 줄만 방어할 수 있는 매커니즘이 있어 fault에 강한 부분이 있다.
  • 단점: 줄이 끊어졌을 때 왼쪽과 오른쪽에서 방어가 안 되면 줄이 전부 고장난다. 또한 station이 경쟁적으로 줄을 사용하고자 하기에 충돌이 발생할 수 있다. 물론, 이런 경우 소프트웨어적으로 half-duplex를 도입하여 충돌을 막을 수 있지만, half-duplex로 인한 줄의 효율 및 속도가 저하되고 지연이 발생한다.

통신 시스템은 다 장점이 있고,
그에 반하는 단점도 있다.

▶ Hybrid - Combination of Topologies

 

※ Topology는 대부분 combination을 한다.

Categories of Networks

네트워크 규모에 대한 명칭 - 이 외에 PAN, BAN도 있다.

  • PAN: Personal ex) 블루투스
  • BAN: Body ex) 심박수, 혈당 측정

1. LAN

방, 층, 건물 등의 local 범위 네트워크를 의미한다. ex) 경희대학교 국제캠퍼스 네트워크, wifi

2. MAN

LAN들이 모인 도시만한 규모의 네트워크를 의미한다. ex) 기흥구 네트워크, 이동통신

3. WAN

wide한 규모에서 MAN-MAN 혹은 LAN-LAN을 연결한 네트워크를 의미한다. ex) 경희대학교 국제캠퍼스 - 서울캠퍼스 네트워크

 

※ LAN/MAN/WAN 모두 유/무선 모두 가능하며, WAN보다 큰 규모로는 광선 간의 통신이 있다.

▶ Combination of LAN/MAN/WAN

Standards

  • De Facto (by fact): 어쩌다보니 사람들이 많이 써서 표준이 된 것을 의미한다. ex) 마이크로 소프트
  • De jure (by law): 표준이 이미 정해져 있고, 그 문서에 있는 내용을 구현하는 것을 의미다. ex) 이동통신

MAC Overview

OSI 2 계층 (Data Link Layer)

  • 위: Data Link Control
  • 아래: MAC(Medium/Media/Multiple Access Control)

Data Link Layer은 왼쪽과 오른쪽을 연결한 Physical Layer 위에서 에러 검출 및 복구와 흐름 제어를 한다.

그리고  MAC은 이것보다 좀 더 원천적인 기술을 지원한다.

 

MAC에서 medium은 줄을 의미하는데, 이때 줄에 access하는 station들,
즉 통신을 하고자 하는 station이 여러 개 있을 때, 어떻게 접근을 할 것인가?

 

MAC의 기법

  1. Random Access
  2. Controlled Access
  3. Channelization

※  CSMA/CD ex) 이더넷(초고속 인터넷), CSMA/CA ex) wifi(무선랜)

Random Access Protocols

알아서, 독립적으로, 분산적으로 접근

Concept

  • 송신을 하고자 하는 station이 있으면 그냥 쏜다.
  • 중재하는 station이 없으며, 모두 독립적이고 동일한 권한을 가지고 있다.

그렇다면 충돌은?

 

1. ALOHA

하와이에서 만들어서 이름이 ALOHA이며, 섬들 간의 통신을 하기 위해 무선으로 만들어진 최초의 random access method이다.

다른 station 배려하지 않고, 쏘고 싶으면 쏘기에 충돌 위험이 높으며, 오류가 발생시 다시 보내는 단순한 방식으로 동작한다.

 

때문에 어느 시간 안에 이 메시지가 갈 것이다 하는 품질을 보장할 수 없다.

하지만 만들어진 1970년대 당시엔 간헐적으로 소량의 데이터만 주고 받았기에 큰 문제없이 동작했다.

▶ Frames in a pure ALOHA Network

▶ Procedure for pure ALOHA protocol (Flow Chart)

 

※ 2 × propagation time(전달 시간): receiver가 받을 때까지 걸리는 시간 = receiver로부터 응답(ACK)이 올 때까지 걸리는 시간

 

2. Slotted ALOHA

ALOHA 방식에서 에러는 피할 수 없지만, 꼬리에 꼬리를 무는 에러는 피하자는 취지에서 메시지 쏘는 시간, 끝나는 시간을 맞췄다.이런 식의 구역을 슬롯으로 나눔으로써 충돌을 줄인다.

 

즉, 에러가 발생해도 슬롯 안에서만 에러가 발생하고 에러가 꼬리에 꼬리를 물어 통신 불능 상태에 만드는 것은 피할 수 있다.

단수하지만, ALOHA 방식 대비 성능 개선은 컸다.

▶ Slotted ALOHA network

 

3. CSMA

쏘기 전에 듣는다

 

ALOHA처럼 무선 기술은 다른 장치들이 쏘는 것, 즉 충돌을 이해하기 힘들지만

유선인 Carrier Sense Multiple Access는 가능하다.

 

※ Carrier Sense: "sense before transmit" or "listen before talk"

 

쏘기 전에 케이블을 보고 전자 신호가 있으면, 즉 누가 쏘면, 개입을 안 함으로써 충돌을 줄인다. 하지만 쏘기 시작하면 케이블을 보지 못하여 충돌이 발생한다. 이때 Propagation delay만큼 기다림으로써 충돌을 많이 줄일 수 있다. 

▶ Space/Time mdel of a collision in CSMA

 

B가 신호를 먼저 보냈음에도, C가 신호를 보내는 시점에서는 B의 신호가 C까지 오지 못하였기에,

C가 케이블을 보았을 때는 신호가 없는 것으로 보고 쏘아, 충돌이 발생한 것이다.

 

즉, 전파 지연 발으로 한 케이블에 신호가 늦게 들어오는 걸 missing한 경우엔 피할 수 없는 에러가 발생한다.

▶ Vulnerable time in CSMA

 

그렇다면 채널에서 정보를 얼마만큼 기다려야 충돌을 막을 수 있을까?

 

줄의 끝에 있는 A가 줄의 끝에 있는 D에게 메시지를 쏘았을 때 그 메시지가 도착하는 최초의 시점 간의 길이,

이걸 propagation delay라고 하고, A, B, C, D 모두 propagation delay만큼 들으며 기다리면 충돌을 많이 줄일 수 있다.

▶ Behavior of three persistence methods

 

※ Busy: 누군가가 통신 채널을 통해 뭔가를 보낼 경우, Idle: ↔ Busy

 

Carrier Sense Methods

  • 1-persistent: 채널을 끊임없이 보고 있다가, 채널이 비면 확률 1로 반드시 보낸다.
  • Nonpersistent: sensing하다가 채널이 Busy하면 잠시 랜덤하게 쉬고 다시 sensing, 이러다 Idle이 sensing되면 쏜다.
  • p-persistent: Hybird 형태로, 끊임없이 보다가 비면 확률 p로 전송을 시도하고, 전송을 실패하거나 확률이 낮으면 랜덤하게 한 번 건너뛰고 다시 쏜다.

계속 보는 것은 지연이 없는 장점이 있는 대신, 전력을 많이 사용해야 한다는 단점이 있고,

띄엄띄엄 보는 것은 전력을 적게 사용해도 되는 장점이 있는 대신, 지연이 있다는 단점이 있다.

 

이렇듯, 통신은 뭐가 좋다 하는 게 아니라, 다 장/단점이 있어서 요구사항에 맞게 사용해야 한다.

▶ Flow diagram for three persistence methods

 

4. CSMA/CD

쏘기 전에 듣고, 쏘면서도 듣는다.

 

CSMA는 충돌 줄인 건 좋았으나 쏘고 난 후에는 보지 못하기에 충돌을 방치할 수밖에 없는데,

CSMA/CD는 쏘기 전에도 보고 쏘면서도 보기에 충돌을 감지하면 전송을 중지함으로써 초기에 막아, 버려지는 시간을 줄인다.

Collision and abortion in CSMA/CD

 

A가 보낸 신호가 C에 도착한 시점에서 C는 collision을 detect하고 전송을 중지한다.

마찬가지로, C가 쏜 신호가 A에 도착한 시점에서 A도 collsion을 detect하고 전송을 중지한다.

 

이 경우, 주고 받은 데이터는 모두 충돌하여 의미가 없게 되지만,

조기에 collision을 detect하고 막았기 때문에 버려지는 시간을 줄일 수 있다.

▶ Flow diagram for the CSMA/CD

 

※ jamming signal: CSMA/CD는 충돌이 발생하면 멈추는 것에서 그치지 않고, 의미는 없지만 확실하게 메시지를 깨는 시그널,

jamming signal을 보내며, 이 메시지는 완벽히 망가졌음을 선언한다.

 

※ CSMA/CD 방식이 유선에서 히트를 쳤는데, 점차 사용되지 않게 된 이유는?

Star/Tree topology의 발전과 광케이블 기반의 초고속 통신 기술의 발전에 따른 충돌 가능성이 없어졌기 때문이다.

 

5. CSMA/CA

무선에선 쏘면서 동시에 듣는 것이 상당히 어렵기에 충돌 감지가 어려우니, 사전에 피하는 방식을 선택한다.

추가적인 메시지로 RTS, CTS, ACK를 주고 받으며, 이는 통신에 참여하지 않는 다른 노드들도 들을 수 있다.

 

이전에는 보낼 것이 있으면 송신단 본인이 판단하여 그냥 보냈지만, CSMA/CA는 수신단과 하는 작업이 추가된다.

 

CSMA/CA의 추가적인 메시지

  • RTS: Request To Send, 보내도 될까?
  • CTS: Clear To Send, 보내.
  • ACK: Acknowledgement, 잘 받았어.

▶ CSMA/CA and NAV

 

A, B가 데이터를 주고 받더라도 RTC, CTS, ACK는 C, D도 다 들을 수 있다.

▶ Hidden station problem

 

같은 줄을 사용하는 유선이 아니라, 무선인 경우에는 거리, 혹은 장애물때문에 collision을 detect하는 게 어렵다.

때문에 CSMA/CA는 추가적인 메시지를 주고 받음으로써 주변에 있는 노드들에게 통신에 들어오지 말라고 알린 것이다.

▶ Flow diagram for CSMA/CA

▶ Contention window

 

CSMA/CA는 무선 채널을 보고 있다가, 비어 있을 때 상대 방에게 메시지를 보내는 1-persistent 방식을 사용한다.

또한, Contention window는 작은 구간 안에서 작은 RTS, CTS 메시지를 주고 받는 과정을 말한다.

 

이러한 CSMA/CA 방식은 에러를 줄일 순 있지만, 에러를 완전히 없앨 순 없다.

그 이유는 다른 노드들이 CTS를 놓칠 수도 있기 때문이다.

 

에러가 없는 통신 시스템은 존재할 수 없고,
에러를 줄이기 위해 노력 할 뿐이다.

 

Controlled Access Protocols

통제자의 명령을 받으며 통신

Concept

  • 완전히 별도의 독립적으로 존재하는 cotrol이 있을 수도 있고, station들 중 누군가가 중앙 통제하는 역할을 할 수도 있다.
  • 통제가 되는 상황에서 통신을 한다.

1. Reservation

데이터를 보내기 전, 예약하는 것이다.

 

어느 시점에서 어느 시점부턴 내가 쏜다, 어느 시점에서 어느 시점부턴 네가 쏴라, 이런 식이다.

▶ Reservation access method

 

※ 위 그림에서 1, 2, 3, 4, 5 이런 프레임을 beacon(비컨)이라고 한다.

 

medium을 누가, 얼마만큼 쓸 것인지에 대한 정보를 누군가가 관리해서 뿌려주고, 이것에 따라 송신한다.

  • 장점: 충돌이 발생하지 않는다. 또한, 채널을 꽉 채워 쓸 수 있다.
  • 단점: 쏘고 싶을 때 바로 쏠 수 없고 예약 해야 하고 자기 순서를 기다려야 하니, 지연 시간이 증가한다.

2. Polling

부르는 것이라고 얘기할 수 있다.

 

중앙 통제자가 노드를 선택하고 데이터를 보내기도 하고, 받기도 한다.

▶ Select and poll functions in polling-access method

 

※ Primary는 서버이다.

 

Polling의 추가적인 메시지

  • SEL: 너 데이터 받을 준비 됐어?
  • ACK: 응./잘 받았어.
  • Poll: 너 데이터 보낼 거 있어?
  • NAK: 없어.

장점: 충돌이 거의 없다.

단점: 보낼 게 없어도 왔다갔다 하니 medium이 낭비가 된다. 또한, 데이터를 바로 보내지 못하여 지연이 발생한다.

 

3. Token Passing

Token, 즉 권한을 주고 받는 것이다.

▶ Logical ring and physical topology

 

발언권을 전달 하는 느낌으로 이해하면 된다.

 

장점: 채널 효율이 좋고, 충돌이 없다.

단점: 쏘고 싶을 때 쏠 수 없어 지연이 발생한다.

Controlled Access scheme은 지연을 피할 수 없는 경우가 많다.

 

Channelization Protocols

Concept

  • 유선이든, 무선이든 medium을 수많은 multiple한 station을 어떻게 share할 것인지에 대한 것이다.
  • FDMA, TDMA는 이것을 물리적으로 접근한 것이다.

1. FDMA

Frequency-Division Multiple Access, 즉 주파수를 share한다.

▶ FDMA

 

주파수를 시작 주파수 대역부터 끝나는 주파수 대역까지 나눠 4개가 있다고 하면,

통신을 하고 싶을 경우, 이 주파수 중 1개를 사용하면 된다.

 

그림과 같이 주파수를 아예 주고, 전용으로 사용하게 한다.

ex) 음성 전화, 정해진 주파수를 얼마 만큼(시간) 사용했는지에 따라 과금한다.

 

2. TDMA

Time-Division Multiple Access, 즉 시간을 share한다.

 

FDMA는 아날로그 기술 때부터 존재하였으나, 주파수는 굉장히 비싸서 하나의 주파수를 한 사람이 비싸게 사용하는데,

보낼 데이터 양이 적은 경우 주파수 자원을 효율적으로 사용하지 못한다는 문제가 있었다.

 

이에 따라 디지털 기술인 TDMA가 나왔다.

▶ TDMA

 

아날로그 방식에서는 음성 신호가 끊임없이 전송되었으나, TDMA에서는 사람의 음성을 일정한 시간 단위로 쪼개고, 이를 디지털 데이터로 변환한 후 압축하여 더 빠른 데이터 전송 속도를 가진 채널을 통해 전송할 수 있다.

 

이 과정에서 압축과 디지털 변환으로 인해 지연 시간이 발생할 수 있지만, 이 지연 시간은 사람이 감지할 수 없는 수준이다.

 

 
 

TDMA 보충 설명

ex) 사람이 1kbps(킬로비트 퍼 세컨드)의 속도로 음성을 전송하고 있을 때, 4kbps의 속도로 데이터를 전송할 수 있는 통신 채널에서는 1kbps로 음성을 전송하는 4명을 동시에 수용할 수 있다.

 

이를 위해, 사람의 음성을 20ms(밀리 세컨드) 단위로 나눈 후, 압축하여 4배 빠른 네트워크로 전송한다. 네트워크에서는 이 데이터가 20ms가 아닌 5ms 만에 전송된다. 수신 측에서는 이 데이터를 디지털 변환하여 원래의 20ms 동안 재생하므로, 사람이 말하는 것과 동일한 속도로 들을 수 있게 된다.

 

즉, 사람이 말하는 느린 속도의 음성을 디지털화하고 압축하여 초고속 네트워크를 통해 전송하고, 상대방이 이를 다시 원래의 느린 속도로 듣게 만드는 방식이다. 이 과정이 100ms 안에 완료되면, 시간 지연 없이 원활하게 통신이 가능하다.

 

이 방식은 시분할 다중 접속이라고도 하며, 고속의 통신 채널을 여러 사용자가 시간 안에서 구간을 나눠 번갈아가며 사용하도록 하는 기술이다.

 

3. CDMA

Code-Division Multiple Access, 각 사용자가 고유한 코드를 이용해 데이터를 전송한다.

 

주파수 모자르니 통으로 다 던지고, 고유한 코드를 부여함으로써,

코드가 일치하는 사용자들끼리만 데이터를 해독하고 의미를 전달할 수 있도록 한다.

 

이는 무선 차원에서 봤을 때, 데이터를 쏘지 않으면 소량의 signal들이 흘러 가고, 데이터를 보내면 많이 흘러 간다.

이러한 CDMA는 누적이 된다는 scheme이 들어가는데, 통상 암호화할 때 많이 사용되었다.

 

※ CDMA는 유선에서는 거의 사용되지 않고, 무선에서만 대부분 사용된다.

▶ Simple idea of communication with code

 

이 기술은 0과 1을 기준으로 동작하며, 각 station은 자신의 데이터를 전송할 때 특정 코드를 사용해 데이터를 변조한다.

 

본인의 코드에 본인의 코드를 곱하면 1이 나오고, 본인의 코드에 다른 코드를 곱하면 0이 나온다.

즉, 본인의 코드에 대해 본인의 코드가 주어졌을 때만 반응을 하고 다른 코드를 주게 되면 아무 의미가 없어진다.

 

예를 들어, station 1은 송신할 때 c1을 곱했으면 수신할 때도 c1을 곱해야 한다.

일종의 암호화 기술로, 코드 c1을 알면 데이터를 풀 수 있고 c1을 모르는 사용자에겐 아무 의미가 없는 데이터이다.

 

코드가 곱해진 데이터는 무선 차원에서 위 그림과 같이 더해지고,

medium에서 이렇게 차곡차곡 더해진 값들을 사용한다.

▶ Chip sequences

 

코드가 위 그림과 같이 주어졌을 때,

▶ Data representation in CDMA

 

CDMA에서 데이터 비트(0 or 1)를 전송할 때 방식

  • 0을 보낼 때: 코드에 -1을 곱한다. 이는 모든 비트를 반전시켜 사용한다는 의미이다.
  • 1을 보낼 때: 코드에 +1을 곱한다. 이는 모든 비트를 그대로 사용한다는 의미이다.
  • 아무것도 안 보낼 때: 코드에 0을 곱한다. 이는 모든 비트의 값이 0이 되어 전송되는 않는 것을 의미한다.

▶ Sharing channel in CDMA

▶ Digital signal created by four stations in CDMA

▶ Decoding of the composite signal for one in CDMA

 

수신 측에선, 본인의 코드를 'Digital signal created by four stations in CDMA'에 곱한다.

이때 코드를 모두 더하면 -4라는 값이 나오는데, 코드 사이즈가 4, 즉 네개의 값이므로 4로 나누면 -1이다.

따라서 보낸 데이터는 0임을 알 수 있다.

▶ General rules and examples of creating Walsh tables

 

※ Walsh code는 고유한 코드의 예시 중 하나이다.

 

실제 사용할 땐, 64 or 128개의 코드를 사용한다.

 

이동 통신

1세대 (1G): FDMA

2세대 (2G): FDMA + TDMA, 하나의 frequency를 TDMA 방식으로 시분할한다.

3세대 (3G): CDMA 기반이지만 FDMA, TDMA도 Hybriding한다.

4세대 (4G): OFDMA, Orthogonal Frequency-Division Multiple Access, 직교함으로써 간섭을 최소화한다.

5세대 (5G): OFDMA + α


참고 자료

https://www.youtube.com/watch?v=_iAzqVS7Xfo&list=PLz7S5PHCu4OlB-lUP_BqYmgiuLkvKY5aX&index=2

 

 

'전공 과목 > 컴퓨터 네트워크' 카테고리의 다른 글

Computer Network Lecture.01 Introduction  (14) 2024.08.29