Link layer: introduction

saewoohan·2024년 6월 2일
0

Computer Network

목록 보기
12/14
post-thumbnail

해당 포스팅은 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 정리한 글입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1169634

1. Introduction

  • link layer는 NIC (network interface card)에 구현이 된다.
  • 2개의 타입의 "link"가 존재한다.
  1. point-to-point
  • 노드들간에 구별되는 link를 사용한다. 보안상 이점이 있지만, 패킷의 경로가 길어지고 하드웨어적인 자원이 많이 소요되는 단점이 있다.
  1. broadcast link
  • 여러 노드들이 하나의 공유된 link를 사용한다.
  • 모든 경로로 어떤 호스트의 데이터 전송이 다 퍼져나간다.

1) An ideal multiple access protocol

  1. 한개의 node가 transmit를 원하면, 해당 링크를 전부 사용한다.
  2. 여러개의 node가 transmit을 원하면, 평균 rate R/M으로 보낼 수 있어야한다.
  3. 분산처리
  4. simple

2. MAC protocols: taxonomy

  • MAC (Medium Access Control)
  • 공유된 채널에 다수의 사용자가 접속할 수 있도록 도와주는 프로토콜이다.
  1. channel partitioning
  • 채널을 잘게잘게 쪼개, 여러개의 sub channel로 만든다.
  1. random access
  • 채널이 쪼개져 있는 것이 아니고, 한개의 채널로 누군가 사용하려고 할 때, 처리해주는 방식이다.
  1. taking turns
  • 서로서로 번갈아가면서 보내도록 하는 방식이다.

1) Channel partitioning MAC protocols

  • TDMA: time division multiple access -> 시간을 쪼개서 여러유저들이 사용가능하도록 한다.
  • FDMA: frequency division multiple access -> 주파수를 각 유저들에게 할당한다.
  • 하지만, 해당 slot에서 사용을안한다면? 낭비가 되는 문제가 존재한다. (Channel partitioning의 단점)

2) Random access protocols

  • 노드가 패킷을 전송하고 싶을때, 그냥 보내는 방식이다.
  • 만약 두가지 이상의 node가 동시에 보낸다면? -> "collision"이라고 한다.
  • random access MAC protocol은 다음과 같은 특징이 있다.
  1. collision을 어떻게 발견할 것 인지,
  2. collision을 어떻게 회복할 것인지?

a) CSMA (carrier sense multiple access)

  • 누군가 transmit한다면, transmit하기 전에, 채널에 전송되고 있는 것이 있는지 기다린 후, 있다면 끝난 뒤에 보낸다.
  • 하지만, collision은 그래도 발생할 수 있는 문제가 있다.
  • 첫번째 node에서 데이터를 전송했을 때, 마지막 node가 전송되고 있음을 아는데 걸리는 시간이 걸릴 수 밖에 없다
  • 아무리 전파되는 속도를 빠르게 하더라도 propagation delay는 빛의 속도가 최대이기 때문이다.

b) CSMA/CD (collision detection)

  • 이를 위해 충돌 감지 및 abort위한 프로토콜이다.
  • 충돌이 난 경우에는 즉시 전송을 취소한다.
  1. NIC에서 datagram을 상위 계층에서 받는다.
  2. NIC channel이 idle하다면 전송하고, busy하다면 기다린다. (기존 CSMA)
  3. 만약 다른 데이터가 detection이 되었다면 바로 전송을 취소한다.
  4. 충돌이 났으니, 쉬었다가 다시 데이터를 보내야하는데 이는 binary backoff를 통해서 얼마나 쉴지 결정을 한다.
    -> 어떤 충돌이 발생하면 0~2^m -1 의 숫자중에 랜덤으로 선택하여 기다린다. 이때, m은 충돌이 발생한 횟수이다.
    즉, 충돌이 많이나면 날 수록 더 많이 기다리는 확률이 늘어나는 방식이다.

3) Taking turns MAC protocols

  • polling: master가 존재하고, 해당 master가 관제하는 것인데 master가 망가지면 못쓰는 단점이 존재한다.
  • token passing: 번호표 같은 token을 두고, 보낸 다음 token을 다음 노드로 전달한다. 만약 토큰이 유실된다면 큰 문제가 발생 가능한 단점이 명확하다.

0개의 댓글