네트워크 장비간 신호를 주고 받는 규칙을 정하는 역할을 한다.
랜(LAN)에서는 데이터를 주고 받을 때 데이터 링크 계층이 필요하다.
어떻게 데이터를 주고 받을지 그 규칙을 정해야 하기 때문이다. 가장 보편적으로 사용되는 규칙은 이더넷 프로토콜이다.
이더넷은 랜(LAN) 구간 통신에서 이용되는 2계층 프로토콜이다.
이더넷은 허브(Hub)와 같은 네트워크 장비에 연결된 데이터를 주고 받을 때 사용된다.
이전에 말했듯 허브(Hub)는 리피터(Repeater) + 여러 대의 컴퓨터를 연결하는 네트워크 장비다.
[허브(Hub)의 역할]
1. 손상된 전기 신호를 복원하고 증폭한다.
2. 받은 전기 신호를 신호를 보낸 포트를 제외한 나머지 포트에 전달한다.
위와 같은 특징으로 해당 전기 신호와 관련이 없는 포트에도 데이터가 전달되는 비효율이 발생한다.
이 때 이더넷 헤더에 목적지 정보를 추가해 관련 없는 포트에서 해당 전기 신호를 무시하게 할 수 있다.
또한 허브(Hub)는 연결된 여러 대의 컴퓨터가 동시에 데이터를 보낼 경우 충돌이 발생하는 구조다. 이더넷은 CSMA/CD를 사용해 충돌을 방지하고 있다.
[CSMA/CD]
Carrier Sense Multiple Access with Collision Detection
1. 컴퓨터가 데이터를 보내려고 할 때 케이블에 전기 신호가 흐르고 있는지 먼저 확인한다.
2. 전기 신호가 흐르고 있지 않다면 바로 데이터를 보낸다.
이더넷의 이러한 규칙 덕분에 데이터 충돌 없이 무사히 송수신이 이루어질 수 있다.
그러나 CSMA/CD 방식은 효율이 좋지 않기 때문에 현재는 스위치라는 네트워크 장비를 사용해 충돌을 해결한다.
0과 1의 비트열 데이터를 전기신호로 변환하는 랜카드에는 맥주소라는 것이 지정되어 있다.
맥주소란 랜카드의 물리적인 주소를 말한다. 전 세계에서 유일한 번호로 할당되어 있다.
맥주소는 48비트로 이루어져 있다. 앞 24비트는 랜카드 제조사 번호, 뒤 24비트는 제조사가 랜카드에 붙인 번호다. MAC 주소는 어떤 컴퓨터와 통신할 것인지 결정하는데 필요하다.
랜카드 제조사 번호 | 제조사가 붙인 일련 번호 |
---|---|
00-23-AE | -D9-7A-9B |
데이터 링크 계층에서는 데이터에 이더넷 헤더와 트레일러를 붙여 프레임을 생성하고, 물리 계층에서 이 프레임을 전기신호로 변환한다.
목적지 MAC 주소 (6바이트)
출발지 MAC 주소 (6바이트)
이더넷 유형 (2바이트)
[이더넷 유형 (Ethernet Type)]
이더넷으로 전송되는 상위 계층 프로토콜의 종류를 식별하는 번호
데이터 전송 도중에 오류가 발생하는지 확인하는 용도다.
이렇게 생성된 프레임이 전기 신호로 변환되어 허브에 전달되면, 허브는 연결된 모든 포트에 전기 신호를 전달한다.
이 때 이더넷 헤더에 담긴 정보를 바탕으로 목적지 맥주소에 해당하지 않는 컴퓨터는 데이터를 수신하지 않고 파기한다.
1번과 2번 컴퓨터가 동시에 3번으로 데이터를 송신할 때 충돌 방지를 위해 CSMA/CD 방식이 사용된다는 것도 참고하자.
스위치는 데이터 링크 계층에서 동작하고 레이어 2 스위치 또는 스위칭 허브라고 한다.
무조건적으로 모든 포트에 데이터를 전달하는 허브와 달리 스위치 내부에는 맥(MAC)주소 테이블이 존재한다.
포트번호와 포트에 해당하는 컴퓨터의 맥(MAC) 주소가 매핑되어 등록된 데이터베이스다.
등록되지 않은 맥(MAC)주소를 포트번호와 함께 맥(MAC)주소 테이블에 등록하는 것
스위치를 처음 사용하면 맥(MAC)주소 테이블에는 아무 정보도 기록되어 있지 않다.
맥(MAC)주소가 담겨 있는 프레임이 전송되면 스위치에서는 맥(MAC)주소 테이블을 확인하고 출발지 맥(MAC)주소가 등록되어 있지 않으면 맥(MAC)주소를 포트번호와 함께 등록한다.
목적지 맥(MAC)주소가 맥(MAC)주소 테이블에 등록되지 않았을 때 스위치가 모든 포트에 프레임을 전송하는 것
맥(MAC)주소 필터링은 불필요한 데이터를 네트워크에 전송하지 않는 역할을 한다.
목적지 맥(MAC)주소가 맥(MAC)주소 테이블에 등록되어 목적지 컴퓨터에만 프레임을 전송하는 것
케이블을 통해 데이터를 송수신 하는 과정은 전이중 통신 방식, 반이중 통신 방식이 있다.
데이터 송수신이 동시에 이루어진다.
앞서 컴퓨터와 컴퓨터를 직접 랜케이블로 연결할 땐 크로스 케이블을 사용한다고 했다. 두 컴퓨터가 네 쌍의 회선을 사용하기 때문에 이는 전이중 통신 방식이라고 볼 수 있다.
회선 하나로 데이터 송수신이 번갈아가며 이루어진다.
반이중 통신 방식은 회선을 하나만 사용하기 때문에 충돌이 발생한다.
허브(Hub)를 사용해 통신을 하는 경우 허브 내에서는 회선 하나로 송신과 수신이 번갈아 가며 이뤄지기 때문에 충돌이 발생한다. 반면 스위치를 사용하는 경우 스위치 내에서 전이중 통신 방식을 사용하기 때문에 데이터 충돌이 일어나지 않는다.
데이터 충돌은 네트워크 지연을 발생시키기 때문에 통신 효율을 위해 스위치를 사용하는 것이 더 보편화되어있다.
충돌이 발생할 때 그 영향이 미치는 범위
다시 허브와 스위치를 예로 들어보자.
반이중 통신 방식인 허브에 연결되어 있는 컴퓨터가 8대라고 했을 때, 허브에 일어난 충돌은 전체 8대의 컴퓨터에 미치게 된다. 연결된 모든 컴퓨터가 충돌 도메인이 되는 것이다.
그러나 스위치는 전이중 통신 방식으로 동작하기 때문에 충돌이 일어나지 않고 충돌 도메인의 범위도 매우 좁다. 하나의 컴퓨터에서 발생한 충돌이 스위치에 연결된 모든 컴퓨터에 영향을 미치지 않는다. 따라서 네트워크 지연을 줄이기 위해서 충돌 도메인 범위를 좁히는 것이 중요하다.
이더넷 프레임을 전송하려면 헤더에 목적지 맥주소를 입력해야 한다. 그런데 목적지 맥(MAC)주소를 알 수 없는 경우에는 어떻게 해야할까?
목적지 컴퓨터의 IP 주소를 이용해 MAC 주소를 찾기 위한 프로토콜이다.
이더넷 헤더에 들어갈 목적지 맥주소를 모를 경우 네트워크에 브로드캐스트를 하는데 이를 ARP 요청이라고 한다.
IP 주소에 해당하지 않는 컴퓨터는 아무런 응답을 보내지 않고 IP 주소에 해당하는 컴퓨터는 MAC 주소를 응답으로 보내는데, 이를 ARP 응답이라고 한다. 이것으로 맥주소를 파악해 이더넷 헤더를 붙여 프레임을 생성할 수 있다.
맥(MAC)주소와 IP주소 매핑 정보를 저장한 테이블
출발지 컴퓨터에는 ARP 테이블이 있다. 맥(MAC)주소와 IP주소 매핑 정보를 메모리에 저장해두어 이후 통신에 해당 정보를 참조한다.
그런데 IP주소가 변경되었을 경우 통신이 불가하기 때문에 ARP 캐시로 정보를 얼마 기간동안 보관할지 지정하고 일정 시간이 지나면 삭제 후 다시 ARP 요청을 한다.