-> 블로그 이전

[Network] 데이터 링크 계층 (Data Link Layer)

2022. 1. 14. 18:44Major`/컴퓨터 네트워크

데이터 링크 계층 (Data Link Layer)

- 직접 연결된 서로 다른 2개의 네트워킹 장치 간의 데이터 전송을 담당

- Network 장비 간에 신호를 주고받는 규칙을 정하는 계층

  • 대표적으로 Ethernet 프로토콜이 존재

- Network 기기 간에 Data를 전송 + 물리 주소를 결정 

- 장치 간 신호를 전달하는 물리 계층을 이용해서, 네트워크 상의 주변 장치들 간 Data를 전송 

- Data들을 Nework 전송 방식에 맞게 단위화(Framing)해서, 해당 단위를 전송

  • 전송되는 Data를 프레임(Frame)이라고 한다

- Data Link Layer에서 최종적으로 이더넷 헤더/트레일러가 붙는다

 

주요 기능

▶ 프레이밍 (Framing)

- 물리 계층으로부터 받은 신호들을 조합해서 프레임(Frame) 단위정해진 크기의 Data Unit으로 만들어서 처리

 

▶ 오류 제어 (Error Control) 

- Frame 전송 시, 발생하는 오류들을 복원하거나 재전송

 

▶ 흐름 제어 (Flow Control)

- 송수신 측 간에 Data를 주고받을 때, 적당한 양의 Data를 송수신할 수 있도록 Data의 흐름을 제어

 

▶ 접근 제어 (Access Control)

- 매체 상에 기기가 여러개 존재할 때, 데이터 전송 여부를 결정 

 

▶ 동기화 (Synchronization)

- Frame 구분자 (특별한 비트패턴)

 


 

이더넷 (Ethernet)

- LAN 환경에서 Data를 정상적으로 주고받기 위한 규칙

- Data 충돌을 막기 위해서 CSMA/CD 프로토콜을 사용한다

- 현재 UTP 케이블 및 광케이블을 사용

- 프리앰블/이더넷 헤더/Layer 3 패킷/FCS를 추가해서 프레임 생성

 

이더넷 규격

규격 이름 통신 속도 케이블 케이블 최대 길이 표준화 연도
10BASE5 10Mbps 동축 케이블 500m 1982년
10BASE2 10Mbps 동축 케이블 185m 1988년
10BASE-T 10Mbps UTP케이블(Cat3이상) 100m 1990년
100BASE-TX 100Mbps UTP케이블(Cat5이상) 100m 1995년
1000BASE-T 1000Mbps UTP케이블(Cat5이상) 100m 1999년
10GBASE-T 10Gbps UTP케이블(Cat6a이상) 100m 2006년

 

CSMA/CD (Carrier Sense Multiple Access/Collision Detection)

▶ CS (Carrier Sense) - 회선의 상태에 따라

- 캐리어가 있는지 검사 (캐리어 : Network 상에 나타나는 신호)

 

Carrier가 감지되면(Network 사용 중)

  • Data를 보내지 못하고 기다린다

Carrier가 감지되지 않으면

  • Data를 Network상에 보낸다

 

▶ MA (Multiple Access) - 누구나 동시에 접근 가능

- 케이블에 Data(신호)가 흐르고 있지 않으면 Data를 보내도 된다는 규칙

  • 2개 이상의 PC/서버가 Data를 보내려고 하고 있고, Carrier가 감지되지 않는다는 것을 알아낸 순간, 바로 Data를 Network상에 보낸다
  • 이 때, 두 PC/서버가 동시에 Data를 보낸경우를 Multiple Access라고 부른다

 

▶ CD (Collision Detection) - Collision을 검사해서 제어

- 충돌이 발생하고 있는지 확인하는 규칙

 

- 만약, 캐리어가 감지되지 않고, 두 PC/서버에서 Data를 동시에 보내게 되면 충돌이 일어날 수 있다

  • 충돌이 발생하면, Data를 전송한 두 PC/서버는 Random한 시간동안 기다린 다음 다시 Data를 전송
  • 재충돌을 최소화 하기 위해서 Backoff 알고리즘을 사용
  • 너무 많은 Collision이 발생하면, 통신이 더 이상 불가능해진다.

 

이더넷 헤더 (Ethernet Header)

목적지 MAC 주소
(Destination MAC Address)
출발지 MAC 주소
(Source MAC Address)
유형
(Ethernet Type)
6바이트 6바이트 2바이트
  • 총 14바이트로 구성되어 있다

 

▶ 유형 (Ethernet Type)

- 이더넷으로 전송되는 상위 계층 프로토콜의 종류

- L3 패킷의 타입을 명시

유형 번호 프로토콜
0x0800 IPv4
0x0806 ARP
0x0835 RARP
0x814C SNMP over Ethernet
0x86DD IPv6

 


 

이더넷 프레임 (Ethernet Frame)

- 데이터 링크 계층에서 프레임을 만들고

- 물리 계층에서 이 프레임 비트열을 전기 신호로 변환해서 Network를 통해서 전송

프리앰블
(Preamble)
시작프레임 지시기
(SFD)
이더넷 헤더 Data(Packet) FCS(CRC)
목적지 MAC 주소 출발지 MAC 주소 유형
7byte 1byte 6byte 6byte 2byte 46 ~ 1500byte 4byte

▶ 프리앰블 (Preamble)

- 실제 이더넷에 포함되지는 않지만, 이더넷 프레임의 시작/동기화를 담당

- 수신 측에게 Frame이 도착하는 것을 알려준다

- 10101010이 반복되는 7바이트 길이의 필드이고, 수신 측에게 0, 1을 제대로 구분할 수 있도록 동기화 신호 제공

 

▶ 시작프레임 지시기 (Start of Frame Delimeter)

- 마지막 비트가 1인 10101011의 값을 가지고, Frame의 시작을 알린다

 

▶ 목적지 MAC 주소 (Destination MAC Address)

- Frame을 수신하는 목적지의 MAC 주소

 

▶ 출발지 MAC 주소 (Source MAC Address)

- Frame을 송신하는 송신자의 MAC 주소

 

▶ 유형 (Ethernet Type (길이/종류))

- 이더넷 프레임의 Data 필드 길이 / 상위 계층에서 사용하는 프로토콜의 종류 표시

 

▶ Data (Packet)

- 상위 계층의 프로토콜로부터 캡슐화된 Data가 들어있다

- 최소 46byte ~ 최대 1500byte의 Data가 존재

- 46byte 이하이면, 의미없는 비트를 Padding해서 최소한 46비트까지는 만들어서 전송

 

▶ FCS(CRC)

- 이더넷 헤더 ~ Data 영역을 계산해서 Error발생 여부 판별

- 송신측에서 CRC를 추가해서 보내고, 수신측은 CRC를 체크해서 에러프레임을 버린다 

※ CRC

  • 송신측의 Data로부터 수학적 연산을 통해서 추출된 결과를 FCS(오류 검사 필드)에 붙여서 보낸다
  • 수신측에서는 동일한 방법으로 추출된 결과와 일치하는지 확인

 


 

MAC 주소

- 랜 카드를 제조할 때 정해지는 물리적 주소이다

- 전 세계에서 유일한 번호로 할당된다

- 총 48비트의 숫자로 구성되어 있다

  • 앞 24비트 : 랜카드 제조사 번호
  • 뒤 24비트 : 제조사가 랜 카드에 붙인 일련번호

 


 

스위치 (Switch)

- 계층 2 (데이터 링크)에서 동작

- Layer 2 Switch / Switching Hub라고 불린다

- 스위치 내부에는 MAC 주소 테이블이 존재

 

MAC 주소 테이블 (MAC Address Table)

스위치의 포트 번호 + 포트에 연결된 컴퓨터의 MAC 주소가 등록되는 DB

- MAC 주소 학습을 통해서 MAC 주소 테이블에 해당 포트+MAC주소를 저장

- 초기 상태에는 아무것도 등록되어 있지 않다

 

스위치 기능

▶ MAC 주소 학습 (Learning)

1. 목적지 MAC 주소가 추가된 Frame 전송

2. Frame이 스위치를 지나칠 때, MAC 주소 테이블에 출발지 MAC 주소가 등록

 

▶ 플러딩 (Flooding)

- 목적지 MAC 주소가 MAC 주소 테이블에 등록되지 않은 경우

  • >> 출발지를 제외한 포트에 연결된 모든 컴퓨터에 Frame이 전송
  • 이를 플러딩(Flooding)이라고 부른다

 

▶ 포워딩 (Forwarding)

- 스위치가 목적지 MAC 주소를 보유하고 있어서 그대로 목적지 포트로 Frame을 전송 

- 나머지 포트는 필터링되어서 Frame 전송 X

 

▶ 필터링 (Filtering)

- 스위치가 목적지 MAC 주소를 보유하고 있어서, 해당 주소가 아닌 포트로는 Frame 전송 X

 

▶ 에이징 (Aging)

- 스위치는 MAC 주소를 학습해서 MAC 테이블에 저장

- MAC 주소는 기본적으로 300초 동안 MAC 테이블에 저장

- 300초 내에 Frame이 들어오지 않으면 해당 MAC 주소는 지워진다

- 시간은 조정 가능

 


 

단방향 통신 (Simplex)

- 송신측, 수신측이 미리 정해져 있어서 한쪽으로만 전송 가능하다

 

반이중 통신 (Half Duplex)

- 회선 하나로 송수신을 번갈아가면서 통신

- 송수신을 동시에 할 수 없다

- Data를 동시에 전송하면 충돌(Collision) 발생

- 허브는 반이중 통신 방식을 사용한다

 

전이중 통신 (Full Duplex)

- 송수신을 동시에 할 수 있다

  • 송수신이 서로 다른 채널(회선)을 통해서 이루어지기 때문에, 충돌 발생 염려가 없고, 충돌 감지도 하지 않는다

- Half Duplex보다 속도가 2배 더 빠르고, 10Base-T 이상의 모든 상위 전송속도 Ethernet에서는 Full Duplex를 지원

- 스위치는 전이중 통신 방식을 사용한다

 


 

충돌 도메인 (Collision Domain)

- 충돌(Collision)이 발생할 때 그 영향이 미치는 범위 

- 충돌 도메인의 범위가 넓을수록 Network가 지연된다

- 허브는 연결된 모든 PC가 동일한 Collision Domain상에 있다

  • 허브는 Collision Domain을 나눠주지 못한다

- 스위치는 Collision Domain을 포트별로 나눠준다

 


 

ARP (Address Resolution Protocol)

- IP 주소를 이용해서 MAC 주소를 찾기 위한 프로토콜

- IP 주소(논리적 주소) → MAC 주소(물리적 주소)로 변환하는데 사용

- 이더넷 프레임을 전송하려면 목적지 컴퓨터의 MAC 주소를 지정해야 한다

- IP 주소, MAC 주소를 1:1 매칭해서 LAN(Layer 2)에서 목적지를 제대로 찾아갈 수 있도록 도와준다

  • arp -a : ARP 캐시 내용 확인 명령어
  • arp -d : ARP 캐시 강제 삭제 명령어

 

ARP 요청 (ARP Request)

- 목적지 주소를 모르면 MAC 주소를 알아내기 위해 Network에 BroadCast를 한다

  • IP 주소를 대치할 수 있는 MAC 주소를 찾아내기 위해 보내는 BroadCast 패킷 요청
  • 이것을 ARP Request라고 한다

BroadCast : LAN에 붙어있는 모든 Network 장비들에게 보내는 통신

 

ARP 응답 (ARP Reply)

- ARP 요청에 대해, 지정된 IP주소를 가진 컴퓨터가 MAC 주소를 응답으로 보낸다

  • 이것을 ARP Reply라고 한다

 

ARP 테이블 (ARP Table)

- 출발지에서 MAC 주소를 얻은 후, MAC 주소와 IP 주소의 매핑 정보메모리에 보관

  • 이 정보를 ARP Table이라고 한다

 

ARP 캐시 (ARP Cache)

  • IP 주소를 MAC 주소에 연결하는 데 사용되는 Data의 저장소