total_activ

데통 공부 v.02 (Loss, Delay, Throughput, layering, Security 공격, History) 본문

공부

데통 공부 v.02 (Loss, Delay, Throughput, layering, Security 공격, History)

INFOO 2022. 9. 20. 20:06

performance측정 방법 : loss 어떤상황에 발생하는지, delay 구성요소, throughput 무엇인지

  1. Bandwidth and Latency
    • Bandwidth : 대역폭
      • 일정 시간 동안 전송된 비트 수
        • ex) 10Mbps = 초당 천만비트 전송 (1억)
        • 1MB=8Mbps
    • Latency (delay) : 대기시간
      • 네트워크의 한쪽 끝에서 다른 네트워크까지 메시지가 이동하는 데 걸리는 시간
      • Round-trip time(RTT) : 왕복시간
        • 메세지가 네트워크의 한쪽 끝에서 다른쪽으로 이동하고 돌아와서 걸리는 시간
        • 참고) ping
      • 요소
        • Speed-of-light propagation delay : 빛의 속도 전파 지연 = 거리/빛의 속도
          • 진공에서 3.0x108m/s, 케이블에서 2.3x108m/s, 광섬유에서 2.0x108m/s
        • 데이터 단위를 전송하는 데 걸리는 시간(transmit) =크기/대역폭 • 대기 지연 (Queuing delay) • 처리 지연 (Processing delay) → 에러확인+나가는경로 선택 • Latency(대기시간) = Processing(처리시간) + Propagation(전파) + Transmit(전송) + Queue(대기열)

  • Bandwidth (대역폭)
    • 일정 시간 동안 전송된 비트 수
      • ex) 10Mbps = 초당 천만비트 전송 (1억)
  • 상대적 중요성은 application에 따라 달라진다
    • 1바이트 메시지
      • 1ms RTT 또는 100ms RTT
      • 전송 = 1Mbps의 경우 8μs 및 100Mbps의 경우 0.08μs →일정하다
    • 25(200Mps) MB 이미지(디지털 라이브러리 프로그램) : 대용량
      • 채널의 대역폭이 성능을 좌우합니다
  • delay(지연=왕복지연) x bandwidth(대역폭)
    • pipe로서의 네트워크
    • 첫번째 비트가 도착하기 전에 전송된 데이터의 양해당선에 흐르는 bit 계산 가능

  • High-Speed Networks
    • 대역폭이 극적인 속도로 증가하고 있습니다.
    • "고속"은 latency가 대역폭과 동일한 속도로 향상된다는 의미가 아닙니다. (1MB를 8Mbps속도로 보낼때 1Mps마다 0.1초걸리고 80개의 파이프로 보낸다. = 1MB를 0.008Gbps속도로 보낼때 1Gps마다 12/125초 걸리고 1/12개 파이프로 보낸다.=시간은남는다. )
    • 대역폭과 대기 시간 간의 관계. 1MB 파일은 1Mbps 링크는 80번이지만 1Gbps 링크는 한 번의 1/12만 채웁니다.
  1. loss와 delay 발생 조건

  • 라우터 버퍼의 패킷 대기열
    • 패킷 대기열, 차례 대기
    • 링크 도달률(일시적으로)이 출력 링크 용량 초과: 패킷 손실 loss
    • free buffer(↔ loss) → packet in buffers(queueing delay) → packet being transmitted(transmission delay, link에 실림) → propagation → router 도달 
      1. nodal processing (d proc)
        1. 비트 에러 확인
        2. 출력 링크 결정
        3. 1msec 미만
      2. queueing delay (d queue)
        1. 전송을 위해 출력 링크에서 대기하는 시간
        2. 라우터의 혼잡도에 따라 달라짐
      3. transmission delay = L/R (d trans)
        1. L: 패킷 길이(bits)
        2. R: 링크 전송률(bps)
      4. propagation delay = d/s (d prop)
        1. d: 육체적인 링크의 길이
        2. 전파 속도(~2x108 m/sec)

Packet queqeing delay

  • Packet queqeing delay (revisited) 
    • R: 링크 대역폭(bps)
    • L: 패킷 길이(비트)
    • a: 평균 패킷 도착률
    • La/R ~ 0: 평균. 작은 대기열 지연
    • La/R -> 1: 평균. 대기 지연이 크다
    • La/R > 1: 더 많은 "작업"이 도착합니다. 서비스할 수 있는 것 이상 - 평균 무한 지연!실제 인터넷 delays와 routes
      • traceroute 프로그램: 목적지를 향해 end-end 인터넷 경로에 따라 출발지에서 라우터까지지연 측정을 제공합니다. 모든 i에 대해서:
        1. 도착 경로에 있는 라우터 i에 도달할 세 개의 패킷을 보냅니다. (i의 time-to-live 필드 값과 함께)
        2. 라우터 i는 발신자에게 패킷을 돌려준다.
        3. 발신자는 전송과 응답 사이의 시간 간격을 측정합니다.
        4. 경로가 변경되면 delay 측정시간이 감소할수도 있음. 절대적이지 않다.

  • packet loss
    • 버퍼에 있는 링크 앞의 큐(버퍼라고도 함)는 용량이 한정되어 있습니다.
    • 전체 대기열에 도착하는 패킷이 삭제됨(일명 손실)
    • 손실된 패킷은 소스 끝시스템에 의해서, 이전 노드에 의해 재전송될 수 있습니다. 또는 안그럴수도 있다.
    • 그래서 웹은 TCP 사용해서 도착확인을 받는다.

Throughtput

  1. Throughput(bottleneck link로 결정)
    • 처리량: 발신자에서 송신자로 비트가 전송되는 속도(비트/시간 단위)
    • instantaneous 순간: 주어진 시점에서의 속도
    • Average 평균: 장기간에 걸친 비율
    • Server → pip로 bit 전송 → pipe(R:sever data rate) → 라우터 → pipe(R:client data rate) → Client (빨라도 가득 채울수 없다!)
      • bottleneck link: end-end throughput(S→C)을 제한하는 end-end 경로의 링크 → sever data rate가 client data rate보다 크든작든 보내지는 데이터비율은 같다.
      • 즉, bottleneck link에 의해 average throughput이 줄었다 (작은 R로 bottleneck 결정)
        • 10개가 연결된 링크일 경우 (보통은 Rc가 작거나 Rs가 몰리면 회선이 나눠진다)
        • 연결당 최종 throughput: min(Rc,Rs,R/10)
        • 실제로는 Rc 혹은 Rs가 bottleneck이다.

bottleneck link

layering 큰그림, service models

  1. protocal
    • layers / reference models
      • 많은 조각들로 네트워크는 복잡하다!
        • hosts, routers, links of various media, applications, protocols, hardware, software
    • example (organization of air travel)
      • ticket → baggage → gates → runway takeoff → airplane routing → airplane routing → airplane routing → runway takeoff → gates → baggage → ticket
      • layers : 각각의 계층은 서비스를 실행한다.
        • 자체 내부 레이어 작업을 통해
        • 아래 계층에서 제공하는 서비스에 의존
    • 왜 계층화하는가?
      • 복잡한 시스템 다루기:
        • 명시적 구조는 복잡한 시스템의 조각의 식별, 관계를 허용합니다. → 토론을 위한 계층화된 참조 모델
      • 모듈화로 유지보수, 시스템 업데이트 용이
        • 계층의 서비스 구현 변경: 나머지 부분에 투명 체계
        • 예: 게이트 절차의 변경은 시스템의 나머지 부분에 영향을 미치지 않습니다.
      • 겹겹이 해로운 것으로 간주됩니까?
        • 중복적인 데이터를 담을 수 있다. (time stamp, 자기계층데이터만 볼수 있음 하지만 중복데이터가 많아질수록 time stamp 즉, 패킷 길이도 증가)
      • 다른 복잡한 시스템의 계층화?
    • Internet protocol stack
      • 최근은 5계층이고 TCP/IP protocol stack 관점에서는 link와 physical 합쳐서 4 stack으로 본다! (예전 IOS/OSI reference model은 7stack)

      • application: 네트워크 애플리케이션 지원
        • IMAP(이메일), SMTP(이메일) , HTTP(web)
      • transport: 프로세스-프로세스 데이터 전송
        • TCP(운영체제:전송/관리), UDP
      • network: 출발지에서 도착지까지 데이터그램의 routing
        • IP, routing protocols
      • link: 이웃하는 네트워크 요소간의 데이터 전송 (점프(hop)를 위한 책임 계층)
        • 이더넷, 802.11(WiFi), PPP(point to point protocol)
      • physical: "on the wire"(전선에) bit
    • ISO/OSI reference model
      • presentation
        • 응용 프로그램이 데이터의 의미 해석,
        • 예: 암호화, 압축,기계별 규칙
      • session
        • 동기화, 체크포인트, 데이터 복구 교환 → 응용계층에서도 가능
      • 인터넷 스택이 "누락" 레이어!
        • 만약 필요하다면 이 서비스들은 application에 실행되어야만 한다.
        • 필요할까?
    • 캡슐화
    • link은 다음 router 알려주고 physical은 전선으로 bit 보내주고 switch는 link, physical로 정보를 가져가지만 다음 router은 network로 받고 link physical을 추가해준다.

security 공격 위험

  1. network security
    • 네트워크 보안 분야:
      • 나쁜 사람이 컴퓨터 네트워크를 공격할 수 있는 방법
      • 공격으로부터 네트워크를 방어하는 방법 (감지후 측정)
      • 공격에 내성이 있는 아키텍처(하드웨어 구조)를 설계하는 방법
    • 인터넷은 원래 (많은) 보안으로 설계되지 않았습니다.
      • 원래의 비전: "상호 신뢰하는 사용자 그룹 투명한 네트워크”
      • "추격(catch-up)"을 하는 인터넷 프로토콜 설계자
      • 모든 계층의 보안 고려 사항!
  2. 나쁜 해커
    • malware
      • 맬웨어는 바이러스, 웜을 통해 호스트에 들어갈 수 있습니다.
        • 바이러스: 개체를 수신/실행하여 자가 복제 감염 (예: 이메일 첨부)
        • 웜: 수동적으로 스스로 실행되서 개체를 수신받아 자가 복제 감염
      • 스파이웨어 맬웨어는 키 입력, 방문한 웹 사이트, 수집 사이트에 대한 정보 업로드를 기록할 수 있습니다.
      • 감염된 호스트는 스팸 또는 분산 서비스 거부(DDoS) 공격를 위해 사용되는 봇넷에 등록될수 있다.
    • denial of service
      • 서비스 거부(DoS): 공격자는 가짜 트래픽으로 리소스를 압도하여 합법적인 트래픽에서 리소스를 사용할 수 없도록 만듭니다.
      1. 대상 선택 (DDoS 공격대상)
      2. 네트워크 주변 호스트에 침입 (봇넷 참조)
      3. 손상된 호스트에서 공격 대상으로 패킷 보내기
    • packet interception
      • 패킷 스니핑(sniffing)
        • 방송매체 ****(공유 이더넷, 무선)
        • 무차별 네트워크 인터페이스는 지나가는 모든 패킷을 읽고/기록합니다(예: 비밀번호 포함)
          • wireshark software : (무료) 패킷 스니퍼입니다.
    • fake identity
      • IP spoofing : 거짓된 출발 주소와 함께 보내는 패킷 (C가 “src(B) + dest(A) + payload” 패킷 A에게 전송) → C가 B에게 Dos 공격

history

  1. Internet history
    • 1961-1972: 초기 패킷 교환 원리
      • 1961: Kleinrock - 대기열 이론은 패킷 스위칭의 효과를 보여줍니다
      • 1964: Baran - 군용 그물에 패킷 교환
      • 1967: 고급 연구 프로젝트 대행사에 의해 구상된 ARPAnet
      • 1969년: 최초의 ARPAnet 노드 운영
      • 1972년:
        • ARPAnet 공개 데모
        • NCP(네트워크 제어 프로토콜) 첫 번째 호스트-호스트 프로토콜
        • 최초의 이메일 프로그램
        • ARPAnet에는 15개의 노드가 있습니다.
    • 1972-1980 : 인터네트워킹, 신규 및 독점 네트
      • 1970: 하와이에서 ALOHAnet 위성 네트워크
      • 1974: Cerf와 Kahn - 네트워크 연결용 아키텍쳐
        • 미니멀리즘(외부접근 감소), 자율성 - 네트워크 상호연결이 필요되는 내부 변경 아님
        • best-effort service model (lose 보장안한다)
        • stateless routing (경로 고착하지 않는다.)
        • 분산 제어 (군산적 제어 증가) 오늘날의 인터넷 아키텍처 정의
      • 1976: Xerox PARC의 Ethernet
      • 70년대 후반: 독점 아키텍처: DECnet, SNA, XNA
      • 70년대 후반: 고정 패킷길이 전환 (ATM 전구체)
      • 1979년: ARPAnet에는 200개의 노드가 있습니다.
    • 1990,2000 : 상용화, 웹, 새로운 애플리케이션
      • 1990년대 초: ARPAnet 퇴역
      • 1991년: NSF는 NSFnet의 상업적 사용 (1995년 퇴역)
      • 1990년대 초반: 웹
        • 하이퍼텍스트 [Bush 1945, Nelson 1960's]
        • HTML, HTTP: Berners-Lee
        • 1994년: Mosaic, 이후 Netscape
        • 1990년대 후반: 웹의 상용화
      • 1990년대 후반 – 2000년대:
        • 더 많은 keller 앱: instant 메시징, P2P 파일 공유
        • 네트워크 보안 최우선
        • 예상 호스트 5천만 명, 1억 명 이상 사용자
        • Gbps에서 실행되는 backbone 링크
    • 2005-현재: 더 많은 새로운 애플리케이션, 인터넷은 "어디서나"
      • 인터넷에 연결된 ~180억 장치(2017)
        • 스마트폰의 증가(iPhone: 2007)
      • 광대역 액세스의 적극적인 배포
      • 고속 무선 접속의 보편화: 4G/5G, WiFi
      • 온라인 소셜 네트워크의 출현:
        • Facebook: ~ 25억 사용자
      • 서비스 제공자(Google, FB, Microsoft)는 자체 네트워크를 생성합니다.
        • 검색, 비디오 콘텐츠에 대한 "즉각적인" 액세스 제공하면서 최종 사용자에게 "가까운" 연결하는 우회 상용 인터넷
      • 기업은 "클라우드"에서 서비스를 실행합니다(예: Amazon Web Services, 마이크로소프트 애저)