교재 : Data Communications and Networking
저자 : BEHROUZ A. FOROUZAN
3.1 Introduction
Nodes and Links
data-link layer에서의 통신은 node-to-node이다.
LAN과 WAN은 routers에 의해 연결이 되어 있는 상태인데, 그 사이로 들어간다면 모든 connecting devices들은 곧 하나의 node라고 볼 수 있다.
노드 투 노드니깐, 디바이스 2개만 본다는 뜻으로 이해를 해도 된다.

그러니까 data-link layer에선 한 노드에서 다른 노드로 갈 때, 다음 노드와의 링크를 지정해주는 layer라고 보면 된다.
걔네는 다음 노드로와의 링크만 신경쓴다.
data link layer은 controls how the medium is used.
data link layer은 whole capacity of the medium을 할 수도 있고, only part of the capacity of the link를 할 수 있다.
전자는 broadcast link, 후자는 point-to-point link라고 부른다.
data link layer은 2개의 sublayers가 존재한다.
Data Link Control(DLC), Media Access Control(MAC) 계층이다.
(나중에 보면 알듯이, 이런 2 layer은 unusual하다. coz LAN protocol은 use the same strategy이기 때문)

보시다시피 broadcast link에선 여러 사용자가 있으므로 MAC sublayer가 존재하는 것이고,
point-to-point link에선 DLC 하나만 존재해도 된다.

네, 그 MAC address가 이 데이터링크 계층의 MAC 계층에서 다루는 것이라고 합니다.
3.2 Data Link Control(DLC)
DLC deals with procedures for communication between two adjacent nodes no matter whether the link is dedicated or broadcast.
브로드캐스트 링크든 P2P 링크든 DLC는 항상 사용하는 Layer.
여기선 하는 일들이 여러 개가 있다.
1) framing
: pack bits into frames.
: each frame은 distinguishable from another 해야 하기 때문이다.
: 이렇게 패킷을 프레임으로 나누는 것은 효율적인 데이터 전송과 함께 오류 검출 및 복구에도 도움을 주기 때문이다.
: 프레임 형태로 나누어진 데이터는 네트워크를 통해 안전하게 전송되며, 수신자는 프레임을 다시 모아 원래의 데이터를 얻을 수 있다.
: frame size는 fixed될 수도 있고, variable size일 수도 있다. (define boundary of the frame 할 필요가 없다)
~ fixed가 된다면 라우터들이 HW적으로 빠르게 처리가 가능하지만, 데이터별로 필요한 length가 다르기 때문에 융통성은 좀 떨어짐.

: Character-Oriented Framing
=> data는 8-bit characters로 carried된다.
=> byte-stuffing을 하여 데이터의 시작과 끝을 정해준다.


ESC는 escape byte로, 원래 데이터의 시작과 끝을 알리기 위해 설정하는 flag.
: Bit-Oriented Framing
=> data는 sequence of bits.
=> 다른 frame과 구분하기 위해 8-bit flag를 보통 사용한다.
=> bit stuffing을 하여 data가 flag로 인식되는 것을 방지.


2) error control
: error control 과정은 총 2가지 과정이 존재한다. error detection과정과 error correction하는 과정이 존재한다.
: receiver가 error가 일어났는지 확인하는게 detection, 그 이후에 sender에게 에러가 일어났다고 알려줄 수 있다면 그게 correction.
: Types of error
: interference로 인해 bit error가 발생한다.
: single bit error, burst error 두 개가 존재한다.
: single bit error은 1 bit가 망가지는 것, burst error은 둘 이상의 bit가 망가지는 것.

* block coding
: block coding에선 우리는 msg를 block 크기(k bits)인 'data-words'라고 불리는 블락으로 나누고, r bits의 redundant bits를 각 블럭에 더해줌으로써 'codewords'로 만들 수 있다.
Q. 이 block coding을 통해 어떻게 에러를 detect할 수 있는가?
A. 나중에 디지털 통신에서 배우도록 하자. Hamming distance, parity-check code 등 배울 것이 꽤 많기 때문. 과정이 복잡하다.
이렇게 DLC에서는 error 검사를 해주고, flow control과 error control을 같이 해준다.
3.3 Media Access Protocols
우리는 data link layer을 DLC와 MAC으로 나눴었다.
Random Access
random access에서는 어떠한 station도 superior하지 않다. 모두 다 평등함.
ALOHA method
Random Access 1세대인 ALOHA method를 살펴보자.
이 ALOHA method는 shared medium에서 사용될 수 있는데,
shared medium에선 collision이 무조건 발생하니까 각 데이터가 부딪히면 모든 frame이 꺠지게 되는 상황이 발생한다.

이러한 상황.
따라서 ALOHA는 모든 station 각각이 지켜야 할 procedure가 존재한다.
목표는 "How to avoid collisions in shared medium"

기정사실은 수신측에서 데이터를 수신하면 ACK를 보내야 한다는 것, K_max가 정해져야 한다는 것.
평균적인 T_p : maximum propagation time이 정해져야 한다는 것. (기준)
여기서 T_p를 구하게 되면 2*T_p는 vulnerable time이라고 칭하는데, 이유는 다음과 같다.

그냥 propagation time을 2배 때린 것이 그냥 취약 구간이라고 간단하게 정의를 해버렸음.
좀 허접하긴 하지만 틀린 말은 아니니까 + 첫 시도인데 이걸 생각해낸 건,, 역시 Univ.Hawaii!
이후에 ALOHA network는 slot을 정해놓기도 했는데, 이렇게 생각하면 Vulnerable time이 더 작아질 수 있다.


취약시간이 굉장히 간단해짐 (slot을 지정해주고 frame의 크기를 static하게 지정해주면)
Carrier Sense Multiple Access (CSMA)
shared medium에선 충돌을 없앨 순 없다. 최대한 minimize하는 것이 중요하다.
따라서 CSMA라는 기법이 존재하는데, 현재 가장 많이 사용되는 random access 기법이라고 한다.
idea는 바로, station이 send를 하기 전에, sense the medium을 한다는 것.
each station은 first listen to the medium을 하고, sending을 해야 한다는 것.
어떻게 하는지 구체적으로 살펴보자.

보다시피 B station이 t1 시간에 전송을 하고 있다고 하자.
시간이 얼마 지나지 않고, C가 데이터 전송을 했다. 그러면 둘이 충돌 할 수 있는 그런 상황이다.
다른 예시로 이제 어떻게 medium을 sense하는지 살펴보자.

A가 t1 시간에 frame을 전송했다.
다른 station들한테 전송이 되는 상황. 하지만 medium의 길이가 있고, 길이마다 frame이 도착하는 시간이 다르니까, station마다 frame이 오는 시간이 다른 것이다.
그래서 frame propagation이 아래로 치우쳐진 사다리꼴이 된 것임.
아무튼 B는 데이터를 보내고 싶을 때 medium sense를 하고, 마지막 station인 D까지 도착하는 그 시간까지 vulnerable time으로 지정을하고, sense time + vulnerable time까지 전송을 하지 않는 것임.
이것이 바로 CSMA 방식.
Medium을 sense하는 3가지 방식이 존재한다.

1-persistent는 계속 확인하는 것. Nonpersistent는 random wait시간 이후 sense하고 medium사용중이면 또 wait.. 비어있을 때까지 wait를 실행.
p-persistent는 계속 sense하다가 랜덤값 p와 기준값 R보다 크면 전송하는 것. 그냥 non-persistent에 랜덤확률값을 도입하는 것과 같다. 더 안전할 수 있으니까 그렇게 한 것 같다.

각 persistence method의 Flow diagram.
CSMA는 여기까지.
Carrier Snese Multiple Access with Collision Detection (CSMA/CD)
이름이 되게 길다.
CSMA와의 차이 먼저 말하자면, CSMA는 doesn't specify the procedure following a collision.
충돌을 확인하면 아무 절차를 밟지 않지만, CSMA/CD는 handle collision을 하는데 이것이 바로 CSMA와의 차이이다.
여기선 station이 frame을 보낸 뒤 성공적으로 도착할 때까지 medium을 monitor한다.
collision이 발생하면 한번 더 개입해 send again 하는 것.

내 생각에 안정적이긴 하지만, 너무 많은 load가 발생할 것 같다.
실패하면 나머지 station 전송을 모두 취소하고 다시 보내는 것. time spending이 과하다.

저렇게 A가 보내는 와중에 C가 눈치없이 보내서 frame이 충돌하게되면, C는 곧바로 전송을 멈추게 된다.
근데 A에게 도착하는 시간이 있기 때문에, A에게 C frame이 도착한 뒤 C가 그때까지 보내고 있던 시간만큼 철회시킨다.
(아 이거 설명하기 너무 어렵네요. 잘 생각해보시길.. 죄송)
이렇게 Detection을 할 수 있으니까, CSMA/CD라고 생각하시면 편할 듯요
CSMA/CA
CA? Collision Avoidance라고 한다.
충돌을 회피한다니, 어떻게 가능할까?
그 전에 먼저 생각해볼 것이 있다.
CSMA와 CSMA/CD는 wired에서 가능할까 wireless에서 가능할까?
.
.
.
.
바로 wired에서 가능하다
이유는 다음과 같다.

따라서 CSMA/CA는 wireless에서 collision을 avoidance하기 위한 프로토콜로 볼 수 있다.
Random Access의 반대는?
Controlled Access.
무선통신에선 이 Controlled Access를 사용한다.
station은 다른 station에게 authorized되지 않으면 frame을 전송하지 못한다.
따라서 이 controlled access에서 데이터를 전송하기 위한 절차가 존재한다.
1. Reservation method
: Time is divided into intervals.
: In each interval, a reservation frame precedes the data frames sent in that interval.
: 시간을 slot으로 저장해놓고 Reservation한 frame만 그 slot 안에 전송이 되는 것. 아주 간단하다.

2. Polling (여론조사)
Primary station (무선에선 Access Point)가 secondary stations에게 여론조사를 보낸다.
이후 primary device가 controls the link를 한다. secondary device는 이 control에 따라야 한다.

3. Token Passing
이 방법을 사용하기 위해서, 기정사실은 station들이 ring topology로 구성되어야 한다.
각 station에는 predecessor과 successor이 존재함으로, 그들에게 토큰을 전달받아야 frame을 전송할 수 있게 된다.

'Infrastructure > Networking' 카테고리의 다른 글
| [통신 네트워크 설계] Connecting Devices 정리 (0) | 2024.03.10 |
|---|---|
| [통신 네트워크 설계] #1 네트워크 기본 개념 정리 (0) | 2024.03.07 |
| [통신 네트워크 설계] Chapter Review (0) | 2024.03.04 |
| [논문 리뷰] 통신 특징으로 IoT device의 Identity 식별하기 (1) | 2024.02.27 |
| [논문 리뷰] 엣지 컴퓨팅 최신 동향 (0) | 2024.02.23 |