πŸ“ŒChapter 2. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측

λͺ¨κΉ…Β·2023λ…„ 11μ›” 20일
0

πŸ“– 2.1 λ„€νŠΈμ›Œν¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 원리

  • λ„€νŠΈμ›Œν¬ μ½”μ–΄λ₯Ό λͺ°λΌλ„ 쒅단 μ‹œμŠ€ν…œμ—μ„œ λ™μž‘ν•˜κ³  λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ„œλ‘œ ν†΅μ‹ ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λ©΄ λœλ‹€.
  • 예λ₯Ό λ“€μ–΄, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈλ‘œ κ΅¬λ³„λœλ‹€.

2.1.1 λ„€νŠΈμ›Œν¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ쑰

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ쑰 : μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžμ— μ˜ν•΄ μ„€κ³„λ˜κ³  쒅단 μ‹œμŠ€ν…œμ—μ„œ μ–΄λ–»κ²Œ μ‘°μž‘λ˜μ–΄μ•Ό ν•˜λŠ”μ§€ μ§€μ‹œν•œλ‹€.
  1. ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„ ꡬ쑰
    • μ„œλ²„(Server) : 항상 켜져 μžˆλŠ” 호슀트
    • ν΄λΌμ΄μ–ΈνŠΈ(Client) : μ„œλ²„μ— μš”μ²­ν•˜λŠ” 호슀트
    • 직접 톡신 X -> νŒ¨ν‚·μ„ λ³΄λ‚΄μ„œ ν†΅μ‹ ν•œλ‹€.
    • ν•˜λ‚˜μ˜ μ„œλ²„ ν˜ΈμŠ€νŠΈλŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ λͺ¨λ“  μš”μ²­ 응닡 λΆˆκ°€ -> 데이터 μ„Όν„° μ‚¬μš© (가상 μ„œλ²„ 생성)
  1. P2P ꡬ쑰 : ν”Όμ–΄(Peer)λΌλŠ” κ°„ν—μ μœΌλ‘œ μ—°κ²°λœ 호슀트 쌍이 직접 ν†΅μ‹ ν•œλ‹€.
    • μ„œλ²„μ— μ΅œμ†Œ(ν˜Ήμ€ μ „ν˜€ 의쑴 X)
    • μžκ°€ ν™•μž₯μ„±(self-scalability)λ₯Ό κ°–λŠ”λ‹€.
      -> peerκ°€ λ‹€λ₯Έ peerμ—κ²Œλ‘œ 증식

2.1.2 ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신

  • 톡신 ν”„λ‘œμ„ΈμŠ€κ°€ 같은 쒅단 μ‹œμŠ€ν…œμ—μ„œ ν†΅μ‹ ν•œλ‹€.
    -> 무엇을 톡해? 메세지(Message)

  • ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ ν”„λ‘œμ„ΈμŠ€
    -> λ„€νŠΈμ›Œν¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ λ„€νŠΈμ›Œν¬μ—μ„œ μ„œλ‘œ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” 두 ν”„λ‘œμ„ΈμŠ€λ‘œ κ΅¬μ„±λœλ‹€.
    예λ₯Ό λ“€μ–΄, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈ λΈŒλΌμš°μ € ν”„λ‘œμ„ΈμŠ€ - μ›Ή μ„œλ²„ ν”„λ‘œμ„ΈμŠ€μ™€ λ©”μ„Έμ§€λ‘œ ν†΅μ‹ ν•œλ‹€.

    • 두 ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ 톡신 μ„Έμ…˜μ—μ„œ 톡신을 μ΄ˆκΈ°ν™”(λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ μ„Έμ…˜μ„ μ‹œμž‘ν•˜λ €κ³  접속을 μ΄ˆκΈ°ν™”)ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈλΌν•˜κ³  μ„Έμ…˜μ„ μ‹œμž‘ν•˜κΈ° μœ„ν•΄ 접속을 κΈ°λ‹€λ¦¬λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ„œλ²„λΌκ³  ν•œλ‹€.
  • ν”„λ‘œμ„ΈμŠ€μ™€ 컴퓨터 λ„€νŠΈμ›Œν¬ μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€

    • ν”„λ‘œμ„ΈμŠ€λŠ” μ†ŒμΌ“(socket)을 톡해 λ„€νŠΈμ›Œν¬λ‘œ λ©”μ‹œμ§€λ₯Ό μ£Όκ³  λ°›λŠ”λ‹€.
    • ν”„λ‘œμ„ΈμŠ€λŠ” 집(house)이고 μ†ŒμΌ“μ€ μΆœμž…κ΅¬(door)둜 λΉ„μœ λœλ‹€.
      -> ν”„λ‘œμ„ΈμŠ€κ°€ λ©”μ‹œμ§€λ₯Ό λ‹€λ₯Έ 호슀트의 ν”„λ‘œμ„ΈμŠ€λ‘œ 보내고 싢을 λ•ŒοΌŒκ·Έκ²ƒμ€ μΆœμž…κ΅¬(μ†ŒμΌ“) λ°”κΉ₯ λ„€νŠΈμ›Œν¬λ‘œ λ©”μ‹œμ§€λ₯Ό λ°€μ–΄λ‚Έλ‹€.
    • μ†ŒμΌ“μ€ 호슀트의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측과 트랜슀포트 계측 κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€λ‹€.
      -> μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λ„€νŠΈμ›Œν¬ μ‚¬μ΄μ˜ API (Application Programming Interface)라고도 ν•œλ‹€.
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžλŠ” μ†ŒμΌ“μ˜ 트랜슀포트 계측에 λŒ€ν•œ λŒ€λΆ€λΆ„μ˜ ν†΅μ œκΆŒμ€ 갖지 λͺ»ν•œλ‹€.
      κ·ΈλŸ¬λ‚˜, 두가지 ν†΅μ œκΆŒμ„ κ°–λŠ”λ‹€.
      1. 트랜슀포트 ν”„λ‘œν† μ½œμ˜ 선택
      2. μ΅œλŒ€ 버퍼와 μ΅œλŒ€ μ„Έκ·Έλ¨ΌνŠΈ 크기와 같은 트랜슀포트 계측 λ§€κ°œλ³€μˆ˜μ˜ μ„€μ •
        -> 보톡은 μš΄μ˜μ²΄μ œμ—μ„œ 정함

  • ν”„λ‘œμ„ΈμŠ€ μ£Όμ†Œ λ°°μ •

    • νŒ¨ν‚·μ„ μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€μ— 보내기 μœ„ν•΄μ„œ 두가지λ₯Ό μ•Œμ•„μ•Ό ν•œλ‹€.
      1. 호슀트 μ‹λ³„μž -> IPμ£Όμ†Œ
      2. λͺ©μ μ§€ 호슀트 λ‚΄μ˜ μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€ μ‹λ³„μž -> Port번호

2.1.3 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 이용 κ°€λŠ₯ν•œ 트랜슀포트 μ„œλΉ„μŠ€

  1. 신뒰적 데이터 전솑
  2. 처리율
  3. μ‹œκ°„
  4. λ³΄μ•ˆ
  • 신뒰적 데이터 전솑
    • νŒ¨ν‚·λ“€μ€ 컴퓨터 λ„€νŠΈμ›Œν¬ λ‚΄μ—μ„œ 손싀될 수 μžˆλ‹€.
      -> λΌμš°ν„° 버퍼 μ˜€λ²„ν”Œλ‘œμš°, νŒ¨ν‚·μ˜ λΉ„νŠΈκ°€ 잘λͺ»λ˜λ©΄ 호슀트 ν˜Ήμ€ λΌμš°ν„°μ—μ„œ λ²„λ €μ§ˆ 수 μžˆλ‹€.
    • 트랜슀포트의 νŠΉμ • ν”„λ‘œν† μ½œμ΄ 보μž₯λœλ‹€λ©΄ 신뒰적 데이터 전솑을 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—κ²Œ μ œκ³΅ν•œλ‹€.
  • μ²˜λ¦¬λŸ‰
    • 톡신 μ„Έμ…˜μ—μ„œ 솑신 ν”„λ‘œμ„ΈμŠ€κ°€ μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€λ‘œ λΉ„νŠΈλ₯Ό 전달할 수 μžˆλŠ” λΉ„μœ¨μ„ λ‚˜νƒ€λ‚Έλ‹€.
    • κ°€μš© κ°€λŠ₯ν•œ μ²˜λ¦¬μœ¨μ€ μ‹œκ°„μ— 따라 λ³€λ™λœλ‹€.
      -> 트랜트포트 ν”„λ‘œν† μ½œμ€ 이λ₯Ό κ΄€μ°°ν•˜μ—¬ κ°€μš© μ²˜λ¦¬μœ¨μ„ μ œκ³΅ν•œλ‹€.
    • λ§Œμ•½ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν•„μš”λ‘œ ν•˜λŠ” μ²˜λ¦¬μœ¨μ„ μ œκ³΅ν•  수 μ—†λ‹€λ©΄ λŒ€μ—­ν­ 민감 μ• ν”Œλ¦¬μΌ€μ΄μ…˜(bandwidth-sensitive application)이라고 ν•œλ‹€.
    • λ°˜λŒ€λ‘œ 처리율과 상관 μ—†λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λΌλ©΄ 탄λ ₯적 μ• ν”Œλ¦¬μΌ€μ΄μ…˜(elastic application)이라고 ν•œλ‹€.
  • μ‹œκ°„
  • λ³΄μ•ˆ
    • 솑신 ν˜ΈμŠ€νŠΈμ—μ„œ 트랜슀포트 ν”„λ‘œν† μ½œμ€ 솑신 ν”„λ‘œμ„ΈμŠ€κ°€ μ „μ†‘ν•˜λŠ” λͺ¨λ“  데이터λ₯Ό μ•”ν˜Έν™”ν•  수 있고
    • μˆ˜μ‹  ν˜ΈμŠ€νŠΈμ—μ„œ 트랜슀포트 ν”„λ‘œν† μ½œμ€ κ·Έ 데이터λ₯Ό μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€λ‘œ μ „λ‹¬ν•˜κΈ° 전에 λ°μ΄ν„°μ˜ μ•”ν˜Έλ₯Ό 해독할 수 μžˆλ‹€.

2.1.4 인터넷 전솑 ν”„λ‘œν† μ½œμ΄ μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€

인터넷(그리고 일반적인 TCP/IP λ„€νŠΈμ›Œν¬)은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—κ²Œ 2개 의 전솑 ν”„λ‘œν† μ½œ, 즉 UDP (User Datagram Protocol)와 TCP (Transmission Control Protocol)λ₯Ό μ œκ³΅ν•œλ‹€.

  • TCP μ„œλΉ„μŠ€
    • 연결지ν–₯ν˜• μ„œλΉ„μŠ€
      μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜κΈ° 전에 TCPλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ μ„œλ‘œ 전솑 μ œμ–΄ 정보λ₯Ό κ΅ν™˜ν•˜λ„λ‘ ν•œλ‹€. 이 ν•Έλ“œμ„Έμ΄ν‚Ή 과정이 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„μ— νŒ¨ν‚·μ΄ 곧 도달할 κ²ƒμ΄λ‹ˆ μ€€λΉ„ν•˜λΌκ³  μ•Œλ € μ£ΌλŠ” 역할을 ν•œλ‹€.
      -> TCP 연결이 두 ν”„λ‘œμ„ΈμŠ€μ˜ μ†ŒμΌ“ 사이에 μ‘΄μž¬ν•œλ‹€κ³  μ–˜κΈ°ν•œλ‹€.
      -> μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ©”μ‹œμ§€ 전솑을 마치면 연결을 λŠμ–΄μ•Ό ν•œλ‹€.

    • 신뒰적인 데이터 전솑 μ„œλΉ„μŠ€
      톡신 ν”„λ‘œμ„ΈμŠ€λŠ” λͺ¨λ“  데이터λ₯Ό 였λ₯˜ 없이 μ˜¬λ°”λ₯Έ μˆœμ„œλ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•΄ TCP에 μ˜μ‘΄ν•œλ‹€. TCPλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν•œμͺ½μ΄ λ°”μ΄νŠΈ μŠ€νŠΈλ¦Όμ„ μ†ŒμΌ“μœΌλ‘œ μ „λ‹¬ν•˜λ©΄ κ·Έ λ°”μ΄νŠΈ μŠ€νŠΈλ¦Όμ„ μ†μ‹€ν•˜κ±°λ‚˜ μ€‘λ³΅λ˜μ§€ μ•Šκ²Œ μˆ˜μ‹  μ†ŒμΌ“μœΌλ‘œ μ „λ‹¬ν•œλ‹€.

    • ν˜Όμž‘μ œμ–΄ 방식, 즉 ν†΅μ‹ ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 직접 μ΄λ“λ³΄λ‹€λŠ” μΈν„°λ„·μ˜ 전체 μ„±λŠ₯ ν–₯상을 μœ„ν•œ μ„œλΉ„μŠ€λ₯Ό ν¬ν•¨ν•œλ‹€.

  • λ³΄μ•ˆ TCP
    • TCPλ₯Ό κ°•ν™”ν•œ SSL (Secure Sockets Layer)을 κ°œλ°œν•˜μ˜€λ‹€. SSL둜 κ°•ν™”λœ TCPλŠ” 전톡
      적인 TCPκ°€ ν•˜λŠ” λͺ¨λ“  것을 ν•  뿐만 μ•„λ‹ˆλΌ μ•”ν˜Έν™”, 데이터 무결성 그리고 쒅단 인증을 ν¬ν•¨νžˆλŠ”
      μ€‘μš”ν•œ ν”„λ‘œμ„ΈμŠ€ λŒ€ν”„λ‘œμ„ΈμŠ€ λ³΄μ•ˆ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€.
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ³„μΈ΅μ—μ„œ TCPλ₯Ό κ°•ν™”ν•œ 것이닀.

  • UDP μ„œλΉ„μŠ€
    • UDPλŠ” μ΅œμ†Œμ˜ μ„œλΉ„μŠ€ λͺ¨λΈμ„ 가진 κ°„λ‹¨ν•œ 전솑 ν”„λ‘œν† μ½œμ΄λ‹€
      -> λΉ„μ—°κ²°ν˜•, ν•Έλ“œμ…°μ΄ν‚Ή X, μ‹ λ’°μ„± X, ν˜Όμž‘μ œμ–΄ X

2.1.5 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 ν”„λ‘œν† μ½œ

λ©”μ‹œμ§€λŠ” μ–΄λ–»κ²Œ κ΅¬μ„±λ˜λŠ”κ°€? λ©”μ‹œμ§€μ˜ μ—¬λŸ¬ ν•„λ“œκ°€ μ˜λ―Έν•˜λŠ” 것은 무엇인가? ν”„λ‘œμ„ΈμŠ€λŠ” λ©”μ‹œμ§€λ₯Ό μ–Έμ œ λ³΄λ‚΄λŠ”κ°€?
-> μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 ν”„λ‘œν† μ½œμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μ„œλ‘œ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” 방법을 μ •μ˜ν•œλ‹€.

  1. κ΅ν™˜ λ©”μ‹œμ§€ νƒ€μž…(예: μš”μ²­ λ©”μ‹œμ§€μ™€ 응닡 λ©”μ‹œμ§€)
  2. μ—¬λŸ¬ λ©”μ‹œμ§€ νƒ€μž…μ˜ 문법(예: λ©”μ‹œμ§€ λ‚΄λΆ€μ˜ ν•„λ“œμ™€ ν•„λ“œ κ°„μ˜ ꡬ별 방법)
  3. ν•„λ“œμ˜ 의미, 즉 ν•„λ“œμ— μžˆλŠ” μ •λ³΄μ˜ 의미
  4. μ–Έμ œ, μ–΄λ–»κ²Œ ν”„λ‘œμ„ΈμŠ€κ°€ λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜κ³  λ©”μ‹œμ§€μ— μ‘λ‹΅ν•˜λŠ”μ§€ κ²°μ •ν•˜λŠ” κ·œμΉ™

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 ν”„λ‘œν† μ½œμ€ RFC에 λͺ…μ‹œλ˜μ–΄ μžˆλ‹€.

profile
λ©ˆμΆ”μ§€ μ•ŠκΈ°

0개의 λŒ“κΈ€