Youngminah/TIL

네트워크 총 정리 1편

Youngminah opened this issue · 0 comments

image

  • 지금까지 학교다니며 정리충처럼 정리하고 외웠던 네트워크 .... 금붕어인지 맨날 까먹음;
  • 아는데 맨날 머리에 얽혀있어 이제는 한마디 말 못하던.. 네트워크 ...!! 정리 시작합니다
  • 이번 정리는 꽤 길 수 이씀!


인터넷

  • 두가지 관점으로 정의 가능
  • Nuts and Bolts 너츠앤볼츠 관점
    • 하드웨어에 관한 정의
    • 너츠앤볼츠 관점에서 인터넷은 호스트 = 종단 시스템 (가장 자리에 있는 애들) , 링크, 패킷스위치 (라우터, 스위치) 3가지로 이루어짐
  • 서비스 관점
    • 어플리케이션에게 서비스를 제공하는 구조에 관한 정의임.
    • 어플리케이션에 서비스를 제공할 때, 프로그래밍을 통해 소켓이나 아이피를 연결하여 서비스를 제공함.
    • 이 때, 패킷이란 단위로 나누어 제공하는 데 효율성이 높아짐.


프로토콜

  • 네트워크에서 프로토콜이란, 네트워크 통신 규약으로 메세지를 보내고 받는 것의 순서나 형식을 정하는 것을 말함
  • 예) TCP, IP, HTTP, Wifi ( 802.11 )


네트워크의 구조 ⭐️

image

  • 너 혹시 네트워크 구조는 혹씨 알고 코딩하는거닝..?
  • 네트워크 엣지, 엑세스 네트워크, 네트워크 코어로 구성됨
  • 네트워크 엣지
    • 호스트, 종단시스템 다 같은말
    • 네트워크에 가장자리에 있는 시스템을 의미함.
    • 예 ) 데스크탑, 서버, 모바일 기기 등이 될 수 있음
  • 엑세스 네트워크
    • 종단 시스템이 네트워크 코어와 연결하는 커뮤니케이션 링크 부분을 말함.
    • 엑세스 네트워크는 대역폭(bandwidth)은 얼마나 할 지, 공유로 할지, 독단으로 사용할지가 중요하다.
    • 유선 엑세스 네트워크
      • 집에서 네트워크 연결 할 때 사용하는 엑세스 네트워크 종류
      • DSL (digital subscriber line)
        • 선을 이용한 엑세스 네트워크 연결 방법으로
        • 한 집이 링크를 독단적( 혼자만이용) 하는 것이 특징
      • Cable
        • 여러 집이 엑세스 네트워크 링크를 공유하여 보냄
        • 공유가 가능한 이유는 주파수를 다르게 하여 보내기 때문에 섞이지 않고 보낼 수 있음. ( Frequency division multiplexing )
        • 기업에서 네트워크 연결 할 때 사용하는 엑세스 네트워크 종류
      • 이더넷
        • 주로 학교, 회사에서 이용한다. 이더넷 스위치를 이용하여 연결.
    • 무선 엑세스 네트워크
      • LAN (근거리 통신망) : Wifi 이용
      • WAN (장거리 통신망) : 4G, LTE, 5G
  • 네트워크 코어
    • 복잡하게 얽혀진 라우터들을 말한다.
    • 네트워크의 핵심 기능 2가지
    • 라우팅 (routing) : 출발지에서 목적지 까지 경로를 정하는 것. 포워딩 테이블을 만드는 것
    • 포워딩 (forwarding) : 라우터에서 다음 라우터로 패킷을 보내는 것. 포워딩 테이블에서 읽고 다음 라우터로 보내는것
    • 두 가지의 차이점 전공자라면 이정돈 알아야쥐..?❗️
    • 라우팅 알고리즘(다익스트라 등등)을 이용하여 포워딩 테이블을 만듦.
    • 데이터를 엑세스 링크로 보내는 2가지 방식
      • 패킷 스위칭 : 패킷을 쪼개서 보내는 방법
      • 서킷 스위칭 : 패킷을 쪼개지 않고 한번에 보냄


패킷 스위칭의 핵심 원리 (그만좀 까먹자구..)

  • 패킷 스위칭의 가장 핵심 원리는 뭐다? Store-and-forward 방식 (대체 이건 봐도봐도 까먹는거지ㅡㅡ)
  • Store-and-forward : 저장한 뒤 보낸다는 원리
    • 즉, 총 패킷의 길이가 라우터에 도착해야만 다음 라우더로 보낼 수 있다는 뜻
    • 그렇기 때문에 propagation delay 말고도 transmission delay도 생겨남.


패킷 스위칭에서 Delay

image

  • 총 Delay = Process Delay + Queuing Delay + Transmission Delay + Propagation Delay 총 4가지로 나뉜다.
  • 일반적으로 process delay 와 queuing delay는 매우 짧고, propagation delay가 가장 길다.
  • Process delay : 어느 링크로 갈지 정하는데 걸리는 시간
  • Queuing delay : 큐에서 대기 시간
  • Transmission delay : 총 패킷의 길이가 올라오는데 걸리는 시간
  • Propagation delay : 링크를 타고 다음 라우터까지 가는데 걸리는 시간


전송지연(Transmission Delay)와 전파지연(Propagation Delay)는 다른것 ⭐️

  • 이것의 차이는 미묘하지만 매우 중요함
  • Transmission Delay : 패킷이 모든 비트로 링크로 올리는데 걸리는 시간으로 패킷의 길이와 관련되어있고,
  • Propagation Delay: 다음 라우터까지 전파되는데 걸리는 시간으로 링크 처음부터 다음 라우터까리의 거리와 관련이 있다.


큐잉 딜레이(queuing delay)의 발생 이유

  • 도착 비율이 전송 비율보다 클 경우 라우터에 있는 버퍼 (큐)에서 대기하게 된다.
  • 그렇지 않으면 발생하지 않음.
  • 네트워크의 혼잡도에 따라 다르다.
  • 일반적으로는 전파 딜레이가 가장 길지만, 네트워크 혼잡도하면 큐잉딜레이가 더 길 수도 있음.


네트워크 통신시 패킷 손실 (Packet loss)가 발생하는 이유

  • 라우터 안의 버퍼(Queue)가 꽉 찬 경우 더이상 패킷을 저장하지 못하고 유실이 일어난다.


네트워크에서 데이터를 보내는 방식중 Packet switching을 쓰는 이유 ? 장점! ⭐️

  • 공유 방식 링크 (shared)를 사용 할 때에 는 여러 호스트가 access link를 함께 이용하게 된다.
  • 이 때, 만약 패킷스위칭을 쓰지 않을 경우 어떠한 호스트의 메세지가 너무 길면 link를 독점하게 되므로,
  • 다른 호스트는 사용할 수 없어 비효율적이게 된다.
  • 스케줄링 같은 느낌쓰


서킷 스위칭 Circuit Switching

  • 대표적 예. 유선전화
  • 독점적으로 자원을 보내는것이 가능하다. (no sharing)
  • 장점 : 어느정도의 성능이 보장된다.
  • 서킷 스위칭의 방법 : FDM 방식 ( 주파수 분할 방식 ) , TDM 방식 ( 시간분할 방식 )
    image


패킷 스위칭 vs 서킷 스위칭 ⭐️ 이거핵심

  • 패킷 스위칭
    • 네트워크를 보다 더 많은 사람이 이용 가능하게 만든다.
    • 간단하고 셋업 과정이 필요 없음. 하지만 패킷을 보낼 때 항상 헤더를 붙여서 보내야함.
    • 또한 공유하기 때문에 혼잡도에 따라 딜레이 발생 가능.
  • 서킷 스위칭
    • 성능(속도)이 보장된다.
    • 무조건 대역폭 일정하게 보장됨. (단점이 될때도 있음)
    • 선을 뚫기 까지 셋업 과정이 필요하다.
    • 비활용 (idle) 기간에 회선 자원이 낭비 될 수 있다.
  • 만약 패킷스위칭이 서킷 스위칭 처럼 성능을 보장받으려면 어떻게 해야할까? ❗️❗️
    • 만약 패킷스위칭도 데이터가 꼭 전송되어야 하는 경우 회선 스위칭 처럼 먼저 어느 정도 Path(길)을 정해서 패킷을 보내는 방법을 사용하기도 함.
    • 대역폭을 충분히 보장 받으면 된다. ( 하지만 아직까지 완벽히 해결 되진 않은 문제 )
    • 대역폭이란?
      • 초당 처리할 수 있는 데이터의 양
      • 대역폭이 낮으면 병목현상을 일으킬 수 있다.
  • ❗️결론
    • 패킷스위칭은 한사용자가 큰 bursty한 데이터를 가지고 있다면
    • 혼자. 전체 대역폭을 사용할 수 있기 때문에,
    • 대역폭을 나눠서 일정 대역폭을 보장받는 회선 스위칭 방식보다 성능이 더 좋다.
    • 하지만, 단점도 따르는 법!
    • Congestion(혼잡) 발생시 패킷 전송지연과 손실을 야기할 수 있다.
    • 따라서 안정적인 데이터 전송과 혼잡제어가 가능한 프로토콜이 필요함


네트워크의 네트워크 구조

  • 앞에서 언급했듯이 인터넷은 단말과 접속 (access) ,
  • 네트워크 가장자리(edges) ,
  • 가장자리를 연결하는 인터넷 서비스 제공자들(ISPs)의 라우터를 포함하는 네트워크 코어(core)로 이루어짐.


ISPs (Internet Service Provider)

  • 우리가 흔히 '인터넷 회사'라고 부르는 업체들, 인터넷 서비스 제공자 라고 칭함
  • 단말 시스템들은 접속 ISPs들을 통해 인터넷과 연결 됨
  • 접속 ISP는 DSL, 케이블, FTTH, 와이파이, 셀룰러을 포함하는 다양한 접속 기술을 이용하여 유선 또는 무선 연결을 제공함.
  • ISP는 반드시 KT, SKT, LG 등의 케이블 회사일 필요는 없음.
  • 이러한 케이블 회사는 주거 or 지역 (residential) ISP임.
  • 가정이라면 지역 ISP를 통해서 인터넷에 접속함.
  • 대학교, 회사도 ISP가 될 수 있다.
  • 이를 위해 네트워크의 네트워크가 탄생하게 되는것
  • 이러한 네트워크의 네트워크 구조의 진화는 성능적인 고려보다는 경제적, 국가적 정책에 의해 이루어짐.
  • 그럼 이제부터 네트워크의 네트워크 구조를 알아보자 !
  • 네트워크의 네트워크 구조는 크게 5가지가 있음.


네트워크의 구조를 보기 전에 생각해 보아야 할점

image

  • 위와같이 총 N개의 접속 ISP들이 있다고 가정
  • 만약 ISP들끼리 서로 다른 접속 ISP들과 직접 연결된다고 생각해보면,
  • 연결의 수는 결국 N(N-1)가 된다.
  • 방향이 없다고 쳐서 나누기 2를 해도 복잡도 개념으로 본다면 O(N^2)를 따르게 됨..
  • 이와 같은 연결은 확장성(Scalability)가 떨어지게 된다.


네트워크 구조 1

image

  • 각각의 접속 ISP들이 하나의 글로벌 ISP와 연결된 구조.
  • 글로벌 ISP가 1개 존재하는 구조 !
  • 글로벌 ISP는 전 세계적으로도 적어도 수십만개에 이르는 접속 ISP와 가까운 곳에 있는 라우터를 갖는 통신 링크의 네트워크 임
  • 물론, 글로번 ISP가 이러한 확장된 네트워크를 구축하는것은 매우 비용이 많이 든다.
  • 이익을 얻기 위해 각각 접속 ISP에 연결을 위한 과금을 요청하는 것은 자연스러움
  • 따라서 여기서 Customer(고객) , Provider(제공자)의 개념이 나옴.
  • 접속 ISP가 글로벌 ISP에게 요금을 지불하고 서비스를 받기 때문에, 접속 ISP는 Customer(고객)이고,
  • 글로벌 ISP는 제공자(provider)임.


네트워크 구조 2

image

  • 글로벌 ISP가 다수개 존재하는 구조
  • 당연히 네트워크는 네트워크구조1 보다 네트워크구조2를 선호하게된다.
  • 경쟁을 하면서 더나은 서비스를 제공하려 하기 때문이다.
  • 글로벌 ISP도 서로 연결 해야함.
  • 하지만 글로벌과 글로벌끼리의 연결은 과금을 요청하는 고객과 제공자의 관계로 연결되진 않는다.
  • IXP를 통해 연결되거나 직접 라우터와 라우터로 연결될 수 있음.
  • IXP( Internet eXchange Point) : 2016-7년까지 약 400개 이상의 IXP가 존재함
  • 직접 글로벌 글로벌이 라우터 끼리 연결되는 것을 Peering Link라고 부름.
  • Peering Link에선 서로 요금을 지불하지 않음.


네트워크 구조 3

image

  • 현실적으로 어떤 글로벌 ISP는 훌륭하지만, 전세계 모든 도시들에 ISP가 존재할 수는 없음.
  • 대신 지역 ISP가 있음.
  • 이러한 지역 ISP에도 경쟁적인 지역ISP가 있을 수 있음
  • 그리고 큰 지역ISP 작은 지역 ISP가 있을 수 있다.
  • 이 말 뜻은 지역 ISP간에도 고객 - 제공자 관계가 성립될 수 있다.
  • 이러한 다중 구조 계층을 네트워크 구조 3이라고 한다.


네트워크 구조 4

  • 오늘날의 인터넷과 더 유사한 네트워크를 구축하기 위해서 PoP(Points of Presence), 멀티-홈(Multi-Home), 피어링, IXP가 포함됨
  • 네트워크 구조 3에 이 4가지가 포함된 것이 네트워크 구조 4
  • PoP는 제공자의 네트워크 내에 있는 하나 혹은 그 이상의 라우터 그룹임
  • MultiHome: 여러 제공 ISP와 연결하는 것. 서비스 제공자 중 하나가 연결되지 않더라도 패킷을 송수신 가능. Fault-tolerant


네트워크 구조 5

image

  • 콘텐트 - 제공자 네트워크를 추가로 구축함.
  • 예를들면 구글이 될 수 있는데 이러한 콘텐트 제공자 네트워크는 자신의 네트워크를 구축함으로써
  • 상위 계층 ISP들에게 지불하는 요금을 줄일 뿐만 아니라
  • 최종 사용자들에게 자신들의 서비스가 궁극적으로 어떻게 전달되는지에 대한 더 많은 통제권을 가질 수 있다.
  • 즉, 사용자의 요구에 맞는 컨텐츠 및 서비스를 제공할 수 있게 된다.