π‘ TCP (νλ¦μ μ΄/νΌμ‘μ μ΄)
π λ€μ΄κ°κΈ° μ
- TCP(Transmission Control Protocol) ν΅μ μ΄λ?
- λ€νΈμν¬ ν΅μ μμ μ°κ²° μ§ν₯μ νλ‘ν μ½μ΄λ©°, μ΄λ λ°μ΄ν° μ μ‘ μ μ μ‘μ μμ μμ μ κ°μ μ°κ²°μ μ€μ νκ³ λ°μ΄ν°κ° μ ννκ² λμ°©νλμ§λ₯Ό νμΈνλ μ λ’°μ μΈ μ°κ²° λ°©μμ μ§λκ³ μλ€.
- TCPλ κΈ°λ³Έμ μΌλ‘ λ°μ΄ν° μ μ‘ μ€μ ν¨ν·μ΄ μμ€λκ±°λ μ€λ³΅λκ±°λ, μμκ° λ€λ°λ μ μλ unreliable network νκ²½μμ, reliable networkλ₯Ό 보μ₯ν μ μλλ‘ νλ νλ‘ν μ½μ
λλ€. μ¦ λ°μ΄ν°κ° μμ€λλ©΄ μ¬μ μ‘νκ³ , λμ°©ν λ°μ΄ν°μ μμλ₯Ό λ§μΆλ©°, μ€λ³΅λ λ°μ΄ν°λ₯Ό μ κ±°νμ¬ μ΅μ’
μ μΌλ‘ λ°μ΄ν°λ₯Ό μμ νκ³ μ ννκ² μμ μμκ² μ λ¬ν©λλ€.
- TCPλ λ€νΈμν¬ νΌμ‘(λ°μ΄ν° νΈλν½μ΄ λ§μμ Έ λ€νΈμν¬κ° κ³ΌλΆν μνμ μ΄λ₯΄λ κ²)μ λ°©μ§νκΈ° μν΄ network congestion avoidance algorithm(λ€νΈμν¬ νΌμ‘ ννΌ μκ³ λ¦¬μ¦)μ μ¬μ©ν©λλ€.
- reliable networkλ₯Ό 보μ₯νκΈ° μν΄ ν΄κ²°ν΄μΌνλ 4κ°μ§ λ¬Έμ μ
- μμ€ : packetμ΄ μμ€λ μ μλ λ¬Έμ
- μμ λ°λ : packetμ μμκ° λ°λλ λ¬Έμ
- Congestion : λ°μ΄ν° νΈλν½μ΄ λ§μμ Έ λ€νΈμν¬κ° κ³ΌλΆν μνμ μ΄λ₯΄λ λ¬Έμ .
- Overload : μμ μκ° μ²λ¦¬ν μ μλ μ©λμ μ΄κ³Όνλ μμ λ°μ΄ν°κ° λΉ λ₯΄κ² λμ°©νμ¬, μμ μκ° λ°μ΄ν°λ₯Ό μ²λ¦¬νμ§ λͺ»νλ λ¬Έμ .
- νλ¦μ μ΄/νΌμ‘μ μ΄λ?
- νλ¦μ μ΄(Flow Control)
- μ‘μ μΈ‘κ³Ό μμ μΈ‘μ λ°μ΄ν° μλ μ°¨μ΄λ₯Ό ν΄κ²°νκΈ° μν κΈ°λ²
- Flow Controlμ receiverκ° packetμ μ§λμΉκ² λ§μ΄ λ°μ§ μλλ‘ νμ¬ μμ μΈ‘μ κ³ΌλΆνλ₯Ό λ°©μ§
- μ‘μ μΈ‘(sender)μ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² μ μ‘νκ³ μΆμ΄λ, μμ μΈ‘(receiver)μ΄ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ μλκ° λ리면 λ¬Έμ κ° λ°μν μ μμ΅λλ€. μμ μΈ‘μ΄ λ°μ΄ν°λ₯Ό μ²λ¦¬νκΈ° μ μ λ무 λ§μ λ°μ΄ν°λ₯Ό μμ νλ©΄ λ²νΌ μ€λ²νλ‘μ°κ° λ°μνμ¬ λ°μ΄ν°κ° μμ€λ μ μμ΅λλ€.
- μμ μΈ‘μ΄ μ‘μ μΈ‘μκ² νμ¬ μ²λ¦¬ κ°λ₯ν λ°μ΄ν°μ μμ νΌλλ°±νμ¬, μ‘μ μΈ‘μ΄ κ·Έμ λ§μΆ° λ°μ΄ν°λ₯Ό μ μ‘νλλ‘ μ‘°μ νλ κ³Όμ μ
λλ€.
- μμ μλ(Receive Window)λΌλ κ°λ
μ΄ μ¬μ©λ©λλ€. μμ μΈ‘μ μμ μ μμ λ²νΌ μνμ λ°λΌ μλμ° ν¬κΈ°λ₯Ό μ€μ νκ³ , μ΄ μ 보λ₯Ό μ‘μ μΈ‘μ μ λ¬ν©λλ€. μ‘μ μΈ‘μ μ΄ μλμ° ν¬κΈ° λ΄μμλ§ λ°μ΄ν°λ₯Ό μ μ‘νκ² λ©λλ€.
- νΌμ‘μ μ΄(Congestion Control) : μ‘μ μΈ‘μ λ°μ΄ν° μ λ¬κ³Ό λ€νΈμν¬μ λ°μ΄ν° μ²λ¦¬ μλ μ°¨μ΄λ₯Ό ν΄κ²°νκΈ° μν κΈ°λ²
- μ‘μ μΈ‘μ΄ λ무 λ§μ λ°μ΄ν°λ₯Ό λ€νΈμν¬μ λΉ λ₯΄κ² μ μ‘νλ©΄, λ€νΈμν¬ μ₯μΉ(λΌμ°ν°, μ€μμΉ λ±)κ° κ³ΌλΆν μνμ λΉ μ Έ ν¨ν· μμ€μ΄λ μ§μ°μ΄ λ°μν μ μλλ° μ΄λ₯Ό λ€ν¬μν¬ νΌμ‘μ΄λΌκ³ ν©λλ€.
- Congestion Controlμ λ€νΈμν¬μ μνλ₯Ό λͺ¨λν°λ§νκ³ , νΌμ‘μ΄ λ°μν κ°λ₯μ±μ΄ μμ λ μ‘μ μλλ₯Ό μ‘°μ νμ¬ λ€νΈμν¬κ° μμ μ μΌλ‘ μλνλλ‘ νλ κ³Όμ μ
λλ€.
- Congestion WindowλΌλ κ°λ
μ΄ μ¬μ©λλ©°, μ΄ μλμ° ν¬κΈ°λ λ€νΈμν¬ μνμ λ°λΌ λμ μΌλ‘ λ³ν©λλ€. νΌμ‘μ΄ κ°μ§λλ©΄ μλμ° ν¬κΈ°λ₯Ό μ€μ΄κ³ , λ€νΈμν¬κ° μμ μ μΌ λλ μλμ° ν¬κΈ°λ₯Ό μ¦κ°μν΅λλ€.
- μ μ‘μ μ 체 κ³Όμ
- μμ© κ³μΈ΅(Application Layer)μμ λ°μ΄ν°λ₯Ό μ μ‘ν λ, 보λ΄λ μͺ½(sender)μ μ ν리μΌμ΄μ
(Application)μ μ§μ λ€νΈμν¬λ‘ λ°μ΄ν°λ₯Ό 보λ΄λ κ²μ΄ μλ μμΌ(Socket)μ΄λΌλ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ°κ² λ©λλ€.
- μ΄ λ°μ΄ν°λ μ μ‘ κ³μΈ΅(Transport Layer)μΌλ‘ μ λ¬λμ΄ μΈκ·Έλ¨ΌνΈ(Segment)λΌλ μμ λ¨μλ‘ λλμ΄μ§λλ€.
- μ μ‘ κ³μΈ΅μ μ΄ μΈκ·Έλ¨ΌνΈλ₯Ό λ€νΈμν¬ κ³μΈ΅(Network Layer)μ λ겨μ€λλ€.
- μ μ‘λ λ°μ΄ν°λ μμ μ(receiver)μͺ½μΌλ‘ μ λ¬λμ΄, μμ μ μͺ½μμλ μμ λ²νΌ(Receive Buffer)μ μ μ₯λ©λλ€.
- μ΄λ, μμ μ μͺ½μμλ μμ λ²νΌμ μ©λμ λμΉμ§ νμ§ μλλ‘ μ‘°μ ν΄μΌ ν©λλ€.
- μμ μ μͺ½μμλ μμ μ μμ λ²νΌμ λ¨μ μ©λμ μλλ°©(sender)μκ² μλ €μ£Όλλ°, μ΄λ₯Ό μμ μλμ°(Receive Window)λΌκ³ ν©λλ€.
- μ‘μ μ(sender)λ μμ μμ μμ μλμ°λ₯Ό νμΈνμ¬ μμ μμ μμ λ²νΌ μ©λμ μ΄κ³Όνμ§ μλλ‘ λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ λ°μ΄ν° μ μ‘ μ€μ μμ λ²νΌκ° λμΉλ νμμ λ°©μ§νλ©΄μ, μμ μ μΈ λ°μ΄ν° μ μ‘μ 보μ₯ν©λλ€. μ΄λ₯Ό νλ‘μ° μ»¨νΈλ‘€(Flow Control)μ΄λΌκ³ ν©λλ€.
λ°λΌμ νλ‘μ° μ»¨νΈλ‘€μ μ μ‘ μ€μ λ°μνλ μμ λ²νΌμ μ€λ²νλ‘μ°λ₯Ό λ°©μ§νλ©΄μ, μμ μ μΈ λ°μ΄ν° μ μ‘μ μν΄ μ€μν κΈ°μ μ
λλ€.
π‘ 1. νλ¦μ μ΄(Flow Control)
- μμ μΈ‘μ΄ μ‘μ μΈ‘λ³΄λ€ λ°μ΄ν° μ²λ¦¬ μλκ° λΉ λ₯΄λ©΄ λ¬Έμ μμ§λ§, μ‘μ μΈ‘μ μλκ° λΉ λ₯Ό κ²½μ° λ¬Έμ κ° μκΈ΄λ€.
- μμ μΈ‘μμ μ νλ μ μ₯ μ©λμ μ΄κ³Όν μ΄νμ λμ°©νλ λ°μ΄ν°λ μμ€ λ μ μμΌλ©°, λ§μ½ μμ€ λλ€λ©΄ λΆνμνκ² μλ΅κ³Ό λ°μ΄ν° μ μ‘μ΄ μ‘/μμ μΈ‘ κ°μ λΉλ²μ΄ λ°μνλ€.
- λ°μ΄ν°κ° μμ€λλ©΄, μ‘μ μΈ‘μ ν΄λΉ λ°μ΄ν°κ° μμ μΈ‘μ μ λλ‘ λλ¬νμ§ μμμμ μΈμ§νκ³ , μ¬μ μ‘μ μλν©λλ€.
- λν, μμ μΈ‘μ μμ€λ λ°μ΄ν°μ λν μλ΅(ACK)μ 보λ΄μ§ μκ±°λ, μ€λ₯ λ©μμ§λ₯Ό μ‘μ μΈ‘μ λ³΄λΌ μ μμ΅λλ€.
- μ΄λ¬ν μνμ μ€μ΄κΈ° μν΄ μ‘μ μΈ‘μ λ°μ΄ν° μ μ‘λμ μμ μΈ‘μ λ°λΌ μ‘°μ ν΄μΌνλ€.
- ν΄κ²°λ°©λ²
- Stop and Wait : κ° λ°μ΄ν° νλ μμ λν΄ νλμ© μ μ‘νκ³ , κ° νλ μμ΄ μ±κ³΅μ μΌλ‘ μμ λμμμ νμΈ(ACK)ν νμ λ€μ νλ μμ μ μ‘νλ λ°©μ.
- Sliding Window (Go Back N ARQ)
- μμ μΈ‘μμ μ€μ ν μλμ° ν¬κΈ°λ§νΌ μ‘μ μΈ‘μ΄ νμΈ μλ΅(ACK) μμ΄ μΈκ·Έλ¨ΌνΈλ₯Ό μ°μμ μΌλ‘ μ μν μ μλλ‘ νμ¬, λ°μ΄ν° μ μ‘μ ν¨μ¨μ±μ λμ΄λ λ°©λ².
ν΅μ¬κ°λ
-
LastByteSent - LastByteAcked <= ReceivecWindowAdvertised:
- LastByteSent: μ‘μ μΈ‘μμ λ§μ§λ§μΌλ‘ μ μ‘λ λ°μ΄νΈμ μμΉ
- LastByteAcked: μ‘μ μΈ‘μμ λ§μ§λ§μΌλ‘ νμΈ μλ΅(ACK)μ λ°μ λ°μ΄νΈμ μμΉ
- ReceiveWindowAdvertised: μμ μΈ‘μ΄ κ΄κ³ ν μμ μλμ°μ ν¬κΈ°. μ¦, μμ μΈ‘μ΄ λ λ°μ μ μλ λ°μ΄ν°μ ν¬κΈ°
μ΄ μμ νμ¬ κ³΅μ€μ λ μλ ν¨ν· μκ° μμ μΈ‘μ΄ μ²λ¦¬ν μ μλ ν¬κΈ°λ₯Ό μ΄κ³Όνμ§ μλλ‘ νλ κ²μ μλ―Έν©λλ€. μ½κ² λ§ν΄, μ‘μ μΈ‘μ μμ μΈ‘μ΄ μ²λ¦¬ν μ μλ λ§νΌλ§ λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€. 곡μ€μ λ μλ€λ λ€νΈμν¬μμ μ‘μ μΈ‘μ΄ μ΄λ―Έ μ μ‘νμ§λ§, μμ μΈ‘μΌλ‘λΆν° μμ§ νμΈ μλ΅(ACK)μ λ°μ§ λͺ»ν λ°μ΄ν°λ₯Ό μλ―Ένλ€.
-
μλμ°μ λμ λ°©μ
- μ‘μ μΈ‘μ μλμ° λ΄μ ν¬ν¨λλ λͺ¨λ ν¨ν·μ ν λ²μ μ μ‘ν μ μμ΅λλ€.
- μ‘μ μΈ‘μ κ° ν¨ν·μ λν΄ μμ μΈ‘μΌλ‘λΆν° ACKλ₯Ό λ°μΌλ©΄, μλμ°λ₯Ό μ€λ₯Έμͺ½μΌλ‘ μ¬λΌμ΄λ©(μ΄λ)μν€λ©΄μ λ€μ λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€.
- Window : TCP/IPλ₯Ό μ¬μ©νλ λͺ¨λ νΈμ€νΈλ€μ μ‘μ νκΈ° μν κ²κ³Ό μμ νκΈ° μν 2κ°μ Windowλ₯Ό κ°μ§κ³ μλ€.
- μ‘μ μλμ°(Send Window): μ‘μ μΈ‘μμ λ°μ΄ν°λ₯Ό λ³΄λΌ λ μ¬μ©νλ μλμ°. μ΄ μλμ° ν¬κΈ°λ§νΌ μ‘μ μΈ‘μ λ°μ΄ν°λ₯Ό μ μ‘ν μ μμΌλ©°, νμΈ μλ΅(ACK)λ₯Ό λ°κΈ° μ μ λ°μ΄ν°λ₯Ό 보λ΄κΈ° μν΄μλ μ΄ ν¬κΈ°λ₯Ό λμ§ μμμΌ νλ€.
- μμ μλ(Receive Window): μμ μΈ‘μμ λ°μ΄ν°λ₯Ό λ°μ λ μ¬μ©νλ μλμ°. μ΄ μλμ° ν¬κΈ°λ§νΌ μμ μΈ‘μ λ°μ΄ν°λ₯Ό λ°μ μ μμΌλ©°, μ΄ ν¬κΈ°λ§νΌμ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλ λ²νΌ 곡κ°μ΄ μλ€λ κ²μ μλ―Έ.
- νΈμ€νΈλ€μ μ€μ λ°μ΄ν°λ₯Ό 보λ΄κΈ° μ μ '3way hand-shake' κ³Όμ μ€ μμ μΈ‘μ μμ μ μμ μλμ° ν¬κΈ°(Receive Window Size)λ₯Ό μ‘μ μΈ‘μ μλ €μ€λλ€. λν μ‘μ μΈ‘μ μμ μΈ‘μ μμ μλμ° ν¬κΈ°μ λ§μΆμ΄ μμ μ μ‘μ μλμ° ν¬κΈ°(Send Window Size)λ₯Ό μ‘°μ ν©λλ€.
μμ
- μ‘μ λ²νΌ
- 202 μ΄μ μ λ°μ΄νΈ : μ΄λ―Έ μ μ‘λμκ³ , νμΈ μλ΅(ACK)μ λ°μ μν
- 200 ~ 202 λ°μ΄νΈ : μ΄λ―Έ μ μ‘λμμ§λ§, μμ§ νμΈ μλ΅(ACK)μ λ°μ§ λͺ»ν μν
- 203 ~ 211 λ°μ΄νΈ μμ§ μ μ‘λμ§ μμ μν
- μ‘μ μλμ°μ μ΄λ
- μλ₯Ό λ€μ΄, μ‘μ μΈ‘μ΄ 203κ³Ό 204 λ°μ΄νΈλ₯Ό μ μ‘νκ³ , μμ μΈ‘μμ 203 λ°μ΄νΈμ λν ACKλ₯Ό λ°μλ€λ©΄, μ‘μ μλμ°λ μ€λ₯Έμͺ½μΌλ‘ μ¬λΌμ΄λ©νμ¬ 205~209 λ°μ΄νΈκ° μ μ‘ κ°λ₯ν μνκ° λ©λλ€.
π‘ 2. νΌμ‘μ μ΄ (Congestion Control)
- μ‘μ μΈ‘μ λ°μ΄ν°λ μ§μλ§μ΄λ μΈν°λ·μΌλ‘ μ°κ²°λ λν λ€νΈμν¬λ₯Ό ν΅ν΄ μ λ¬λλ€. λ§μ½ ν λΌμ°ν°μ λ°μ΄ν°κ° λͺ°λ¦΄ κ²½μ°, μμ μκ² μ¨ λ°μ΄ν°λ₯Ό λͺ¨λ μ²λ¦¬ν μ μκ² λλ€. μ΄λ° κ²½μ° νΈμ€νΈλ€μ λ λ€μ μ¬μ μ‘μ νκ²λκ³ κ²°κ΅ νΌμ‘λ§ κ°μ€μμΌ μ€λ²νλ‘μ°λ λ°μ΄ν° μμ€μ λ°μμν€κ² λλ€. λ°λΌμ μ΄λ¬ν λ€νΈμν¬μ νΌμ‘μ νΌνκΈ° μν΄ μ‘μ μΈ‘μμ 보λ΄λ λ°μ΄ν°μ μ μ‘μλλ₯Ό κ°μ λ‘ μ€μ΄κ² λλλ°, μ΄λ¬ν μμ
μ νΌμ‘μ μ΄λΌκ³ νλ€.
- λν λ€νΈμν¬ λ΄μ ν¨ν·μ μκ° κ³Όλνκ² μ¦κ°νλ νμμ νΌμ‘μ΄λΌ νλ©°, νΌμ‘ νμμ λ°©μ§νκ±°λ μ κ±°νλ κΈ°λ₯μ νΌμ‘μ μ΄λΌκ³ νλ€.
- νλ¦μ μ΄κ° μ‘μ μΈ‘κ³Ό μμ μΈ‘ μ¬μ΄μ μ μ‘μλλ₯Ό λ€λ£¨λλ° λ°ν΄, νΌμ‘μ μ΄λ νΈμ€νΈμ λΌμ°ν°λ₯Ό ν¬ν¨ν λ³΄λ€ λμ κ΄μ μμ μ μ‘ λ¬Έμ λ₯Ό λ€λ£¨κ² λλ€
- ν΄κ²°λ°©λ²
- AIMD(Additive Increase / Multiplicative Decrease)
- μ²μμ ν¨ν·μ νλμ© λ³΄λ΄κ³ μ΄κ²μ΄ λ¬Έμ μμ΄ λμ°©νλ©΄ window ν¬κΈ°(λ¨μ μκ° λ΄μ 보λ΄λ ν¨ν·μ μ)λ₯Ό 1μ© μ¦κ°μμΌκ°λ©° μ μ‘νλ λ°©λ²
- ν¨ν· μ μ‘μ μ€ν¨νκ±°λ μΌμ μκ°μ λμΌλ©΄ ν¨ν·μ 보λ΄λ μλλ₯Ό μ λ°μΌλ‘ μ€μΈλ€.
- 곡νν λ°©μμΌλ‘, μ¬λ¬ νΈμ€νΈκ° ν λ€νΈμν¬λ₯Ό 곡μ νκ³ μμΌλ©΄ λμ€μ μ§μ
νλ μͺ½μ΄ μ²μμλ λΆλ¦¬νμ§λ§, μκ°μ΄ νλ₯΄λ©΄ ννμνλ‘ μλ ΄νκ² λλ νΉμ§μ΄ μλ€.
- λ¬Έμ μ μ μ΄κΈ°μ λ€νΈμν¬μ λμνμ μ¬μ©νμ§ λͺ»νμ¬ μ€λ μκ°μ΄ κ±Έλ¦¬κ² λκ³ , λ€νΈμν¬κ° νΌμ‘ν΄μ§λ μν©μ 미리 κ°μ§νμ§ λͺ»νλ€. μ¦, λ€νΈμν¬κ° νΌμ‘ν΄μ§κ³ λμμΌ λμνμ μ€μ΄λ λ°©μμ΄λ€.
- μΈλ°νκ² λμνμ μ‘°μ ν΄λκ°κΈ° λλ¬Έμ κ±°μ λμνμ κ½μ°¬ μνλ‘ μΈ μ μλ€.
- Slow Start(λλ¦° μμ)
- AIMD λ°©μμ΄ λ€νΈμν¬μ μμ©λ μ£Όλ³μμλ ν¨μ¨μ μΌλ‘ μλνμ§λ§, μ²μμ μ μ‘ μλλ₯Ό μ¬λ¦¬λλ° μκ°μ΄ μ€λ 걸리λ λ¨μ μ΄ μ‘΄μ¬νλ€.
- Slow Start λ°©μμ AIMDμ λ§μ°¬κ°μ§λ‘ ν¨ν·μ νλμ© λ³΄λ΄λ©΄μ μμνκ³ , ν¨ν·μ΄ λ¬Έμ μμ΄ λμ°©νλ©΄ κ°κ°μ ACK ν¨ν·λ§λ€ window sizeλ₯Ό 1μ© λλ €μ€λ€. ν μ£ΌκΈ°κ° μ§λλ©΄ window sizeκ° 2λ°°λ‘ λλ€.
- μ μ‘μλλ AIMDμ λ°ν΄ μ§μ ν¨μ κΌ΄λ‘ μ¦κ°νλ€. λμ μ νΌμ‘ νμμ΄ λ°μνλ©΄ window sizeλ₯Ό 1λ‘ λ¨μ΄λ¨λ¦¬κ² λλ€.
- μ²μμλ λ€νΈμν¬μ μμ©λμ μμν μ μλ μ λ³΄κ° μμ§λ§, νλ² νΌμ‘ νμμ΄ λ°μνκ³ λλ©΄ λ€νΈμν¬μ΄ μμ©λμ μ΄λμ λ μμν μ μλ€.
- κ·Έλ¬λ―λ‘ νΌμ‘ νμμ΄ λ°μνμλ window sizeμ μ λ°κΉμ§λ μ΄μ μ²λΌ μ§μ ν¨μ κΌ΄λ‘ μ°½ ν¬κΈ°λ₯Ό μ¦κ°μν€κ³ μ΄νλΆν°λ μλ§νκ² 1μ© μ¦κ°μν¨λ€.
- Fast Retransmit (λΉ λ₯Έ μ¬μ μ‘)
- λΉ λ₯Έ μ¬μ μ‘μ TCPμ νΌμ‘ μ‘°μ μ μΆκ°λ μ μ±
μ΄λ€.
- ν¨ν·μ λ°λ μͺ½μμ λ¨Όμ λμ°©ν΄μΌν ν¨ν·μ΄ λμ°©νμ§ μκ³ λ€μ ν¨ν·μ΄ λμ°©ν κ²½μ°μλ ACK ν¨ν·μ 보λ΄κ² λλ€.
- λ¨, μμλλ‘ μ λμ°©ν λ§μ§λ§ ν¨ν·μ λ€μ ν¨ν·μ μλ²μ ACK ν¨ν·μ μ€μ΄μ 보λ΄κ² λλ―λ‘, μ€κ°μ νλκ° μμ€λκ² λλ©΄ μ‘μ μΈ‘μμλ μλ²μ΄ μ€λ³΅λ ACK ν¨ν·μ λ°κ² λλ€. μ΄κ²μ κ°μ§νλ μκ° λ¬Έμ κ° λλ μλ²μ ν¨ν·μ μ¬μ μ‘ ν΄μ€ μ μλ€.
- μ€λ³΅λ μλ²μ ν¨ν·μ 3κ° λ°μΌλ©΄ μ¬μ μ‘μ νκ² λλ€. μ½κ° νΌμ‘ν μν©μ΄ μΌμ΄λ κ²μ΄λ―λ‘ νΌμ‘μ κ°μ§νκ³ window sizeλ₯Ό μ€μ΄κ² λλ€.
- μλ₯Όλ€μ΄ 1λ² ν¨ν·μ λ°κ³ ACK 2λ₯Ό 보λΈλ€. νμ§λ§ 2λ² ν¨ν·μ΄ μμ€λμ΄μ κ·Έ λ€μμΌλ‘ λ€μ°©ν 3λ² ν¨ν·μ λ°μμ§λ§ 2λ² ν¨ν·μ λ°μ μ°¨λ‘μ΄λ―λ‘ ACK 2λ₯Ό λ€μ 보λΈλ€.
- Fast Recovery (λΉ λ₯Έ ν볡)
- νΌμ‘ν μνκ° λλ©΄ window sizeλ₯Ό 1λ‘ μ€μ΄μ§ μκ³ λ°μΌλ‘ μ€μ΄κ³ μ νμ¦κ°μν€λ λ°©λ²μ΄λ€. μ΄ μ μ±
κΉμ§ μ μ©νλ©΄ νΌμ‘ μν©μ νλ² κ²ͺκ³ λμλΆν°λ μμν AIMD λ°©μμΌλ‘ λμνκ² λλ€.
Connection Timeoutκ³Ό Read Timeout
Connection Timeout
-
Connection Timeoutμ ν΄λΌμ΄μΈνΈκ° μλ²μ μ°κ²°μ μλν λ, κ·Έ μ°κ²°μ΄ μ±κ³΅μ μΌλ‘ μ΄λ£¨μ΄μ§μ§ μμΌλ©΄ μΌμ μκ° νμ μλλ₯Ό μ€λ¨νλ κ²μ μλ―Έν©λλ€.
-
μ¬μ© μλλ¦¬μ€ : ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²μ λ³΄λΌ λ, μλ²κ° μλ΅νμ§ μκ±°λ λ€νΈμν¬κ° λΆμμ ν κ²½μ° μ°κ²°μ μλν μ μμ΅λλ€. μ΄ μλκ° λ무 μ€λ μ§μλλ©΄, ν΄λΌμ΄μΈνΈλ 무νν λκΈ°νμ§ μκ³ μ ν΄μ§ μκ° μ΄νμ μ°κ²° μλλ₯Ό ν¬κΈ°νκ² λ©λλ€.
Read Timeout
-
Read Timeoutμ μλ²μμ μ°κ²°μ΄ μ±κ³΅μ μΌλ‘ μ΄λ£¨μ΄μ§ ν, μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό μμ νλ λμ μΌμ μκ° λ΄μ μλ΅μ΄ μμΌλ©΄ κ·Έ μμ μ μ€λ¨νλ κ²μ μλ―Έν©λλ€.
-
μ¬μ© μλλ¦¬μ€ : μλ²μ μ°κ²°μ΄ λ μ΄νμ, ν΄λΌμ΄μΈνΈλ μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό λ°μμΌ ν©λλ€. κ·Έλ¬λ μλ²κ° λ°μ΄ν°λ₯Ό μ μ‘νμ§ μκ±°λ μ μ‘μ΄ μ§μ°λλ κ²½μ°, ν΄λΌμ΄μΈνΈλ μ€μ λ μκ°μ΄ μ§λλ©΄ λ μ΄μ κΈ°λ€λ¦¬μ§ μκ³ λ°μ΄ν°λ₯Ό μ½λ μμ
μ ν¬κΈ°ν©λλ€.
κ³΅μΈ IPμ μ¬μ€ IP
1. κ³΅μΈ IP (Public IP)
- μ μ
- κ³΅μΈ IPλ μ μΈκ³μ μΌλ‘ κ³ μ ν IP μ£Όμλ‘, μΈν°λ· μμ λͺ¨λ μ₯μΉλ€μ΄ μλ‘λ₯Ό μλ³νκ³ ν΅μ ν μ μλλ‘ ν©λλ€.
- μ΄λ°ν IP μ£Όμλ μ μΈκ³μ λ€νΈμν¬μμ κ³ μ ν μ€μ λμ΄ μμ΄, μΈν°λ·μ μ§μ μ°κ²°λ μ₯μΉ(μ: μΉ μλ², μ΄λ©μΌ μλ²)κ° μ£Όλ‘ μ¬μ©ν©λλ€.
- ν λΉ λ°©μ
- κ³΅μΈ IPλ IANA(Internet Assigned Numbers Authority) λλ μ§μ μΈν°λ· λ±λ‘ κΈ°κ΄(RIR)κ³Ό κ°μ μ‘°μ§μ μν΄ κ΄λ¦¬λκ³ ν λΉλ©λλ€.
- ISP(μΈν°λ· μλΉμ€ μ 곡μ)λ κΈ°μ
λ€μ κ³΅μΈ IP μ£Όμλ₯Ό ν λΉλ°μ μ¬μ©ν©λλ€.
- μ¬μ© λ²μ
- κ³΅μΈ IPλ μΈν°λ·μ μ§μ λ
ΈμΆλμ΄ μμΌλ―λ‘, μΈν°λ·μμ λ€λ₯Έ λͺ¨λ μ₯μΉλ€κ³Ό μ§μ ν΅μ ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, μΉμ¬μ΄νΈμ μ μν λ μ¬μ©λλ μλ²μ IP μ£Όμλ κ³΅μΈ IPμ
λλ€.
- νΉμ§
- κ³ μ μ± : κ³΅μΈ IPλ μ μΈκ³μμ μ μΌν IP μ£Όμμ
λλ€.
- μ κ·Όμ± : μΈν°λ·μμ λꡬλ μ κ·Όν μ μμΌλ©°, μΈν°λ·μμ ν΅μ μμ νμμ μ
λλ€.
2. μ¬μ€ IP (Private IP)
μ μ :
- μ¬μ€ IPλ λ΄λΆ λ€νΈμν¬μμλ§ μ¬μ©λλ IP μ£Όμλ‘, μΈν°λ·κ³Ό κ°μ μΈλΆ λ€νΈμν¬μμλ μ¬μ©λμ§ μμΌλ©°, λ΄λΆ ν΅μ μ κ΄λ¦¬νλ λ° μ¬μ©λ©λλ€.
- λμΌν μ¬μ€ IP μ£Όμλ μ¬λ¬ λ΄λΆ λ€νΈμν¬μμ μ€λ³΅λ μ μμ΅λλ€.
ν λΉ λ°©μ
- μ¬μ€ IP μ£Όμλ NAT(Network Address Translantion)μ ν΅ν΄ κ³΅μΈ IPλ‘ λ³νλμ΄ μΈλΆ λ€νΈμνμμ ν΅μ μ κ°λ₯νκ² ν©λλ€.
- μ¬μ€ IP μ£Όμ λ²μλ RFC 1918μ λ°λΌ μ ν΄μ§ λ²μ λ΄μμ μ¬μ©λ©λλ€.
- μ¬μ© λ²μ
- μ¬μ€ IPλ μ£Όλ‘ κ°μ , κΈ°μ
λ±μ λ΄λΆ λ€νΈμν¬μμ μ¬μ©λλ©°, λΌμ°ν°λ DHCP μλ²κ° μλμΌλ‘ ν λΉν©λλ€.
- λ΄λΆ λ€νΈμν¬ κ°μ ν΅μ μ΄λ, μ₯μΉ κ° νμΌ κ³΅μ , νλ¦°ν° μ°κ²° λ±μ μ¬μ©λ©λλ€.
- νΉμ§
- λΉκ³ μ μ± : λμΌν μ¬μ€ IP μ£Όμκ° μ¬λ¬ λ΄λΆ λ€νΈμν¬μμ μ¬μ©λ μ μμ΅λλ€.
- 보μ : μΈλΆ λ€νΈμν¬μμ μ§μ μ κ·Όν μ μμΌλ―λ‘ λ³΄μμ΄ κ°νλ©λλ€.
- NAT νμμ± : μΈλΆμμ ν΅μ μ μν΄ NATλ₯Ό ν΅ν΄ κ³΅μΈ IPλ‘ λ³νλμ΄μΌ ν©λλ€.
ν΅μ λ°©μ λΉκ΅ : μ λμΊμ€νΈ, λ©ν°μΊμ€νΈ, λΈλ‘λμΊμ€νΈ
1. μ λμΊμ€νΈ (Unicast)
- μ μ
- μ ν°μΊμ€νΈλ ν λμ μ‘μ μκ° ν λμ μμ μμκ² λ°μ΄ν°λ₯Ό μ μ‘νλ λ°©μμ
λλ€. λ€νΈμν¬μμ κ°μ₯ μΌλ°μ μΈ ν΅μ λ°©μμΌλ‘, ν΄λΌμ΄μΈνΈ-μλ² λͺ¨λΈμμ μ£Όλ‘ μ¬μ©λ©λλ€.
- νΉμ§
- 1:1 ν΅μ λ°©μ
- κ° μ λμΊμ€νΈ ν΅μ μ κ³ μ ν κ²½λ‘λ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§λ©°, λ€νΈμν¬ νΈλν½(μ¦, λ°μ΄ν°)μ κ° μμ μ(μ μ‘ λ°λ λμμμκ²λ§)μκ² κ°λ³μ μΌλ‘ μ λ¬λ©λλ€.
- μμ : μΉ λΈλΌμ°μ μμ νΉμ μΉ μλ²μ HTTP μμ²μ 보λ΄λ κ²½μ°, μ΄λ©μΌ μ μ‘, νμΌ λ€μ΄λ‘λ λ±μ΄ μ λμΊμ€νΈ ν΅μ μ ν΄λΉλ©λλ€.
2. λ©ν°μΊμ€νΈ (Multicast)
- μ μ
- λ©ν°μΊμ€νΈλ ν λμ μ‘μ μκ° νΉμ κ·Έλ£Ήμ μ¬λ¬ μμ μμκ² λ°μ΄ν°λ₯Ό μ μ‘νλ λ°©μμ
λλ€. λ°μ΄ν°λ₯Ό μμ νκ³ μ νλ κ·Έλ£Ήμ μν μμ μλ€λ§ λ°μ΄ν° ν¨ν·μ μμ νκ² λ©λλ€.
- νΉμ§
- ν λ²μ μ μ‘μΌλ‘ ν΄λΉ κ·Έλ£Ή λ΄ λͺ¨λ μμ μκ°λ°μ΄ν°λ₯Ό μμ ν μ μκ² ν©λλ€. μ΄λ‘ μΈν΄ λ€νΈμν¬ μμμ μ μ½ν μ μμ΅λλ€.
- μμ : μ€μκ° λΉλμ€ μ€νΈλ¦¬λ°, IPTV μλΉμ€, μ¨λΌμΈ κ°μ λ±μ΄ λ©ν°μΊμ€νΈ λ°©μμΌλ‘ μ μ‘λ μ μμ΅λλ€.
3. λΈλ‘λμΊμ€νΈ (Broadcast)
- μ μ : λΈλ‘λμΊμ€νΈλ ν λμ μ‘μ μκ° λ€νΈμν¬μ λͺ¨λ μ₯μΉμκ² λ°μ΄ν°λ₯Ό μ μ‘νλ λ°©μμ
λλ€. μ£Όλ‘ λ‘컬 λ€νΈμν¬(LAN)μμ μ¬μ©λλ©°, λ€νΈμν¬ λ΄ λͺ¨λ μ₯μΉκ° λ°μ΄ν° ν¨ν·μ μμ νκ² λ©λλ€.
- νΉμ§ : 1: μ 체 ν΅μ λ°©μ
- λ€νΈμν¬μ λͺ¨λ μ₯μΉκ° λ°μ΄ν°λ₯Ό μμ νλ―λ‘, λ€νΈμν¬ λΆνκ° λ°μν μ μμ΅λλ€.
- ARP(Address Resolution Protocol) μμ², DHCP(Dynamic Host Configuration Protocol) μλ²μμ IP μ£Όμλ₯Ό ν λΉν λμ ν΅μ λ±μ΄ λΈλ‘λμΊμ€νΈ λ°©μμΌλ‘ μ΄λ£¨μ΄μ§λλ€.