π 2.1 λ€νΈμν¬ μ ν리μΌμ΄μ
μ μ리
- λ€νΈμν¬ μ½μ΄λ₯Ό λͺ°λΌλ μ’
λ¨ μμ€ν
μμ λμνκ³ λ€νΈμν¬λ₯Ό ν΅ν΄ μλ‘ ν΅μ νλ νλ‘κ·Έλ¨μ μμ±νλ©΄ λλ€.
- μλ₯Ό λ€μ΄, μΉ μ ν리μΌμ΄μ
μλ μλ²μ ν΄λΌμ΄μΈνΈλ‘ ꡬλ³λλ€.
2.1.1 λ€νΈμν¬ μ ν리μΌμ΄μ
ꡬ쑰
- μ ν리μΌμ΄μ
ꡬ쑰 : μ ν리μΌμ΄μ
κ°λ°μμ μν΄ μ€κ³λκ³ μ’
λ¨ μμ€ν
μμ μ΄λ»κ² μ‘°μλμ΄μΌ νλμ§ μ§μνλ€.
- ν΄λΌμ΄μΈνΈ-μλ² κ΅¬μ‘°
- μλ²(Server) : νμ μΌμ Έ μλ νΈμ€νΈ
- ν΄λΌμ΄μΈνΈ(Client) : μλ²μ μμ²νλ νΈμ€νΈ
- μ§μ ν΅μ X -> ν¨ν·μ 보λ΄μ ν΅μ νλ€.
- νλμ μλ² νΈμ€νΈλ ν΄λΌμ΄μΈνΈμ λͺ¨λ μμ² μλ΅ λΆκ° -> λ°μ΄ν° μΌν° μ¬μ© (κ°μ μλ² μμ±)
- P2P ꡬ쑰 : νΌμ΄(Peer)λΌλ κ°νμ μΌλ‘ μ°κ²°λ νΈμ€νΈ μμ΄ μ§μ ν΅μ νλ€.
- μλ²μ μ΅μ(νΉμ μ ν μμ‘΄ X)
- μκ° νμ₯μ±(self-scalability)λ₯Ό κ°λλ€.
-> peerκ° λ€λ₯Έ peerμκ²λ‘ μ¦μ
2.1.2 νλ‘μΈμ€ κ° ν΅μ
-
ν΅μ νλ‘μΈμ€κ° κ°μ μ’
λ¨ μμ€ν
μμ ν΅μ νλ€.
-> 무μμ ν΅ν΄? λ©μΈμ§(Message)
-
ν΄λΌμ΄μΈνΈμ μλ² νλ‘μΈμ€
-> λ€νΈμν¬ μ ν리μΌμ΄μ
μ λ€νΈμν¬μμ μλ‘ λ©μμ§λ₯Ό 보λ΄λ λ νλ‘μΈμ€λ‘ ꡬμ±λλ€.
μλ₯Ό λ€μ΄, μΉ μ ν리μΌμ΄μ
μμ ν΄λΌμ΄μΈνΈ λΈλΌμ°μ νλ‘μΈμ€ - μΉ μλ² νλ‘μΈμ€μ λ©μΈμ§λ‘ ν΅μ νλ€.
- λ νλ‘μΈμ€ κ°μ ν΅μ μΈμ
μμ ν΅μ μ μ΄κΈ°ν(λ€λ₯Έ νλ‘μΈμ€μ μΈμ
μ μμνλ €κ³ μ μμ μ΄κΈ°ν)νλ νλ‘μΈμ€λ₯Ό
ν΄λΌμ΄μΈνΈ
λΌνκ³ μΈμ
μ μμνκΈ° μν΄ μ μμ κΈ°λ€λ¦¬λ νλ‘μΈμ€λ₯Ό μλ²
λΌκ³ νλ€.
-
νλ‘μΈμ€μ μ»΄ν¨ν° λ€νΈμν¬ μ¬μ΄μ μΈν°νμ΄μ€
- νλ‘μΈμ€λ
μμΌ(socket)
μ ν΅ν΄ λ€νΈμν¬λ‘ λ©μμ§λ₯Ό μ£Όκ³ λ°λλ€.
- νλ‘μΈμ€λ μ§(house)μ΄κ³ μμΌμ μΆμ
ꡬ(door)λ‘ λΉμ λλ€.
-> νλ‘μΈμ€κ° λ©μμ§λ₯Ό λ€λ₯Έ νΈμ€νΈμ νλ‘μΈμ€λ‘ 보λ΄κ³ μΆμ λοΌκ·Έκ²μ μΆμ
ꡬ(μμΌ) λ°κΉ₯ λ€νΈμν¬λ‘ λ©μμ§λ₯Ό λ°μ΄λΈλ€.
- μμΌμ νΈμ€νΈμ μ ν리μΌμ΄μ
κ³μΈ΅κ³Ό νΈλμ€ν¬νΈ κ³μΈ΅ κ°μ
μΈν°νμ΄μ€
λ€.
-> μ ν리μΌμ΄μ
κ³Ό λ€νΈμν¬ μ¬μ΄μ API
(Application Programming Interface)λΌκ³ λ νλ€.
- μ ν리μΌμ΄μ
κ°λ°μλ μμΌμ νΈλμ€ν¬νΈ κ³μΈ΅μ λν λλΆλΆμ ν΅μ κΆμ κ°μ§ λͺ»νλ€.
κ·Έλ¬λ, λκ°μ§ ν΅μ κΆμ κ°λλ€.
- νΈλμ€ν¬νΈ νλ‘ν μ½μ μ ν
- μ΅λ λ²νΌμ μ΅λ μΈκ·Έλ¨ΌνΈ ν¬κΈ°μ κ°μ νΈλμ€ν¬νΈ κ³μΈ΅ 맀κ°λ³μμ μ€μ
-> 보ν΅μ μ΄μ체μ μμ μ ν¨
-
νλ‘μΈμ€ μ£Όμ λ°°μ
- ν¨ν·μ μμ νλ‘μΈμ€μ 보λ΄κΈ° μν΄μ λκ°μ§λ₯Ό μμμΌ νλ€.
- νΈμ€νΈ μλ³μ ->
IPμ£Όμ
- λͺ©μ μ§ νΈμ€νΈ λ΄μ μμ νλ‘μΈμ€ μλ³μ ->
Portλ²νΈ
2.1.3 μ ν리μΌμ΄μ
μ΄ μ΄μ© κ°λ₯ν νΈλμ€ν¬νΈ μλΉμ€
- μ λ’°μ λ°μ΄ν° μ μ‘
- μ²λ¦¬μ¨
- μκ°
- 보μ
- μ λ’°μ λ°μ΄ν° μ μ‘
- ν¨ν·λ€μ μ»΄ν¨ν° λ€νΈμν¬ λ΄μμ μμ€λ μ μλ€.
-> λΌμ°ν° λ²νΌ μ€λ²νλ‘μ°, ν¨ν·μ λΉνΈκ° μλͺ»λλ©΄ νΈμ€νΈ νΉμ λΌμ°ν°μμ λ²λ €μ§ μ μλ€.
- νΈλμ€ν¬νΈμ νΉμ νλ‘ν μ½μ΄ 보μ₯λλ€λ©΄ μ λ’°μ λ°μ΄ν° μ μ‘μ μ ν리μΌμ΄μ
μκ² μ 곡νλ€.
- μ²λ¦¬λ
- ν΅μ μΈμ
μμ μ‘μ νλ‘μΈμ€κ° μμ νλ‘μΈμ€λ‘ λΉνΈλ₯Ό μ λ¬ν μ μλ λΉμ¨μ λνλΈλ€.
- κ°μ© κ°λ₯ν μ²λ¦¬μ¨μ μκ°μ λ°λΌ λ³λλλ€.
-> νΈλνΈν¬νΈ νλ‘ν μ½μ μ΄λ₯Ό κ΄μ°°νμ¬ κ°μ© μ²λ¦¬μ¨μ μ 곡νλ€.
- λ§μ½ μ ν리μΌμ΄μ
μ΄ νμλ‘ νλ μ²λ¦¬μ¨μ μ 곡ν μ μλ€λ©΄
λμν λ―Όκ° μ ν리μΌμ΄μ
(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 μ ν리μΌμ΄μ
κ³μΈ΅ νλ‘ν μ½
λ©μμ§λ μ΄λ»κ² ꡬμ±λλκ°? λ©μμ§μ μ¬λ¬ νλκ° μλ―Ένλ κ²μ 무μμΈκ°? νλ‘μΈμ€λ λ©μμ§λ₯Ό μΈμ 보λ΄λκ°?
-> μ ν리μΌμ΄μ
κ³μΈ΅ νλ‘ν μ½μ μ ν리μΌμ΄μ
μ νλ‘μΈμ€κ° μλ‘ λ©μμ§λ₯Ό 보λ΄λ λ°©λ²μ μ μνλ€.
- κ΅ν λ©μμ§ νμ
(μ: μμ² λ©μμ§μ μλ΅ λ©μμ§)
- μ¬λ¬ λ©μμ§ νμ
μ λ¬Έλ²(μ: λ©μμ§ λ΄λΆμ νλμ νλ κ°μ κ΅¬λ³ λ°©λ²)
- νλμ μλ―Έ, μ¦ νλμ μλ μ 보μ μλ―Έ
- μΈμ , μ΄λ»κ² νλ‘μΈμ€κ° λ©μμ§λ₯Ό μ μ‘νκ³ λ©μμ§μ μλ΅νλμ§ κ²°μ νλ κ·μΉ
μ ν리μΌμ΄μ
κ³μΈ΅ νλ‘ν μ½μ RFCμ λͺ
μλμ΄ μλ€.