[컴퓨터네트워크] Internet introduction

17908 단어 CSCS

1학년 때 물리층과 데이터링크층을 배웠다면 컴퓨터네트워크에서는 네트워크층과 전송계층, 응용층에 대해서 배울 것이다.

인터넷이란 무엇일까?

🌐 인터넷을 nuts and bolts 관점에서 보자.

  • network of networks란? device와 device를 연결하는 것은, 더 큰 다른 network에 연결한다는 것과 같은 의미이다 .
  • Internet vs internet
    • Internet은 TCP/IP를 사용하는 network of networks이다.
    • internet은 단지, network of networks이다.

결론적으로는, Internet이 internet이 포함되는 개념인 것이다.


  • Billions of connected computing devices
    • host = end systems
    • running network apps at Internet’s “edge”
      • 실행 중인 모든 네트워크 앱을 듯하며, edge는 모서리, 외부를 모두 통틀어 이야기한다. 내부는 core다.

모든 디바이스들은 host(=end systems) 이라고 불린다. End systems들은, communication links와 packet switches로 이루어진 네트워크에 연결되어 있다.

한 end system에서 다른 end systems로 데이터를 보낼 때, 해당 패킷은 segment 단위로 나누어(transport layer에서 이루어진다.) header bite를 붙인 이후, 완성된 패킷(network layer에서의 데이터 단위) 을 또다른 end system으로 전송한다. 전송된 end system에서 이 데이터 쪼가리를 재조합, 원래의 데이터로 만든다.

  • host : send packets of data application층으부터 메세지를 받는다. 이것을 잘게 나누어 packet 단위로 설정한 뒤, access network로 패킷을 보내서 R의 전송률로 전송한다. (단위 : bits/sec)
    • 전송률 : 용량 (대역폭)에 의해서 결정된다. (capacity = link bandwidth)
    • 패킷 지연율 = time needed to transmit L-bit packet into link = L(bits)/R(bits/sec)
  • Packet switches (패킷 교환기)
    • forward packets (다음 end system으로 패킷을 넘기는 역할을 한다.)
    • routers(L3 switch), switches(L2 switch/Ethernet switch) 존재.
  • Communication links (Physical link, 물리적 전송 매체)
    • fiber(광섬유), copper(구리선), radio(RF), satellite(위성통신)
    • transmission rate : bandwidth (대역폭에 따라 전송 효율성이 결정된다.)
  • Networks
    • collections of devices, routers, links → managed by an organization
  • Internet “network of networks”
    • Interconnected ISPs
  • Protocols (규약/규칙)
    • 인터넷 내에서 정보를 주고받는 규칙, 규약이며 이를 컨트롤하는 역할을 한다.
    • 네트워크 구성 요소들 사이에서 메세지를 주고받는 형식, 순서, 발생양상을 정의한다. → 데이터를 교환하기 위해 정의한 약속이다.
    • end systems, packet switches, internet에서 protocol 운영을 하고 있다.
    • 종류
      • HTTP (web에서 사용)
      • streaming video
      • Skype
      • TCP/IP : 인터넷에서 가장 많이 사용되고, 중요한 프로토콜이다. 인터넷은 해당 프로토콜에 의해 동작한다. 예를 들어, http는 TCP의 상위 프로토콜이다. 이를 전송하기 위해 TCP에게 경로찾기 맡겨야 한다.
      • WiFi
      • 4G
      • Ethernet
  • Internet standards
    • RFC : Request for comments
      • 인터넷 발전에 대한 draft를 제출하면, 받아 준다고는 하는데, ITF가 주도하는데 거의 안받는다고 보면 된다.
    • IETF : Internet Engineering Task Force
      • internet service provider 이며, 이 친구들끼리 연결되어 있기 때문에 우리가 외국 서버에 접속이 가능한 것이다.

🌐 인터넷을 ‘services’의 관점에서 보자.

  • Infrastructure
    • provides services to application (어플리케이션에 서비스를 제공하는 기반 시스템이라고 해석 가능하다)
    • 예시
      • Web
      • Streaming video
      • multimedia teleconferencing
      • email
      • games
      • e-commerce
      • social media..
  • provide Programming interface
    • 통신 서비스이다. application이 가능하게끔 강력한 API를 제공한다.(엔드 시스템에서 엔드 시스템으로 전송 및 수신이 가능하다.)

🌐 프로토콜이란 무엇일까?

인터넷에서 이루어지는 모든 통신 활동들은 프로토콜에서 의해 결정된다. 어떤 메세지를 보낼 것인지, 형태를 결정하고 수신과 송신에 있어, 그리고 timeout 발생시에 어떻게 할 것인지에 대한 상황을 규정하는 것이 프로토콜이다.

→ 프로토콜은 인터넷 전체에 걸쳐 메세지의 형태와 송수신의 순서에 대한 행위를 결정하는 친구이다.

Network Edge

네트워크 엣지인 스마트폰이, 액세스 네트워크인 와이파이를 통해 접속, 네트워크 코어의 기능을 통해 네이버 서버까지 패킷이 전송되고 받을 수 있는 것이다.

  • network Edge

    네트워크의 가장 가장자리이고, 네트워크의 말단에 존재하는 여러 구성요소들이다. 이곳에 수많은 end system들이 존재한다. 여기서 end system은 host라고 생각하면 된다. host의 종류는 아래에 존재한다.

    • host : clients(서비스 요청) and servers(서비스 제공자) →역할의 구분
  • Access networks, physical media

    엑세스 네트워크는 네트워크에 접근하기 위한 네트워크이다. 즉 end system이 인터넷을 사용할 수 있도록 길을 열어주는 네트워크이다.

    스마트폰에서 와이파이에 접속(wireless communication links)하거나, PC에 랜선을 꼽는 것(wired)은 모두 액세스 네트워크에 접속하는 것과 동일하다.

    정리하자면, end system과 다른 end system 사이의 경로상에 있는 첫번째 라우터에 연결하는 네트워크들을 access network라고 한다.

    즉 KT와 SKT와 같은 ISP가 엑세스 네트워크를 제공한다.

    • Cable-based access

      • FDM(주파수 분할 다중화)에 의하여 다른 채널들이 다양한 주파수로 데이터가 전달되는 것이다. 여기서 splitter는 집의 안과 밖을 구분해주는 역할이다.

        데이터와 TV는 케이블을 통해 다양한 주파수로 전달된다. 그래서 텔레비전,인터넷, 전화 등의 신호를 섞어서 보낼 수 있는 것이다. 각각의 채널은 주파수가 다르기 때문이다.

      • HFC (Hybrid Fiber Coax) : 광섬유와 동축케이블을 혼합시킨 케이블 TV의 명칭이다. 되게 특이한게 비대칭적이다. 대역폭이 넓은 광케이블은 백본에 쓰고, 백본~가입자는 동축 케이블로 연결한다. 그래서 업로드는 약하고, 다운로드는 되게 큰 대역폭을 가지고 있다.

        네트워크의 케이블과, 광섬유(집에 연결된 것))은 ISP 라우터에 연결된다.

        집은 access network를 cable headend에 공유한다.

    • home networks

      • firewall : 보안과 관련한 기능을 하고, 비정상적인 신호를 걸러낸다.
      • NAT : IP주소를 할당받아 사용하게 된다. 현재 IP주소가 부족하기 때문에, 집 내에서는 임의의 IP주소를 할당해 안에서만 쓰게 만든다.
      • 집이 SK 텔레콤 같은 회사, ISP가 모든 기기에 인터넷을 사용할 수 있게 해 주는 것이다.
    • enterprise networks

      유선 무선 기술이 다양한 라우터와 함께 섞여 있다.

      이더넷 : 과거에는 유선 랜선이라고 불렸다. 이렇게 회사, 학교는 ‘이더넷’ 네트워크로 연결되어 있다. 현재 속도가 10Gbps 까지 성장하였다.

      와이파이 : 무선 연결이다.

    • data center networks

      규모가 큰 회사는 IP센터를 운영하는데, 그것이 바로 이것이다!

      고 대역폭의 링크가 연결되어 가지고 있다.(10s to 100s Gps) 그리고 백개에서 천개의 서버들이 연결되어 있다.

    • Wireless access networks

      • 무선 연결은 엔드시스템을 라우터로 연결하게 해 준다. 이 연결은 이동통신망의 기지국인 “access point”(AP)를 이용한다.
      • Wireless local area networks (WLANS) → 무선랜
        • 일반적으로 빌딩에 있다.
        • 802.11b/g/n(WIFI) 사용한다. 이더넷 표준임!
      • Wide-area cellular access networks (이동통신망의 LTE,5G)
        • 모바일, 셀룰러 네트워크 생성기에 의해 제공된다.
  • 어떻게 end system에 edge router(가장 먼저 연결되는 라우터)가 이어져 있을까?

    • residential access nets (집)
    • institutional access networks (school, company - 학교, 회사)
    • mobile access networks (WiFi, 4G, 5G) - 휴대폰

Network Core

네트워크 코어는 전체 네트워크 시스템의 중앙의 위치하여, 데이터를 전송하는 핵심적인 역할을 한다. 네트워크 코어는 수많은 라우터들이 그물처럼 얽혀있는 구조이다. (Mesh of interconnected routers) 직접 트래픽을 생성하지 않고, access network의 트래픽을 전달만 한다.

아래는 network core의 주요한 두 기능이다.

  • Forwarding(switching) ⇒local action

    라우터의 input으로 들어오는 패킷을 올바른 라우터의 output으로 보내는 기능을 한다. 즉 forwarding table을 읽어서 수행하는데 패킷이 어떤 output 포트로 나가야 하는지 결정하고, 이를 보내주는 역할을 한다. (라우터 끝에 달려 있는 line card가 각각 fowarding table을 가지고 있음)

  • Routing ⇒ global action

    패킷이 어디로 가야 할 지 판단하는 과정이다. Router는 routing algorithm을 통해 forwarding table을 생성하여 가지고 있다. routing algorithm을 통해 길을 열어주는 네비게이션 같은 역할이라고 생각하면 된다.

  • Packet switching

    패킷 교환은 송신 측에서 모든 메세지를 일정한 크기의 패킷으로 분해하여 전송하고 수신 측에서 이를 원래의 메세지로 조립한다.

    • store - and - forward

      라우터가 패킷을 온전히 다 수신하고 저장을 한 후, 다음 링크로 패킷을 내보내는 것이다.

      • 패킷 전송 지연 발생 (packet transmission delay) 만약 Source에서 R bits/sec(bps)의 속도의 링크로, L bits의 패킷을 전송한다면 패킷을 전송 완료하는데 걸리는 시간은 L/R초이다.
    • queueing (큐잉)

      • Packet queuing and loss 만약 도착비율이 빠져나가는 비율보다 정해진 시간에 더 클 경우 줄 서는 것과 동일하다. 패킷들이 전송을 기다리며 줄을 서기 때문에, 버퍼가 꽉 차면 새로 들어온 패킷이 유실될 수 있다.
    • Circuit switching

      패킷 교환에 반대되는 개념이다. 패킷 교환은 인터넷이라고 생각하고, 회션 교환을 전화기라고 생각하자.

      회선 교환 네트워크에서 end system 간에 통신을 제공하기 위해서 경로상에 필요한 자원은 통신 세션동안 예약되어 확보되는(allocated) 형식이다. (패킷 교환은 자원을 예약하지 않음)

      특징으로는 다른 링크를 절대 공유하지 않는다는 점이다. 할당된건 빌려주지 않는다. 그래서 헤더같은 정보 필요 없고 저장하고 보내는 것도 필요없고 순차적으로 데이터가 전송된다.

      옛날 휴대전화에서 많이 사용됨

      • 주파수 분할(FDM)과 사분할 다중화(TDM)

        이러한 circuit switching을 가능하게 하는 것은 두 가지 기법 덕분이다.

        주파수 분할 : 한 전송로의 대역폭을 여러 개의 작은 채널로 분할한다. 여러 단말기가 동시에 이용한다.

        사분할 다중화 : 전송로의 대역폭 하나를 시간 슬롯으로 나누어서 사용한다.

      • Packet switching vs circuit switching

        • How many users can use this network under circuit-switching and packet switching?

          circuit switching : 10 users

          packet switching : 35 users probability > 10 active at same time (10명 이상의 사용자가 사용하였을때 서비스가 다운될 확률이 0.0004밖에 안된다는 거임)

        • Is packet switching a “slam dunk winner”?

          • 집중적인 데이터의 전송에 강하다. (bursty data) 왜냐하면 resource를 공유하기도 하고, 예약이 필요하지 않아서 간단하기 때문이다.
          • 지나친 혼잡이 가능하다. 패킷 딜레이와 손실이 있을 수 있어서 프로토콜이 데이터의 전송과 혼잡에 대한 컨트롤을 할 줄 알아야 한다. (loss되면 재전송 한다거나...)
          • 어떻게 packet-switching이 circuit-like behavior 일 수 있을까?.. 복잡하지만, MPLS 같은 시스템은 프리미엄이라 큐 맨 앞에 있는거 없애버리고 들어올 수 있따. ㅋㅋ
  • Internet structure “network of networks”

    host들은 그들이 집에서 가입한 인터넷 서비스 회사의 ISP에 가입되어 있다.

    또한 ISP들은 다른 ISP들끼리 연결이 되어야 한다.

    여러개의 ISP가 존재하고, 그 ISP들을 잇는 IXP(Internet exchange point)가 있다. IXP는 다수의 트래픽을 처리해야 하기 때문에 단위 시간당 스위칭 용량이 크다.

    유난히 트래픽이 큰 access net들은 peering link를 통하여 특별히 제공을 한다. regional ISP는 한국에 존재하는 KT, SKT, LG, U+ 같은 것이다.

    가능한 CDN들은 바로 서비스를 제공할 때도 있다.

    “tier-1” commercial ISPs (Level3, Sprint, NTT) : national & international coverage

    content provider networks (Google, Facebook) : private network that connects its data centers to Internet, often by passing tier-1

Performance

  • How do packet delay and loss occur?

    • 패킷들이 라우터 버퍼에서 대기(queue) 중이기 때문에 loss가 발생한다. (패킷은 자기 차례가될 때까지 queue)
    • link할 패킷 도착률이 output link 용량을 일시적으로 초과하는 경우
    • 버퍼가 꽉 찼는데 패킷들이 새로 들어오면 drop됨 (loss)
    • buffer가 필요 없는 경우
      • 들어오는 속도보다 나가는 속도가 더 클 때
      • 항상 들어오는 속도가 나가는 속도보다 클 때 (buffer에 무한정 쌓이고 뒤 늦게 들어온건 버려지므로 buffer가 필요없다.)
    • queueing delay 및 전송할 때 발생하는 transmission delay가 있다.
  • Packet delay : four sources

    d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)

    • d(proc) : nodal processing
      • 비트 에러를 체크한다.
      • output 링크를 결정한다. (forward table 참고하여 결정하는 것)
      • 처리하는 시간이며, 우선순위등에 의해 지연된다.
      • 라우터 안에서 일어나며, msec 이하의 매우 적은 시간이 걸린다.
    • d(queue) : queueing delay
      • 큐에 들어와서 나갈때까지의 시간을 말한다. line card의 혼잡도에 따라 결정된다.
      • output 링크로 나가는 전송 시간을 기다린다.
    • d(trans) : transmission delay
      • 밀어넣기 시간이다. (전송하는 데 걸리는 시간)
      • L/R (L : packet length , R : link transmission rate)
    • d(prop) : propagation delay
      • d/s (d: 물리적 링크의 길이 , s : propagation speed )
      • 전송 거리에 따른 지연 시간을 의미한다.

transmission delay와 propagation delay는 엄연히 다르다.

transmission delay는 output link에서 push 하여 packet을 밖으로 내보내는 데 걸리는 시간이고 (물을 퍼나르는 시간) propagation delay는 나간 packet은 media physical을 타고 next hop에 도착할 때까지의 시간이다. (물이 시냇물을 따라 흘러가는 시간)

  • Caravan analogy

Q. 위의 차 10대가 있다. 100km/h로 운행된다. toll booth(요금소)에서 정산할 때 12sec가 걸린다면 10개의 자동차가 2번째 toll booth에 세워질려면 얼마나 걸릴까?

A. toll gate의 총 10개의 차량이 거치니깐 12sec * 10 =120sec, 그리고 자동차가 propagate하는 100km/100km/h=60min

⇒ 2min(transmission delay)+60min(propagation delay) = 62min

Q. 위의 예에서 만약 자동차의 속도가 1000km/h라고 하고 toll booth에서 자동차 요금 정산시간이 1min이라고 한다면, 첫번째 booth에서 모든 자동차가 서비스 받기 전 몇 개의 자동차들이 2번째 booth에 도착할 수 있을까?

A. 도착할 수 있다. 첫번째 자동차는 Second booth에 도착할 때 6min+1min=7min이 걸린다. 이때 10대중 7대는 이미 떠났고 3대는 남아 있다. 즉 이 예에서 말하고 싶은거는 빠져나가는 속도가 매우 빨라서, 모든 packet의 bit가 1st를 나가기 전에 일부 bit가 2nd 라우터에 이미 도착해서 처리될 수 있다는 것이다. 즉 2nd라우터에서 쌓여서 queueing 현상을 일으키지 않는다.

  • Packet queueing delay (revisited)
    • (La)/R(L * a) / R

      값이 커질수록 유입량이 더 많다. (La는 라우터로 들어오는 패킷 속도, R은 라우터에서 나가는 패킷 속도)

traffic intensity에 따른 average queueing delay 값이다.

La/R ~ 0 : avg.queueing delay가 작다.

La/R →1 : avg. queueing delay가 크다.

La/R >1 : delay가 무한하다. 도착하는 일이너무커요 ㅠㅠㅠ 라우터가 일을 더 많이 해야 하고, 들어오는 bit를 모두 handling 하기가 어렵다.

  • 실제로 인터넷에서는 delay와 loss가 어떻게 보일까?

여기서 traceoute program은 source로부터 router까지 end-end 인터넷 경로를 따라 목적지로 가는 동안에 delay를 측정한다.

  1. 모든 라우터에서 각각 경로상 다음 라우터에게 3개의 packet들을 보낸다.
  2. 다음 라우터는 이전의 보낸 라우터에게 packet들을 리턴한다.
  3. 이전의 보낸 라우터는 transmission and reply(전송과 응답 사이) 간격을 측정한다. (delay 측정)

만약 7홉에서 8홉 사이처럼 급격하게 지연시간이 커졌다면, 이는 물리적 요인이 존재한다. ( 대서양 건넘)이다.

  • Packet loss

    어디에서 loss가 발생하였고? 왜 loss가 발생하였나?

    • 큐 용량이 유한하여서 버퍼에 추가적으로 들어오는 것은 버린다. 그래서 packet loss가 발생한다.
    • 사라진 패킷은 다시 전의 노드에 의해서 전송이 된다. 근데 항상 그런 것은 아니다.
  • Throughput (처리율)

    처리율은 (throughput) sender와 receiver 사이에 전달되는 bit의 rate(bits/time unit)이다. 처리율은 아래 두 가지로 측정될 수 있다.

    오랜시간동안의 측정된것은 average rate라 한다.

    • Instantaneous rate : 짧은 시간동안 측정된 처리율(딱 그 시간 동안)

    • average rate : 오랜 시간동안 측정된 처리율 (긴 시간 동안)

      위처럼 들어오는 Rate가 나가는 Rate보다 작다면 처리되는 average throughput은 Ra일 것이다.

      반대로 들어노는게 Rate가 나가는 것보다 크면 Bottleneck link 때문에 똑같이 average throughput은 Rc일 것이다.

      총 10개가 연결된 친구들이 한 척추(backbone)에 공유된다고 가정하자.

      Rs, Rc는 자주 병목 현상이 일어난다. 그럼 이때 다양한 Rs, 다양한 Rc를 하나의 대역폭 R의 Capacity를 10개가 가져갑니다.

      → throughput은 이 값들의 제일 최소값이 되게 된다.(Rc, Rs, R/10중 가장 작은 것) 그래서 R/10을 10쌍이 공유하는 것이며, 가장 작은 bit로 해야 원활하게 데이터가 흘러갈 것이다.

Security

인터넷은 본래 엄청나게 보안을 지키기 위해서 만들어진 것이 아니다.

  • Bad guys : packet interception

    • packet “sniffing”(엿보기) → 네트워크 상에서 다른 사람들의 패킷 교환을 엿보는 것이라고 한다. 이는 broadcast media에서 일어나며, 공유된 이더넷과 무선 통신을 통해서 일어난다.

      B가 A로 메세지를 보내는 것인지, C도 엿보고 있는 것이다. 패스워드와 프로토콜 정보 같은 모든 패킷을 엿볼 수 있는 것이라 좋지 않은 것이다.

      broadcast media

  • Bad guys : fake identity

    • IP spoofing 잘못된 소스 주소를 집어넣는다.
  • Bad guys : denial of service

    • Denial of Service (Dos) 공격자들은 불법적인 대역폭이나 서버를 생성한다. 그리고 타겟을 설정하고, 네트워크에 개 많은 호스트들을 보낸다. 너무 많은 트래픽으로 감당못하게 만드는 것이지.
  • Lines of defense (방어 방법)

    • authentication (인증) : 내가 누구인지 직접 증명해야 한다.
      • 셀룰러 네트워크는 SIM 카드를 활용하여 자신인것을 증명할 수 있다. SIM에는 가입자의 핵심 정보가 들어가 있기 때문이다.
    • confidentiality : via encryption
    • integrity checks : digital signatures prevent / detect tampering
    • access restrictions : password - protected VPNs (가상 사설망 - 허가받은 이만 접근 가능하다)
    • firewalls

Protocol layers, service models

위에서 보았듯이 인터넷은 굉장히 복잡한 형태를 가지고 있다. 그래서 여러가지로 나누어서 분석한 것이다. 우리가 해외여행을 할 때 그 과정을 세세히 나누어서 이야기하는 것과 같이, 인터넷을 여러 계층으로 레이어링 하여서 설명하는 것은 매우 유익하다.

  • Why layering?
    • 레이어를 나누어 분석하면 그들의 정체성과 관계에 대해서 더욱 잘 알 수 있다. (reference model)
      • 인터넷 서비스 제공을 구현하기 위해서 아래 계층의 구현과 기능이 필수적으로 이용된다.
    • 유지와 시스템 업데이트에 용이하다.
      • 각 레이어의 인터페이스 구현 방법을 바꾼 것이 아니라면 레이어 자체의 구현 방법을 바꾸어도 다른 레이어에 영향을 끼치지 않는다.

        → 결론적으로 신기술, 알고리즘을 계층에 새롭게 적용하여도, 인터페이스를 안전하게 변경 가능하다.

  • Layered Internet protocol stack
    • application : 네트워크 애플리케이션을 서포팅한다. 이 application 층을 이용하여, Web, SNS, email이 돌아가는 것이다.
      • HTTP(Web), IMAP(이메일 수신), SMTP(이메일 송신), DNS(도메인 이름 IP주소로 바꾸어 준다.)
    • transport : 데이터를 실제로 전송하는 담당자이다. 데이터를 안전히 잘 전달하겠지라는 마음 하에 운영된다.
      • TCP, UDP
    • network : 데이터그램을 목적지까지 라우팅하는 역할을 한다. (네트워크 계층의 전송 단위 packet이 바로 데이터그램임)
      • IP, routing protocols
    • link : 네트워크 요소들 간에 연결해주는 역할을 한다. (네트워크 요소 안에서 수행하는 것)
      • Ethernet, 802.11(WiFi), PPP
    • physical : 물리적인 경로를 제공하는 친구이다.
  • Services, Layering and Encpasulation data가 지나치게 크면 M의 단위로 잘라서 transport 계층에 전달한다. M을 data로 인식하고, transport 계층에서 encapsulate가 진행되어 앞에 control 정보인 Ht를 붙이는 것이다. 이것이 바로 transport 계층의 전송 segment이다. (TCP이용) transport 계층 입장에서는 Ht + M 이 자체가 하나의 데이터인 것이다. 그래서 network 계층으로 넘어갔을 때, Hn 하나가 더 붙어서 가는 것이다. 그래서 datagram이 형성되는 것이다.
이제 Hl이 최종적으로 붙으면서 link-layer, 즉 대표적인 이더넷 데이터 형태로 탈바꿈한다. 그리고 이제 물리층을 통해서 데이터가 전송되는 것이다.

이처럼 각 레이어는 아래의 영향이 없으면 위에 레이어가 동작할 수 없는 형식으로 서로 긴밀히 이루어져 있으며 복잡한 인터넷의 양상을 설명하게 해 주는 하나의 도구이다.

좋은 웹페이지 즐겨찾기