업데이트:

태그: ,

카테고리:

Ref : 컴퓨터 네트워크 - 하향식 접근

1.1 what is internet

  • Internet : 전세계를 넘어 수많은 computing device를 이어주는 computer network
    • 전통적인 computing device는 데스크탑이지만, 현재는 스마트폰, 태블릿, 티비 등 많은 기기들을 의미한다.
    • 이러한 computing device는 computer network에 연결되어있다.
    • Internet용어로 이런 computing device들을 hosts 또는 end system이라고 부른다.



1.1.1 bolt-nuts description

### communication links와 packet switch

  • 이러한 End system(host)들은 communication linkspacket switches로 연결되어있다.
    • communication links는 구리선, 광섬유, 라디오 주파수 등의 다양한 형태를 가진다.
      • 각각의 형태는 각각 다른 transmission rate(bit/second)를 가진다.
      • 하나의 End system이 다른 End system에 data를 전송하고 싶을때, 송신자는 data를 segment로 나누어 부분별로 header를 추가하게된다.
        • 이렇게 만들어진 정보는 computer network 용어상으로 packet이라고 불린다.
        • 수신하는 end system에서는 그 패킷들을 재조합하게된다.
    • packet switchincoming communication links로부터 packet을 전달받아서 outgoing communication links로 포워딩을 하게된다.
      • packet switch는 다양한 형태를 가지고 있으나, 오늘날에는 크게 routerlink-layer switch가 주요한 형태이다.
        • 두 가지 타입 모두 packet을 전달받아서 목적지에 포워딩한다.
          • link-layer switchaccess network에서 일반적으로 사용된다.
          • routernetwork core에서 사용된다.
        • route, path communication links와 packet switch들이 sending end system에서 receiving end system으로 packet을 전달하는 일련의 순서

          ISP

  • End system은 ISP(Internet Service Providers)을 통해 Internet에 접속한다.
    • 대학 ISP, 기업 ISP, 지역 케이블, 다양한 장소에서 WIFI를 제공하는 ISP들, celluar data를 제공하는 통신사들 등등..
    • 각각의 packet switch와 communication links를 가지고 있다.
    • end system들에게 Internet access를 제공한다.
      • cable modem, DSL, 고속 지역 네트워크 접속, 모바일 무선 접속, 서버들이 Internet에 바로 접속하게 하는 등


### Protocol

  • protocol은 End system, packet switch, 그리고 internet의 다른 부분들이 Internet에서 정보를 주고받는 것을 규약한다.
    • TCP(transmission control protocol)IP(internet protocol)이 인터넷에서 가장 중요한 2개의 protocol이다.
      • IP protocol은 router와 end system에서 주고받는 packet의 format을 명시한다.
      • TCP/IP protocol Internet의 주요한 프로토콜들을 묶어서 부르는 말


    • protocol이 internet에서 중요한 이유에 대해서 알아보자.
      • 사람들이 시스템을 만들고, 상호 운용하기 위해서 모든 사람들이 각각의 protocol들이 무엇을 하는지 동의하는건 중요하다.
      • 그래서 표준이 만들어졌다.
      • Internet standardsInternet Engineering Task Force(IETF)에 의해서 개발되었다.
      • IETF standardsRFCS(requests for comments)라고도 불린다.
        • TCP, IP, HTTP, SMTP protocol을 정의했다.
        • 7000개 이상의 RFCS가 존재한다.
      • IEEE 802 LAN/MAN Standars Committee는 이더넷과 와이파이 기준을 명시했다.



1.1.2 Service Description

  • 위 처럼 Internet을 구성하는 요소들로 설명하지 않고, application에 서비스를 제공하는 기반시설의 입장에서 설명할수도 있다.
    • 데이터를 서로 교환하는 end system에서 작동하는 application들은 distributed application이라고도 불린다.
    • end system에서 작동하는 internet application들은 network core의 packet switch에서 작동하지 않는다.
    • packet switch들이 end system 간의 데이터 교환을 용이하게하나, application에는 관심이 없고, packet switch는 data의 source나 sink에만 관심이 있다.
  • 하나의 end system에서 작동하는 프로그램이 다른 end system에서 작동하는 다른 프로그램에 data가 전달되도록 어떻게 지시할까?
    • socket interface Internet에 연결된 End system이 제공한다.
      • socekt interface는 어떻게 하나의 end system에서 구동하는 프로그램이 Internet 기반 시설에 다른 end system에서 구동중인 특정한 프로그램에 데이터를 전달하도록 요청하는지 명시한다.



1.1.3 Protocol

  • 모든 internet 의 행동은 protocol에 의해 통제되는 2개 이상의 객체를 포함한다.
    • hardware-implemented protocol은 물리적으로 연결된 컴퓨터간 bit의 흐름을 제어한다.
    • congestion-control protocol은 수신자와 송신자 사이에 packet의 비율을 통제한다.
    • router protocol은 packet이 어디로 향해야하는지를 결정한다.
    • WEB server에 요청할때 일어나는 일
      • URL을 브라우저에 입력한다.
      • client는 Web server에 request message를 보내고 답장을 기다린다.
      • Web server가 request를 받아서 답장을 보낸다.
      • client는 이제 어떤 Web page을 얻고싶은지 GET message를 보낸다.
      • Web server는 해당 메세지를 되돌려준다.



1.2 Network Edge

  • 네트워크 용어로 computer와 server들을 end system이라고 부른다.
    • 그 이유는 internet의 edge에 있기 때문이다.
  • 이 end system들은 host라고도 불린다.
    • 왜냐하면 이 end system들은 각각 Web browser, Web server, e-mail client, e-mail server application들을 host할 수 있기 때문이다.



1.2.1 Access Networks

  • 지금까지 network edge에 있는 application과 end system들을 고려했는데, 이제 access network에 대해 알아보자.
    • access network란 end system을 첫번째 router(edge router)에 물리적으로 연결하는 네트워크를 의미한다.
  • LAN(local area network) 는 end system과 edge router를 연결하는데에 사용된다.
    • 기업, 대학, 집에서 주로 사용된다.
    • LAN 기술은 정말 많지만, Ethernet은 기업, 대학 집 네트워크에서 많이 사용된다.
      • Ethernet user는 Ethernet switch에 연결하기위해 2가닥의 구리선을 사용한다.
      • Ethernet switch는 institutional router에 연결되어 ISP에 연결된다.
  • WLAN(IEEE 802.11)도 굉장히 증가했는데, wireless 유저는 통신사의 유선인터넷에 연결된 access point로부터 packet을 주고받는다.



1.2.2 physical media

  • HFC는 fiber cable과 coaxial cable을 사용하고, DSL과 Ethernet은 구리선을 사용한다.
    • 모바일 접속은 전파 스펙트럼(radio spectrum)을 사용한다.
  • physical medium에 대해 정의하기 전에, bit가 network에서 어떤 삶을 사는지 알아야한다.
    • 각 bit는 end system으로부터 시작해 수많은 links와 router를 통해 다른 end system으로 이동한다.
    • 각 bit가 source로부터 destination으로 갈때 일련의 transmitter-receiver 쌍을 지나가는데,
      • 각각의 쌍에서 bit은 전파나 광펄스를 사용해 physical medium을 지나가게된다.
        • guided media : 광섬유, 구리선, coaxial cable등의 단단한 medium
        • unguided media : 전파가 주변에 모두 퍼진다, WLAN, digital satelite channel



1.3 Network Core

  • Internet의 end system들을 연결하는 packet switch와 links의 그물망을 의미.



1.3.1 Packet Switching

  • network application에서 end system들은 message들을 주고받게된다.
  • 이런 message들은 packet이라고 불리는 작은 조각들로 나뉘어져 전달되게된다.
  • 각 packet들은 communication linkspacket switches(routers, link-layer switches)를 지나가게된다.
    • packet들은 각 communication link의 최대 transmission rate의 속도로 전달된다.
    • 만약 packet switch가 L bits를 보내고, transmission rate는 R bits/sec이라면, packet의 전송속도는 L/R seconds이다.


### store-and-forward transmission

  • store-and-forward transmission : 많은 packet switch들은 link의 입력에 대해 이 방식을 사용한다.
    • output link에 첫 packet의 bit를 전달하기 전에 반드시 전체 pacekt을 받아야한다는 것을 의미.
    • 예시로 source-router-destination을 생각해보자.

        1. source는 0초에 전송을 시작한다.
        2. L/R 초에 source는 전체 패킷을 전달한다. 그리고 전체 packet은 router에 저장된다.(전송지연 무시(communication links에서 발생하는 지연시간))
        3. L/R초에 router는 destination에 packet 전송을 시작한다.
        4. 2L/R초에 router가 전체 packet을 전달완료한다.
    • 동일하게, 3개의 패킷을 전달힐떼. 첫번째 패킷을 전달하기 시작한 시간으로부터 desination에서 마지막 패킷을 받기까지 얼마나 시간이 지났을지 생각해보자.
        1. router가 L/R 시간에 첫 패킷을 destination에 전송을 시작한다.
        2. L/R시간에 source는 두번째 패킷을 전송하기 시작한다.
        3. 2L/R시간에 destination은 첫 패킷을 다 받았고, router는 두번째 패킷의 전송을 시작한다.
        4. 3L/R시간에 destination은 두번째 패킷을 다 받았고, router는 세번째 패킷의 전송을 시작한다.
        5. 결국, 4L/R시간에 destination은 세개의 패킷을 모두 받는다.
    • dend-to-end : N개의 링크가 있는 source로부터 destination까지 1개의 패킷이 전달되는 시간
      • N * R(전송속도) * L


### Queuing Delays and Packet Loss

  • 각 packet switch는 일반적으로 다수의 link로 연결되어 있다.
  • 각 link에 대해 packet switch는 output buffer(output queue)라고하는 link로 전달하기 전에 packet들을 보관하는 장소가 있다.
  • output buffer는 packet switching에서 중요한 역할을 하며, packet switch가 다른 link에 packet을 전송중이라 바쁠때, 막 도착한 packet들은 여기서 전송을 대기한다.
    • 따라서 store-and-forward delay에 더해서 packet들은 queuing delay라는 걸 겪게된다.
    • queuing delay는 네트워크의 혼잡도에 따라 다르다.
  • 만약 이때, output buffer가 꽉 찬 상태라면, packet loss가 일어나서 전송 대기중인 packet 또는 지금 막 도착한 packet은 버려지게된다.


### Forwarding Tables and Routing Protocols

  • router가 packet을 어떤 link로 보내는지 결정한다.
  • 이런 Packet Forwarding은 컴퓨터 네트워크에 따라 다르지만, Internet에서 어떻게 작동하는지 알아보자.
    • 인터넷에서 모든 end system 은 IP address라는 주소를 가지고 있다.
    • source end system이 destination의 end system에게 packet을 전송하고 싶다면
      • source는 packet의 헤더에 destination의 IP address을 포함해야한다.
      • 이 주소는 계층적 구조를 띄고 있다.
        • packet이 network에서 router에 도달하면, router는 packet의 destination address의 일부를 분석하고 packet을 adjacent router로 보내게된다.
        • 특히, 각 router는 routing table이라는 destination address를 router의 outbound link로 매핑하는 테이블을 가지고 있다.
        • 만약 packet이 router에 도달하면 적절한 outbound link를 찾기위해 router는 주소를 분석하고 destination 주소를 이용해서 forwarding table에서 찾는다.
  • 인터넷은 forwarding table을 자동으로 설정하는 routing protocol을 가지고 있는데, router의 forwarding table을 설정하기위해서 각 router와 각 destination에서 가장 빠른 경로를 찾는다.


### Circuit Switching

  • 지금까지 packet switching에 대해서만 알아봤는데, switch들과 links에서 데이터를 옮기는 방법은 Circuit Switching이라는 것도 있다.
    • circuit switching 네트워크에서는 end system 사이에서 통신에 필요한 자원(buffer, link tranmission rate)는 communication session 동안 예약되어 있다.
      • packet switching 네트워크에서는 이러한 자원은 예약되어있지 않고, 필요할때마다 사용한다.
    • 전통적인 전화 네트워크가 circuit switched 네트워크의 대표적인 예시이다.
  • 4개의 circuit switch로 4개의 link가 연결된 네트워크 예시
    • 이 4개의 link는 4개의 동시적인 접속을 허용할 수 있다.
    • end system들은 각각 이 switch들 중 하나에 직접적으로 연결되어있다.
    • 그러므로 만약 A가 B와 통신하고싶다면, 네트워크는 반드시 2개의 링크에 circuit을 하나씩 예약해야한다.
      • 파란선이 circuit을 의미하며, circuit이 4개씩 예약되어 있는 것을 볼 수 있다.
    • packet switching과는 다르게, delay을 겪지 않는다는 장점이 있다.


### Multiplexing in Circuit-Switched Networks

  • link의 ciruit은 frequency-division mulitplexing(FDM)또는 time-division multiplexing(TDM)을 하게된다.
  • FDM
    • 스크린샷 2022-08-07 오전 1 57 12
    • FDM은 link로 만들어진 연결을 주파수 스펙트럼으로 나누게된다.
    • 연결되어있는 동안 link는 해당 주파수만을 위해 작동하게된다.
    • band의 너비를 bandwidth라고한다.
  • TDM
    • 스크린샷 2022-08-07 오전 1 59 13
    • TDM은 시간을 고정된 길이로 나누어서 숫자를 매겨 time slot을 만든다.
    • 각 슬롯은 하나의 connection만을 위해 사용된다.
  • silent periods
    • TDM이든, FDM이든 모두 고정된 link가 하나의 connection만을 위해 작동하기에, 사용되지 않는 동안은 idle상태가 되어 버려지게된다.


### packet switching vs circuit switching

  • packet switching은 end-to-end delay를 예측할 수 없기에 실시간 서비스에 적합하지 않다.
  • circuit switching은 packet switching보다 전송 용량을 효율적으로 사용하지 못하며, 모든 link에 대해 circuit을 구성해야하기에 연결이 복잡하다.
  • 최근 트렌드는 packet switching으로 기울고있다.



1.3.3 A Network of Networks

  • end system들은 access ISP를 통해 인터넷에 연결되어있다.
  • 이 access ISP는 DSL, cable, FTTH, Wi-Fi, cellular 등의 유선, 무선 연결을 지원한다.
  • 이 access ISP는 통신사만을 의미하는게 아닌, 대학, 기업이 될수도 있다.
  • 하지만 end-user와 content-provider를 access ISP에 연결하는 것은 인터넷을 구성하는 수백만개의 end system을 연결하는 조그마한 부분이다.
  • 이 따라서, access ISP는 그들 스스로 연결되어있어야하는데 이를 network of networks이다.


  • 수십년간, 인터넷을 구성하는 network of networks는 굉장히 복잡한 구조로 진화되어왔다.
  • 이 진화는 경제학, 정책 등에 의해 이루어진 것이다.
  • 오늘날의 네트워크 구조를 이해하기위해선, 점진적으로 일련의 네트워크 구조를 만들어야한다.
  • access ISP를 연결해 end system들이 packet을 주고받고 하는것이 주 목표이다.
  • 한가지 단순한 접근방법은 각 access ISP를 다른 access ISP들과 직접적으로 모두 연결하는 것이다.
  • 물론 이런 방법은 비용이 엄청날 것이다.


Network Structure 1

  • 모든 access ISP들을 하나의 global transit ISP에 연결한다.
  • global transit ISP는 지구에 걸쳐 있을뿐만 아니라, 주변에 있는 access ISP들과 연결된 적어도 1개의 router를 가진 router와 communication links의 network이다.
  • global transit ISP를 구성하는 것은 매우 비싸기에, global ISP에서 사용하는 access ISP의 트래픽만큼의 비용을 청구할 것이다.
  • access ISP는 비용을 지불하므로 customer가 될 것이고,
  • global transi ISP는 provider가 될 것이다.


Network Structure 2

  • 만약 몇몇 회사가 global transit ISP를 수익적으로 운영한다면, 다른 회사들도 이를 구축하려 들 것이다.
  • 이는 다수의 access ISP와 복수의 global transit ISP로 구성된 network structure 2로 이어지게된다.(network structure 1은 global transit isp가 1개)
  • access ISP들은 global transit provider가 제공하는 서비스들 중에서 선택할 수 있기에 이를 더 선호할 것이다.
  • 하지만, 여기서 global transit ISP들은 서로 연결되어있어야만하는데, A라는 global transit ISP에 연결된 access ISP는 B라는 global transit ISP에 연결된 access ISP와 연결될 수 있어야하기 때문이다.

  • network structre 2는 계층적 구조를 띄는데, 상위티어에 global transit provider를, 하위티어에 access ISP를 둔다.
  • 현실에서, 모든 ISP가 각각의 모든 도시에 존재하지는 않기에, 지역이 주어지면 해당 지역의 access ISP가 연결되는 regional ISP가 존재할 수 있다.
  • 각각의 regional ISP는 상위의 ISP(global transit provider)에 연결된다.
  • 1티어 ISP에는 AT&T, Sprint, NTT가 있다.


Network Structure 3

  • 현실에 더 가깝게 네트워크를 구성하기 위해선, points of presence(PoPs) multi-homming, peering, 그리고 internet exchange points(IXPS)를 추가해야한다.
  • PoPs는 ISP가 있는 최하위 티어를 제외한 모든 계층에 존재할 수 있다.
  • PoP는 소비자 ISP가 공급자 ISP에 연결할 수 있는 공급자 네트워크의 하나 이상의 라우터의 그룹이다.
  • multi-home
    • 1티어 ISP를 제외한 어떤 ISP도 multi-home을 선택할 수 있는데, 2개 이상의 공급자 ISP와 연결하는 것이다.
      • 간단히 말해, access ISP가 2개의 regional ISP와 연결하는 것을, 혹은 2개의 regional ISP가 1티어 ISP와 연결하는 것을 의미한ㄷ.
      • 비슷하게, resional ISP는 복수의 1티어 ISP와 multi-home을 구축할 수 있다.
    • multi-home ISP일때, 1개의 공급자가 실패하더라도 패킷을 주고받을 수 있다.
  • peering
    • 소비자 ISP가 공급자 ISP에게 지불하는 비용은 공급자와 교환하는 트래픽의 양을 반영한다.
    • 이 비용을 줄이기 위해 근접한 동일 계층의 ISP들이 peer를 할 수 있다.
      • 이에따라, 그들 사이의 모든 트래픽이 업스트림 중개자를 통하지 않고 직접통과하도록 할 수 있다.
    • 2개의 ISP가 peer를하면, 어느 ISP도 다른쪽에 비용을 지불하지 않는다.
  • IXP
    • 같은 맥락으로, 3자 기업이 IXP를 구축할 수 있다.
    • 이는 복수의 ISP들이 peer를 구성할 수 있는 meeting point이다.
    • 하나의 IXP는 일반적으로 자신만의 switch들을 가진 독자적인 건물이다.
    • 오늘날 400개 이상의 IXP들이 있다.
    • access ISP, regional ISP, tier-1 ISP, PoP, multi-homming, peering, IXP를 가진 생태계를 Network Structure 4라고한다.


Network Structre 5

  • 오늘날의 인터넷을 묘사한다.
  • 스크린샷 2022-08-07 오전 3 50 02
  • 5는 4에다가 conetent-provider network를 얹은 형태이다.(CDN)
  • google이 대표적인 컨텐츠 생산 네트워크의 예시이다.
    • 구글은 전세계의 50~100개의 분산된 데이터센터를 가지고 있다.
    • 이 데이터 센터 하우스의 몇몇은 다른 데이터센터와는 달리 엄청 많은 서버를 가지고있다.
    • 구글 데이터 센터는 구글의 사설 TCP/IP 네트워크에 연결되어 있다.
    • 이 네트워크는 전세계에 걸쳐있지만, 공용 인터넷과는 달리 구글 서버의 트래픽만을 옮긴다는 것이다.
    • Google 사설 네트워크는 하위 계층 ISP와 직접 연결하거나 IXP에서 ISP와 연결하여 상위 계층을 “무료 결제”함으로써 인터넷의 상위 계층을 “우회”하려고 시도한다.
    • 그러나 여전히 계층 1 네트워크를 통해서만 많은 액세스 ISP에 도달할 수 있기 때문에 Google 네트워크는 계층 1 ISP에도 연결하고 교환하는 트래픽에 대해 해당 ISP에 지불한다.
  • 자신만의 네트워크를 구성함으로써, content provider는 상위 티어 ISP에 대한 비용지불을 줄일뿐만 아니라 end user에게 제공되는 서비스를 완전히 컨트롤할 수 있다.



1.4 Delay, Loss and Throughput in Packet Switched Networks

  • 인터넷은 end system에서 실행되는 어플리케이션들에게 서비스를 제공하는 기반시설로 보여질 수 있다고 했다.
  • 이에따라 인터넷이 어떤 데이터 손실도 없이 end system간 최대한 많은 데이터를 옮길 수 있다고 생각할수도 있으나, 현실적으로 이는 불가능하다.
  • 컴퓨터 네트워크는 필수적으로 전송량을 제약하며, end system간 delay가 존재하고, packet loss가 발생할 수 있다.
  • 이런 현실의 물리적 법칙에따라 지연, 손실, 처리량 제약은 이런 컴퓨터 네트워크에서 이런 문제를 해결하는 많은 방법들을 만들게되었다.


1.4.1 Overview of Delay in Packet-Switched Networks

  • 패킷은 host로부터 시작해 router를 지나 다른 host에 도달하게된다.
  • 패킷이 node(host or router)에서 시작해 인접한 다른 노드를 따라 이동하면서 패킷은 몇몇 타입의 지연을 겪게된다.
  • 이런 지연의 종류로는 nodal processing delay, queuing delay, transmission delay, propagation delay가 있다.
  • 결국 지연이 모두 축적된건 total nodal delay가 되게된다.


types of delay

  • 스크린샷 2022-08-07 오전 5 22 47
  • 패킷이 router A에 도착한 상태에서 router B로 간다고 생각해보자.
  • router A에는 B로 향하는 outbound link를 가지고 있다.
  • 이 링크는 queue(buffer)에 의해 진행되며, A에 도착한 패킷은 A가 패킷의 헤더를 분석해 적절한 outbound link를 찾게되고, 이 패킷을 해당 link로 보내게된다.
  • 이 예시에서 outbound link는 B이다.
  • A에서 그 패킷은 다른 패킷의 전송이 완료되었을때만 가능하고, A에 도착한 패킷은 A가 전송중이 아니거나, queue에 다른 패킷이 없을때만 바로 전송할 수 있다.


1. Processing Delay

  • 패킷의 헤더를 분석하고, 패킷의 방향을 정하는데에 걸리는 시간
  • 또한 위의 경우에서 상위 노드에서 A로 패킷이 전송되면서 발생할 수 있는 bit-level의 오류를 확인하는데에 걸리는 시간
  • 이런 processing delay는 마이크로 초보다 적게 걸리며 이 처리 이후에는 router B로 패킷의 방향을 정하고 queue에 넣게된다.
  • Chapter4에서 더 자세하게 다룬다.

2. Queuing Delay

  • Queuing Delay의 시간은 먼저 도착해 queue에 존재하는 패킷의 양에따라 다르다.
  • 큐가 비어있고, 아무런 패킷도 전송중이 아니라면 Queuing Delay는 0초이다.
  • 만약 트래픽이 많고, 많은 패킷이 Queue된 상태라면 더욱 오래걸리게된다.
  • Queuing Delay는 마이크로초에서 밀리초 단위로 걸린다.

3. Transmission Delay

  • 패킷이 선입선출 방식으로 전송된다는 것을 생각할때, 지금 막 도착한 패킷은 먼저 도착한 패킷들이 모두 전송되어야 전송될 수 있다.
  • L bit길이의 패킷이있고, A에서 B로 향하는 속도가 R bits/sec일때,
    • Transmission Delay는 L/R이다.
  • 일반적으로 마이크로초에서 밀리초 단위로 걸린다.

4. Propagation Delay

  • bit 하나가 link로 넣어지면 router B로 전파되게된다.
  • link의 시작점으로부터 router B로 전파되는 시간을 의미한다.
  • 전파 속도는 어떤 물리적 매체의 link인지에 따라 다르고, 2108meters/sec ~ 3108meters/sec의 범위에 있다.
  • Propagation Delay는 따라서 A에서 B까지의 물리적 거리를 전파속도로 나눈 값이 된다.


Transmission Delay와 Propagation Delay의 차이

  • 처음 공부할때 어려울 부분일수도 있다, 한국어로는 전송지연과 전파지연.
  • 전송지연은 말그대로 전송하는데에 발생하는 지연을 의미하며, 패킷의 길이와만 관련이 있고, 실제 라우터 사이의 길이는 관계가 없다.
  • 전파지연은 반대로 라우터 간 물리적 거리와만 관련이 있다.


Total nodal delay

  • dproc, dqueue, dtrans dprop을 각각 processing delay, queuing delay, transmission delay, propagation delay라고 할때,
  • dnodal(total nodal delay) = dproc + dqueue + dtrans + dprop이 된다.


Queuing Delay and Packet Loss

  • nodal delay에서 가장 중요하고 흥미로운 요소는 dqueue이다.
    • 많은 연구들이 컴퓨터 네트워킹에서 이 요소를 다루었다.
    • 다른 지연과는 다르게 queuing delay는 패킷마다 다를 수 있다.
      • 예를들어, 10개의 패킷이 비어있는 큐에 동시에 도착했을때, 첫번째 패킷은 queuing 딜레이를 겪지 않지만, 마지막 패킷은 첫 패킷에 비해 큰 지연을 겪게된다.
      • 그러므로, queuing delay을 특징지을때, 보통은 통계적 수치를 사용하게된다.
  • queuing delay가 클때랑, 작을때는 언제가 있을까?
    • 큐에서의 트래픽, 링크의 전송속도, 트래픽이 주기적인지 몰리는지에 따라 다르다.
    • a를 초당 도착하는 평균적인 패킷의 수, R을 전송속도, L이 패킷의 크기(bit단위)라고할때,
      • La = 큐에 도달한 평균적인 bit의 수
      • La / R = traffic intensity 라고한다.
    • traffic intensity가 1보다 크면 큐가 계속 증가하면서 queuing delay는 무한대로 증가한다.
      • 따라서 traffic engineering의 목표는 traffic intensity를 1보다 작게하는 것이다.
    • 1보다 작거나 같다고 생각할때, 이제 트래픽이 주기적으로 인지, 몰리는지가 중요하다.
      • 트래픽이 주기적일때
        • 모든 패킷이 L/R 시간에 도착한다면 모든 패킷은 빈 큐에 도달해 queuing delay가 없게된다.
      • 주기적으로 몰릴때
        • N개의 패킷이 몰리면 맨 처음 패킷은 queuing delay가 없지만, 두번째 패킷부터 L/R초의 queuing delay을 겪게되면서 마지막 패킷은 (n-1)L/R의 queuing delay를 겪게된다.
    • traffic intensity를 단순하게 이렇게 표현하는건 이해를 위함이고, 현실에서는 주기적인 트래픽 몰림이나, 주기적인 트래픽은 거의 없다.
      • traffic intensity가 0에 가까우면 가까울수록 패킷이 도착했을때 큐에서 다른 패킷을 볼 확률이 적어져서 queuing delay는 0에 가까워지나,
      • 1에 가까우면 가까울수록 큐에서 다른 패킷을 볼 확률이 높아지므로 queuing delay는 급격하게 커진다.
      • 스크린샷 2022-08-07 오전 6 20 50


Packet Loss

  • 일반적으로 queue는 한정된 수의 패킷만을 담을 수 있다.
  • 따라서, traffic intensity에서 언급했든 packet delay는 실제로 무한대로 증가하지는 않는다.
  • 다만, 꽉찬 큐에 도착한 패킷은 router가 drop해버려서 lost되어버린다.
  • end system의 입장에서 packet loss는 패킷이 network core로 전송된것처럼 보이지만, destination network에서는 나타나지 않는다.
  • 손실된 패킷의 비율은 traffic intensity가 증가함에따라 증가하므로, node의 성능은 delay로 측정될뿐만 아니라, packet loss 가능성으로도 측정될 수 있다.
  • lost된 패킷은 end-to-end 방식으로 완전한 데이터가 전송되도록 재전송될 수 있다.


End-to-End Delay

  • single router에서 nodal delay에 대해서 생각해보자.
  • source 에서 destination까지 total delay에 대해서 고려할건데, source 에서 destination 사이에 N - 1개의 router가 존재하고, 네트워크는 혼잡하지 않아서 queuing delay는 없다고 가정한다.
  • processing delay는 dproc으로, 전송 속도는 R bits/sec, L은 패킷의 크기로, dtrans 는 이에따라 L/R이고, 전파 지연은 dprop이라고 할때, nodal delay는 누적되어서 End-to-End delay
    • dend-end = N(dproc + dtrans + dprop)이 된다.
    • 스크린샷 2022-08-07 오후 12 59 58
    • N-1개의 router가 존재할때, source에서는 N개의 특수 패킷을 네트워크에 보내게된다.
    • 각 패킷은 destination이 정해져있고, destination에 도착하면 forward하는 방식이 아닌, source에게 메세지를 돌려주게된다.
    • source는 패킷을 보낸시간과 메세지를 돌려받은 경과시간을 기록하고, 메세지를 돌려준 router의 주소와 이름을 기록하고 있는다.
    • 이런식으로 source 측에서 source로부터 destination으로 향하는 route를 재구성할 수 있다.


1.4.4 Throughput in Computer Networks

  • 지연과 패킷 손실과 더불어 CN의 성능 측정의 중요한 요소가 end-to-end throughput(단 대 단 처리량)이다.
  • Host A가 Host B로 큰 파일을 옮긴다고 생각해보자.
  • 임의의 순간의 순간 처리량은 (bits/sec)은 B가 파일을 받는 속도를 의미한다.
  • file이 F 개의 bit로 이루어져있고, B가 모두 전송받는데에 T초가 걸린다면, average throughput평균 처리량은 F/T bit/sec이 된다.

  • 스크린샷 2022-08-07 오후 1 24 20

    • Rs : server와 router 사이 link의 속도
    • Rc : router와 client 사이 link의 속도
    • Rc가 Rs보다 처리량이 많더라도, Rs보다는 많은 양을 처리할 수 없다.
    • Rs가 Rc보다 처리량이 많더라도, Rc보다 많은 양을 처리할 수 없다.

    • 이렇게 처리량을 제약하는 link를 bottleneck link(제약링크)라고한다.
    • 이는 min{Rc, Rs}로 구할 수 있으며, 파일의 크기가 F라면, 걸리는 시간은 F/min{Rc, Rs}일 것이다.
  • 오늘날 인터넷에서의 예시
  • 스크린샷 2022-08-07 오후 2 00 01

    • a :
      • computer network에 연결된 2개의 end system
      • network core의 link가 Rc, Rs보다 매우 높은 전송속도를 가지고있다고 생각할때, 오늘날 인터넷의 처리량 제약 요인은 일반적으로 access network이다.
    • b :
      • 10개의 서버와 10개의 클라이언트가 network core에 연결되어있다.
      • 10개의 동시적인 다운로드가 일어날 수 있으며, 이 10개의 다운로드가 네트워크상에서 유일한 트래픽이라고 가정해보자.
      • R을 link R의 전송 속도라고 가정할때, 이 R은 10개의 client가 동시에 사용할 수 있으므로, 전송 속도는 R/10이 된다.
      • 따라서, 처리량은 min{Rs, Rc, R/10}이 된다.
      • a처럼 Rc, Rs, 그리고 R이 제약요인이 된다.



1.5 Protocol Layers and Their Service Models

  • 네트워크는 많은 부분으로 이루어져 복잡하다.
  • 이 복잡한걸 어떻게 조직화할 수 있을까?


1.5.1 Layered Architecture

  • Layered Architecture는 크고 복잡한 시스템의 특정한 부분을 논의할 수 있게해준다.
  • 이렇게 단순화하는 것은 해당 층에서 제공하는 서비스의 구현을 바꾸는 것을 쉽게해주는 모듈화에 상당한 가치가 있다.
  • 해당 층이 상위 계층에 대해 동일한 서비스를 제공하는 한, 아래 계층으로부터 동일한 서비스를 이용하는한, 해당 층의 구현이 달라져도 나머지 시스템은 동일하다.


1.5.2 Protocol Layering

  • 네트워크 디자이너들은 계층에서 프로토콜을 구현하는 하드웨어와 소프트웨어를 조직화한다.
  • 계층의 Service model은 한 계층의 윗 계층에 제공하는 서비스를 의미한다.
  • 프로토콜 계층은 소프트웨어, 하드웨어, 또는 둘 다를 이용해 구현될 수 있다.
    • Application-layer protocols , transport-layer protocols
      • HTTPSMTP같은 프로토콜은 end system에서 소프트웨어에서만 구현된다.
    • physical layer, data link layer
      • 특정 링크에 대한 통신을 제어해야하므로 주어진 link와 연관된 네트워크 인터페이스 카드에 구현되어 있다.(하드웨어에서만)
    • network layer
      • 네트워크 계층은 하드웨어, 소프트웨어에 섞여있다.


장단점

  • 장점
    • 모듈화를 통해 업데이트가 더 쉽다.
  • 단점
    • 한 계층이 하위 계층의 역할을 복제할 수도 있다.
    • 다른 계층이 가진 정보를 필요로해 계층 분리의 목표를 침해할수도 있다.


Protocol Stack

  • 다양한 계층의 프로토콜들을 의미
  • Internet Protocol Stack은 5계층으로 이루어져 있으며, 맨 위에는 application layer가 위치한다.
  • 스크린샷 2022-08-07 오후 2 34 12
  • OSI 7계층보다 적은 계층을 띄는데, Presentation 계층과 대부분의 Session 계층은 application계층에 속한다.
  • 단, SSL과 TSL의 경우에는 전송계층인 TCP보다는 상위에, 응용계층인 HTTP와 SFTP보다는 하위에 있기에, OSI 7계층 모델은 TSL과 SSL을 설명하기에 적합하다.
    • 참고로 HTTPS는 HTTP + TLS or SSL로 암호화를 한다.


Application layer(응용계층)

  • 응용계층은 네트워크 어플리케이션과 응용계층 프로토콜이 존재한다.
  • 인터넷의 응용계층은 많은 프로토콜을 포함하고 있으며, HTTP프로토콜(웹 문서의 요청과 전달)과 SMTP(e-mail 전달), 위에 언급한 HTTPS 프로토콜을 포함한다.
  • 또한 도메인을 입력하면 32비트 주소로 변환하는 DNS 프로토콜도 응용 계층에 있다.

  • 하나의 end system의 application은 다른 end system의 application의 정보를 담는 패킷을 교환하기 위해 이 프로토콜을 이용한다.
  • 응용계층에서 이 패킷을 message라고 한다.


Transport layer(전송계층)

  • 전송계층은 application endpoints간 만들어진 응용계층 message를 전송한다.
  • 인터넷에서는 2개의 전송 프로토콜이 있는데, TCPUDP이다.
    • TCP는 응용프로그램에게 연결 지향적 서비스를 제공한다.
      • 이 서비스는 응용계층 message의 전달 뿐만아니라, 송수신자의 속도를 일치하는 흐름제어를 포함한다.
      • TCP는 또한 긴 메세지를 작은 segment로 나누고, 네트워크가 혼잡할때 source가 전송 속도를 제어하는 congestion-control mechanism을 제공한다.
    • UDP 프로토콜은 응용프로그램에 비연결 서비스를 제공한다.
      • 이는 안정성과 흐름제어, 혼잡제어를 제공하지 않는다.
  • 전송계층의 패킷은 segment라고한다.


Network Layer(네트워크 계층)

  • 네트워크 계층은 datagram이라 불리는 패킷을 host에서 다른 host로 전달한다.
  • source 호스트에서 인터넷 전송계층 프로토콜은 전송계층 segment와 destination 주소를 네트워크 계층에 전달한다.
  • 네트워크 계층은 destination 호스트의 전송계층에 segment를 전달하는 서비스를 제공한다.


  • IP Protocol
    • 네트워크 레이어의 유명한 프로토콜
    • datagram의 fields을 정의하면서, end system과 router가 어떻게 작동하는지 정의한다.
    • IP 프로토콜은 단 하나이므로, 네트워크 계층을 가진 모든 인터넷 구성요소는 IP 프로토콜을 구동할 수 있어야한다.


  • Routing Protocol
    • source와 destination사이의 route를 결정하는 프로토콜
    • 인터넷은 수많은 routing protocol을 가지고 있다.
    • 1.3에서 봤듯, 인터넷은 네트워크들의 네트워크(network of networks)이므로, 네트워크 내부에서 네트워크 관리자는 원하는 routing protocol을 뭐든 실행할 수 있다.

네트워크 계층이 IP프로토콜와 수많은 routing protocol을 가짐에도 불구하고, IP 프로토콜의 중요성으로 인해 IP layer(IP 계층)이라고도 불린다.


  • 인터넷의 네트워크 계층은 source와 destination 사이의 일련의 router들을 거치면서 datagram을 route하게된다.
  • 패킷을 한 노드에서 다음 노드로 옮기기 위해서 네트워크 계층은 link layer의 서비스에 의존하게된다.
  • 특히, 각 노드에서 네트워크 계층은 datagram을 Link 계층으로 넘기게되는데, link 계층이 datagram을 route를 따라서 옮기게된다.
  • 다음 노드에서는 Link 계층은 해당 datagram을 네트워크 계층으로 올리게된다.


  • link-layer protocol

    • 링크 계층에서 제공되는 서비스들은 링크에서 사용되는 특정한 link-layer protocol을 사용하게된다.
      • 예를들어, 몇몇 링크계층 프로토콜은 신뢰성있는 전송을 제공하는데, 이건 TCP가 제공하는 것과는 다르다.
    • 링크계층 프로토콜은 이더넷, 와이파이, access network의 DOCSIS프로토콜을 포함한다.
    • datagram들이 하나의 렝크가 아닌 여러개의 링크를 거칠 수 있으므로, route를 따라 다른 링크계층 프로토콜에 의해 조조된다.
    • 링크계층의 패킷을 frames라고 부른다.


Physical layer

  • 링크계층의 일이 모든 frame들을 인접한 네트워크로 옮기는 것이라면, 물리적 계층은 frame의 각각의 bit를 다음 노드로 옮기는 것이다.
  • 이 계층의 프로토콜또한 link layerdp dmlwhswjrdlau, link의 물리적 매체(광섬유, 구리선 등)에 의존적이다.


OSI 모델

  • 지금까지 인터넷 프로토콜 스택(인터넷 프로토콜 스위트)에 대해 알아봤는데, 이것 말고도 다른 방법으로 표현하는 방법이 있다.
  • 1970년애뎅 ISO(International Organization for Standardization)이 네트워크를 7계층으로 정의했다.
    • 이를 OSI(Open Systems Interconnection) 모델이라고 한다.
  • OSI모델은 인터넷 프로토콜이 초기단계에 있을때 만들어졌고, 개발중인 다른 프로토콜 스위트 중 하나일 뿐이었다.
    • 1970년대에 만들어졌으니, 당연히 이 모델을 만든 사람들은 인터넷을 염두에 두지 않았을 것이다.
  • 그럼에도 불구하고 1970년대 후반에 많은 학교와 훈련과정이 이 OSI 모델을 차용했기에 이런 초기영향에 의해 아직도 OSI모델은 책과 훈련과정에 남아있다.


  • OSI 7계층은 응용계층-표현계층-세션계층-전송계층-네트워크계층-데이터링크 계층-물리적계층 으로 이루어져있다.
  • 이중 5개는 인터넷 프로토콜 스위트와 비슷한데, 표현계층과 세션계층이 추가된 형태이다.
    • 표현계층
      • 교환된 데이터를 응용프로그램이 해석해서 통신할 수 있게끔해준다.
      • 이 서비스들은 데이터 압축과 암호화(자기가 설명하길…), 데이터 묘사(응용프로그램이 데이터의 내부 포맷이 표현되고 저장되는 방식을 신경쓰지 않게끔하기위해)를 포함한다.
    • 세션계층
      • 데이터의 교환을 구분하고 동기화를 제공한다.
  • 이 두개의 계층은 응용프로그램을 개발하는 개발자가 이를 중요하게 생각하는지, 아닌지에 따라 다르다.


1.5.2 Encapsulation

  • 이전에 말했듯, link-layer switch와 router모두 packet switch이다.
  • 라우터와 링크계층 스위치 모두 계층에 자신의 네트워킹 하드웨어와 소프트웨어를 구성하지만, 프로토콜 스택의 모든 부분을 구현하지는 않는다.
    • 하위 계층만 구현한다.
  • 그림에서처럼 링크계층 스위치는 링크계층까지만, 라우터는 네트워크 계층까지만 구현하며,
    • 라우터는 네트워크 계층까지 구현되어 있으므로 IP Protocol을 구현할 수 있지만, 링크계층스위치는 이를 하지 못한다.
    • 링크계층 스위치는 IP 주소를 인식하지는 못하고, 이더넷 주소만을 인식할 수 있다.

캡슐화

  1. 송신하는 호스트에서는 응용 계층의 message가 전송계층으로 전달된다.
  2. 전송계층에서는 이 message를 받아서 transport-layer header information, Ht를 추가한다.
    • 이 Ht는 수신측의 전송계층에서 사용된다.
  3. 이렇게 M과 Ht를 묶어서 transport-layer segment라고 부르고, 이는 응용계층 message를 캡슐화하게된다.
    • 추가된 정보로는 수신특의 전송계층이 적절한 응용프로그램에 message를 전달할 수 있게하며, 수신측이 message의 bit들이 바뀌었는지 안바뀌었는지 알 수 있게하는 error-detection bits를 포함한다.
  4. 전송계층은 이 segment를 네트워크 계층으로 전달하고, network-layer header information, Hn을 추가한다.
    • 이 Hn은 수신측과 송신측의 주소를 가진다.
  5. 이렇게 기존의 segment에 Hn을 추가하면 network-layer datagram이 만들어지게되고, 이는 link layer로 전달된다.
  6. 링크계층에서는 또 link-layer header information Hl을 추가해 link-layer frame을 만들게된다.
  • 이렇게 각 계층에서 패킷은 2가지의 필드를 가지는데,
    • 이전 계층에서 전달된 payload field와 현재 계층에서 추가된 header field를 가지게된다.

댓글남기기