본문 바로가기

OSI Model

3. MAC 와 LLC (2계층 Data-link Layer 데이터 링크 계층)

2계층 Data-link Layer (데이터 링크 계층)

물리적 주소를 기반으로 데이터의 전송형태를 결정하며, 물리적인 링크를 통해 데이터를 신뢰할 수 있게 전송하는 역할을 한다. 

 

이 계층은 다시 두 개의 부 계층(MAC 와 LLC )으로 나눈다.

데이터 링크 계층은 두 포인트(Point to Point) 간 신뢰성 있는 전송을 보장하기 위한 계층으로, CRC 기반의 오류 제어 및 흐름 제어가 필요하다.

 

데이터 링크 계층은 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내며 수정하는 데 필요한 기능적·절차적 수단을 제공한다

 

데이터 링크 계층에서는 상호 통신을 위해 MAC 주소를 할당받는다. MAC 주소는 사람의 이름처럼 네트워크 카드마다 붙는 고유한 이름이다.

 

MAC-Media Access Control 미디어 엑세스 제어 : 어떻게 프레임을 전송할 것인지를 정의한다

각 장치와 관련된 물리적인 주소지정, 네트워크 토폴로지 정의를 한다

 

LLC-logical link control 논리 연결 제어 : 프로토콜을 식별하여 캡슐화해서 연결을 유지하는 기능을 수행한다)

 

 

LLC

IEEE 802.2 프로토콜을 LLC(Logical Link Control)이라고 한다.

LLC 계층은 두 장비간의 링크를 설정하고, 프레임을 송수신하는 방식과 상위 레이어 프로토콜의 종류를 알리는 역할을 함.

 

LLC 타입 1

LLC 타입1은 ACK를 사용하지 않는 비연결형 모드(Unacknowledged connectionless mode)라고도 함.

 

양측 간 사전에 링크를 설정하지 않고, ACK, 흐름제어, 에러복구도 하지 않음

이더넷은 주로 LLC 타입 1을 사용

 

*ACK(Acknowledgement) : 상대가 보낸 PDU를 잘받았음을 알려주는 것

*PDU(Protocol Data Unit) : 프레임, 패킷, 세그먼트 등과 같은 데이터의 묶음

 

 

LLC 타입 2와 LLC 타입 3

LLC 타입 2는 커넥션 모드(Connection mode)라고도 함.

상대방 장비와 데이터를 송 수신하기 전에 먼저 경로를 설정하고 ACK, 흐름제어 및 에러복구 기능 제공.

LLC 타입 3은 ACK를 사용하는 비연결형 모드(Acknowledged connectionless mode)

 

 

LLC 프레임 포맷

 

 

* DSAP 주소

SAP(Service Access Point)란 이더넷프레임에 포함된 상위 계층의 프로토콜 종류를 의미.

 

IEEE 802.2에서 사용되는 SAP 번호와 이더넷 2 프레임에서 사용하는 타입 필드와 역할이 같음.

(IP-46, BPDU-42, X.25-7E, SNAP-AA, NetBIOS-F0, ISO 네트워크 레이어 프로토콜-FE, Global SAP-FF)

 

DSAP 필드는 목적지의 SAP 주소를 나타냄.

 

* SSAP 주소

SSAP (Source SAP) 필드는 출발지의 SAP 주소를 나타냄.

첫번째 비트가 0이면 명령, 1이면 응답.

 

* 제어

프레임의 종류 및 역할을 나타내는 목적으로 사용.

(종류 : UI - 데이터를 전송할 때, XID - 통신초기에 LLC 동작 타입을 지정, TEST - 상대방과의 경로가 유효한지를 검사할 때)

 

* 상위계층 데이터

TCP/IP 등을 포함한 상위계층의 데이터가 위치하는 곳

 

MAC(Media Access Control)

네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유의 번호이다

 

이더넷과 같은 브로드캐스트 네트워크에서 MAC 주소는 해당 세그먼트의 각 노드를 고유하게 식별하며 프레임들을 특정 호스트를 위해 구별할 수 있게 도와준다.

 

고유 식별을 위해 만들어졌지만 MAC 주소를 변경할 수 있다. 운영체제 단에서 MAC 스푸핑을 지원하기 떄문에 주소를 변경할수 있다(임시적으로)

MAC 주소를 변경하는 일은 네트워크 가상화에서 필수적이다. 보안 취약점을 활용하는 과정에도 사용할 수 있는데, 이를 MAC(MAC spoofing)이라고 한다.

 

MAC 스푸핑

 

 

ifconfig eth0 | grep ether //맥주소 확인

ifconfig eth0 down //eth0 장치 중지

ifconfig eth0 hw ether [바꿀 MAC주소] //너무 엉뚱한 주소는 설정 못함

ifconfig eth0 up //eth0 장치 시작

 

MAC기능

데이터 캡슐화 : 데이터 캡슐화 과정은 데이터를 수신할 때, 데이터의 캡슐화 과정과 분해과정을 포함한다.

캡슐화 과정에서 패킷데이터에 프레임 헤더와 트레일러를 추가하는 과정이다.

데이터 캡슐화 기본기능

1)프레임 구분

2)어드레싱

3)오류감지

 

데이터 캡슐화 절차는 프레임 전달과 파싱전에 프레임을 조합한다.

또 프레임을 구성할때 패킷에 헤더와 트레일러를 추가하고 MAC주소를 추가하는 어드레싱과정을 거친다.

FCS(Frame Check Sequence)필드에서 전송되는 이더넷프레임 목적지 MAC주소부터 데이터필드까지 에러 발생 여부를 확인한다.

 

미디어 접근 제어 : MAC 부계층은 매체에 프레임이 접근 될 수 있도록 하고, 메체로부터 프레임을 가져올 수 있도록 한다. 

프레임의 전송을 시작하고, 충돌에 의한 전송실패를 복구한다.

 

CSMA/CD(Carry Sense Multiple Access/Collision Detection) : 이더넷에서 장치가 매체에 접속하는 것을 관리하는 방법중 하나이다. 

한 회선 안에서 통신 충돌이 발생시에 충돌을 확인한 전송장비가 충돌을 알리고 임의의 시간동안 전송을 중단한다. 

임의의 시간이 지난후 청취모드로 돌아가 이과정을 충돌이 일어나지 않을 때 까지 반복한다.

 

이더넷 프레임 타입

 

프리앰블 : 프레임의 시작을 나타내는 필드 10101010이 반복되는 구조이고 마지막 1Byte(SFD)에서 10101011로 프레임의 시작을 알린다.

목적지 주소 : 수신지의 MAC address를 나타낸다.

출발 주소 : 출발지의 MAC address를 나타낸다.

이더넷(2) Frame의 Type : 필드값이 1536보다 크면 서비스를 이용하는 상위 계층 프로토콜의 타입을 의미한다.

IEEE802.3 Frame의 Length : 필드값이 1518보다 작으면 프레임 데이터의 바이트 수를 의미한다.

 

FCS : 이필드에선 프리앰블과 FCS부분을 제외한 프레임의 비트열에서 오류를 검사한다. 송신측에서 CRC(Cyclic Redundancy Check)를 덧붙여 보내면 수신측에서 동일한 방법으로 계산하여 일치성을 검사해서 오류를 검출한다.

 

*CRC (Cyclical Redundancy Check) :데이터 오류를 수학적으로 검출한다 오류를 검사할 때 체크값을 사용하여 오류 여부를 확인한다

1.송신자의 시스템은 수신자의 시스템과 체크값을 정한다

2.송신자가 보내려하는 데이터를 체크값을 나눈다

3.송신자는 데이터를 체크값으로 나누어 만들어진 나머지값을 데이터의 끝에 붙여서 전송한다

4수신자는 받은 데이터를 체크값으로 나누어 도출되는 나머지를 비교하여 일치하면 수신하고 일치하지 않으면 송신자에게 나머지값이 일치 될 때까지 재전송 요구 신호(NAK)를 보낸다

(주의할점- 데이터를 나누어 변경을 한 것이 아니라 데이터를 나누고 난 나머지값을 FCS필드에 넣는다)

 

MAC 주소는 총 12개의 16진수 숫자로 구성되어 있는데, 앞쪽 6개의 16진수는 네트워크 카드를 만든 회사를 나타내는 것으로 OUI(Organizational Unique Identifier)라고 한다.

 

뒤쪽 6개의 16진수는 각 회사에서 임의로 붙이는 일종의 시리얼을 나타내는 것으로 Host Identifier라고 한다.

 

따라서 MAC 주소의 앞부분을 보면 어느 회사에서 만든 제품인지 알 수 있다.

각 회사마다 고유한 OUI를 가지며, 한 회사에서는 같은 시리얼의 네트워크 카드를 만들지 않기 때문에 같은 MAC 주소는 존재하지 않는다.

 

데이터 링크 계층의 대표적인 네트워크 장비로는 스위치가 있고, MAC 계층에서 동작하는 대표적인 프로토콜로는 이더넷(Ethernet)이 있다.

스위치와 이더넷을 이용해서 1계층과 2계층만 사용하는 경우 인터넷과 같은 외부 네트워크를 송신하지 않고 랜에서의 통신이 가능하다

스위치는 패킷이 흐르는 동안 아무런 조작도 하지 않는다.

하지만 처음부터 위와 같은 패킷이 생성되어 통신을 수행하는 것은 아니다.

통신을 하기 위해서는 이렇게 패킷이 흘러가기 전에, 두 시스템이 서로의 MAC 주소를 알아야 하며 스위치도 두 시스템의 MAC 주소를 알아야 한다

 

요약

 

물리 계층에서 0과 1로 이루어진 신호(bit) 가 들어오면 프레임 단위의 형태로 변환하여 해석한다

LLC는 상위 레이어 프로토콜의 종류를 알리고 식별하는 역할을 하고 MAC은 출발지와 목적지의 주소를 의미하여 구분을 하기위해 사용된다

FCS 를 이용하여 프레임의 비트열 오류를 검출한다

에러 확인시 해당 프레임을 폐기하고 재전송을 요구한다