본문 바로가기

23년 2학기 학교공부/컴퓨터네트워크

[CN] 라우터

목차

    728x90
    반응형
    SMALL

    라우터는 길을 찾는 장치.
     
    공유기라고 생각하면됨. 네트워크 카드가 여러개잇고, 그 사이에 전달.
     
    공유기의 카드가 보통 4개가 있고. 무선도있음. 라우터가 노트북컴퓨터랑 똑같은 구조임. 네트워크 카드가 있고, cpu 메모리 등이 있음. high-speed switchin gfabric이 특별한 하드웨어로 버스같은 역할을 하는거임. 컴퓨터의 버스가 라우터 역할을 할 수도 잇음.
    이미 스마트폰에서 라우터를 쓰고있음. 테더링. 5G, lte 인터페이스하고 와이파이 인터페이스 사이에 패킷을 전달하는 거임. 그 구조가 이럼.

     
    cpu가 ip 헤더를 읽어서 ip주소를 읽어서 전달. 프로세서가 하는 역할이 라우팅. 길찾기 기능임. 최단경로 알고리즘 다익스트라알고리즘이 여기 구현되어있음. 프로세서에.
     
    forwarding data plane에서는 패킷을 전달. 엄ㅊ어 빠르게.
     
     
     
     
    핵심이 길찾기, 전달하기 두 기능
     
    길찾기에는 최단거리 알고리즘이 구현되어있음. 벨만포드, 다익스트라
     
    패킷전달. 와이파이와 lte사이 테더링기능과 동일. 전달하려면 cidr처럼 패킷의 목적지 주소를 읽고 찾아서 lookup해야함. 90만개중에 어딘가르 ㄹ찍어야하는 lookup기능이 잇음. 그리고 찾음.
     
     
    인터넷카드. 일반적으로 라우터는 공유기 빼면 99퍼센트 무선. 전용 카드. 칩. 칩 하나가 10기가 처리하고 그런 구조. 뭐래? cpu 메모리 등등 다 들어가있음. 하나가 작은 컴퓨터같은거. 패킷 프로세싱하는 프로세스가 있고 메모리가 있고 등등.
     
    구체적으로 하는 역할은 비트를 알아냄. physical layer에서. link에서 이더넷 프레임 만듬. 이더넷 주소 구분함. 이더넷 주소를 보고 왓다갓다. 그런 역할들이 죽~잇다 이개씨
     
     
    포워딩 테이블. 컴퓨터에서도 확인할 수 잇음.
     
    많아봐야 네다섯개.
     
     
    라우터는 기본 히스토리가 교환망에서 출발. 교환기. 전화기를 연결해서 통ㅎ신해주는 장치로 시작함. 옛날 유선전화번호를 처리해주는 게 잇엇고, 그걸 패킷단위로. 하는게 교환망. 하나 남은게 tcp/ip. 패킷 교환망 하면 흔히 tcp/ip얘기하는이유. 옛날엔 그 중에 하나였음 tcp/ip가. 패킷단위 교환망ㅎ ㅏ는 장치.
     
    패킷 단위로 네트워크 카드로 전달.
     
     
    ip는 주소만 보기 ㄸ매ㅜㄴ에 주소만 보면 경로는 주소마다 패킷다누이로 보기 때문에 패킷마다 경로가 달라질수잇음.
     
     
    주소는 테이블보고 찾아야함. 주소가 cidr 포캣으로 테이블에 기록되어이승ㅁ. ㅑㅔㅍ4djemfptmrkxdmaus 43djrrork ekdltsmsrpdkslfk 챵ㄱfh vhaotehls gudxork 100만개정도가 들어잇ㅇ므. 어느게 매칭되는지 찾아봐야함.
     
    패킷이 도착하면 목적주소가 어느거하고 매칭되는지 판단해서 전다.ㄹ
     

    라우터가 하는 역할이 패킷이 들어오면 주소를 보고 테이블중에 어느걸 전달해야하나. 노란색 표시 보면 1000부터 101까지 다른거죠? 뭐래? 이렇게 두줄로 쓰면 에바라 한줄로씀.
     
     

    여기서 00011까지 같으면 어디로가야하나 고민이되겠지. 별도로 하나 더 표시해줘야함. 접두사가 여러개가 매칭이 되면 그중에 내가 가고싶은곳이 하나 잇으면 길~게 매칭되는걸 찾아라. logest prefix matching. 앞에서부터 접두사를 찾아서 제일 길게 매칭되는걸 찾아라. 이런 알고리즘이 기본.
    ip 주소에서 접두사가 가장 길게 매칭되는 걸 찾기.
     
    위에껀 일단 찾은다음에하는거.
     
     
    ip 패킷하나가 들어왓어. 이걸 100만개중에 찾아야하면 일단먼저 소프트웨어 관련 기술중에 필요한게잇음. 해쉬. 서치해라 하면 99퍼센트는 해쉬로하면 해결됨. 해쉬의 단점이 뭐냐면 예를들어서 리니어일때 최악의 경우 n. 100만개를 다찾아야하는거.

    또 trie라는 구조가 이렇게 생겼는데, 알파벳으로 표현되는건데 위에서 바이너리로 찾으면됨. 평균적으로 서치하는게 logn이 됨.
     
    또 cam content address memory라는게잇음. 인덱스말고 내용보고 찾는 메모리. 이런 하드웨어 기술도 있음.
     
     
    lc 구조가 이렇게 구현되어잇음.
     
    lc tries 볼수잇음. 리눅스에 그대로 구현되어있음. 우리가 쓰는 라우터는 다 리눅스 기반인데, 대부분의 라우터 공유기에 다 들어있음.
     
     
     
    우리가쓰는 컴퓨터 말고 라우터는 특별한 하드웨어 필요. switching fabrics
     
     
    tcp 혼잡. 교차로에서 혼잡되는 문제중하나가 네트워크 카드에서 발생. hol blocking.
     
     
     
    나갈때도 마찬가지로 앞에ㅓㄴ 속도 빠른데 뒤는 느린데 큐 버퍼가 오버플로우될수도. 버퍼에 제한된 메모리가 잇으면 드랍됨. 드랍될때도 정책이 필요함.
     
     
    버퍼블로트. 갑자기 네트워크가 느려짐. 알고보니까 버퍼가 터짐. bloat. 버퍼를 너무 키워서. 너무 작아서 loss발생하니까 키웠더니 버퍼에서 기다리는시간이 너무 오래돼서 터짐. 이런 현상이 관찰됨.
     
     
     
     

    728x90
    반응형
    LIST