링크 계층의 기본 서비스는 단일 통신 링크상으로 데이터그램을 한 노드에서 인접 노드로 이동시키는 것이지만, 서비스의 세부 사항은 링크에 적용되는 특정 링크 계층 프로토콜을 따른다.
프레임화
거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화한다.
링크 접속
신뢰적 전달
링크 계층의 신뢰적 전달 서비스는 무선 링크처럼 오류율이 높은 링크에서 주로 사용되며, 트랜스포트 계층 프로토콜이나 애플리케이션 계층 프로토콜이 데이터를 종단 간에 재전송하는 방식을 취하는 것과는 달리 링크 계층 프로토콜은 오류가 발생한 링크에서 정정한다.
낮은 비트 오류율을 가진 유선 링크에서는 불필요한 오버헤드가 될 수 있다. 대부분의 링크 계층 프로토콜은 신뢰적 전달 서비스를 제공하지 않는다.
오류 검출과 정정
모든 이더넷 기술은 네트워크 계층에서 비연결형 서비스, 네트워크 계층에서 비신뢰적 서비스를 제공한다.
만일, 폐기된 이더넷 프레임 때문에 손실된 데이터그램이 있다면, 호스트의 애플리케이션이 UDP 또는 TCP를 사용하지에 따라 달려있다.
- UDP는 실제로 호스트의 애플리케이션은 손실롤 인해 지장을 받을 것이다.
- TCP는 데이터를 재전송하게 할 것이다.

대부분의 링크 계층은 네트워크 인터페이스 컨트롤러(NIC)로 알려진 네트워크 어댑터에 구현된다.
네트워크 어댑터의 중심에는 링크 계층 컨트롤러가 있으며, 링크 계층 컨트롤러는 링크 계층 서비스(프레임화, 링크 접속, 오류 검출 등)의 대다수가 구현되어 있는 단일의 특수 용도 칩이다.
링크 계층 컨트롤러의 기능 대부분은 하드웨어로 구현되며, 일부 기능은 호스트 CPU에서 실행되는 소프트웨어로 구현되어 있다.
즉, 링크 계층은 하드웨어와 소프트웨어의 조합이다.
허브는 주소 개념이 없는 물리 계층 장비이다.
그리고 반이중 모드로 통신하므로 허브에 연결된 모든 호스트가 충돌이 발생할 범위, 즉 콜리전 도메인에 속한다.
CSMA/CD를 통해 충돌 문제를 어느 정도 완화할 수는 있지만, 근본적으로는 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내고, 전이중 모드로 통신하면된다.
그러면 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소할 것이다.
이 기능을 하는 네트워크 장비가 스위치 이다.
콜리전 도메인과 같은 링크 다중 접속으로 인한 충돌에 대해선 스위치 밑에서 설명하겠다.

스위치의 역할은 링크 계층 프레임을 수신해서 출력 링크로 전달하는 것이다.
스위치가 전달받은 신호를 원하는 포트로만 내보낼 수 있는 것은 스위치가 MAC 주소를 학습할 수 있기 때문이다.
스위치는 콜리전 도메인을 포트별로 나누며 전이중 모드 통신을 지원하는 데이터 링크 계층의 장비이다.
2계층에서 사용한다 하여L2 스위치라고도 부른다.

스위치는 MAC 주소 학습을 위해 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 메모리에 표 형태로 기억한다.
스위치는 포트와 연결된 호스트의 MAC 주소 연관 관계를 나타내는 정보를 MAC 주소 테이블이라고 부른다.
실제로 링크 계층 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑터(네트워크 인터페이스)이다.
링크 계층 주소는 MAC 주소 라고도 알려져 있으며, 대부분의 랜의 경우 MAC 주소의 길이는 6바이트이며 따라서 2^48개만큼의 사용 가능한 랜 주소가 있다.
6바이트는 주로 16진수 표기법으로 표시되며, 주소의 각 바이트는 2개의 16진수로 표시된다.
1A-23-F9-CD-06-9B
어떤 송신 어댑터는 랜상의 다른 모든 어댑터가 자신이 전송한 프레임을 수신하고 처리하기를 원한다.
이 경우엔 송신 어댑터는 프레임의 목적지 주소 필드에 특수한 MAC 브로드캐스트 주소를 넣는다.
FF-FF-FF-FF-FF-FF
어댑터의 MAC 주소는 계층구조가 아닌 평면 구조를 가지며, 어댑터의 위치에 따라 변경되지 않는다.
즉, 이더넷 카드가 있는 휴대용 컴퓨터는 어디에 있든지 항상 동일한 MAC 주소를 갖는다.
이에 반해 IP 주소는 계층 구조를 가지며, 호스트의 IP 주소는 호스트가 다른 네트워크에 접속하면 변경되어야 한다.
Address Resolution Protocol
호스트와 라우터는 링크 계층 주소와 네트워크 계층 주소도 갖는다.
ARP는 이런 네트워크 계층 주소를 링크 계층 주소로 변환해주는 역할을 한다.
송신 호스트가 어떻게 수신 호스트의 IP 주소의 MAC 주소를 결정할 수 있을까?
이는 ARP를 사용함으로써 가능해진다.
송신 호스트의 ARP 모듈은 입력값으로서 동일한 랜상의 임의의 IP 주소에 대해 대응되는 MAC 주소를 돌려준다.
각 호스트와 라우터는 자신의 메모리에 ARP 테이블을 갖고 있다.
이 ARP 테이블은 IP 주소와 MAC 주소간의 매핑 정보를 포함한다.
또한 각 매핑이 언제 삭제되었는지를 나타내는 TTL 값을 포함한다.
| IP 주소 | MAC 주소 | TTL |
|---|---|---|
| 222.222.222.221 | 88-B2-2F-54-1A-0F | 13:45:00 |
| 222.222.222.223 | 5C-66-AB-90-75-B1 | 13:52:00 |
ARP 패킷은 링크 계층 주소를 포함하는 필드와 네트워크 계층 주소도 포함하기에 ARP는 링크 계층과 네트워크 계층의 경계에 있는 프로토콜이라고 하는 게 가장 타당하다.
[ 같은 서브넷에서의 ARP 과정 ]
송신 호스트는 ARP 질의 패킷을 어댑터에게 전달하며, 이때 어댑터에게 MAC 브로드캐스트 주소, 즉 FF-FF-FF-FF-FF-FF로 패킷을 전송하도록 지시한다.
어댑터는 ARP 패킷을 링크 계층 프레임에 캡슐화하고, 이 프레임의 목적지 주소를 브로드캐스트 주소로 해서 서브넷에 전송한다.
브로드캐스트 주소 때문에 각 어댑터는 프레임에 들어 있는 ARP 패킷을 자신의 ARP 모듈로 전달한다.
ARP 모듈은 자신의 IP 주소가 ARP 패킷에 들어 있는 목적지 IP 주소와 일치하는지 검사한다.
일치하는 노드는 요구된 매핑 정보가 포함된 응답 ARP 패킷을 질의한 노드로 돌려보낸다.
그러면 질의 호스트는 자신의 ARP 테이블을 갱신하고 자신의 IP 데이터그램을 링크 계층 프레임으로 캡슐화해서 전송한다.
[ 다른 서브넷에서의 ARP ]
서브넷 1에서 서브넷 2로 데이터그램을 전송한다면,
먼저 데이터그램을 라우터 인터페이스로 전달해야 한다.
따라서 이 프레임에 대한 적절한 MAC 주소는 라우터 인터페이스에 대한 어댑터의 주소가 된다.
서브넷 1에 있는 라우터의 어댑터는 링크 계층 프레임이 자신을 목적지로 하는지 검사한 후, 그렇다면 이 프레임을 라우터의 네트워크 계층으로 전달한다.
라우터는 데이터그램이 전달될 정확한 인터페이스를 결정해야 하는데, 이는 라우터의 포워딩 테이블을 참조하여 수행된다.
포워딩 테이블은 라우터에게 데이터그램을 서브넷 2로 연결된 라우터 인터페이스를 거쳐서 전달하도록 지시한다.
그러면 인터페이스는 데이터그램을 자신의 어댑터로 전달하며, 어댑터는 데이터그램을 새 프레임에 캡슐화하여 그 프레임을 서브넷 2로 전송한다.
MAC 주소 테이블을 채우고 유지하는 방법, 스위치가 원하는 수신지가 연결된 포트에만 프레임을 내보내는 방법은 아래의 세 가지 기능을 통해 이루어진다.
스위치는 처음에는 호스트 A,B,C,D의 MAC 주소와 연결된 포트의 연관 관계를 알지 못한다.
아직 어떤 포트에 어떤 MAC 주소를 가진 호스트가 연결되어 있는지 학습하지 않았기 때문이다.
스위치의 MAC 주소 학습은 프레임 내 '송신지 MAC 주소' 필드를 바탕으로 이루어진다.
스위치가 처음 호스트 A에서 프레임을 수신하면, 프레임 내 송신지 MAC 주소 정보를 바탕으로 호스트 A의 MAC 주소와 연결된 포트를 MAC 주소 테이블에 저장한다.
하지만 여전히 수신지 호스트 C가 어느 포트에 연결되었는지는 알지 못한다.
이 상황에서 스위치는 허브처럼 송신지 포트를 제외한 모든 포트로 프레임을 전송한다.
이를 플러딩 이라 한다.
자신과 관련없는 프레임을 전송받은 호스트는 이를 폐기한다.
이후 C는 스위치로 응답 프레임을 전송한다.
이 프레임의 송신지 MAC 주소 필드에는 호스트 C의 MAC 주소가 명시되어 있을 것이며 이를 통해 MAC 주소 테이블에 호스트 C를 기록한다.
이런 과정으로 주소 테이블이 채워진다.
전달받은 프레임을 어디로 내보내고 어디로 내보내지 않을지 결정하는 스위치의 기능을 필터링 이라고 한다.
그리고 프레임이 전송될 포트에 실제로 프레임을 내보내는 것을 포워딩 이라고 한다.
만약 MAC 주소 테이블에 등록된 특정 포트에서 일정 시간 동안 프레임을 전송받지 못했다면 해당 항목은 삭제되며, 이를 에이징 이라고 한다.
MAC 주소 테이블의 엔트리에는
가 들어있다.
L2 스위치에 대해 설명해주세요.
L2 스위치는 데이터링크 2계층에서 동작하는 네트워크 장비입니다.
L2 스위치는 MAC 주소 테이블을 통해 같은 네트워크에 있는 단말의 포트간 프레임 패킷을 전송합니다.
스위치는 플러딩, 포워딩과 필터링, 에이징을 통해 MAC 주소 테이블을 유지하며, 원하는 수신지가 연결된 포트에만 프레임을 내보낼 수 있습니다.
브로드캐스트 링크는 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드가 연결된다.
이더넷과 무선 랜은 브로드캐스트 링크 기술의 대표적인 예이다.
2개 이상의 노드가 동시에 프레임을 전송하게 되면 충돌이 발생하게 되며, 충돌에 관련된 모든 프레임은 손실되고 브로드캐스트 채널은 충돌 기간만큼 낭비된다.
다중 접속 프로토콜은 채널 분할 프로토콜, 랜덤 접속 프로토콜, 순번 프로토콜의 세 가지로 분류할 수 있다.
채널을 공유하는 모든 노드가 브로드캐스트 채널의 대역폭을 분할할 수 있게 해주는 두 가지 기술인 시분할 다중화(TDM)와 주파수 분할 다중화(FDM)으로 나뉜다.
[ TDM ]
TDM은 시간을 시간 프레임으로 나누고 각 시간 프레임을 N개의 시간 슬롯으로 나눈다.
그 뒤에 각 시간 슬롯은 N개 노드에게 각각 할당된다.
노드는 전송할 패킷이 있을 때마다 TDM 프레임에서 자신에게 할당된 시간 슬롯동안 패킷 비트들을 전송한다.
하지만 이는 단점이 있다.
[ FDM ]
TDM은 브로드캐스트 채널을 시간으로 공유하지만, FDM은 Rbps의 채널을 다른 주파수로 나눠서 각 주파수를 N개 노드 중 하나에게 할당한다.
그러나 FDM은 TDM과 같은 주요 단점이 있다.
[ CDMA (코드 분할 다중 접속) ]
다른 코드를 각 노드에게 할당한다.
그러면 노드는 전송하는 데이터 비트들을 자신의 유일한 코드로 인코딩한다.
다른 노드들에 의해 전송이 간섭되더라도 각 수신자들이 송신자의 인코딩된 데이터 비트를 정확하게 수신할 수 있는 훌륭한 특성이 있다.
랜덤 접속 프로토콜에서 전송 노드는 항상 채널의 최대 전송률인 Rbps로 전송한다.
충돌이 생기면 충돌과 관련된 각 노드는 프레임이 충돌 없이 전송될 때까지 자신의 프레임을 계속해서 재전송한다.
대신, 충돌과 관련된 각 노드는 그 프레임을 재전송하기 전에 자신만의 랜덤 지연 시간을 선택하고 기다린다.
충돌했던 노드 중 하나는 다른 노드가 선택한 지연 시간보다 충분히 작은 지연 시간을 선택함으로써 충돌 없이 자신의 프레임을 채널로 전송할 수 있다.
[ 알로하(ALOHA) ]
순수 알로하로 알려진 이 프로토콜에서는 프레임이 도착하면, 즉 네트워크 계층 데이터그램이 송신 노드의 네트워크 계층으로부터 아래로 전달되면 노드는 즉시 그 프레임 전체를 브로드캐스트 채널로 전송한다.
만일 전송된 프레임이 하나 이상의 다른 전송과 충돌하면, 노드는 확률 p로 그 프레임을 즉시 재전송한다.(자신의 충돌된 프레임이 완전히 전송된 다음)
노드는 기다리고 나서 그 프레임을 확률 p로 전송하거나 아니면 확률 1-p로 다른 프레임 시간 동안 기다린다.
[ CSMA ]
알로하에서 노드가 전송 여부를 걸정하는 것은 브로드캐스트 채널에 접속되어 있는 다른 노드의 활성 여부와 무관한다.
노드는 전송 시작 시 다른 노드의 전송 여부는 주의하지 않을뿐만 아니라, 만일 다른 노드가 자신의 전송을 간섭하는 경우에도 자신의 전송을 중지하지 않는다.
이와 달리 CSMA는 두 가지 규칙을 가지면서 이와 같은 문제를 보완한다.
브로드캐스트 채널 종단 간의 채널 전파 지연(신호가 채널의 한쪽 끝에서 다른 쪽 끝으로 전파되는 데 걸리는 시간)이 CSMA의 성능을 결정하는 데 중요한 역할을 한다.
전파 지연이 길수록 네트워크의 다른 노드에서 이미 시작된 전송을 캐리어 감지 노드가 감지할 수 없는 경우가 더 증가한다.
브로드캐스트 채널에 접속된 노드의 어댑터에서 CSMA/CD 프로토콜은 다음과 같이 동작한다.
어댑터는 네트워크 계층으로부터 데이터그램을 받아서 링크 계층 프레임을 만든 후에 그 프레임을 어댑터의 버퍼에 저장한다.
어댑터는 채널이 유휴 상태임을 감지하면 프레임 전송을 시작한다. 만일 어댑터가 채널이 바쁜 상태임을 감지하면, 어떤 신호 에너지도 감지되지 않을 때까지 더 기다렸다가 프레임을 전송하기 시작한다.
전송하는 동안 어댑터는 브로드캐스트 채널을 사용하는 다른 어댑터로부터의 신호 에너지가 있는지 감시한다.
프레임 전체를 전송하는 동안 다른 어댑터로부터의 신호 에너지가 감지되지 않으면, 프레임 전송을 완료한다. 그러나 전송 도중에 다른 어댑터로부터의 신호 에너지를 감지하면, 자신의 프레임 전송을 취소한다.
어댑터는 전송을 취소한 후 임의의 랜덤 시간만큼 기다린 후 2단계로 돌아간다.
다중 접속 프로토콜에서 요구되는 두 가지 특성이 있다.
알로하와 CSMA 프로토콜은 첫 번째 특성은 지니고 있으나 두 번째 특성은 없다.
이것이 순번 프로토콜을 개발하게 된 동기이다.
[ 폴링 프로토콜 ]
노드 중 하나를 마스터 노드로 지정한다.
마스터 노드는 각 노드를 라운드 로빈 방식으로 폴링한다.
특히, 마스터 노드는 먼저 노드1에게 노드 1이 최대로 보낼 수 있는 프레임 수에 대한 정보를 지닌 메시지를 전송한다.
노드 1이 프레임을 보낸 다음에 마스터 노드는 노드 2에게 노드 2가 최대로 보낼 수 있는 프레임 수를 알려준다.
이와 같이 마스터 노드는 순환적으로 각 노드를 폴링하는 방식으로 이 과정을 계속한다.
하지만 이는 다음과 같은 단점이 있다.
[ 토큰 전달 프로토콜 ]
마스터 노드가 없고, 토큰이라고 알려진 작은 특수 목적 프레임이 정해진 순서대로 노드 간에 전달된다.
토큰을 수신했을 때 전송할 프레임이 있을 때만 토큰을 붙잡아 프레임을 최대 개수까지 전송한 뒤 토큰을 다음 노드로 전송한다.
이는 다음과 같은 단점이 있다.

스위치의 또 다른 중요한 기능으로 VLAN이 있다.
VLAN은 virtual Lan의 줄임말로, 한 대의 스위치로 가상의 LAN을 만드는 방법이다.
스위치에 연결된 호스트 중에서도 서로 메시지를 주고받을 일이 적거나 브로드캐스트 메시지를 받을 필요가 없어서 굳이 같은 네트워크(LAN)에 속할 필요가 없는 호스트가 있을 수도 있다.
이 경우 VLAN을 구성하면 한 대의 물리적 스위치라 해도 여러 대의 스위치가 있는 것처럼 논리적인 단위로 LAN을 구획할 수 있다.
VLAN1에 속한 호스트 A,B,C,D는 서로 동일한 LAN에 있는 것으로 인식하지만, 다른 VLAN에 속한 호스트 E,F,G,H,I는 물리적인 거리와 관계없이 다른 LAN에 있는 것처럼 인식한다.
VLAN1과 VLAN2가 서로 통신하고자 한다면 네트워크 계층 이상의 상위 계층 장비가 필요하다.
단순하지만 대중적인 방식으로 포트 기반 VLAN이 있다.
스위치의 포트가 VLAN을 결정하는 방식이다.
해당 포트에 호스트를 연결함으로써 VLAN에 포함시킬 수 있다.
사전에 설정된 MAC 주소에 따라 VLAN이 결정되는 MAC 기반 VLAN이다.
송수신하는 프레임 속 MAC 주소가 호스트가 속할 VLAN을 결정한다.

VLAN 스위치들을 연결하는 좀 더 확장 가능한 방법으로 VLAN 트렁킹이 있다.
VLAN 트렁킹 방법에는 스위치마다 하나의 특수 포트가 2개의 VLAN 스위치를 연결하는 트렁크 포트로 구성된다.
한 VLAN에서 전송한 프레임들을 트렁크 링크를 통해 다른 스위치로 전달해준다.

스위치와 유사한 네트워크 장비로, 네트워크 영역을 구획하여 콜리전 도메인을 나누거나 네트워크를 확장하는 용도로 사용된다.
브리지는 스위치의 기능들도 제공한다.
하지만 브리지를 이용한 네트워크 구획 및 확장은 스위치를 통해서도 얼마든지 가능하고, 최근 스위치의 기능은 일반적으로 브리지의 기능을 포괄할 뿐 아니라 더 다양하며, 프레임의 처리 성능 면에서도 우수하기 때문에 스위치에 비해 사용 빈도가 줄어드는 추세이다.
브리지에 대해 설명해주세요.
브리지는 데이터링크 2계층에서 동작하는 네트워크 장비입니다.
MAC 주소 테이블을 통해 단말의 포트간 프레임 패킷을 전송합니다.
이를 브리징이라고 부르며, 스위치와 기능이 유사합니다.
하지만 스위치의 기능이 일반적으로 우수하기에 스위치에 비해 사용 빈도가 줄어드는 추세입니다.
NEXT. OSI 3계층, 네트워크 계층