데이터 링크 계층은 네트워크 장비간에 신호를 주고받는 규칙을 정하는 계층이다. 랜에서 정상적으로 데이터를 주고받기 위한 계층이다.
이 규칙(프로토콜)으로 가장 많이 사용되는 게 이더넷이다.
즉 이더넷은, 네트워크 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용하는 데이터 링크 계층의 규칙이다.
보내려는 데이터에 목적지 정보를 추가하여, 목적지 이외의 컴퓨터는 데이터를 받더라도 무시할 수 있다.
이더넷
이더넷은 여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조로 되어 있다.
여러 데이터가 케이블을 동시에 지나면 충돌하게 되므로, 데이터를 보내는 시점을 늦춤으로서 충돌을 방지하는 CSMA/CD방식은 효율이 좋지 않아 현재는 사용하지 않는다.
MAC주소
비트열을 전기 신호로 변환하는 랜 카드에는 MAC주소가 정해져 있다. 물리 주소라고도 불리는데, 전 세계에서 유일한 번호이다. 6바이트 길이이다.
OSI모델의 데이터링크 계층(TCP/IP모델에서는 네트워크 계층)에서 헤더를 붙일 때, 이더넷 헤더와 트레일러를 붙인다.
그리고 이 이더넷 헤더와 트레일러가 추가된 데이터가 바로 프레임이다.
📌이더넷 헤더는 목적지 MAC주소, 출발지 MAC주소, 타입을 포함한다.
(** 이 때 타입은 전송되는 상위 프로토콜 종류. 상위 계층의 프로토콜이 IPv4인지, ARP인지, IPv6인지 등의 정보에 해당함)
예시
허브에 연결된 컴퓨터 1-5가 존재하고, 1에서 3으로 보낸다고 생각하자.
컴퓨터 1은 데이터링크 계층에서 이더넷 헤더에 데이터 목적지인 컴퓨터 3의 MAC주소와 자신의 MAC주소를 넣고, 트레일러를 추가해서 프레임을 만든 뒤 물리 계층에서 이 프레임 비트열을 전기 신호로 전환해서 전송한다.
허브는 이 데이터를 2-5 모든 포트로 전송한다. 이 컴퓨터들은 목적지 MAC주소를 확인하고, 자신과 다르므로 데이터를 파기한다.
스위치의 구조
스위치는 데이터 링크 계층에서 동작한다.
스위치 내부에는 📌MAC 주소 테이블📌이 존재하는데,이는 스위치의 포트 번호와, 그 포트에 연결된 컴퓨터의 MAC주소가 등록되는 DB이다.
MAC 주소테이블
처음 스위치를 키면 MAC주소 테이블은 비어 있다. 하지만 MAC주소가 포함된 프레임이 전송되며, 해당 주소가 등록되어있지 않은 걸 확인하면 포트와 함께 주소를 등록한다.
플러딩
주소가 등록되지 않은 시점에서는 송신 포트를 제외한 모든 포트에 전송된다.(플러딩)
하지만 컴퓨터 3의 주소가 등록되어 있다면, 컴퓨터 3으로만 데이터가 전송된다.
데이터가 케이블에서 충돌하지 않는다?
통신 방식은 전이중 통신 방식, 반이중 통신 방식이 있다.
전이중은 괜찮지만, 반이중은 데이터 동시 전송시 충돌 발생
컴퓨터 두 대를 직접 랜 케이블로 연결하면 전이중 방식이다. 스위치로 연결한 것 역시 전이중이다.
반대로 허브를 이용해 컴퓨터간 연결을 구성하면, 반이중 통신 방식을 사용하여 동시에 데이터를 보내면 충돌한다.
따라서 허브를 사용하면 충돌이 생기면서 네트워크 지연이 발생하므로 스위치를 사용하는 것이 표준이다.
📌ARP
출발지가 목적지 MAC주소를 모르면, 이를 알아내기 위해 네트워크에 브로드캐스트한다.
이렇게 IP주소를 이용하여 MAC주소를 찾기 위한 프로토콜이 ARP다.
ARP request 발생시 해당 IP주소를 가진 컴퓨터는 자신의 MAC주소를 응답으로 보낸다.
IP주소 변경시 MAC주소도 변경되므로, ARP테이블에서는 보존 기간을 ARP캐시로 지정하고 일정 시간마다 삭제한 뒤 다시 ARP request를 보낸다.
(arp 캐시 내용)
네트워크 계층 역할
다른 네트워크에 있는 목적지로 데이터를 전달하려면 데이터 링크 계층만으로는 어렵고, 네트워크 계층 기술이 필요하다.
데이터 링크 계층만으로는 해당 네트워크 안에서만 통신이 가능한 것이다.
네트워크 계층에서는 IP헤더를 붙인다. 전체 패킷 길이와 일련번호, 조각의 상태와 조각의 위치(오프셋), 헤더 체크섬, TTL, 출발지와 목적지 IP주소 등을 포함한다.
라우터와 스위치
스위치는 데이터 링크 계층에서 동작하며, 스위치 테이블을 이용해 MAC주소를 학습하고 MAC주소를 기반으로 데이터를 전송한다. 그러나 라우터는 IP주소에 대한 최적의 경로를 라우팅 테이블을 통해 결정하고, 패킷을 다음 네트워크로 전송하는 네트워크 계층상의 장비이다.
데이터링크 계층에서 헤더가 붙은 건 프레임, 네트워크 계층에서 헤더가 추가로 또 붙은 건 IP패킷이다.
IP주소의 구조
IP주소는 인터넷 서비스 제공자인 ISP에게 제공받는다.
IP버전에는 IPv4, IPv6가 있다.IPv4는 32비트인데 Ipv6는 128비트이므로 훨씬 많은 주소를 사용할 수 있다.
IP주소가 부족한 이유로, 회사나 가정의 LAN 내 컴퓨터는 사설 IP주소를 할당하고, 인터넷에 직접 연결되는 컴퓨터나 라우터에 공인 IP주소를 할당한다.
랜의 네트워크 관리자가 자유롭게 랜 내 사설 IP를 할당하거나,DHCP(IP주소 자동 할당 프로토콜)로 주소를 할당받는다.
네트워크 주소와 브로드캐스트 주소의 구조
IP주소에는 네트워크 주소와 브로드캐스트 주소가 있다. 이 두 주소는 컴퓨터에 설정할 수 없다.
네트워크 주소는 작은 네트워크를 식별하는 데에 사용되고, 해당 네트워크 전체를 대표한다.
만약 네트워크 내에 192.168.1.1, 192.168.1.2, 192.168.1.3의 주소를 가지는 컴퓨터들이 연결되어 있으면, 해당 네트워크의 주소는 192.168.1.0이다.
네트워크 내의 장비에 한 번에 데이터를 전송하는 데 사용되는 IP주소이다.
서브넷
-> 분할된 네트워크
네트워크를 분할
서브넷팅하면 기존에 네트워크 ID + 호스트 ID로 구성되던 IP주소가
네트워크 ID + 서브넷 ID + 호스트 ID로 나누어진다.
서브넷팅하면 네트워크 ID와 호스트 ID의 경계를 파악하기 어렵다. 이 때 이용하는 게 서브넷 마스크이다.
만약 C클래스라면, 네트워크 ID는 기본적으로 24비트이지만, 28비트로 변경하여 호스트 ID에서 4비트를 빌려올 수 있다.
이 경우 네트워크 ID는 24비트, 서브넷 ID가 4비트, 호스트 ID가 4비트가 된다.
라우터 구조
서로 다른 네트워크와 통신하려면 라우터가 필요하다.
라우터의 네트워크 카드에는 라우팅 테이블이 있는데, 이 라우팅 테이블 등록 방법은 수동과 자동으로 구분된다. 주로 소규모 네트워크는 수동이 적합하고 대규모 네트워크는 자동이 적합하다.
라우터간에 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라고 한다.
라우팅 프로토콜에는 RIP, OSPF, BGP등이 있다.