본문 바로가기

전공 테트리스/데이터통신 및 네트워크

[네트워크] 2. Introduction to Computer Network 2

5. Performance : loss, delay, throughput

 

[1] Performance : Bandwidth and Latency

  • Bandwidth (throughput; 대역폭, 처리량, 처리율, 수율)
    • 일정 시간 동안 전송 가능한 비트의 수 (가능성일 뿐, 실제와는 다름)
    • ex) 100Mbps = 초당 1,000만 비트 전달
  • Latency (delay)
    • 네트워크 한쪽 끝에서 다른 끝으로 메시지가 이동하는데 걸리는 시간
    • RTT (round-trip-time)
      • 왕복 시간 측정
    • 구성 요소
      • Processing delay
      • queuing delay (큐잉딜레이)
        • 도중 또는 종단 장치들이 메시지를 처리하기 전까지 메시지를 가지고 있는 시간
      • transmit delay 한 단위의 데이터 전송하는데 소요되는 시간
        • 첫 번째 비트가 떠난 후 마지막 비트가 도착한 시간
        • 메시지의 크기와 대역폭에 좌우됨
        • 메시지크기/대역폭
      • Speed-of-light propagation delay (광속 전파 지연)
        • transmitter가 데이터를 링크에 싣고 비트 하나 바로 출발~ 마지막 비트가 도착하는데 걸리는 시간
        • 거리 / 전파 속도
        • vacuum, cable, fiber = 거리와 빛의 속도
    • Latency = Processing + Propagation + transmit + queue

  • 상대적 중요성은 어플리케이션에 따라 다름
    • 1바이트 메시지 → 1-ms RTT / 100-ms RTT
      • transmit = 8m(뮤)s for 1Mbps / 0.08m(뮤)s for 100Mbps
      • 데이터가 작은 경우: 속도가 빠르든 느리든 상관없음. 링크에 싣는 속도는 영향을 미치지 못하는데 8마이크로/s이건, 0.08마이크로/s 이건 간에 별로 상관없음. 아무리 빨라져도 속도가 더 빨라질 수는 없음
    • 25 MB 이미지 (디지털 라이브러리 프로그램… 파일 다운로드)
      • 채널의 광역폭이 수행을 지배함
      • 광역폭이 더 중요함. 용량이 작으면 마이크로/s 단위에서 놀아서 전송 속도보다는 딜레이가 중요. 용량이 커지면 딜레이보다 속도가 중요하다. 네트워크 특성을 구할 때, 지연*대역폭을 구하는데, 대역폭은 한 번에 전송 가능한 양을 뜻하고, 둘을 계산해 봤을 때, 네트워크를 사용했을 때, 얼마만큼 허공 중에 날아갈 수 있는 지를 확인.
  • delay x Bandwidth product
    • 파이프처럼 network
    • 첫 번째 비트가 도착하기 전에 모든 데이터가 보내진다.
  • 전화, 위성맵, 지역 섬유 유선 랜을 쓸 때, RTT * 대역폭을 해보면, 전화는 1초에 5비트, 무선랜은 1초에 18비트,… 이 특성들을 보고 뭔갈 하지는 않지만 속도와 딜레이를 단편적으로 확인할 수는 있음.
  • 고속 네트워크
    • bandwidth는 급격한 속도로 증가하고 있다
    • 고속도 = latency(지연)가 bandwidth와 같은 속도로 향상된다는 뜻이 x

      • 데이터가 많은 상황을 가정했을 때, 전송 속도를 늘리면 딜레이를 무한정 줄일 수 있는가? 5G 광고할 때 전송 속도를 늘렸다고 했는데, 1Mb는 1Mbps를 80개 채울 수 있는 용량. 숫자가 중요한 건 아님. 80번 반복해야 채우 수 있는 데이터가 있다고 가정할 때, 1000배만큼 올리면 1000배만큼 필요한 시간도 9줄어드는 것인가? 대역폭의 크기(파이프의 넓이)가 아무리 넓어져도, 링크는 건너가는 시간(딜레이 시간)이 남아있을 것임. 즉, 만배 만큼 빨라지지는 못한다.
  • 위의 사진에서 첫 번째 그림은, 1-MB 파일이 1Mbps 링크를 80번 채울 것이지만, 아래 그림에서는 1-Gbps를 한 번에 1/12만 채우게 될 것임
  • 대역폭가 지연의 상관관계.

 

[2] 어떻게 패킷 손실과 지연이 발생하는가?

  • 패킷은 라우터 버퍼 안에서 대기한다. (queue)
    • 다음 자신의 차례가 오기를 대기
    • packet loss(패킷 손실) : 링크까지의 도착 비율이 아웃풋 링크의 용량을 초과한 경우.
     

  • 큐잉 딜레이 = 라우터에 여러 컴이 연결되어 있고, 패킷이 전달되면 큐에 쌓이는데 쌓인 순간부터 전송되기까지 걸리는 시간
  • 패킷 손실 = 전송되면서 transmission딜레이 발생. 이벤트로 인해 늦게 도착하게 되고, 도착하는 패킷의 비율이 링크가 저장할 수 있는 양을 넘기게 된다면, 패킷이 버려질 수 있음 (그럴 경우, 패킷을 재전송하거나 응용함)

 

 

[3] packet delay : 4개 소스

 

  • d_proc = 노드 처리 지연 (processing delay)
    • 비트 에러를 체크 / 아웃풋 링크를 결정 / 주로 msec 미만
    • 어느 경로로 갈지 결정하고 비트에러가 있으면 비트 버리는 등 처리를 위한 시간
  • d_queue = 큐잉 지연 (queueing delay)
    • 전송을 위해 아웃풋링크에서 대기하는 시간 / 라우터의 혼잡도 수준에 따라 결정됨
  • d_trans = 전송 지연 (transmission delay)
    • L / R (패킷 길이 / 링크 전송 속도)
    • L = 패킷 길이 (비트 단위)
    • R = 링크 전송 속도 (bps)
  • d_prop = 전파 지연 (propagation delay)
    • d / s (링크길이 / 속도)
    • d = 물리적 링크의 길이
    • s = 전파 속도 (~2*10^8m/sec)

 

 

[4] caravan analogy

 

  • 차량의 속도는 100km (전파. propagate)
  • 한 차량 당 톨게이트까지 소요되는 시간은 12
  • 마지막 차량이 두번째 톨게이트에 도착하는 시간 = 최종 시간
    • 12s*10 + 1h = 2m + 60m = 62m

 

  • 자동차의 속도를 1,000km라고 가정 (10배 고속화)
  • 톨게이트에서 소요되는 시간 1분 가정 (느려짐)
  • 첫 번째 부스에서 모든 차량의 서비스가 끝나기 전에 두 번째 부스에 차량이 도착하는가?
    • 그렇다! 7분 후 첫 번째 차량이 두 번째 톨게이트에 도착하게 되고, 아직 첫 번째 톨게이트에 3대의 차량이 남아있다.

 

 

[5] packet queueing delay (재검토)

 

  • R = 링크 대역폭 (bps)
  • L = 패킷 길이 (비트 단위)
  • a = 평균 패킷 도착 속도
  • La/ R = 패킷이 1초에 도착하는 양
  • La/ R ~0 : 평균. 대기열 지연 작음
  • La / R → 1 : 평균. 대기열 지연 큼
    • La와 R이 비슷한 경우. 큐잉 딜레이는 무한대로 발산. 평균적으로 과제 하루에 1개씩만 처리할 수 있다면 일주일에 7개 처리 가능한 것인데 교수님들이 금요일에 과제 7개 한 번에 주시면 월화수목 자원 낭비하다가 금토일 3개 처리해서 4개 남고 또 목요일에 과제 주시면 과제는 계속 쌓이게 됨 → 큐잉 딜레이의 무한 발산
  • Ls/ R >1 : 도착하는 ‘작업’이 서비스할 수 있는 것보다 많음 - 평균 지연은 무한하다!

큐잉 딜레이를 계산하는데 영향을 미치는 요소

 

 

[6] queueing system (큐잉 시스템) : M / M/ 1

 

큐잉 이론. 대기열에서 걸리는 시간

가장 간단한 모델 - 인풋 하나, 아웃풋 하나, 서버 하나, 서버의 메모리는 무한대로 가정

앞 두 개의 M/M은 특정 분포를 따름 (인풋, 아웃풋)

인풋에서 큐로의 도착 비율을 = 람다

서버에서 아웃풋으로의 처리 비율을 = 뮤

첫 번째 M : poisson(포아송) 과정을 따른다고 했을 때, 1초에 람다 개 만큼의 요청(인풋)이 들어온다고 생각을 하면 됨

두 번째 M : 지수 분포를 따르는데 한 명이 하나의 패킷 또는 서비스를 받는데 필요한 시간 = 1 / 뮤

 

은행이나 음식점에 비유

서버에 미리 도착해 있는 손님들이 있다면, 모두 창구가 하나일 때, 손님들은 줄을 서고 서비스를 받음

람다 = La ( 도착 속도, 패킷 길이*도착 속도 )

뮤 = R (서비스 비율, 대역폭)

1/M = 서비스 시간을 의미

손님들이 1초에 람다 명 도착하고, 처리하는 시간은 1/뮤

내가 들어가기 전, 미리 줄 서 있는 사람의 수 = Lq

L이 나를 포함한 사람의 수라고 할 때, 이 시스템을 다음 페이지의 다이어그램으로 바꿀 수 있음

(대기열이 무한대이므로 전체 시스템에 접근 가능한 사람 수는 무한대까지 가능하다)

P_n : 시스템에 n명이 있을 ‘가능성’

시그마 n은 0부터 무한대까지 … 모든 확률을 더한 거라 1이 됨

 

 

[7] “실제“ 인터넷 지연 및 경로 (Internet delays and routes)

 

<traceroute program>

  • 목적지까지의 end - end 인터넷 경로를 따라 소스에서 라우터 까지의 지연 측정을 제공
  • 가는 경로에 있는 라우터들을 거치는 시간 측정 (time-ro-live field value of i, router)
  • 패킷을 목적지에 던지는데 패킷에 time-to-live(살아있을 수 있는 시간, 홉으로 시간 지정) 측정 (홉을 1로 준다면, 패킷을 하나 던졌을 때, 라우터에서 바로 죽는데, 라우터에서 내 컴으로 패킷 죽었다고 응답을 줌. 보냈을 때와 돌아왔을 때의 시간을 측정하면 → RTT)
  • 라우터는 패킷을 다시 발신자에게 보냄
  • 송신자는 전송된 시간과 도착한 시간 사이의 interval 타임을 측정

 

tracerouter: gaia.cs.umass.edu —> www.eurecom.kr (패킷 전송)

  • 7번→ 8번 (trace-oceanin link)
    • 한 홉만 뛰었는데 갑자기 소요 시간 증가. 아무래도 미대륙, 유라시아 쪽 회저 링크를 건너야 해서 증가한 것으로 추정
  • 10번 → 11번 (delay decrease)
    • 114에서 112로 줄어든 것은 갑자기 네트워크 환경이 좋아졌을 수 있음

 

[8] Packet loss (패킷 손실)

 

  • 링크를 preceding하는 큐 (aka 버퍼)는 유한한 공간을 가지고 있다.
  • 꽉 찬 큐에 도착한 패킷은 버려진다 (dropped) (aka lost. 손실)
  • 버려진 패킷은 이전 노드, 소스 end 시스템의 노드에 의해 재전송되거나 / 둘다 아닐 수 있음

 

[9] Throughput (쓰루풋. 처리량)

 

  • Throughput : 전송자에서 수신자로 보내는 비트의 전송속도. 전송량(비트/ 시간 단위)
    • 시간당 처리하는 비트의 비율
    • instantaneous : 순간적인 쓰루풋 (특정 시점)
    • average : 평균적인 쓰루 (장기간)

 

  • 실질적으로는 경로마다 서로 다른 속도를 가지고 있음. 서버가 클라이언트한테 데이터를 전송할 때 평균 속도 구하기
    • min(R_s, R_c) - 최솟값이 쓰루풋이 된다(평균 속도. 처리)
    • R_s < R_c (서버~ 라우터로의 속도 빠르고, 클라이언트가 느릴 때)
    • R_s < R_c ( 서버에서~ 라우터로의 속도 느리고, 클라이언트가 빠를 때
  • 병목현상 (bottleneck link)
    • end-end 쓰루풋을 제한하는 end-end 경로

 

 

[10] Throughput : network scenario

 

쓰루풋은 실제로 전달된 전송량이고, bandwidth는 이상적인 전달 가능한 전송량을 의미한다.

쓰루풋은 값들 중 최솟값이 쓰루풋이 된다.

그림 속에서 R_c나 R_s에서 주로 병목현상이 일어난다.

 

 

6. Security

 

[1] Network security

  • 네트워크 보안의 분야(field)
    • 악당들이 컴퓨터 네트워크를 공격하는 방법
    • 네트워크 공격을 방어할 수 있는 방법
    • 공격에 면역되게 구조를 디자인하는 방법
  • 초기의 인터넷은 많은 보안을 염두에 두고 디자인되지 않았음
    • 초기 버전 : “투명한 네트워크에 연결된 상호 신뢰하는 사용자 그룹 ”
    • 인터넷 프로토콜 디자이너들은 “따라잡기”를 함
    • 모든 계층에 있는 보안 고려사항 !

 

 

[2] 악당들 : Malware (멀웨어, 악성코드) - virus, worm

호스트에 접근 가능 수단

  • virus
    • 개체(이메일 첨부)를 수신/실행하여 자기 복제 감염
  • worm
    • 스스로 실행되는 개체를 수동적으로 수신하여 자가 복제 감염 (다운만 받아도..)
  • 스파이웨어 악성 코드는 키 입력(keystrokes), 방문한 웹 사이트, 수집 사이트에 업로드한 정보 등을 record 가능
  • 감염된 호스트는 botnet에 등록되어 스**팸이나 DDoS(분산 서비스 거부)**공격에 사용될 수 있음

 

 

[3] 악당들 : DoS (Denial of Service, 서비스 거부 공격)

 

공격자는 가짜 트래픽(bogus traffic)으로 리소스를 압도(overwhelming)하여

합법적인 트래픽이 리소스(서버, 대역폭)를 사용할 수 없도록 만든다.

*compromised 손상

 

 

 

[4] 악당들 : packet interception (packet sniffing)

  • packet sniffing
    • broadcast media (공유된 Ethernet, wireless)
    • 무차별 네트워크 인터페이스는 통과하는 모든 패킷(예: 비밀번호 포함!)을 읽고 기록합니다.

네트워크 선에 나와 상대 분만 아니라 제 3자 또한 같이 연결되어 있음. 패킷에 받는 이, 보내는 이, 모두 적어 보냈는데 (와이어샤크와 같은 툴을 통해) 제3자가 패킷을 받아올 수 있음.

와이어샤크를 틀면 주변 사람드의 패킷을 받아올 수 있는데 필터링으로 패킷 중 pw나 password를 보여달라고 했을 때 보여줌. 암호화 안 된 ap라면 와이어샤크로 누군가 로그인하는 메시지를 볼 수 있음

 

 

[5] 악당들 : fake identity (가짜 신분) - IP spoofing

잘못된 소스 주소로 패킷을 전송하는 것 (공격자 c가 b인척 패킷을 전송하는 것)

 

 

 

7. Protocol layers, service models

 

[1] 프로토콜 “계층“ 및 참조 모델 (reference model)

  • 네트워크는 복잡하며, 많은 ‘조각’들로 구성되어있다.
    • 호스트
    • 라우터
    • 다양한 미디어의 링크들
    • 어플리케이션들
    • 프로토콜들
    • 하드웨어, 소프트웨어
    → 이러한 복잡한 조각들을, 네트워크를 구조화하여 단순화할 수는 없을까?

 

[2] 예시 : organization of air travel

  • 비행기 탐승해서 여행하는 것에 비유. 탑승권 구매하고/ 수속 밟을 때 짐 싣고/ 게이트 통과해 비행기 타고/ 비행기 이륙하고/ 비행기 경로를 통해 착륙하고/ 다시 짐 찾고
  • 사실은 티켓 구매와 짐 싣는 것은 한 사람이 시간적 차이를 두고 행하는 것이지만, 서비스 자체를 엮어서 독립적으로 구분할 수 있다. (계층적 구조)
  • layers : 각 레이어는 서비스를 수행한다.
    • 자체 내부 레이어 작업을 통해 수행
    • 하위 레이어에서 제공하는 서비스에 의해 수행

 

 

[3] layering 하는 이유

 

  • 목적 : 복잡한 과정간단하게 관리하고 소비하기 위해
  • 장점 : 계층화를 통해 모듈로 볼 수 있고, 어떤 서비스를 업데이트, 유지 보수 할 때 다른 서비스들과 독립적으로 업데이트가 가능하다. 즉, 다른 서비스는 양향을 받지 않는다.
  • 단점 (일부 측면) : 중복된 기능이나 데이터를 각각의 레이어에서 전송할 수 있는데 네트워크는 한정적이므로 중복된 데이터를 낭비라고 생각할 수 있음. 예를 들어, 비트 에러 체크를 중복된 기능으로 수행하거나 중복된 데이터를 전송하는 경우(타임스탬프)
  • 그러나! 장점이 더 많기 때문에 계층화를 사용한다.
  • 명시적 구조를 통해 복잡한 시스템 조각과의 식별, 관계를 허용합니다.
    • discussion을 위한 계층형 참조 모델 (layered reference model)
  • 모듈화로 유지보수, 시스템 업데이트 용이
    • 레이어의 서비스 구현 변경 : 나머지 부분에 투명한 체계
    • 예를 들어 게이트 절차의 변경은 나머지 시스템에 영향을 미치지 않는다.
  • 계층화는 해로운가?
  • 다른 복잡한 시스템을 계층화하는 것은?

 

 

[4] 인터넷 프로토콜 스택 (Internet protocol stack)

  • application : 네트워크 어플리케이션 지원
    • IMAP, SMTP(이메일), HTTP(웹브라우저)
    • SMTP : Simple Mail Transfer Protocol의 약자. 인터넷을 통해 이메일 메시지를 보내고 받는 데 사용되는 통신 프로토콜
    • HTTP : 하이퍼텍스트 전송 프로토콜(HTTP)은 월드 와이드 웹의 토대이며 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용. HTTP는 네트워크 장치 간에 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜이며 네트워크 프로토콜 스택의 다른 계층 위에서 실행
  • transport : 프로세스와 프로세스 간, 데이터 전송
    • TCP, UDP
  • network : 소스~ 목적지까지 datagram을 라우팅하는 것
    • IP, 라우팅 프로토콜
    • datagram : IP 계층의 가변 길이 패킷
  • link : 이웃된 네트워크 원소끼리 데이터 전송하는 것
    • ethernet, 802.11 (WiFi), PPP
  • physical : ‘전선에서(on the wire)’ 비트

 

 

[5] ISO/OSI 참조 모델

제일 첫 모델은 7계층이었으나 presentation과 session은 application이 흡수함

나머지 5 레이어는 앞 모델과 중복됨

  • presentation : 어플리케이션이 데이터의 의미를 해석하도록 허용
    • e.g., 암호화(encryption), 압축(compression), 기계별 규칙(machine-specific conventions)
  • session : 동기화(synchronization), 체크포인트(checkpointing), 데이터 교환 복구(recovery of data exchange)
    • 인터넷 스택은 이러한 계층이 ‘누락’되어있다!
      • 필요한 경우, 이러한 서비스들은 반드시 어플리케이션에서 구현되어야 한다.
      • 필요한 경우?

 

 

[6] Encapulation

  • 앱 쓸 때, 메시지를 친구한테 전달하고 싶을 때 네트워크의 ‘링크’ 계층에서 헤더를 계속 붙임 → 물리 계층을 통해 전달됨 → 라우터가 받고 아이피 주소를 보고 목적지를 파악새로운 링크를 물리적으로 다시 전달함 → 목적지에 도착하면 헤더를 하나씩 빼면서 내 것이 맞는지 확인

 

 

8. History

[ 1961 - 1972 : 초기의 패킷 스위칭 원칙들 ]

  • 1961 : kleinrock - 패킷 스위칭의 효율성을 큉 이론이 보여줌
  • 1964 : Baran - 국방용 패킷 스위칭 (네트워크) 필요하다고 주장
  • 1967 : ARPAnet(알파넷) 만듦 - advanced 조사 프로젝트 에이전시에서
  • 1969 최초의 알파넷 노드 작동
  • 1970 : ALOHAnet 위성 네트워크 in 하와이
  • 1972 :
    • 알파넷 공개 데모
    • NCP (Network Control Protocol) 최초의 호스트 간의 프로토콜
    • 최초의 이메일 프로그램
    • 알파넷은 15개의 노드를 가짐
  • 1974 : Cerf , Kahn (인터넷의 아버지) - 상호작용하는 네트워크의 구조
  • 1976 : Ethernet at Xerow PARC
  • 70년대 후반 :
    • 독점 아키텍쳐 : DECnet, SNA, XNA
    • 고정된 길이의 패킷 스위칭 (ATM 전구물질)
  • 1979 : ARPAnet은 200개의 노드를 가짐

<aside> 💡 Cerf and Kahn’s internetworking 원칙들

  • 미니멀리즘, 자율성(autonomy) : 네트워크를 상호 연결하는 데 내부 변경이 필요 하지 않음
  • best effort 서비스 모델
  • stateless 라우팅
  • 분산화된 컨트롤 → 오늘날의 인터넷 구조를 정의한다!

</aside>

  • 1982 : SMTP 이메일 프로토콜 정의됨
  • 1983 : TCP/ IP의 배포 (deployment)
    • DNS 정의됨 name-to-IP-address 번역 용 (도메인 이름을 IP주소로 바꿔주는 서비스. 이전엔 전문가들이 IP주소 외워서 들어갔음)
  • 1985 : ftp 프로토콜 정의됨

1988 : TCP congestion control (혼잡 제어 기능 추가)

  • 사람이 많아서 혼잡해지면 알아서 속도를 낮추는 프로토콜, 네트워크는 공공의 자원이라서 개인의 사용량을 낮춤.
  • 새로운 지역 네트워크 : CSnet, BITnet, Minitel
  • 100, 000호스트들은 네트워크 연합에 연결되어 있음

[ 1990, 2000s : 상업화(commercialization), the Web, new applications ]

  • 초기의 1990s : ARPAnet 서비스 중단
  • 1991 : NSF는 NSFnet의 상업적 사용에 대한 제한을 해제 (decommissioned, 1995)
  • 초기의 1990s: Web
    • hypertex [Bush 1945, Nelson 1960's]
    • HTML, HTTP : Berners-Lee
    • 1944 : 모자이크(Mosaic), 이후 Netscape
    • 1990s 후반 : 웹의 상용화(commercialization)
  • 후반의 1990s ~ 2000s : 더 많은 킬러 앱 - instant messaging, P2P 파일 공유
    • 네트워크 보안을 최우선으로 (forefront)
    • est. (estimated ) 호스트 수는 5천만 개, 1억 개 이상
    • Gbps로 실행되는 backbone 링크 (대규모 패킷 통신망)

[2005 ~ 현재 : 더 많은 새로운 어플리케이션, 인터넷은 어디에든 있다! ]

  • 인터넷에 연결된 최대 180억 개의 장치 (2017)
    • 스마트폰의 등장(iPhone: 2007)
  • 광대역 액세스의 공격적인 구축 (aggressive deployment of breadband access)
  • 고속 무선 액세스의 보편화(ubiquity) 증가: 4G/5G, WiFi
  • 온라인 소셜 네트워크의 출현:
    • Facebook: 약 25억 명의 사용자
  • 서비스 제공업체 (Google, FB, Microsoft) 는 자체 네트워크를 생성 … isp
    • 상용 인터넷을 우회(bypass)하여 end사용자에게 "가까운" 연결을 제공하고 검색, 비디오 콘텐츠 등에 대한 "즉시(instantaneous)" 액세스를 제공
  • 기업은 "클라우드" (예: Amazon Web Services, Microsoft Azure) 에서 서비스를 실행[참고]
      •  

 

 

 

 

[참고]

 

 

컴퓨터 네트워크 4-1일차 : 네트워크의 4가지 지연 현상 총정리 : transmission delay / propagation delay / pr

한 달간 준비했던 한능검 시험을 끝내고, 수요일 수업을 토요일에 와서 정리해보려 합니다 : ) 수요일 수업은 한 챕터가 끝나고 중간에 새로운 챕터로 넘어가서 2개로 나누어 포스팅해보려 합니

tksgk2598.tistory.com

 

      •