[모두의 네트워크] -04 데이터 링크 계층: 랜에서 데이터 전송하기
데이터 링크 계층의 역할과 이더넷에 대해서 정리할 예정이다.
- 데이터 링크 계층의 역할
네트워크 장비 간에 신호를 주고 받는 규칙을 정하는 계층이다. 이러한 규칙중 일반적으로 가장 많이 사용되는 규칙이
이더넷(Ethernet)이다.
- 이더넷이란?
랜(LAN, Local Area Network)에서 데이터를 주고 받으려면 데이터 링크 계층에서의 기술이 필요하다. 즉 이더넷은 랜에서 적용되는 컴퓨터와 데이터를 주고 받기 위해 사용한다.
이더넷은 보통 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을때 사용하는데 허브는 전달받은 데이터를 연결된 모든 컴퓨터에 전달하는 단점이 존재하였었다. 예를들어 5개의 컴퓨터가 연결되어 있을 때 1번 컴퓨터가 데이터를 2번으로 전달하려고 데이터를 보내도 각 3~5 컴퓨터로도 데이터가 전달 되는 것이다.
그래서 보내려는 목적지 정보를 추가해서 보내게 된다.
이러한 목적지 정보는 데이터 링크 계층의 헤더에 포함되어 있다.
데이터 링크 계층의 헤더에 해당되는 정보는
- 목적지 MAC 주소: 데이터를 전송할 대상 장비의 물리적인 주소
- 출발지 MAC 주소: 데이터를 전송한 장비의 물리적인 주소
- 유형(Type) 또는 길이/유형(Length/Type) 필드: 상위 계층에서 전달되는 프로토콜 정보의 종류 또는 길이를 나타낸다.
- FCS(Field Check Sequence) 또는 CRC(Cyclic Redundancy Check): 데이터 전송 중에 오류가 있는지 검사하기 위한 정보다.
위와 같으며 MAC주소는 랜카드에 포함되어 있다.
- 만약 들어온 데이터가 동시에 전달되면 어떻게 될까?
허브는 데이터를 연결된 모든 포트로 보내는 역할만 수행한다. 허브 자체에는 이외의 특별한 기능이 없다.
한꺼번에 여러 데이터들이 보내지면 충돌(collision)이 발생한다.
데이터 충돌이 발생하면 충돌이 발생한 모든 디바이스에서 전송 중인 데이터 프레임을 중단하고 재전송을 시도하게 된다.
그래서 이더넷은 이를 방지하고자 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조를 가지고 있다.
이 방법은 CSMA/CD(반송파 감지 다중 접속 및 충돌 탐지, Carrier Sense Multiple Access with Collision Detection) 방법이라 부르며 아래의 순서를 따른다 CSMA/CD는 이더넷과 같은 LAN에서 사용되는 대표적인 프로토콜이다.
- 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지를 확인 (CS)
- 데이터가 전송중이지 않다면 데이터를 전송 (MA)
- 마지막으로 충돌이 발생하고 있는지를 확인 (CD)
- MAC 주소(물리 주소)의 구조
위에서 설명한 MAC주소(물리 주소)는 랜 카드에 정해져있는 번호이다. 제조할때 새겨지며 전 세계이서 유일한 번호이다.
랜 카드는 비트열(0과 1)을 전기신호로 변환하는 역할을 한다.
데이터를 보낼때 응용계층(7계층)에서 헤더와 트레일러들이 추가되며 데이터가 전달되어 1계층까지 내려오게 되면(캡슐화) 이 데이터는 비트열의 형태를 띄고 있다. 이 데이터가 다른 컴퓨터로 전달되기 위해서는 케이블 또는 무선 통신을 통해 전달되야하기 때문에 전기신호로 변환되어야 한다. 이러한 변환을 해주는 것이 1계층에서의 역할이며 이 역할을 수행하는 것이 랜카드이다.
이러한 과정을 거져 송신 측 컴퓨터로 데이터가 전달되면 전기 신호(0,1)을 다시 비트열로 변환시켜 데이터와 함께 전달된 헤더들을 역캡슐화하며 우리가 받고자 했던 데이터의 형태로 전달이 진행되는 것이다.
맥 주소는 48비트의 숫자로 정해져 있다. 48비트 중 24비트는 랜 카드를 만든 제자소 번호이며 뒤쪽 24비트는 제조사가 랜 카드에 붙인 일련번호이다.
위의 데이터 전달 과정을 나타낸 그림에서 각 계층마다 헤더를 붙이는 것을 확인할 수 있는데 데이터 링크 계층에서는 이더넷 헤더와 트레일러를 붙인다.
- 이더넷 헤더의 구성
이더넷 헤더는 목적지의 MAC주소 6바이트, 출발지 MAC주소 6바이트, 유형 2바이트 이렇게 14바이트로 구성되어 있다.
목적지 MAC 주소
(6바이트)
|
출발지 MAC 주소
(6바이트)
|
유형
(2바이트)
|
- 이더넷 유형이란?
이더넷으로 전송되는 상위 계층 프로토콜의 종류를 나타내며 프로토콜 종류를 식별하는 번호가 들어간다.
- 트레일러
트레일러는 FCS(Frame Check Sequence)라고도 부르며 데이터 전송도중 오류가 있는지를 확인하기 위해 활용한다.
이렇게 이더넷 헤더와 트레일러가 추가된 데이터를 프레임이라고 한다.
프레임은 이와 같이 전달된다.
여기서 Preamble은 Ethernet 프레임의 첫 부분으로, 수신 측에서 Ethernet 프레임을 인식하고 수신할 수 있도록 도와주는 비트열이다.
이쯤에서 정리를 한번 해보면 우리가 허브를 통해 데이터를 전달할때는 두가지 문제가 존재한다.
- 데이터의 충돌문제
- 데이터가 연결된 모든 포트로 전달되는 문제
1번 문제는 충돌을 막기위해 CSMA/CD를 사용한다.
2번 문제는 이더넷 헤더에 포함되어 있는 목적지 및 출발지 MAC주소를 활용하여 해결한다.
- 스위치(Switch)의 구조
스위치는 허브와 달리 충돌이 발생하지 않는다.
스위치는 데이터 링크 계층에서 동작하고 레이어 2 스위치 또는 스위칭 허브라고도 불린다.
생김새는 허브와 비슷하다.
스위치는 MAC 주소 테이블(MAC Address Table)이 존재하는데 MAC 주소 테이블은 스위치의 포트 번호와 해당 포트에 연결 되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터 베이스이다.
맨처음 스위치를 작동하게 되면 비어있는 테이블에 데이터 전송이 일어나 프레임이 전달되면 MAC주소를 저장하는 역할을 수행하는데 이를 MAC 주소 학습 기능이라고 한다.
처음 스위치를 실행하고 1~5번 컴퓨터가 MAC 주소를 등록하는 과정을 플러딩(Flooding)이라고 하며 이렇게 저장된 MAC 주소를 기준으로 목적지를 고르는 것을 MAC 주소 필터링 이라고 한다.
- 케이블에서 데이터 전송시 충돌하지 않는 이유
통신 방식에는 전이중 통신 방식과 반이중 통신 방식이 존재한다.
전이중 통신 방식은 데이터 송수신은 동시에 통신하는 방식이다.
반이중 통신을 회선 하나로 송신과 수신을 번갈아가며 통신하는 방식이다.
따라서 전이중 통신은 데이터를 동시에 전송해도 충돌이 발생하지 않지만 반이중 통신은 데이터를 동시에 전송하면 충돌이 발생한다.
예를 들어 컴퓨터 1번과 2번을 직접 랜 케이블로 연결했다면 전이중 통신 방식을 사용하여 동시에 데이터를 주고 받아도 문제가 없도록 하고 허브를 사용하여 컴퓨터 1번과 2번은 동시에 데이터를 보낼때 문제가 발생할 수 있으므로 반이중 통신 방식을 채용하는 것이다.
스위치를 사용한다면 충돌이 일어나지 않는 구조로 되어있기 때문에 전이중 통신 방식으로도 데이터를 주고 받을 수 있다.
- 충돌 발생
만약 충돌이 발생한다면 어떻게 될까
충돌이 발생했을 시 충돌로 인한 영향이 미치는 범위를 충돌 도메인이라고 한다.
허브로 연결이 되어있으면 포트에 연결되어 있는 모든 컴퓨터가 충돌 도메인이 된다.
스위치는 데이터를 동시에 송수신이 가능하기 때문에 충돌 범위도 각각에 그친다.