1. μ€λ₯μ νλ¦ μ μ΄
Clientμ Serverλ ν΅μ μ νλ©° μλ§μ λ°μ΄ν°λ₯Ό ν¨ν·μΌλ‘ μͺΌκ² μ£Όκ³ λ°κ² λ©λλ€. μ΄κ³Όμ μμ μ€λ₯μ νλ¦μ΄ μ μ΄λ μ λ’°μ± μλ μ μ‘μ μνμ¬ λ Έμ΄μ¦λ‘ μΈνμ¬ μ λ¬λ°μ ν¨ν·μ΄ μ€κ°μ νμλμ§λ μμλμ§? λ€νΈμν¬ λ¬Έμ λ‘ μΈνμ¬ ν¨ν·μ΄ μ€κ°μ μ μ€λμ§λ μμλμ§? λ§μ½ μ μ€λμλ€λ©΄ μ΄ν ν¨ν·μ μ΄λ»κ² μ¬μ μ‘ν μ§? νμΈμ΄ νμν©λλ€.
첫λ²μ§Έ μ λ¬ λ°μ ν¨ν·μ΄ μ€κ°μ νμλμ§λ μμλμ§?(μ€λ₯ κ²μΆ λ°©μ) νμΈνκΈ° μν΄μ 체ν¬μ¬, ν¨λ¦¬ν° κ²μ¬, CRC λ±μ μ΄μ©ν©λλ€. μΈκ·Έλ¨ΌνΈ ν€λμμλ 체ν¬μ¬ νλλ₯Ό ν΅νμ¬ μ€λ₯λ₯Ό μ μ νκ³ λ¬΄κ²°μ±μ 보νΈνκ³ μμ΅λλ€.
λλ²μ§Έ ν¨ν·μ΄ μ€κ°μ μ μ€λμ§λ μμλμ§?(νμΈ μλ΅) νμΈνκΈ° μν΄μ μμ μΈ‘μ μ‘μ μΈ‘μΌλ‘λΆν° ν¨ν·μ λ°κ³ κΈμ μλ΅μΌλ‘ ACK ν¨ν·μ λΆμ μλ΅μΌλ‘ NACK ν¨ν·μ λ°μ‘ν©λλ€. μμ μΈ‘μ μ‘μ μΈ‘μΌλ‘λΆν° μλ΅ ν¨ν·μ λ°μ ν μ΄λ€ ν¨ν·μ λ€μμ 보λΌμ§ κ²°μ νκ² λλλ° μ΄ κ³Όμ μμ μΈμ κΉμ§λ μλ΅ ν¨ν·μ κΈ°λ€λ¦΄ μ μκΈ° λλ¬Έμ μ¬μ μ‘ νμ΄λ¨Έκ° λμν©λλ€. μ¬μ μ‘ νμ΄λ¨Έκ° λλκ²λλ©΄ μλ΅ ν¨ν·μ λ°μ§ μμΌλ©΄ μ μ€λ‘ κ°μ£Όνκ³ ν¨ν·μ μ¬μ μ‘ν©λλ€.
μ¬κΈ°μ λ±μ₯νλ μ¬μ μ‘ νμ΄λ¨Έ(RTO, Retransmission Timeout)λ λ°μ΄ν°λ₯Ό μ¬μ μ‘νκΈ° μν νμ΄λ¨Έμ λλ€. μ¬μ μ‘ νμ΄λ¨Έλ RTT(Round Trip Time)κ³Ό μ΄λ ν μκ³ λ¦¬μ¦,,,? κ³μ°μ,,,?μΌλ‘ κ³μ°λλ©° λμ μΌλ‘ μ ν΄μ§λλ€. RTTλ 3 Way Handshakingμμ SYN ν¨ν·μ 보λ΄κ³ ACK ν¨ν·μ λ°κΈ°κΉμ§μ μκ°μ΄λ©° ν΄λΉ μμ μ μ¬μ μ‘ νμ΄λ¨Έκ° μ ν΄μ§κΈ° μ μ΄κΈ° λλ¬Έμ Initial RTOλ₯Ό μ°Έκ³ νκ² λ©λλ€. Initial RTOλ μ΄μ체μ μ λ°λΌμ λ€λ₯΄κ² μ€μ λμ΄ μμΌλ©° λ³΄ν΅ 1μ΄μ΄λ©° 2μ κ³±μΌλ‘ λμ΄λ©λλ€. μ΄λ κ² 3 Way Handshakingμμ μΈ‘μ λ Initial RTTλ ν¨ν·μμ νμΈ κ°λ₯ν©λλ€.
μΈλ²μ§Έ ν¨ν·μ μ΄λ»κ² μ¬μ μ‘ν μ§?(ARQ, Automatic Repeat reQuest) νμΈνκΈ° μν΄μ λ€μ ν¨ν·μ ν¬κΈ°μ μ μ€ μμ μΌλ‘λΆν° μΌλ§λ ν¨ν·μ μ¬μ μ‘ν μ§ κ²°μ ν΄μΌ ν©λλ€. μ΄ μΈκ°μ§ λμ λ°©μμ΄ μμ΅λλ€.
Stop and Wait ARQλ ν¨ν·μ νκ°μ©λ§ λ³΄λΌ μ μλ κ°μ₯ λ¨μν λ°©μμ λλ€. μμ μΈ‘μμ ν¨ν·μ 보λ΄κ³ μ‘μ μΈ‘μΌλ‘λΆν° ACK ν¨ν·μ μ λ¬ λ°μμΌ λ€μ ν¨ν·μ μ μ‘ν©λλ€. μμ μΈ‘μ μ¬μ μ‘ νμ΄λ¨Έκ° μλ£λκΈ° μ κΉμ§ μλ΅ ν¨ν·μ λ°μ§ λͺ»ν κ²½μ° λ§μ§λ§μ λ³΄λΈ ν¨ν·μ μ¬μ μ‘ν©λλ€. μλ΅ ν¨ν·μ λ°κΈ° μ κ³Ό μ¬μ μ‘ νμ΄λ¨Έκ° μλ£λκΈ° μ κΉμ§ μμ μΈ‘μ μ무κ²λ ν μ μκΈ° λλ¬Έμ κ°μ₯ λΉν¨μ¨μ μ λλ€.
Go Back N ARQλ μ¬λΌμ΄λ© μλμ°λ₯Ό μ΄μ©νμ¬ νλ²μ μ¬λ¬ ν¨ν·μ λ³΄λΌ μ μμΌλ©° ν¨ν· μ μ€ μ μ μ€λ μμ λΆν° μ¬μ μ‘νλ λ°©μμ λλ€. μμ μΈ‘μ μμλλ‘ ν¨ν·μ΄ λμ°©νμ§ μμμ κ²½μ° ν¨ν·μ νκΈ°νλ©° NACK ν¨ν·μΌλ‘ μ μ€λ ν¨ν·μ μ¬μ μ‘ μμ²ν©λλ€. λ§μ½ μμ μΈ‘μ μ¬μ μ‘ νμ΄λ¨Έκ° μλ£λκΈ° μ κΉμ§ μλ΅ ν¨ν·μ λ°μ§ λͺ»ν κ²½μ° μλ΅μ λ°μ§ λͺ»ν ν¨ν·λΆν° μ¬μ μ‘ν©λλ€.
Selective Repeat ARQμ λλ€. μ¬λΌμ΄λ© μλμ°λ₯Ό μ΄μ©νμ¬ νλ²μ μ¬λ¬ ν¨ν·μ λ³΄λΌ μ μμΌλ©° ν¨ν· μ μ€ μ μ μ€λ ν¨ν·λ§ μ¬μ μ‘νλ λ°©μμ λλ€. μμ μΈ‘μ μμλλ‘ ν¨ν·μ΄ λμ°©νμ§ μμμ κ²½μ° ν¨ν·μ λ²νΌμ 보κ΄νλ©° NACK ν¨ν·μΌλ‘ μ μ€λ ν¨ν·μ μ¬μ μ‘ μμ²ν©λλ€. μ¬μ μ‘ λ°μ ν λ²νΌμ 보κ΄λ ν¨ν·κ³Ό μ¬μ λ ¬ν©λλ€. λ§μ½ μμ μΈ‘μ μ¬μ μ‘ νμ΄λ¨Έκ° μλ£λκΈ° μ κΉμ§ μλ΅ ν¨ν·μ λ°μ§ λͺ»ν κ²½μ° μλ΅μ λ°μ§ λͺ»ν ν¨ν·λΆν° μ¬μ μ‘ν©λλ€. κ°μ₯ ν¨μ¨μ μ΄μ§λ§ λΉκ΅μ 볡μ‘νκ³ λ³λ λ²νΌμ μ¬μ λ ¬μ΄ νμν©λλ€.
μ¬κΈ°μ λ±μ₯νλ μ¬λΌμ΄λ© μλμ°(Sliding Window)λ μμ μΈ‘κ³Ό μ‘μ μΈ‘μ΄ λ€νΈμν¬ μν©κ³Ό λ©λͺ¨λ¦¬ λ²νΌλ₯Ό κ³ λ €νμ¬ νλ²μ μ²λ¦¬ν μ μλ λ©λͺ¨λ¦¬ λ²νΌ μμ μλμ° μ¬μ΄μ¦λ₯Ό νμν©λλ€. μμ μΈ‘μ μλμ° μ¬μ΄μ¦ μ΄λ΄μμ νλ²μ ν¨ν·μ μ μ‘νλ©° ACK ν¨ν·μ λ°μ ν μλ‘μ΄ ν¨ν·μ΄ μλ λ°©ν₯μΌλ‘ λ―Έλ κ³Όμ μ λ°λ³΅ν©λλ€. μμ μΈ‘μ νμ¬ μμ ν μ μλ μ¬μ μλμ° μ¬μ΄μ¦(RWND) μ μ‘νλ©΄ μ‘μ μΈ‘μ μ΄λ₯Ό μ°Έκ³ νμ¬ μ μ‘ μλμ° μ¬μ΄μ¦(AWND)λ₯Ό κ²°μ ν©λλ€. λ§μ½ λ€νΈμν¬ μν©μ΄ μ’μ§ μμ νΌμ‘ μ μ΄λ₯Ό μν΄ μλμ° μ¬μ΄μ¦μ μ‘°μ ν΄μΌ νλ€λ©΄ μ‘μ μΈ‘μ νΌμ‘ μλμ° μ¬μ΄μ¦(CWND)λ₯Ό ν¨κ» μ°Έκ³ νμ¬ μ μ‘ μλμ° μ¬μ΄μ¦(AWND)λ₯Ό κ²°μ ν©λλ€.
2. TCP
TCPλ μ λ’°μ± λμ μ μ‘μ λͺ©νλ‘ νλ©° μ€λ₯μ νλ¦μ μ μ΄νκΈ° μν΄μ μ€λ₯ κ²μΆ λ°©μ, νμΈ μλ΅, ARQ λͺ¨λ μ¬μ©νκ³ μμ΅λλ€. μλ TCPλ₯Ό μ¬μ©νλ TLS 1.2μ μ μ‘μ 보면 μ€μ λ°μ΄ν°κ° μ΅μ΄ μ μ‘λκΈ°κΉμ§ λμ°¨λ‘ ν¨ν·(3 Way Handshaking, TLS Handshaking) κ΅νμ΄ νμν©λλ€. μ΄ κ³Όμ μμ 3 Way Handshkaingμ νμμ΄μ§λ§ TLS Handshakingμ HTTP μνΈνλ₯Ό μν κ³Όμ μ΄λΌ μνΈνκ° νμ μμ μ μλ΅λ μ μμΌλ©° μ΄ν μλ΅ ν¨ν·μ μ¬λΆλ₯Ό νμΈνλ©° λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€.
첫λ²μ¬ μ€λ₯ κ²μΆ λ°©μμΌλ‘λ 체ν¬μ¬ νλλ₯Ό μ¬μ©νκ³ μμ΅λλ€. μλμ κ°μ΄ TCP ν¨ν·μλ 체ν¬μ¬ νλκ° νμλ‘ μμΌλ©° μν νλ κ°μ ν΅νμ¬ ν΄λΉ ν¨ν·μ μ€λ₯ κ²μΆ μ¬λΆλ₯Ό νμΈν μ μμ΅λλ€.
λλ²μ§Έ νμΈ μλ΅μΌλ‘λ μλ΅ ν¨ν·μ μ‘μμ νκ³ μμ΅λλ€. μλμ κ°μ΄ TCPλ ν¨ν· μ μ‘ ν μλ΅ ν¨ν·μ ν΅νμ¬ μμ μΈ‘μ ν¨ν· μ μ‘ μ¬λΆλ₯Ό νμΈν©λλ€. λ€λ§ μ΄ κ³Όμ μμ ACK ν¨ν·λ§ μ¬μ©ν©λλ€. NACK ν¨ν·μ ν¨κ» μ¬μ©ν κ²½μ° μμ μΈ‘μ΄ ν¨ν·μ νμΈνλ κ³Όμ μ΄ νμνμ¬ νΌμ‘ μ μ΄μ 3 Duplicate ACKλ₯Ό ν΅ν΄ νΉμ ACK ν¨ν·μ μΈλ² λ°μ κ²½μ° ν¨ν· μ μ€λ‘ κ°μ£Όνκ³ μ¬μ μ‘ν©λλ€.
μΈλ²μ§Έ ARQλ‘λ Go Back N ARQμ Selective Repeat ARQλ₯Ό ν¨κ» μ¬μ©νκ³ μμΌλ©° μ¬λΌμ΄λ© μλμ°λ₯Ό μ΄μ©νμ¬ νλ²μ μ¬λ¬ ν¨ν·μ λ³΄λΌ μ μμ΅λλ€. μλμ κ°μ΄ μ¬λ¬κ°μ§ μν©μ λ°λΌ ν¨ν·μ μ¬μ μ‘νμ¬ μ‘μμ μΈ‘μ νμ¬ κ°λ₯ν μλμ° μ¬μ΄μ¦λ₯Ό 곡μ νκ³ μ‘°μ ν©λλ€.
3. UDP
UDPλ λΉ λ₯Έ μ μ‘μ λͺ©νλ‘ νλ©° μ΅μνμ μ€λ₯λ₯Ό μ μ΄νκΈ° μν΄ μ€λ₯ κ²μΆ λ°©μλ§μ μ¬μ©νκ³ μμ΅λλ€. μλ UDPλ₯Ό μ¬μ©νλ QUIC(HTTP3)μ μ μ‘μ 보면 μ€μ λ°μ΄ν°κ° μ΅μ΄ μ μ‘λκΈ°κΉμ§ νμ°¨λ‘ ν¨ν·(QUIC Handshaking) κ΅νμ΄ νμν©λλ€. μ΄ κ³Όμ λ HTTP μνΈνλ₯Ό μν κ³Όμ μ΄λΌ μνΈνκ° νμ μμ μ μλ΅λ μ μμΌλ©° μ΄ν μλ΅ ν¨ν· μμ΄ λΉ λ₯΄κ² λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€.
μ€λ₯ κ²μΆ λ°©μμΌλ‘λ 체ν¬μ¬ νλλ₯Ό μ¬μ©νκ³ μμ΅λλ€. μλμ κ°μ΄ UDP ν¨ν·μλ 체ν¬μ¬ νλκ° νμλ‘ μμΌλ©° μν νλ κ°μ ν΅νμ¬ ν΄λΉ ν¨ν·μ μ€λ₯ κ²μΆ μ¬λΆλ₯Ό νμΈν μ μμ΅λλ€.
'Network' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
TCP νΌμ‘ μ μ΄ (0) | 2021.08.05 |
---|---|
TCP Sequence Numberμ ACK Number (2) | 2021.07.29 |
MTUμ TCP MSS, UDP (0) | 2021.07.25 |
νμ΄μ¬ netmiko λΌμ΄λΈλ¬λ¦¬λ‘ λ€νΈμν¬ μ₯λΉ μ μ (3) | 2021.07.23 |
λ€νΈμν¬ μ₯λΉ κ΅¬μ± μμ (0) | 2021.07.16 |