링크 계층

김민구·2023년 6월 27일
0

컴퓨터 네트워크

목록 보기
8/13

지금까지 우리는 [ 어플리케이션 계층, 트랜스포트 계층, 네트워크 계층 ]을 배웠다.

오늘 배울 계층은, 데이터 링크 계층으로 네트워크 계층과 더불어 중요하다.

링크 계층은 크게 두 종류로 나눠볼 수 있다.

  1. 점대점 링크(point-to-point)
  2. 브로드캐스트(broadcast)

점대점 링크는 링크의 한쪽 끝에는 송신자가 다른 쪽 끝에는 수신자가 있는 가장 단순한 구조이다.

브로드캐스트란 하나의 공유된 브로드캐스트 채널에 다수의 노드(송신자, 수신자, 라우터)가 연결되어 있다.

여기서 발생하는 문제점은, 여러 노드가 하나의 채널을 공유하기 때문에 충돌할 수 있다.

문제를 해결하기 위해 → 다중 접근 프로토콜(Multiple Access Protocol)을 사용한다.

다중 접근 프로토콜은 3가지 방식이 존재한다.

  1. 채널 분할 프로토콜: 채널 분할 프로토콜에는 FDM(주파수 분할), TDM(시간 분할), CDMA(코드 분할)의 여러 방식이 존재한다.
    TDM은 시간을 시간 슬롯으로 나눠, 슬롯을 각 노드들에게 나눠주고 노드는 주어진 시간 슬롯만큼 패킷을 전송 할 수 있다.
    CDMA는 나중에 배우게 될 무선 802.11에서 사용되는 방식이다.
  2. 랜덤 접속 프로토콜: 충돌이 발생했을때 바로 재전송하지 않고, 각 노드들은 각자만의 랜덤 지연시간을 기다렸다가 재전송한다. 대표적으로는 ‘슬롯 알로하’ ‘CSMA’방식이 존재한다.
    ”CSMA”는 기본적으로 패킷을 채널에 보내기전에 채널의 이용가능여부를 확인한다. 따라서 사용가능한 경우에만 패킷을 전송한다. CSMA에는 추가적으로 “CSMA/CD” “CSMA/CA”방식이 존재하는데,
    ”CSMA/CD”는 충돌을 감지하는 기능이 더해진것으로, 충돌 발생시 송신 노드들은 즉시 전송을 멈추고,
    멈춘 부분부터 다시 재전송하기 시작한다.
    ”CSMA/CA”는 충돌을 회피하는것이 주 목적으로, ‘숨은 터미널’ 문제가 있는 무선 802.11에서 사용된다.
  3. 순번 프로토콜: 폴링 프로토콜과 토큰 전달 방식이 있고, 폴링 프로토콜은 여러 노드들중 대표 노드를 정한 다음 대표 노드가 다른 노드들을 관리하는 방식이다. 토큰 전달 방식은 토큰을 가지고 있는 노드만이 패킷을 전송할 수 있다.

****링크 계층에서는 오류 검출에 어떤 방식이 사용될 까?****

  1. Parity Checking: 패리티 기법은 가장 단순한 방법으로 1의 개수를 파악하는 것이다. 짝수 패리티 기법에서 수신받은 패킷의 1의 개수가 짝수이면 제대로 전달된 것이고 홀수라면 비트 오류가 발생한 것이다. 홀수 패리티 기법은 반대로 생각하면 된다.
  2. Checksum(체크섬):
  3. CRC

**근거리 네트워크**

링크 계층에서는 IP주소를 사용하지 않고, MAC주소를 사용한다는 사실은 알고있을것이다.

MAC 주소를 사용해서 목적지를 찾아가는 과정은 다음과 같다.

  1. 송신 어댑터는 목적지 MAC주소를 프레임에 담아 랜상으로 전달
  2. 스위치는 연결된 모든 인터페이스에 브로드캐스트
  3. 수신한 어댑터들은 MAC주소를 비교해보고 일치하는 경우 네트워크 계층으로 올린다. (아니면, drop)

MAC주소를 모른다면? 그렇다면 MAC주소는 어떻게 얻을 수 있을까?

ARP프로토콜은 IP주소를 통해 MAC주소를 알아낸다. 그 방식을 알아보도록 하자.

  1. 송신 노드의 어댑터는 목적지 호스트의 LAN에 연결된 모든 노드들에게 브로드캐스트하여 ARP질문을 보낸다.
  2. 질문을 받은 수신 어댑터는 자신의 MAC주소를 비교해서 응답을 보낸다.
  3. ARP테이블은 갱신되고, 이제 목적지를 찾아갈 수 있다.

여기서 중요한점은, ARP프로토콜은 목적지가 보내는 호스트와 동일한 서브넷에 위치해야지만 사용할 수 있다.

동일한 서브넷에 존재하지 않는다면, 가장 우선적으로 라우터를 목적지로하는 MAC주소를 찾아 라우터로 이동한 다음 목적지가 위치한 서브넷에 도착하는 것이다. 서브넷에 도착한 다음 ARP프로토콜을 사용할 수 있다.

**이더넷**

인터넷이 글로벌 네트워킹에 대한 것이라면, 이더넷은 근거리 네트워킹이다.

이더넷 기술은 네트워크 계층에게 비연결형 서비스(connectionless service)를 제공한다. 비연결형 서비스라는 말은 어댑터 A가 어댑터 B에게 프레임을 보낼때 핸드셰이킹하지 않고 보내는 것을 의미한다. 이는 UDP와 유사하고 비신뢰적인 전송을 통해 효율성을 달성할 수 있다.

이러한 비신뢰적인 전송을 트랜스포트 계층에서 TCP/UDP 프로토콜을 사용하여 오류를 검사하고 신뢰적인 서비스를 만들 수 있다.

스위치와 라우터의 근본적인 차이점은 계층을 통해 이야기할 수 있다.

스위치는 2계층(링크 계층)의 MAC주소를 기반으로 작동하고

라우터는 3계층(네트워크 계층)의 IP주소를 기반으로 작동한다.

**스위치의 역할**

스위치의 기본 역할은 링크 계층 프레임을 수신해서 출력 링크로 포워딩하는 것이다.

스위치는 여과와 포워딩을 제공하는데, 여과는 프레임을 인터페이스로 전달할지 or DROP할지 결정하는 것이다.

포워딩은 프레임이 전송될 인터페이스를 결정하고, 적절한 인터페이스로 프레임을 전송하는 것이다.

이 과정에는 스위치 테이블이 사용된다.

또한, 스위치는 네트워크 관리자나 사용자의 개입을 요구하지 않으므로 플러그앤플레이(plug-and-play) 장치이다.

profile
성장하는 개발자가 되고싶어요😀

0개의 댓글