물리적 계층의 바로 상위 단계
데이터 링크 계층이 하는 가장 중요한 일은 하드웨어와 물리적 계층에 대해 다른 계층이 신경 쓸 필요 없도록 추상화하는 것이다.
이더넷 프로토콜을 사용함
이더넷 프로토콜이 나오기 이전에는 충돌 도메인이 연결된 네트워크 전체 였음
이더넷은 충돌을 감지해서 적절한 위치로 데이터를 전송해줄 수 있기 때문에 이 문제를 해결함
CSMA/CD 방식으로 노드 간 데이터 교환이 일어나지 않는 상태면 자유롭게 교환하도록 하고, 교환이 일어나는 중에 데이터를 전송하려하면 충돌을 감지하여 전송을 대기하도록 하는 방식이다.
위 방식을 위해서는 각 노드를 식별할 수 있어야 하는데, 이를 위해 사용되는 것이 MAC(Media Access Control) 주소이다.
전세계적으로 고유한 주소를 가짐
48비트로 구성되어 있으며 8비트씩 16진수로 표기하여 2개의 16진수로 6그룹으로 표기한다. 이 그룹은 8비트로 구성되어 옥텟이라고도 한다.
처음 세 옥텟은 OUI(Organizationally Unique Identifier) 이라고 한다. 하드웨어 제조업체에 할당되어 각각 다른 값을 가진다. MAC 주소만으로 하드웨어 제조 업체가 어딘지 알 수 있다.
마지막 세 옥텟은 제조업체별로 원하는 방식으로 할당한다. 하지만 세계적으로 고유하도록 하는 원칙을 지켜야 한다.
unicast
하나의 디바이스에서 다른 하나의 디바이스로 전송하는 방식
이더넷 레벨에서는 수신 MAC 주소를 보고 해당 디바이스로 데이터를 전송함
MAC 주소의 첫 옥텟의 LSB가 0임
충돌 도메인에 속한 로컬 디바이스에 데이터를 전송하고, 각 디바이스는 목적지 MAC 주소와 자신의 MAC 주소를 비교하여 자신의 것이 아니라면 폐기함.
multicast
하나의 디바이스에서 여러 디바이스로 전송하는 방식
MAC 주소의 첫 옥텟의 LSB가 1임
유니캐스트와 동일하게 충돌 도메인 내 디바이스에 모두 데이터를 전송하지만, 차이점은 데이터를 받을 지 폐기할 지를 자신의 MAC 주소 외의 것들로 판단함.
brodcast
연결된 모든 디바이스로 전송하는 방식
MAC 주소가 모두 1로 FF:FF:FF:FF:FF:FF 임
데이터 패킷
네트워크 상에서 전송되는 이진 데이터를 나타내는 포괄적인 용어
계층이나 기술과 관련없음
이더넷 프레임
이더넷 프레임을 통해 단순한 비트 스트림을 의미있는 데이터로, 또는 그 반대로 변환할 수 있음
preamble: 이더넷 프레임을 구분하는 버퍼로 사용됨.
SFD: preamble 이 끝나는 위치를 가리키며 이후에는 실제 프레임 내용이 올 것임을 알려주기 위해 사용됨
Destination address: 목적지 MAC 주소
Source address: 송신지 MAC 주소
VLAN header: 프레임 자체가 VLAN 프레임임을 나타내기 위해 사용됨. VLAN 이란 하나의 물리적 장치에서 여러 개의 LAN을 사용할 수 있도록 하는 기술임.
Ether-type: 프로토콜의 정보를 나타냄
Payload: 이더넷 프레임의 헤더가 아닌 실제 데이터를 담고 있는 부분
FCS(Frame check sequence): 페이로드에 대한 checksum을 저장하는 부분. 체크섬은 CRC 라고 불리는 데이터를 숫자로 변환하는 방법을 사용하여 계산되며, 송신측에서 계산한 체크섬과 수신측에서 계산한 체크섬이 같음을 비교하여 데이터가 손상되거나 일부가 유실되지 않았는 지 검사할 수 있음