- toc {:toc}
Notice
Computer Networks κΈμ κ²½ν¬λνκ΅ μννΈμ¨μ΄μ΅ν©λν μ΄μ±μ κ΅μλμ [μ»΄ν¨ν° λ€νΈμν¬ CSE302] μμ μ κΈ°λ°μΌλ‘ μ 리ν λ΄μ©μ λλ€.
Socket Programming
-
Socket : IP Address + Port Number
-
μ»΄ν¨ν° λ€νΈμν¬μμ λ Έλ μ¬μ΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ λ΄λΆμ endpointλ₯Ό λ§νλ€.
-
Socket Programming : TCP/IP λ€νΈμν¬μ ν΅μ μ νλ κΈ°λ³Έμ μΈ κΈ°μ μ΄λ€.
- μμΌμ μλ°©ν₯ λλ¨ ν΅μ μ μ 곡νλ€.
- μμΌ μ°κ²°μ μ£Όλ‘ LAN λλ μΈν°λ·μ ν΅ν΄ λ κ°μ λ€λ₯Έ μ»΄ν¨ν° μ¬μ΄μμ μλνλ, νλμ μ»΄ν¨ν° μμμλ μνΈ ν΅μ νλλ° μ¬μ©λλ€.
-
μ ν΅μ μΈ μμΌ νλ‘κ·Έλλ°μ ν΄λΌμ΄μΈνΈ-μλ² μν€ν μ²λ₯Ό μ¬μ©νλ€.
- μμΌ μλ² : μΉμλ², μ΄λ©μΌ μλ²μ κ°μ΄ μ°κ²°λ λ€λ₯Έ νλ‘κ·Έλ¨μ μμ²μ λ£λ νλ‘κ·Έλ¨μ΄λ€.
- μμΌ ν΄λΌμ΄μΈνΈ : λ€λ₯Έ νλ‘κ·Έλ¨μ μ°κ²°μ νλ νλ‘κ·Έλ¨μ΄λ€.
-
μμΌ νλ‘κ·Έλλ° μ μ°¨
-
μλ²
- νμ μ΄μμμ΄μΌ νλ€.
- μ€μ νλ‘κ·Έλλ°μ κ²½μ°μ μ λ§ κ·Όλ³Έμ μΈ TCPμ μ€λ₯ κ²μΆκ³Ό κ°μ λΆλΆλ€μ λ€λ£¨μ§λ μλλ€. μμμ λ§λ€λΌ λ§νλ€.
- bind : μμΌμ μ¬μ©νκΈ° μν΄ IP, ν¬νΈλ₯Ό μ΄μ체μ μκ² μ§μ νλΌ λͺ λ Ή
- listen : ν΄λΌμ΄μΈνΈμ μμ²μ λκΈ°
-
ν΄λΌμ΄μΈνΈ
- μμΌμ λ§λ€κ³ μ°κ²° μμ² β μλ²κ° μλ½
-
μλ‘ ν΅μ μ μ§ννκ³ ν΄λΌμ΄μΈνΈκ° λ«μΌλ©΄ μλ²λ μ΄λ₯Ό λ°μ λ«λλ€.
-
μ ν΅μ μμΌ νλ‘κ·Έλλ°μ μ΄λ€ λ‘μ§λ μ 곡νμ§ μκ³ Aμ Bλ₯Ό μ°κ²°ν λΏμ΄λ€.
-
λ‘μ§μ λν΄μλ νλ‘κ·Έλλ¨Έμ λͺ«μ΄λ€.
ZeroMQ
-
μ΄μ λΆν°λ κΈ°μ μμμ λν μλ²λ₯Ό ν΅ν΄μ λ©μΌ λ± λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ ννμλλ, 2000λ νλ°λΆν° wwwμΌλ‘ μΈν΄ μΉλΈλΌμ°μ λ₯Ό μ¬μ©νκΈ° μν μΉμλ²κ° κΈλΆμνλ€.
-
κ°μΈλ€μ΄ μΉλΈλΌμ°μ λ₯Ό ν΅ν΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μκ³ κ° μΉλΈλΌμ°μ λ₯Ό μν μλ²κ° λ§μ΄ λ§λ€μ΄μ‘λ€. μ¦, λμ€λ€μ΄ μΈν°λ·μ μ¬μ©νλ©΄μ λκ·λͺ¨μ μ¬μ©μμ μλ²μ κ΄κ³κ° λ§λ€μ΄μ‘λ€.
-
κ³Όκ±°μ κ²½μ° μλ²μ μ¬μ©μλ νμ λμ΄ μμΌλ, 2000λ νλ°λΆν°λ μ¬μ©μμ μλ₯Ό μ μ μλ€. λλ¬Έμ μλ²μ μ©λμ λν κ³ λ―Όμ΄ μ΄μ΄μ‘λ€.
-
2010λ , ν΄λΌμ°λ μ»΄ν¨ν μ΄ λνλλ©΄μ νμν λ νμν λ§νΌ κ°μμ μ»΄ν¨ν μ μ¬μ©ν μ μλ λ°©μμ΄ λνλλ©΄μ λ°©μμ λ³νμ΄ μ΄λ£¨μ΄μ‘λ€.
-
ν΄λΌμ°λ μ»΄ν¨ν β μλ§μ μλ² νλ‘κ·Έλ¨ μ°μΆ β μλ² νλ‘κ·Έλλ° λ°©μμ μ€νμμ€λ‘ 곡κ°νμ.
-
ZeroMQ : λμ μ±λ₯μ λΉλκΈ°ν λ©μμ§ λΌμ΄λΈλ¬λ¦¬(μ€νμμ€ λΌμ΄λΈλ¬λ¦¬)
-
OSI κ³μΈ΅μμλ μ΄λ€ κ³μΈ΅μ μν μ§λ₯Ό κ·μ ν μ μλ€.
-
TCPμ κ²½μ° ν° μμμ κ°μ§κ³ ν° μλ² νλ‘κ·Έλ¨μ λ§λ€μ΄ μ¬μ©νλ€.
-
μΉλΈλΌμ°μ
-
ZeroMQλ λΆμ°λκ³ λμλ€λ°μ μΈ νλ‘κ·Έλ¨λ€μ΄ μλ‘ ν΅μ μ νκΈ° μν΄ λ§λ€μ΄μ‘λ€.
-
곡ν΅μ μΌλ‘ μμ£Ό μ¬μ©νλ ꡬ쑰μ νλ‘κ·Έλ¨μ ν΅ν©μ μΌλ‘ νλ‘κ·Έλλ°νμ¬ μ€ν μμ€λ‘ ν¨κ» μ¬μ©νμ!
-
Features
- ZeroMQ API β μμΌ μ 곡
- μμΌμ λ€μ λ λ€μ μ°κ²°μ νννλ€.
- Messaging ν¨ν΄μ μ¬μ©νμ¬ μμ²μ μ£Όκ³ λ°λλ€.
-
μμ : Client & Worker
-
ν΄λΌμ΄μΈνΈμμ μμ²μ 보λ΄λ©΄ μλ²μμ λ‘μ§μ λ°λΌ μ μ₯λ λ°μ΄ν° μ 보λ₯Ό μ 곡νλ νν
-
λ€μμ μλ²κ° λμ¨ μν©μμ λλΆλΆ λΉμ·ν ꡬ쑰λ₯Ό κ°μ§κΈ° λλ¬Έμ 곡ν΅μΌλ‘ μ€νμμ€ν
-
μμ : Publish & Scribe (μμ ―)
- 곡κΈμ(Publisher)κ° μ‘΄μ¬νκ³ μ¬λ¬ λͺ μ ꡬλ μ(Subscriber)κ° μ‘΄μ¬νμ¬ μ 보λ₯Ό μ 곡νλ νν
- μ€λ₯Έμͺ½ κ·Έλ¦Ό - λ€μ΄λ²μ 곡κΈνλ ννλΌ μκ°νλ©΄ λλ€.
- λ μ¨, λ΄μ€ λ± μ¬λ¬ 곡κΈμλ€μ΄ μ 보λ₯Ό λ€μ΄λ²(곡κΈμ μ μ₯μμλ ꡬλ μ, ꡬλ μ μ μ₯μμλ 곡κΈμ)λ₯Ό ν΅ν΄ μ 보λ₯Ό μ 곡, ꡬλ μλ€μ λ€μ΄λ²λ₯Ό ν΅ν΄ μ 보λ₯Ό λ°λλ€.
RabbitMQ
- Centralized Message Queueμ ꡬ쑰λ₯Ό κ°λλ€.
- PDFλ₯Ό μμ±ν΄ λ§μ μ¬μ©μμκ² μ μ‘νκ³ μΆμ κ²½μ° μλ²μκ² μ λ¬νλλ°, μ΄λ₯Ό Producer λΌκ³ νλ€.
- Producerλ λ°μ΄ν°λ₯Ό publishνκ³ μλ²λ μλΉμμκ² μ μ‘νλ€.
- μ±μ κ°λ°νκ³ μ±μ λν μλ λ©μμ§λ₯Ό μ μ‘ν λ μ§μ μλΉμμκ² μ μ‘νλ ννκ° μλ, ꡬκΈμ΄λ μ νμ μλ²λ₯Ό κ±°μ³ μ μ‘μ ν΄μΌ νλ€. μ΄λ RabbitMQμ κ°μ λ°©μμΌλ‘ μ¬μ©λλ€.