YUDA't

데이터링크 계층은 네트워크 장비 간에 신호를 주고받는 규칙을 정한다. 이 계층에서 가장 유명한 프로토콜은 이더넷(Ethernet)이다. 허브는 목적지를 판단하지 못해 모든 컴퓨터로 신호를 보내는데, 이더넷 헤더를 추가함으로써 목적지 외에는 신호를 무시하도록 한다.

 

CSMA/CD

컴퓨터 여러 대가 신호를 보내면 데이터들이 서로 부딪혀 충돌(collision)이 일어나는데 이를 막기 위해 이더넷은 CSMA/CD를 사용한다. CSMA/CD는 Carrier Sense Multiple Access with Collision Detection(반송파 감지 다중 접속 및 충돌 탐지)의 약자이다.

데이터를 보내려 하는 케이블에 신호가 흐르고 있는지 확인한 뒤(CS) 없다면 데이터를 보내고(MA), 충돌이 발생하고 있는지 확인(CD)한다. 다만 효율성이 떨어져 지금은 거의 사용하지 않고 스위치(switch)라는 장비를 사용한다.

 

MAC 주소

물리 계층에서 데이터 비트열을 전기 신호로 변환하는 네트워크 카드에는 각각 고유의 번호가 새겨져 있는데 이를 MAC 주소(Media Access Control Address)라 부른다. 총 48비트(제조사 번호 24비트 + 제조사의 일련번호 24비트)로 이루어져 있다.

이더넷 헤더에는 목적지 MAC 주소(6바이트)와 출발지 MAC 주소(6바이트), 그리고 이더넷 유형(2바이트)이 있다. 이더넷 헤더 뒤로는 전송 데이터와 트레일러가 있는데 이를 통틀어 프레임(frame)이라 한다.

트레일러(trailer)는 FCS(Frame Check Sequence)라고도 하며 데이터 전송 도중 오류가 발생하는지 체크한다.

 

스위치

데이터링크 계층의 장비인 스위치(switch)에는 MAC 주소 테이블(MAC address table)이 있는데 여기에 스위치의 포트 번호와 해당 포트에 연결돼 있는 컴퓨터의 MAC 주소가 등록되어 있다. 처음에는 아무 것도 등록되어 있지 않지만 출발지 컴퓨터로부터 프레임이 전송되면 여기에 있는 MAC 주소를 테이블에 등록한다. 그리고 이후 전송되는 프레임의 MAC 주소가 테이블에 있다면 추가 등록 없이 전송할 수 있다. 이렇게 MAC 주소를 기준으로 목적지 컴퓨터를 선택하는 것을 MAC 주소 필터링이라 한다.

참고로 윈도우에서는 다음 명령어를 통해 MAC 주소 테이블을 확인할 수 있다.

C:\Users\yuda>getmac /v /fo csv
"연결 이름","네트워크 어댑터","물리적 주소","전송 이름"
"Bluetooth 네트워크 연결","Bluetooth Device (Personal Area Network)","00-1A-7D-DA-71-13","미디어 연결 끊김"
"이더넷","Intel(R) Ethernet Connection (7) I219-V","70-85-C2-A4-75-A6","\Device\Tcpip_{964ED644-8914-4C27-BB65-A5C8811903CB}"
"vEthernet (Default Switch)","Hyper-V Virtual Ethernet Adapter","02-15-F7-2C-01-76","\Device\Tcpip_{A10A3B5B-3729-4950-B231-E70A6A34666F}"
"vEthernet (DockerNAT)","Hyper-V Virtual Ethernet Adapter #2","00-15-5D-B0-A0-02","\Device\Tcpip_{2928BEBB-FAF1-4276-A4FA-3F5699B2977F}"

하지만 MAC 주소가 테이블에 등록되어 있지 않았을 경우, 모든 컴퓨터에 프레임이 전송되어 플러딩(flooding)이 일어난다.

 

전이중 통신과 반이중 통신

전이중(full-duplex; double-duplex) 통신은 독립된 회선을 사용하여 송수신이 동시에 이루어질 수 있다.

반면 반이중(half-duplex) 통신은 하나의 회선을 사용하여 송수신을 번갈아 통신하기 때문에 데이터를 동시에 보낼 수 없다.

컴퓨터끼리 연결된 랜선은 크로스 케이블로 되어 있기 때문에 전이중 통신 방식을 사용하여 데이터를 동시에 보낼 수 있다. 그러나 허브는 반이중 통신 방식으로 되어 있어 데이터를 동시에 보낼 경우 충돌이 일어난다. 그래서 최근에는 허브 대신 전이중 통신 방식으로 되어 있는 스위치를 사용해 효율을 높인다.

한편 데이터 충돌의 영향이 미치는 범위를 충돌 도메인(collision domain)이라 한다. 반이중 통신 방식인 허브를 사용하면 허브에 연결된 모든 컴퓨터가 충돌 도메인이 되는 데 반해, 전이중 통신 방식인 스위치를 사용하면 충돌 도메인의 범위가 훨씬 줄어든다.

 


 

함께 읽으면 좋은 글

Ethertype; Ethernet Protocol Type