λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT/Computer Science

[λͺ¨λ‘μ˜ λ„€νŠΈμ›Œν¬] 6μž₯. 전솑 계측: μ‹ λ’°ν•  수 μžˆλŠ” 데이터 μ „μ†‘ν•˜κΈ°

by λ¬΄λ…ˆ 2022. 3. 30.

πŸ“Œ 전솑 κ³„μΈ΅μ˜ μ—­ν• 

  • 전솑 계측은 데이터λ₯Ό μ œλŒ€λ‘œ μ „λ‹¬ν•˜λŠ” 역할을 ν•˜λ©°, 였λ₯˜λ₯Ό μ κ²€ν•˜λŠ” κΈ°λŠ₯
    • 전솑 계측: μ‹ λ’°ν•  수 μžˆλŠ” 데이터λ₯Ό 순차적으둜 μ „λ‹¬ν•˜λŠ” 역할을 ν•˜λ―€λ‘œ μƒμœ„ 계측듀이 데이터 μ „λ‹¬μ˜ μœ νš¨μ„±μ΄λ‚˜ νš¨μœ¨μ„±μ„ μ‹ κ²½ 쓰지 μ•Šλ„λ‘ ν•œλ‹€.
    • 데이터가 μ€‘λ³΅λ˜κ±°λ‚˜ λˆ„λ½λ˜μ§€ μ•Šκ³  였λ₯˜ 없이 μˆœμ„œμ— 맞게 μ „μ†‘λ˜λ„λ‘ 관리
  • 전솑 계측은 μ „μ†‘λœ λ°μ΄ν„°μ˜ λͺ©μ μ§€κ°€ μ–΄λ–€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μΈμ§€ 확인
  • μ—°κ²°ν˜• 톡신은 μ‹ λ’°ν•  수 있고 μ •ν™•ν•˜κ²Œ 데이터λ₯Ό μ „μ†‘ν•˜λŠ” 톡신 방식
    • μ—°κ²°ν˜•(connection-oriented): 데이터λ₯Ό κ΅ν™˜ν•˜κΈ° 전에 연결을 λ§Ίκ³  데이터λ₯Ό κ΅ν™˜ν•˜λŠ” λ™μ•ˆ 계속 연결을 κ΄€λ¦¬ν•˜λŠ” ν”„λ‘œν† μ½œμ˜ ν•œ ν˜•νƒœ
    • TCP(Transmission Control Protocol, 전솑 μ œμ–΄ ν”„λ‘œν† μ½œ)
  • λΉ„μ—°κ²°ν˜• 톡신은 신뒰성을 보μž₯ν•˜μ§€ μ•Šμ§€λ§Œ 효율적으둜 데이터λ₯Ό μ „μ†‘ν•˜λŠ” 방식
    • λΉ„μ—°κ²°ν˜•(connectionless): μ—°κ²°(connection)에 λŒ€ν•œ μ΄ˆκΈ°ν™” 과정이 μ—†λŠ” 톡신
    • UDP(User Datagram Protocol, μ‚¬μš©μž λ°μ΄ν„°κ·Έλž¨ ν”„λ‘œν† μ½œ)
  • λŒ€μ—­ν­: 정해진 μ‹œκ°„ λ™μ•ˆ 전솑될 수 μžˆλŠ” λ°μ΄ν„°μ˜ μ–‘(주둜 속도λ₯Ό 의미)을 의미. λŒ€μ—­ν­μ€ μ œν•œμ 

πŸ“Œ  TCP의 ꡬ쑰

  • 전솑 κ³„μΈ΅μ—λŠ” TCP 헀더가 λΆ™λŠ”λ‹€.
  • μ„Έκ·Έλ¨ΌνŠΈ: TCP 헀더가 뢙은 데이터
  • μ—°κ²°(connection)을 ν™•λ¦½ν•˜κΈ° μœ„ν•΄ TCP 헀더에 μžˆλŠ” μ½”λ“œ λΉ„νŠΈλ₯Ό μ‚¬μš©
    • μ—°κ²°: TCP ν†΅μ‹ μ—μ„œ 정보λ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” κ°€μƒμ˜ ν†΅μ‹ λ‘œλ‘œ 연결을 ν™•λ¦½ν•˜κ³  데이터λ₯Ό 전솑
  • 3-way ν•Έλ“œμ…°μ΄ν¬: TCP ν†΅μ‹ μ—μ„œ μ‚¬μš©ν•˜λŠ” 신뒰성을 μ œκ³΅ν•˜κΈ° μœ„ν•œ 톡신 방식
    • 컴퓨터 간에 연결을 λ§ΊκΈ° μœ„ν•œ μ΄ˆκΈ°ν™” κ³Όμ •μœΌλ‘œ μ„Έ λ‹¨κ³„λ‘œ λ˜μ–΄ μžˆμ–΄μ„œ three-way라 함.μ—°κ²° 확립을 μœ„ν•΄ νŒ¨ν‚· κ΅ν™˜μ„ μ„Έ 번 ν•˜λŠ”λ° 이λ₯Ό 3-way ν•Έλ“œμ…°μ΄ν¬λΌ 함.
  • 톡신을 ν•˜λ €λ©΄ 컴퓨터 2μ—κ²Œ ν—ˆκ°€λ₯Ό λ°›μ•„μ•Ό ν•˜λ―€λ‘œ, λ¨Όμ € 컴퓨터 1μ—μ„œ 컴퓨터 2둜 μ—°κ²° 확립 ν—ˆκ°€λ₯Ό λ°›κΈ° μœ„ν•œ μš”μ²­(SYN)을 보낸닀.
  • 컴퓨터 2λŠ” 컴퓨터 1이 보낸 μš”μ²­μ„ 받은 후에 ν—ˆκ°€ν•œλ‹€λŠ” 응닡을 νšŒμ‹ ν•˜κΈ° μœ„ν•΄ μ—°κ²° 확립 응닡(ACK)을 보낸닀. λ™μ‹œμ— 컴퓨터 2도 컴퓨터 1μ—κ²Œ 데이터 전솑 ν—ˆκ°€λ₯Ό λ°›κΈ° μœ„ν•΄ μ—°κ²° 확립 μš”μ²­(SYN)을 보낸닀.
  • 컴퓨터 2의 μš”μ²­μ„ 받은 컴퓨터 1은 컴퓨터 2둜 ν—ˆκ°€ν•œλ‹€λŠ” μ‘λ‹΅μœΌλ‘œ μ—°κ²° 확립 응닡(ACK)을 보낸닀
  • 연결을 확립할 λ•ŒλŠ” ‘SYN’κ³Ό ‘ACK’λ₯Ό μ‚¬μš©ν•˜κ³  연결을 μ’…λ£Œν•  λ•ŒλŠ” ‘FIN’κ³Ό ‘ACK’λ₯Ό μ‚¬μš©
  • μ—°κ²° μ’…λ£Œ
    • 컴퓨터 1μ—μ„œ 컴퓨터 2둜 μ—°κ²° μ’…λ£Œ μš”μ²­(FIN)을 보낸닀.
    • 컴퓨터 2μ—μ„œ 컴퓨터 1둜 μ—°κ²° μ’…λ£Œ 응닡(ACK)을 λ°˜ν™˜ν•œλ‹€.
    • λ˜ν•œ 컴퓨터 2μ—μ„œλ„ 컴퓨터 1둜 μ—°κ²° μ’…λ£Œ μš”μ²­(FIN)을 보낸닀.
    • 컴퓨터 1μ—μ„œ 컴퓨터 2둜 μ—°κ²° μ’…λ£Œ 응닡(ACK)을 λ°˜ν™˜ν•œλ‹€.

πŸ“Œ  μΌλ ¨λ²ˆν˜Έμ™€ 확인 응닡 번호의 ꡬ쑰

  • 3-way ν•Έλ“œμ„Έμ΄ν¬ 이후 데이터λ₯Ό 전솑할 λ•ŒλŠ” TCP ν—€λ”μ˜ μΌλ ¨λ²ˆν˜Έμ™€ 확인 응닡 λ²ˆν˜Έκ°€ μ‚¬μš©λ¨
    • 3-way ν•Έλ“œμ„Έμ΄ν¬λ₯Ό ν•˜λŠ” λ™μ•ˆ μ„œλ‘œμ˜ μœˆλ„μš° 크기 확인
  • μž¬μ „μ†‘ μ œμ–΄: 데이터λ₯Ό μž¬μ „μ†‘ν•˜λŠ” 것
  • 버퍼: μˆ˜μ‹ ν•œ μ„Έν¬λ¨ΌνŠΈ(데이터)λ₯Ό μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜λŠ” μž₯μ†Œ
  • μ˜€λ²„ν”Œλ‘œ: 데이터 크기가 버퍼 크기λ₯Ό λ„˜μ–΄μ„œλŠ” 것
  • μœˆλ„μš° 크기: 버퍼 μš©λŸ‰μ˜ 크기

πŸ“Œ  ν¬νŠΈ 번호의 ꡬ쑰

  • 포트 λ²ˆν˜ΈλŠ” μ–΄λ–€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μΈμ§€ κ΅¬λΆ„ν•˜λŠ” μ—­ν• 
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 각각 포트 λ²ˆν˜Έκ°€ μžˆμ–΄μ„œ λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό ꡬ뢄
    • 데이터λ₯Ό 전솑할 λ•ŒλŠ” μƒλŒ€λ°©μ˜ IP μ£Όμ†Œκ°€ ν•„μš”ν•˜μ§€λ§Œ, μ–΄λ–€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‚¬μš©λ˜κ³  μžˆλŠ”μ§€ κ΅¬λΆ„ν•˜λ €λ©΄ TCPλŠ” 포트 λ²ˆν˜Έκ°€ ν•„μš”
  • μ›Ή λΈŒλΌμš°μ €λ‘œ 접속할 λ•Œ μ›ΉλΈŒλΌμš°μ €μ—λŠ” μž„μ˜μ˜ ν¬νŠΈκ°€ μžλ™μœΌλ‘œ ν• λ‹Ήν¬νŠΈ λ²ˆν˜ΈλŠ” 0~65535λ²ˆμ„ μ‚¬μš©ν•œλ‹€. 0~1023λ²ˆμ€ 잘 μ•Œλ €μ§„ 포트(well-known ports)라고 ν•˜κ³  1025번 μ΄ν›„λŠ” 랜덀 포트라 ν•œλ‹€.

πŸ“Œ  UDP의 ꡬ쑰

  • UDPλŠ” 데이터λ₯Ό 효율적이고 λΉ λ₯΄κ²Œ 보낼 λ•Œ μ‚¬μš©λ˜λŠ” ν”„λ‘œν† μ½œ
  • UDPλŠ” UDP 헀더가 μžˆμ§€λ§Œ TCP 헀더에 λΉ„ν•΄ 간단
  • UDP λ°μ΄ν„°κ·Έλž¨: UDP 헀더가 μžˆλŠ” 데이터
  • UDPλŠ” λžœμ—μ„œ λΆˆνŠΉμ • λ‹€μˆ˜μ—κ²Œ λΈŒλ‘œλ“œμΊμŠ€νŠΈλ‘œ 데이터λ₯Ό 일괄 전솑
λ°˜μ‘ν˜•

λŒ“κΈ€