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 단위에서 놀아서 전송 속도보다는 딜레이가 중요. 용량이 커지면 딜레이보다 속도가 중요하다. 네트워크 특성을 구할 때, 지연*대역폭을 구하는데, 대역폭은 한 번에 전송 가능한 양을 뜻하고, 둘을 계산해 봤을 때, 네트워크를 사용했을 때, 얼마만큼 허공 중에 날아갈 수 있는 지를 확인.
- 1바이트 메시지 → 1-ms RTT / 100-ms RTT
- 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
'전공 테트리스 > 데이터통신 및 네트워크' 카테고리의 다른 글
[네트워크] 6. Transport Layer (2) (0) | 2024.05.18 |
---|---|
[네트워크] 5. Transport Layer (1) (0) | 2024.05.18 |
[네트워크] 4. Application Layer (2) (0) | 2024.05.18 |
[네트워크] 3. Application Layer (1) (0) | 2024.05.18 |
[네트워크] 1. Introduction to Computer Network 1 (2) | 2024.04.27 |