• [Network] Link layer ( start ~ multiple access protocol )

    2021. 4. 30.

    by. KimBangg

     

    링크레이어에서 사용되는 packet의 명칭은 " frame " 입니다 !

    링크레이어의 목적은, 네트워크레이어 넘어온 datagram을 "물리적"으로 가까운 노드로 보내는 역할합니다

     

    이전에 네트워크 계층 및 전송 계층에서는 물리적이 아닌 논리적 접근을 중요하게 여겼지만,

    링크 계층에서는 물리적 접근을 기반으로 생각하시면 좋습니다!

     

    Node = switch, wifi, host, router 등등을 포괄한 명칭

     

    Link = 가까운 노드들과 연결시켜주는 커뮤니케이션 채널이다.

    각각 링크들은 다른 서버를 가지고 있기 때문에, 아마도 reliable data transport를 제공하지 않을 수도 있다.

     

    비유 ( Computer Network Top-down approach의 비유를 인용해왔습니다 !)

     

    데이터그램 ( = 여행객 )

    데이터그램을 이동시켜주는 것 = communication link

    이동 방식 = link layer protocol

    여행사 = routing algorithm

     

     

     

    < Link layer's service >

    1) framing, link access

    데이터그램을 encapsulate한다 ! ( header + trailer )

    공유된 미디어가 존재한다면, 접근할 수 있도록 커뮤니케이션의 기회를 제공한다.

    MAC 주소를 이용하여 목적지와 출발지를 확인 할 수 있다.

    ( MAC주소는 우리가 가진 주민등록증이라고 생각하면 된다. 즉, 물리적으로는 MAC 주소를 변경하는 것이 불가능하다. 단, IP address는 우편번호 같은 것이 이기 때문에 변경이 가능하다 )

     

    2) 가까운 노드 사이의 믿을 수 있는 데이터 전송

     

    3) 플로우 컨트롤

     

    4) 에러 감지 및 정정 ( bit level error detect & correct )

     

     

    < Where link layer is implemented? > : in network adapter (= newtork interface card (= NIC )

    At heart of Network adaptor is link layer controller.

    그래서 궁극적으로 링크레이어의 컨트롤의 기능은 대부분 하드웨어적으로 발생한다.

     

    Sending side : 컨트롤러는 호스트의 메모리 안에서 만들어진 데이터그램을 받은 후, 이것을 프레임으로 encapsulate 한 후에 커뮤니케이션링크로 프레임을 전송한다.

     

    Receving side : 컨트롤러는 프레임을 받은 후 , 네트워크 레이어 데이터그램을 추출한다. 만약 링크레이어가 에러 검사가 되는 상황이라면, 전송자가 error-detection flag header에 담아서 보내준다.

     

    < Network adapter : 네트워크 어답터와 다른 호스트으 구성요소와의 관계 >

    대표사진 삭제

    사진 설명을 입력하세요.

    위에서 이야기 했던 것처럼 링크레이어의 대부분은 하드웨어 적인 요소에 의해 발생되지만, 일정 부분은 cpu에 의존해 운영되는 소프트웨어에 의존하여 발생한다.

     

    링크레이어의 소프트웨어의 기능은 링크레이어 어드레스 인포메이션을 합치고, controller adapter를 실행시키는것과 같은 높은 수준의 기능을 실현한다.

     

    수신자 입장에서는 링크레이어 소프트웨어는 컨트롤러의 interrputs에 반응하며, 에러를 다룰 수 있고 데이터 그램을 네트워크 레이어로 넘겨주는 역할을 한다.

     

    ======================================================================

    1) Error dection and correction techniques => 기말 범위아니라서 추가 공부 후 추가 할 예정! :)

     

     

    ======================================================================

    <일반적 전송 방식 >

    1-1) point to point : link between ethernet switch & host

     

    1-2) BroadCast = > shared wire & medium // sing shared host

    link layer에서 다룰 것은 broadcast 이며, 브로드캐스트에 가장 적절한 예시로는 파티에서 떠드는 사람들을 생각하면 좋다고 한다.

     

     

    한개의 노드에서 프레임을 보낼 경우, 채널은 그 프레임을 복사해서 다른 모든 노드들에게 전송해준다.

    1) Multiple Access protocol

    => 한명의 채널과 여러명의 노드가 존재하기 때문에, 동시에 채널로 프레임을 전송 할 경우에는 충돌 할 가능성이 많다. 그렇기 때문에, Multiple access protocol을 이용해서 충돌을 방지하고자 한다!

     

     

    < Various Multiple Access version >

    1) Channel partitioning protocol

     

    1-1) TDM

    N명의 사람에 맞춰진 slot이 생기고, 그 사람들은 특정시간 동안만 데이터를 보낼 수 있다.

    그렇게 되면, 충돌이 생기지 않고 공평한 속도를 가진다.

    하지만, 정해놓은 인원에 적은 인원이 올 경우 낭비가 많이 되고 속도가 느리다.

     

    1-2) FDM

    같은 장, 단점을 가진다.

     

    1-3) Code division multiple access

    코드를 여러명의 노드에게 제공한다. ( 각 코드는 유니크하다는 특징을 가지고 있다. )

     

    2) Random Access Protocol

    항상 최대의 속도로 전송할 수 있지만, 충돌이 많다. 문제 생긴 패킷만 해결 될 때까지 재전송을 하는 방식

    대신, node가 직접적으로 충돌을 감지할 수 없고 사전 노드간의 협의가 없다.

    충돌 이후 즉시 보내는 것이 아니라, 랜덤으로 선택된 시간 이후에 재전송을 함으로써 충돌을 방지한다.

     

    2-1) Sloted ALOHA

    모든 frame = L bits를 가지고 있고 time = L/R seconds가 제공된다.

    모든 node가 sycronization이 되어서, 언제 slot이 시작되는지 알고 있다.

    만약 충돌이 발생되면 모든 node, slot이 충돌을 찾기 시작하며 이후에 그 프레임을 다시 전송한다. 충돌x까지

     

    장점 : 최고속도로 전송하는게 가능하다. ( 왜냐하면, 오직 1개의 frame이 전송 가능 ! )

    각각의 노드가 충돌으 감지해서 언제 보낼지 조율한다 ( =decentralzed )

    단점: 활성 노드가 많으면 낭비하는 슬롯이 많다.

     

     

     

     

     

    효율

    Np*(1 - p*)N-1- = > 37퍼센트의 확률로 전송이 가능하다.

     

     

    4) Pure ALOHA

    처음에 프레임이 전송되면, 즉각적으로 전송한다.

    더 간단하고 동기화 하지 않는다.

     

    단점은 : 충돌이 많이 존재하고, 슬롯간의 간격이 크기가 정해지기 때문에,(초록색과 보라색 사이의 크기보다 크면 낭비 ) 낭비되는 시간이 많다.

    p(1 - p)2(N-1) : 슬롯 알로하보다 더 낮은 효율이 18퍼센트 !

     

     

     

     

    < Carrier sense Multiple Access > = CSMA/CD 방식

    1) listen before speaking

    다른 프레임이 보내지고 있으면 기다렸다가 전송한다.

    2) wait stop talking

    동시에 보내는 일이 생기면, 즉각적으로 멈춘다.

    3) 충돌 이후 재전송

    충돌을 겪고 난뒤에는 2의n승 (= 충돌횟수) 의 수들 중 임의적으로 하나를 고른 후 그 수의 x512bit 한 시간을 기다린다. => 충돌이 많아 질 수록, 더 큰 숫자를 고를 확률이 높아지기 때문에 기다리는 시간도 증가한다.

    (exponential backoff algorithm)

     

    <Taking turn > => blutooth에서 자주쓰임 !

     

    1) polling

    마스터 노드를 결정한 후, 마스터가 노드들에게 기회를 제공함으로써 충돌을 방지한다.

    단점은, 소개를 해주는 시간을 통해 딜레이가 발생하며, 마스터가 전달을 실패 할 경우에는 전체가 - 된다.

     

    2) Token - taking

    전달 방향을 결정해, 자신의 차례가 끝나면 다음차례로 전달해준다. // 매우 효과적이지만 넘기는 과정을 실패 할 경우에는 운영이 불가능하다.

     

    댓글