Network 강의

데이터 링크 계층이란?

kagan-draca 2024. 9. 1. 16:23

 

OSI 7계층의 2번째 계층으로 인접한 네트워크 노드끼리 데이터를 전송하는 기능과 절차를 제공합니다.

또한, 물리 계층(1계층)에서 발생할 수 있는 오류를 잠지하고 수정해줍니다.

 

대표적인 프로토콜로 이더넷(Ehernet)이 있습니다.

 

Ethernet v2

 

Preemble : 이더넷 프레임의 시작과 동기화

 

Dest. Addr. : 목적지 MAC 주소

 

Src. Addr. : 출발 MAC 주소

 

Type : 캡슐화되어 있는 패킷의 프로토콜 정의

 

Data : 상위 계층의 데이터, 46~1500-byte, 46보다 작을 경우 이를 맞추기 위한 패딩(Padding) 데이터가 붙는다.

 

FCS(Frame Check Sequence) : 프레임 에러 체크

 

 

데이터 링크 계층 구성

 

데이터 링크 계층은 MAC, LLC로 구성 됩니다.

 

 

 

MAC( media access control address ) : 물리적 부분으로 매체간 연결 방식을 제어하고 1계층과 연결 돼 있습니다.

48 bit(6 byte)로 구성돼 각 바이트 마다 16진수로 표현 됩니다.

 

앞 자리 3 byte자리는 OUI(Organization Unique Identifier)로 제조사 식별 코드가 있고,

나머지 3 byte 자리는 제조사의 일련번호가 들어 있습니다.

 

그래서, MAC로 부터 어떤 제조사가 만들었는지 구분할 수 있습니다.

 

LLC(  Logical Link Control ) : 논리적인 부분으로 데이터 링크의 데이터 프레임(Frame)을 만들고

                                                   네트워크 계층(3 계층)과 연결합니다.

 

 

데이터 링크 주요 기능

 

 

1. 프레이밍(Framing)

 

네트워크 계층(3 계층) 에서 보낸 데이터그램(Datagram)을 프레임 단위로 만들고 헤더와 트레일러를 추가 합니다.

 

해더(Header) : 목적지, 출발지 주소 그리고 데이터 내용을 정의한다.

트레일러(Trailer) : bit의 에러를 감지합니다.

 

2. 회선 제어

 

신호 간의 충돌이 발생하지 않도록 제어해줍니다.

 

ENQ( Enquiry )(문의)/ACK( Acknowledgement )(승인, 통지) 기법으로 1 : 1 방식과 

Polling 기법으로 1 : 다수 방식이 있습니다.

 

1) ENQ( Enquiry )/ACK( Acknowledgement )

 

 

2) Polling

 

 

 

Select 모드 : 송신자가 나머지 수신자들을 선택하여 전송합니다.

Poll : 수신자에게 데이터 수신 여부를 확인 후 전송합니다.

         여러 수신자를 대응할 수 있어 Multipoint라고 합니다.

 

 

3. 흐름제어 : 송수신자 데이터를 처리하는 속도 차이를 해결하기 위한 제어 방법,

                      Feedback 방식의 흐름 제어하며 이를 Stop & Wait 방식이라고도 부릅니다.

 

 

 

1) Frame 전달 후 Ack(승인, 통지)가 응답하지 않는 경우

 

2) Frame 재전송으로 중복 프레임이 보내지는 경우

 

 

Sequence Number 1 bit를 통해 동일 프레임인지 구분해서 상위 계층에 전달한다.

 

ex) Frame * <- 이 * 넘버를 확인한다.

 

Sliding Window 흐름 제어 방식 : 정지 - 대기 기법의 비효율성을 개선한 기법으로

                                                       수신 측에서 설정한 windows 크기만큼 송신 측에서 ACK (확인) 없이

                                                        전송할 수 있게 하여 동적으로 조절하는 제어 알고리

 

 

 

1. 송신측은 프레임을 순서 번호에 따라 순차적으로 전송한다.

 

2. 수신측이 송신측에 전송하는 순서 번호는 정상적으로 수신한 번호가 아닌,

    다음에 수신하기를 기대하는 번호이다.

     ex) ACK 4 : 3번을 받았고, 4번을 받을 차례를 뜻 한다.

 

3. 송신측은 전송은 되었지만, ACK를 받지 못 한 프레임들을 버퍼에 쌓아둔다.

 

4. 송신측은 프로토콜의 동작 방식에 따라 크기가 다르다.

    - 선택적 재전송(Selective Repeat) : 수신측과 송신측의 윈도우 크기가 같ㅌ음

    - Go - Back N : 크기가 1임(정상적으로 들어온 프레임만 받아서 처리)

 

- 윈도우 사이즈 3

  - ACK를 받지 않고도 최대 윈도우 사이즈 만큼 보낼 수 있음

(a) 0,1,2 보낸 후 대기

 

(b) ack 1로 받음( 0을 수신했으니 1 달라는 뜻 ) / 윈도우 바뀜(1,2,3) / 3번 보낼 수 있는 상태

 

(c) 3 보냄

 

(d) ACK 2 받음( 1을 수신했으니 2 달라는 뜻 ) / 윈도우 바뀜 (2,3,4) / 4번 보낼 수 있는 상태

 

(e) 4 보냄

 

(f) ACK 3, ACK 4 받음 ( 2을 수신했으니 3 달라, 3를 수신 했으니 4 달라는 뜻) / 윈도우 바뀜 (4,5,6)

     / 5번, 6번 보낼 수 있는 상태

 

 

Go-back N

오류가 발생한 프레임을 포함해 이후에 전송된 모든 프레임을 재전송

 

정상 수신 응답 : ACK

부정 수신 응답 : NCK

 

(a) 송신측은 0 ~ 17까지 송신

 

(b)  수신측은

 

ACK(11)로 11 이전까지 모두 수신을 송신측에게 알리고,

NAK(12)로 12번 부터 오류가 발생했으니

12번 이후부터 다시 다 전송해 달라고 송신측에게 알림

 

(c) 송신측은 다시 12 ~ 17까지 전송

 

(d) 수신측은

 

(e) ACK(17)로 12 ~ 17까지 받았다고 송신측에게 알림

 

Selective Repeat

 

오류가 발생한 프레임만 선택적으로 복구하는 방식

 

정상 수신 응답 : ACK

부정 수신 응답 : NCK

 

(a) 송신측은 0 ~ 17까지 송신

 

(b) 수신측은 

 

ACK(11)로 0 ~ 11까지 정상 수신을 송신측에게 알리고,

NCK(12)로 잘못 받된 수신만을 송신측에게 알림

 

(C) 송신측은 12번을 다시 송신

 

(D) 수신측은

 

ACK(17) 현재까지 정상 수신한 번호를 송신측에게 알림.

( 만약, 또 12번에서 오류가 났다면 ACK(11)번을 보낼 것이다.)

 

위와 같은 과정 반복