2.1 λ€νΈμν¬ μ ν리μΌμ΄μ μ μ리
Creating a network app
- software κ°λ°μ κ΄μ μμλ λ€νΈμν¬ κ΅¬μ‘°κ° κ³ μ λμ΄ μλ€. νμ§λ§, application ꡬ쑰λ κ°λ°μκ° μ€κ³νλ©°, μ¬λ¬ μ’ λ¨ μμ€ν μμ μ΄λ»κ² μ‘°μ§λμ΄μΌ νλμ§λ₯Ό μλ €μ€λ€.
- μ΄λ¬ν application ꡬ쑰λ ν¬κ² 2κ°μ§λ‘ λλλ€.
- Client - server ꡬ쑰
- P2P ꡬ쑰
Client-server paradigm
- Server
- νμ λμνκ³ μλ μλ²κ° μ‘΄μ¬νκ³ , ClientλΌλ λ€λ₯Έ νΈμ€νΈλ€λ‘λΆν° μλΉμ€ μμ²μ λ°λλ€.
- μλ²λ μ μλ €μ§ κ³ μ IP μ£Όμλ₯Ό κ°λλ€. (permanent IP address - not change)
- μλ²κ° ν΄λΌμ΄μΈνΈλ‘λΆν° μ€λ λͺ¨λ μμ²μ λ μλ΅νλ κ²μ΄ λΆκ°λ₯ν λ
- λ§μ μμ νΈμ€νΈλ₯Ό κ°μΆ data centerκ° κ°λ ₯ν κ°μμ μλ²λ₯Ό μμ±νλ μν λ‘ μ¬μ©λλ€.
- λ³΄ν΅ 10λ§κ° μ λμ μλ²λ₯Ό κ°μΆκ³ μλ€.
- Clients
- νμν λ connect νλ€.
- may be intermittently connected (κ°μ μ μΌλ‘, κ°λμ μ°κ²°λλ€)
- dynamic IP addressλ₯Ό κ°λλ€.
- ClientλΌλ¦¬λ μ§μ ν΅μ νμ§ μλλ€.
P2P ꡬ쑰
- Clientμ server λ λ€μ responsibilityλ₯Ό κ°λλ€.
- νμ μΌμ Έμλ μλ²μ μμ‘΄νμ§ μλλ€.
- μμμ(arbitrary) end systemλ€μ μ§μ μν΅νλ€.
- μ¦, peerλΌλ κ°νμ μΌλ‘ μ°κ²°λ νΈμ€νΈ μμ΄ μλ‘ μ§μ ν΅μ νκ² νλ€.
- peerλ μ°λ¦¬κ° νν μκ³ μλ Client(laptop κ°μ κ²λ€)
- **Self scalability(μκ°νμ₯μ±)**λ₯Ό κ°λλ€.
- μ¦, μ¬μ©μκ° λ§μμ§μλ‘ λ€νΈμν¬μ λΆλ΄μ΄ 컀μ§λ κ²μ΄ μλλΌ, μ€νλ € μλ‘ λμμ λ€νΈμν¬μ ν¨μ¨μ±μ΄ λμμ§λ€.
- μλ₯Ό λ€μ΄, νμΌ κ³΅μ applicationμμλ κ° peerλ€μ΄ νμΌμ μꡬνμ¬ μμ λΆνκ° μκΈ°μ§λ§, κ° Peerλ€μ νμΌμ λ€λ₯Έ Peerλ€μκ² λΆλ°°νμ¬ μμ€ν μ μλΉμ€ λ₯λ ₯μ κ°μΆλ€.
- data center λ±μ΄ νμ μμΌλ―λ‘ λΉμ©μ΄ ν¨μ¨μ μ΄λ€.
π©π»π» 2.1.2 νλ‘μΈμ€ κ° ν΅μ
μ€μ ν΅μ νλ κ²μ νλ‘κ·Έλ¨μ΄ μλλΌ, μ€νλκ³ μλ νλ‘κ·Έλ¨μΈ processμ΄λ€.
- κ°μ host λ²μ λ΄μμ, λκ°μ processλ€μ IPCλ₯Ό μ¬μ©ν΄ communication νλ€.
- Inter-process-communication : λ κ° μ΄μμ νλ‘μΈμ€κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ λ°©λ²
- λ€λ₯Έ host λ²μ λ΄μμλ exchanging messagesλ₯Ό ν΅ν΄ μν΅νλ€.
- 2κ°μ μ’ λ¨ μμ€ν μμ νλ‘μΈμ€λ μ»΄ν¨ν° λ€νΈμν¬λ₯Ό ν΅ν λ©μμ§ κ΅νμΌλ‘ μλ‘ ν΅μ νλ€.
- P2P ꡬ쑰μμμ²λΌ Clientλ μλ² νλ‘μΈμ€κ° λ μ μκ³ , μλ²λ client processκ° λ μ μλ€.
- μ‘μ νλ‘μΈμ€ : λ©μμ§λ₯Ό λ§λ€μ΄μ 보λ
- μμ νλ‘μΈμ€ : λ©μμ§λ₯Ό λ°κ³ μμΌλ‘ λ©μμ§λ₯Ό 보λμΌλ‘μ¨ μλ΅
Client, Server process
- client process : process that initiates communication
- μμ²μ 보λ΄λ μͺ½μ νλ‘μΈμ€
- server process : process that waits to be contacted
- μμ²μ λ°λ μͺ½μ νλ‘μΈμ€
Socket
processλ socketμ ν΅ν΄ λ€νΈμν¬λ‘ λ©μμ§λ₯Ό 보λ΄κ³ λ°λλ€. (λ¬Έ κ°μ κ°λ )
- νΈμ€νΈμ application κ³μΈ΅κ³Ό transport κ³μΈ΅κ°μ μΈν°νμ΄μ€μ΄λ€.
- μ ν리μΌμ΄μ
κ°λ°μλ μμΌμ application κ³μΈ΅μ λν λͺ¨λ ν΅μ κΆμ κ°μ§λ§, μμΌμ transport κ³μΈ΅μ λν ν΅μ κΆμ κ±°μ κ°μ§ λͺ»νλ€.
- transport protocolμ μ ν
- μ΅λ λ²νΌμ μ΅λ μΈκ·Έλ¨ΌνΈ ν¬κΈ° κ°μ μ½κ°μ 맀κ°λ³μ μ€μ
- sending process shoves message out door - μ μ‘ νλ‘μΈμ€λ λ©μμ§λ₯Ό λ°μΌλ‘ λ°μ΄λΈλ€.
- Applicationκ³Ό network μ¬μ΄μ APIλΌκ³ λ νλ€.
Addressing processes
νλ‘μΈμ€κ° μνλκ³ μλ λ€λ₯Έ ν¨ν·μΌλ‘ νλ‘μΈμ€λ₯Ό 보λ΄κΈ° μν΄μλ μμ νλ‘μΈμ€κ° μ£Όμλ₯Ό κ°κ³ μμ΄μΌ νλ€. μμ νλ‘μΈμ€λ₯Ό μλ³νκΈ° μν΄μλ λ κ°μ§ μ λ³΄κ° νμνλ€.
Identifierλ IPμ£Όμμ port numberλ₯Ό κ°λλ€.
- νΈμ€νΈμ μ£Όμ μ¦, IP μ£Όμκ° νμνλ€.
- IP μ£Όμκ° identifierκ° λλ€.
- νΈμ€νΈ λ΄μ μμ νλ‘μΈμ€λ₯Ό λͺ
μνλ μλ³μ. μ¦ port λ²νΈκ° νμνλ€.
- μ΄ port λ²νΈλ‘ λ΄ processλ₯Ό νΉμ ν μ μλ€.
- κ°μ IP μ£Όμλ₯Ό κ°μ§ μ¬λ¬ applicationμ΄λ processκ° λμμ μνλ μ μκΈ° λλ¬Έμ port λ²νΈλ‘ ꡬλΆνλ€.
- IPλ₯Ό ν΅ν΄ μ μ ν computerλ₯Ό μ°Ύλλ€.
π©π»π» 2.1.3 An Application-layer protocol defines
application κ°λ°μλ μμΌμ application κ³μΈ΅μ λν λͺ¨λ ν΅μ κΆμ κ°μ§λ§, μμΌμ transport κ³μΈ΅μ λν ν΅μ κΆμ κ±°μ κ°μ§ λͺ»νλ€. μ¦, μ¬κΈ°μμλ κ·Έ μ€ μ ν리μΌμ΄μ μ΄ μ΄λ€ transport serviceλ₯Ό μ΄μ©ν μ μλμ§μ λν λ΄μ©μ΄λ€.
- Data integrity
- μμ€λμ§ μλ dataλ₯Ό μ μ‘
- throughput
- λ€λ₯Έ sessionλ€μ΄ network κ²½λ‘λ₯Ό λ°λΌ λμνμ 곡μ νκ³ , μ΄ μΈμ λ€μ΄ μκ²Όλ€ μμ΄μ‘λ€ νκΈ° λλ¬Έμ κ°λ₯ν μ²λ¦¬μ¨μ μκ°μ λ°λΌ λ³νλ€. μ΄λ μ΄λ λͺ μλ μλμμ 보μ₯λ κ°μ© μ²λ¦¬μ¨μ μ 곡νλ€.
- μ΄λ¬ν μ²λ¦¬μ¨ μꡬμ¬ν μ¬λΆλ₯Ό κΈ°μ€μΌλ‘ λ κ°μ§λ‘ λλλ€.
- effective app : μ²λ¦¬μ¨ μꡬμ¬νμ΄ μλ λ―Όκ° application
- elastic app : νλ ₯μ application. μ²λ¦¬μ¨ μꡬμ¬νμ΄ μλ€.
- timing
- μλ₯Ό λ€μ΄, μ‘μ κΈ°κ° socketμΌλ‘ λ΄λ³΄λ΄λ λͺ¨λ bitκ° μμ μμ socketμ 100ms λ΄μ λμ°©νκ² ν μ μλ€. μ£Όλ‘ μ€μκ° applicationμμ μ¬μ©νλ€.
- security
- dataλ₯Ό μνΈν ν μ μλ€.
Internet transport protocols services
μΈν°λ· μ μ‘ νλ‘ν μ½μ΄ μ 곡νλ μλΉμ€
- TCP μλΉμ€
- UDP μλΉμ€
TCP service
- reliable transport
- μλ‘ μ μ‘ μ μ΄ μ 보λ₯Ό κ΅ννκ² νλ€.
UDP service
- unreliable data transefer
- hand shaking κ³Όμ μ΄ μκ³ , λ°μ΄ν°κ° μ λ¬λλ κ²μ 보μ₯νμ§ μλλ€.
TCP vs. UDP
- TCPκ° UDPλ³΄λ€ λ μ μ©νμ§λ§, UDPλ λ λΉ λ₯΄λ€.
- λ λ€ μ²λ¦¬μ¨ νΉμ μκ° λ³΄μ₯ μλΉμ€λ₯Ό μ 곡νμ§ μλλ€.
- κ·Έλμ μκ° λ―Όκ° μ ν리μΌμ΄μ κ°μ κ²½μ°, μ΄λ¬ν μ²λ¦¬μ¨ λ° μκ° μ§μ°μ μ λμ²ν μ μλλ‘ μ€κ³λμ΄ μλ€.
π©π»π» 2.1.5 Application layer: Protocol
λ€λ₯Έ μ’ λ¨ μμ€ν μμ μ€νλλ μ ν리μΌμ΄μ μ νλ‘μΈμ€κ° μλ‘ λ©μμ§ λ³΄λ΄λ λ°©λ²μ μ μνλ€.
- κ΅ν λ©μμ§μ νμ
- μ¬λ¬ λ©μμ§ νμ μ λ¬Έλ²(syntax)
- νλμ μλ―Έ, μ¦ νλμ μλ μ 보μ μλ―Έ(semantics)
- μΈμ , μ΄λ»κ² νλ‘μΈμ€κ° λ©μμ§λ₯Ό μ μ‘νκ³ λ©μμ§μ μλ΅ νλμ§λ₯Ό κ²°μ νλ κ·μΉ
'π μ»΄ν¨ν° λ€νΈμν¬' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ»΄λ€] Ch1.6 : Protocol layers, service models (0) | 2024.11.12 |
---|---|
[μ»΄λ€] Ch1.5 Performance: loss, delay, throughput (0) | 2024.11.12 |
[μ»΄λ€] Ch1.3 Network core (0) | 2024.11.12 |
[μ»΄λ€] Ch1.2 Network edge (4) | 2024.11.12 |
[μ»΄λ€] Ch1.1 μΈν°λ·μ΄λ? νλ‘ν μ½μ΄λ? (0) | 2024.11.11 |