컴퓨터네트워크

컴퓨터 네트워크 5-1 링크 계층

begong 2023. 1. 20. 21:15
반응형
참고서적 : 컴퓨터 네트워킹 하향식 접근 제 6판 Kurose, Ross

1.링크 계층 소개

  • 노드 (node) : 링크 계층 프로토콜을 실행하는 장치
    • Ex) 호스트, 라우터, 스위치, wifi AP 등
  • 링크 (Link): 통신 경로상의 인접한 노드들을 연결하는 통신 채널

1.1 링크 계층이 제공하는 서비스

  • 프레임화 : 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화 한다.
    • 프레임은 네트워크 계층 데이터그램이 들어있는 데이터 필드와 여러 개의 헤더 필드로 구성
  • 링크 접속 : 매체 접속 제어(medium access control, MAC) 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해서 명시
  • 신뢰적 전달 : 링크 계층 프로토콜이 신뢰적 전달 서비스를 제공하는 경우 네트워크 계층 데이터그램은 링크상에서 오류없이 전달 됨.
    • 일부 트랜스포트 계층 프로토콜에서는 신뢰적 서비스를 제공
  • 오류 검출과 정정: 오류를 검출하는 방법 제공.

1.2 링크 계층이 구현되는 위치

  • 대부분의 경우 링크 계층은 네트워크 인터페이스 카드(Network Interface Card, NIC)로 알려진 네트워크 어댑터 (network adapter)에 구현됨
  • 네트워크 어댑터의 링크 계층 제어기에는 프레임화, 링크 접속, 오류 검출 등의 서비스가 구현되어있음

2. 오류 검출 및 정정 기술

  • 링크계층은 비트 수준 오류 검출과 정정(bit-level error detection and correction)을 제공
  • 비트 오류를 방지하기 위해 송신 노드에서 데이터에 오류 검출 및 정정 비트들(EDC)을 첨가
  • 오류 검출 비트를 사용하더라도 미검출된 비트 오류가 있을 수 있음
  • 향상된 오류 검출 및 정정기술은 더 많은 오버헤드를 필요로함

2.1 페리티 검사

  • 패리티 비트(parity bit)사용
  • 짝수 패리티 기법
    • 한 비트를 추가하고, 그 비트값을 전체 비트들에서 1의 총 개수가 짝수가 되도록 선택
  • 홀수 패리티 기법
    • 한 비트를 추가하고, 그 비트값을 전체 비트들에서 1의 총 개수가 홀수가 되도록 선택
  • 단일 패리티 기법
    • 단일 패리티 비트의 경우 수신자는 수신된 비트중에서 1의 개수를 계산하면 오류가 검출됨
    • 단일 패리티 기법의 경우 짝수개의 오류가 발생하면 오류가 검출되지 않을 수 있음
  • 2차원 패리티 기법
    • 행패리티 비트, 열패리티 비트 추가
    • 오류 발생 시 반전된 비트를 포함하는 열과 행에 대한 패리티에 오류가 생김.
    • 수신자는 단일 비트 오류의 발생을 검출할 수 있을 뿐만 아니라, 패리티 오류가 있는 열과 행의 인덱스 값을 사용해 잘못된 비트를 실제로 식별해서 오류를 정정할 수 있음.
  • 순방향 오류 정정(Forward Error Correction, FEC) : 오류를 검출 및 정정하는 수신자의 능력

2.2 체크섬 방법

  •  데이터를 구성하는 비트들을 일련의 비트의 정수처럼 다룸
  • 간단한 체크섬 방법 : 데이터들을 k비트의 정수로 나누어 인식하고 서로 더하여 오류검출 비트로 사용
  • 인터넷 체크섬
    • 데이터의 바이트를 16비트 정수 단위로 취해서 더해줌
    • 더한값의 1의 보수가 인터넷 체크섬
    • 인터넷 체크섬을 세그먼트 헤더에 넣어 줌
    • 수신자는 수신 데이터 합의 1의 보수를 취한 후 그 결과가 모두 1인 비트로 구성되어 있는지 계산 (0이 있을 시 오류)
  • CRC방식과 비교하면 오류면에서 상대적으로 취약

2.3 순환 중복 검사(Cyclic Redundancy Check, CRC)

  • 다항식 코드(polynomial code)로도 알려져있음
  • 동작방식
    • d 비트로 이루어진 데이터 D를 송신 노드가 수신 노드로 전송한다고 가정
    • 송신자와 수신자는 G로 표기되는 생성자로 알려진 r+1비트 패턴에 대하여 합의 (G의 최상위 비트는 1)
    • 주어진 데이터 D에 대해 송신자는 r개의 추가 비트 R을 선택해서 D뒤에 덧붙이며, d+r비트 패턴은 모듈로-2연산을 이용하면 G로 정확히 나누어 짐
    • 수신자는 d+r개의 수신 비트를 G로 나눔, 나머지가 0이 아니라면 오류가 발생한 것

3. 다중 접속 링크와 프로토콜

  • 점대점 링크 (point - to -point link) : 링크의 한쪽 끝에 한 송신자와 링크의 다른 쪽 끝에 한 수신자가 있음.
    • 대다수의 링크 계층 프로토콜은 점대점 링크용으로 선계
    • PPP(point-to point protocol), HDLC(high- loevel data link contorl)이 속함
  • 브로트캐스트 링크(broadcast link) : 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드들이 연결
    • 브로드캐스트 : 임이의 한 노드가 프레임을 전송하면 채널이 그 프레임을 방송(broadcast)해서 다른 모든 노드들이 그 프레임의 복사본을 수신함.
    • 다중 접속 문제(multiple access problem)을 해결하는 것이 중요
    • 2개 이상의 노드가 동시에 프레임을 전송하면 수신자에서 충돌(collide)함
      • 충동하게 되면 신호가 해석할 수 없을 정도로 손상
    • 충돌이 일어나지 않게 하기 위해(충돌에 대처하기 위해) 다중 접속 프로토콜(multiple access protocol)이 있음
      • 채널 분할 프로토콜(channel partitioning protocol)
      • 랜덤 접속 프로토콜 (random access protocol)
      • 순번 프로토콜 (taking turns protocol)

3.1 채널 분할 프로토콜

  • 시분할 다중화 (time division multiplexing, TDM)
    • 시간을 시간 프레임으로 나누고 각 시간프레임을 N개의 시간 슬롯으로 나눔.
    • 각 시간 슬롯은 N개 노드에게 각각 할당
    • 노드는 전송할 패킷이 있을 때마다 TDM프레임에서 자신에게 할당된 시간 슬롯 동안 패킷 비트들을 전송
    • 일반적으로 한 패킷이 한 슬롯 시간동안 전송
    • 단점
      • 전송할 패킷이 있는 노드가 단 하나인 경우에도 노드 전송률이 평균 R/N으로 제한
      • 노드가 전송 순서상 자신의 차례를 항상 기다려야 함
  • 주파수 분할 다중화(frequency division multiplexing, FDM)
    • Rbps의 채널을 다른 주파수(R/N의 대역폭을 갖는)로 나눠서 각 주파수를 N개 노드 중 하나에게 할당
    • 단점
      • 전송할 패킷을 가진 노드가 단 하나일지라도 노드는 R/N의 대역폭으로 한정됨
  • 코드 분할 다중 접속(Code Division Multiple Access, CDMA)
    • 다른 코드를 각 노드에게 할당
    • 노드는 전송하는 데이터 비트들을 자신의 유일한 코드로 인코딩 함
    • 코드들을 신중하게 선택하면 여러 노드들이 동시에 전송할 수 있음
    • 다른 노드들에 의해서 전송이 간섭(interfere)되더라도 각 수신자들이 송신자의 인코딩된 데이터 비트를 정확하게 수신할 수 있음.

3.2 랜덤 접속 프로토콜

  • 랜덤 접속 프로토콜에서 전송 노드는 항상 채널의 최대전송률로 전송
  • 충돌이 생기면 충돌과 관련된 각 노드는 프레임이 충돌 없이 전송될 때 까지 자신의 프레임을 계속해서 재전송
  • 충돌했을 때 노드는 해당 프레임을 즉시 재전송할 필요는 없음, 랜덤 지연 시간동안 기다린 후 전송
  • 슬롯 알로하
    • 가정
      • 모든 프레임은 정확히 L비트로 구성
      • 시간은 L/R초의 슬롯들로 나뉨
      • 노드는 슬롯의 시작점에서만 프레임을 전송하기 시작
      • 각 노드는 언제 슬롯이 시작하는지 알 수 있게끔 동기화되어 있음
      • 한 슬롯에서 2개 이상의 프레임이 충돌하면 , 모든 노드는 그 슬롯이 끝나기 전에 충돌발생을 알게됨. 
    • 노드는 전송할 새 프레임이 있으면 다음 슬롯이 시작할 때까지 기다렸다가 그 슬롯에 전체 프레임을 전송
    • 만약 충돌하지 않으면, 노드는 성공적으로 자신의 프레임을 전송한 것. 따라서 재전송 안함
    • 만약 충돌하면 , 노드는 그 슬롯이 끝나기 전에 충돌을 검출, 노드는 그 프레임이 충돌없이 전송될 때 까지 확률 p로 해당 프레임을 다음 슬롯들에서 재전송
    • 장점
      • 하나의 활성 노드로 하여금 채널의 전속력 R로 계속해서 프레임으 전송할 수 있도록 허용
      • 각 노드가 충돌을 감지하고 언제 재전송할지 각자 결정하므로 상당히 분산되어 있음
    • 단점
      • 활성노드가 많이 있으면 일부 슬롯이 충돌로 인해 낭비될 수 있음
      • 모든 활성 노드들이 확률적인 전송 정책 때문에 전송을 억제하는 경우 일부 슬롯이 빌 수 있음
  • 알로하
    • 프레임이 도착하면 노드는 즉시 그 프레임 전체를 브로드캐스트 채널로 전송
    • 만약 전송된 프레임이 하나 이상의 다른 전송과 충돌하면 노드는 확률p로 그 프레임을 즉시 재전송
    • 재전송 하지 않을 경우 노드는 프레임 전송 시간 동안 기다림. 그 후 그 프레임을 확률 P로 전송하거나 전송하지않음.
  • CSMA(Carrier Sense Multiple Access)
    • 캐리어 감지(Carrier Sense): 노드는 전송하기 전에 채널을 들음. 만약 다른 노드가 프레임을 채널로 전송하고 있으면, 노드는 임의의 짧은 시간 동안 전송 중단을 감지하면 프레임을 전송하기 시작
    • 충돌 검출 (collision detection) : 송신 노드는 전송하면서 동시에 채널을 들음, 만일 다른 노드가 방해 프레임을 전송하고 있음을 검출하면, 자신의 전송을 중단하고 랜덤 시간 동안 기다린 후 유휴시 감지 및 전송과정을 반복
    • 채널 전파 지연(channel propagation delay)때문에 이미 시작된 전송을 캐리어 감지 노드가 감지할 수 없는 경우가 많음
    • CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
      • 노드가 충돌 검출을 수행하면, 충돌이 검출되었을 대 바로 자신의 전송을 중단

3.3 순번 프로토콜

  • 폴링 프로토콜(polling protocol)
    • 노드중의 하나를 마스터 노드로 지정
    • 마스터노드는 각 노드를 라운드 로빈 방식으로 폴링
    • 장점
      • 빈 슬롯이 없이 동작
    • 단점
      • 폴링 지연
      • 마스터 노드가 고장나면 전체 정지
  • 토큰 전달 프로토콜(token-passing protocol)
    • 마스터 노드가 없고 토큰(token)이라고 알려진 작은 특수 목적 프레임이 정해진 순서대로 노드간에 전달
    • 노드가 토큰을 수신하면, 전송할 프레임이 있을 때만 토큰을 붙잡음. 없으면 토큰을 다음 노드로 전달
    • 단점
      • 노드 하나가 실패하면 전체 채널이 동작하지 않음
      • 노드가 토큰을 놓아주지 않으면 토큰이 다시 돌 수 있도록 하는 회복절차가 필요

4. 스위치 근거리 네트워크

4.1 링크 계층 주소체계와 ARP

  • 호스트와 라우터들은 링크 계층 주소를 가짐
  • ARP( Address Resolution protocol) : ip주소를 링크 계층 주소로 변환
  • 링크계층의 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑터이다
  • 다수의 네트워크 인터페이스를 갖고 있는 호스트나 라우터는 여러개의 링크 계층 주소를 가짐
  • 링크계층 스위치는 호스트나 라우터를 연결해주는 인터페이스에 링크 계층 주소를 할당받지 않음
  • MAC주소
    • 6바이트의 길이 , 16진수 표기법으로 표시
    • 어떤 어댑터도 동일한 주소를 갖지 않음
  • ARP
    • 네트워크 계층 주소와 링크 계층 주소 사이에 변환을 해주는 프로토콜
    • ARP모듈이 IP주소를 받으면 해당 IP주소에 해당하는 MAC주소를 응답해줌
    • 호스트와 라우터에 ARP 테이블이 존재, IP주소와 MAC주소를 매

4.2 이더넷

  • 이더넷 프레임 구조
    • 데이터 필드(46~1500바이트) : ip데이터그램을 운반, 1500바이트 이상일 경우 데이터그램을 단편화 해야함. 46바이트보다 작으면 데이터 필드를 채워서 46바이ㅡ로 만들어야 함
    • 목적지 주소(6바이트) : 목적지 어댑터의 MAC주소
    • 출발지 주소 (6바이트) : 프레임을 랜으로 전송하는 어댑터의 MAC주소
    • 타입필드(2바이트) : 네트워크 계층 프로토콝을 다중화 하도록 허용
    • 순환중복검사(CRC) (4바이트) : 오류 검출
    • 프리앰블(8바이트) : 프리앰블의 첫 7바이트는 수신어댑터를 깨우고 수신자의 클록을 송신자의 클록에 동기화 시키는 역할을 함
  • 모든 이더넷 기술은 네트워크 계층에게 비연결형 서비스를 제공 (UDP와 유사)
  • 네트워크 계층에게 비신뢰적인 서비스 제공

4.3 링크 계층 스위치

  • 링크 계층 프레임을 수신해서 출력 링크로 전달하는 역할.
  • 전달 및 여과
    • 여과 (filtering) : 프레임을 인터페이스로 전달할지 또는 폐기할지 결정하는 스위치의 기능
    • 전달 (forwarding) : 프레임이 전송될 인터페이스를 결정하고 프레임을 해당 인터페이스로 내보내는 기능
    • 스위치의 여과와 전달은 스위치 테이블을 이용
  • 자가학습
    • 스위치는 자신의 테이블을 자동으로, 동적으로 , 자치적으로 구축
    • 스위치는 네트워크 관리자나 사용자의 개입을 요구하지 않는 플러그 앤 플레이 장치
  • 링크 계층 스위치의 특성
    • 충돌제거 
    • 이질적인 링크들 : 스위치는 링크들을 별개로 분리하기 때문에 랜의 각 링크는 상이한 속도로 동작할 수 있으며 매체를 사용할 수 있다.
    • 관리 : 향상된 보안을 제공할 뿐만 아니라 네트워크 관리를 쉽게 할 수 있게 해줌
반응형