CS/데이터 톡신

1. Protocol Layering

🐳 Laboon 2024. 4. 22. 18:48
ν”„λ‘œν† μ½œμ΄ 뭘까?

 

ν”„λ‘œν† μ½œ(Protocol)은 ν†΅μ‹ μ—μ„œ μƒλŒ€λ°©κ³Ό ν†΅μ‹ ν•˜λŠ” 방법에 λŒ€ν•œ κ·œμ•½μ΄λ‹€. μ–΄λ–»κ²Œ 톡신할 것인지λ₯Ό 미리 사전에 μ •μ˜ν•΄λ†“κ³  κ·Έ 방식에 맞게 ν†΅μ‹ ν•˜λŠ” 것이닀. λ§Œμ•½, ν”„λ‘œν† μ½œμ΄ μ—†λ‹€κ³  κ°€μ •ν•΄λ³΄μž. 

A νšŒμ‚¬μ—μ„œ B νšŒμ‚¬λ‘œ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ”λ° κ·Έλƒ₯ 원본 κ·ΈλŒ€λ‘œ μ „μ†‘ν•œλ‹€. A νšŒμ‚¬λŠ” μ „μš© μš°νŽΈν•¨μ΄ μ‘΄μž¬ν•˜κ³  B νšŒμ‚¬λŠ” μš°νŽΈν•¨μ΄ λ”°λ‘œ μ—†λ‹€. B νšŒμ‚¬μ—μ„œ 데이터λ₯Ό 전달 받을 λ•Œ, μš°νŽΈν•¨μ΄ μ—†μ–΄μ„œ μ‚¬μš©μžμ—κ²Œ 직접 κ°€μ Έλ‹€ μ€˜μ•Όν•˜λŠ”λ° 우편 기사가 μ‘΄μž¬ν•œλ‹€λ©΄ ν•œ λͺ…, ν•œ λͺ…에 λŒ€ν•΄ 일일이 물어보고 κ°–λ‹€μ€˜μ•Όν•œλ‹€. λ§Œμ•½, B νšŒμ‚¬μ—λ„ μš°νŽΈν•¨μ΄ μ‘΄μž¬ν–ˆκ³  이 μš°νŽΈμ„ κ΄€λ¦¬ν•΄μ£ΌλŠ” μ‚¬λžŒμ΄ μ‘΄μž¬ν•œλ‹€λ©΄? μ•Œμ•„μ„œ λ‹€ 해쀄 것이닀. 컴퓨터 μž…μž₯μ—μ„œ λ³Έλ‹€λ©΄ 컴퓨터 μ‹œμŠ€ν…œμ΄ μ‚¬μš©μžλ₯Ό μ°ΎκΈ° μœ„ν•΄ λ‹€λ₯Έ μž‘μ—…μ„ μ²˜λ¦¬ν•˜μ§€ λͺ»ν•˜κ³  μ‹œκ°„μ„ λ‚­λΉ„ν•˜κ²Œ λœλ‹€λŠ” 것이닀. 

 

μ‹œλ‚˜λ¦¬μ˜€

κ·Έλ¦Ό A. First Scenario
κ·Έλ¦Ό B. Second Scenario

 

μœ„μ—μ„œ μ„€λͺ…ν–ˆλ“― 데이터 ν†΅μ‹ μ—μ„œλŠ” 톡신을 μœ„ν•œ Protocol을 μ •ν•΄μ•Ό ν•œλ‹€. 

Protocol을 μ •ν•˜κΈ° μœ„ν•œ 첫 번째 μ‹œλ‚˜λ¦¬μ˜€λ‘œ ν•œ κ³„μΈ΅μ—μ„œ 톡신을 ν•  κ²½μš°λ‹€. 이 κ²½μš°λŠ” μ‚¬μš©μž κ°„ 1:1둜 톡신을 ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. κ·Έλƒ₯ 원본 자체λ₯Ό νŠΉμ • μ‚¬μš©μžμ—κ²Œ κ·ΈλŒ€λ‘œ μ „λ‹¬ν•˜λŠ” 것이닀. 정말 λ‹¨μˆœν•˜κ³  쒋은 방법이라고 μƒκ°ν•œλ‹€.

 

그런데 첫 번째 μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ 문제점이 μƒκ²¨μ„œ 두 번째 μ‹œλ‚˜λ¦¬μ˜€κ°€ λ°œμƒν–ˆλ‹€.

λ§Œμ•½, 원본 파일이 μ€‘μš”ν•œ λ‚΄μš©μΌ 경우, μ€‘κ°„μ—μ„œ λˆ„κ΅°κ°€κ°€ νŒŒμΌμ„ 훔쳐볼 수 μžˆλ‹€λŠ” 것이닀. λ§Œμ•½, μš°νŽΈμ„ λ³΄λƒˆλŠ”λ° μš°νŽΈμ§€λ‘œ 동봉이 λ˜μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ λˆ„κ΅¬λ‚˜ κ·Έ λ‚΄μš©μ„ λ³Ό 수 μžˆλ‹€λŠ” 문제점과 λ™μΌν•˜λ‹€.

κ·Έλž˜μ„œ, 두 번째 μ‹œλ‚˜λ¦¬μ˜€μ—μ„œλŠ” 평문을 μ•”ν˜Έν™”ν•΄μ„œ λ³΄λ‚΄μžλŠ” 것이닀. ν•œ λ²ˆμ— λͺ¨λ“  κ³³μ—μ„œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ©΄ λ„ˆλ¬΄ λ§Žμ€ μ²˜λ¦¬κ°€ λ°œμƒν•˜λ‹ˆκΉŒ 각 계측을 λ‚˜λˆ„μ–΄ 평문을 μ•”ν˜Έν™”ν•˜κ³  μ „μ†‘ν•˜λŠ” 3개의 계측을 μƒκ°ν•˜κ²Œ 된 것이닀.

 

Principle

 

μ‹œλ‚˜λ¦¬μ˜€λŒ€λ‘œ ν”„λ‘œν† μ½œμ„ μ •ν•œλ‹€λ©΄ 2κ°€μ§€ 원칙이 ν•„μš”ν•˜λ‹€.

 

  • μ–‘λ°©ν–₯ 톡신을 ν•˜κ³  μ‹Άλ‹€λ©΄ 각 계측(Layer)λŠ” 두 κ°€μ§€ 일을 μˆ˜ν–‰ν•΄μ•Όν•œλ‹€.
    • 3 κ³„μΈ΅μ—μ„œ 평문을 μž‘μ„±ν•  수 μžˆλ‹€λ©΄, 읽을 수 μžˆμ–΄μ•Ό ν•˜κ³ 
    • 2 κ³„μΈ΅μ—μ„œ μ•”ν˜Έν™”λ₯Ό ν•  수 μžˆλ‹€λ©΄, λ³΅ν˜Έν™” ν•  수 μžˆμ–΄μ•Ό ν•˜κ³ 
    • 1 κ³„μΈ΅μ—μ„œ 솑신을 ν•  수 μžˆλ‹€λ©΄, μˆ˜μ‹ μ„ ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 점이닀.
  • 톡신을 ν•˜λ €λ©΄ μ–‘ μͺ½μ˜ 계측은 μ„œλ‘œ 동일해야 ν•œλ‹€λŠ” 점이닀.
    • Aμ—μ„œ 3계측 ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν–ˆλ‹€. Bμ—μ„œλŠ” 1계측 ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν–ˆλ‹€.
    • Aμ—μ„œ μ•”ν˜Έν™”λœ λ‚΄μš©μ€ Bμ—μ„œ μ–΄λ–»κ²Œ λ³΅ν˜Έν™”ν•˜μ§€?
    • Aμ—μ„œ μ†‘μ‹ ν•œ λ‚΄μš©μ€ Bκ°€ μ–΄λ–»κ²Œ λ°›μ§€?