TCPμ UDP
π‘ μ μ‘ κ³μΈ΅μ μ‘μ μμ μμ μλ₯Ό μ°κ²°νλ ν΅μ μλΉμ€λ₯Ό μ 곡νλ κ³μΈ΅μΌλ‘, λͺ©μ μ§μ μ λ’°ν μ μλ λ°μ΄ν°λ₯Ό μ λ¬νλ κ²μ΄ λͺ©νμ
λλ€. μ΄λ, μ¬μ©λλ λνμ μΈ νλ‘ν μ½μ΄ TCP μ UDP μ
λλ€. TCPμ UDPκ° μ΄λ»κ² λμνκ³ , μ¬μ©λλμ§ μμλ³΄κ³ μ ν©λλ€.
[1] TCP
λ°μ΄ν°λ₯Ό λ©μΈμ§μ ννλ‘ λ³΄λ΄κΈ° μν΄ IPμ ν¨κ» μ¬μ©νλ νλ‘ν μ½λ‘, λ°μ΄ν°λ₯Ό μ μ‘νκΈ° μ μ κ°μνμ μ΄λΌλ λ
Όλ¦¬μ μ°κ²°μ μ€μ νμ¬ μ μ‘ν μμλλ‘ μμ ν μ μλ μ°κ²° μ§ν₯ νλ‘ν μ½ μ
λλ€.
- μ’
λ¨ κ° λ°μ΄ν° μ‘μμ μλΉμ€λ₯Ό μ 곡ν©λλ€.
- λ°μ΄ν° λ¨μ: Segment
- μλ¬λ₯Ό 체ν¬νμ¬ μμ€μ μ¬μ μ‘ λ± μ ν΅ν΄ λμ μ λ’°μ±μ 보μ₯ν©λλ€.
- λ°μ΄ν°λ₯Ό λ°μ΄νΈ λ¨μλ‘ μ μ‘νλ μ€νΈλ¦Ό ν΅μ μ
λλ€.
- νλ¦μ μ΄ - μ²λ¦¬ν μ μλ λ²μ λ΄μ λ°μ΄ν°λ₯Ό 보λ΄λλ‘ μ μ΄ν©λλ€.μ‘μμ μΈ‘ ν¨ν·μ μ‘°μ ν©λλ€.
ex) μ¬λΌμ΄λ© μλμ°, Nagle μκ³ λ¦¬μ¦, Clark (μ§μ°νμΈμλ΅), Slow Start
- νΌμ‘μ μ΄ - νΌμ‘νμμ λ°©μ§νκ±°λ μ μ΄ν©λλ€. λ€νΈμν¬λ΄ ν¨ν·μ μ‘°μ ν©λλ€. ex) νΌμ‘ ννΌ, μ μν μ¬μ μ‘κ³Ό μ μν 볡ꡬ
** μ¬λΌμ΄λ© μλμ°: μμ μΈ‘μμ μ€μ ν μλμ° ν¬κΈ°λ§νΌ μ‘μ μΈ‘μμ μμ μΈ‘μ νμΈ μλ΅ μμ΄ TCP ν¨ν·μ μ μ‘ν μ μκ² νμ¬ νλ¦μ λμ μΌλ‘ μ‘°μ νλ μ μ΄ κΈ°λ²μ
λλ€. νμ§λ§ μμ μΈ‘μ μ²λ¦¬ μλκ° λλ¦° κ²½μ° 1byteμ© μ μ‘λλ λ¬Έμ κ° μμ΄ μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μκ³Ό κ°μ μκ³ λ¦¬μ¦μ μ¬μ©ν©λλ€.
** Nagle μκ³ λ¦¬μ¦: μ‘μ μΈ‘μμ μ μ‘ν λ°μ΄ν°λ₯Ό νλ²μ λͺ¨μ μμ μΈ‘μ μλ΅μ λ°μΌλ©΄ μ΄λ₯Ό μ μ‘ν΄μ 1byteμ© μ μ‘λλ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€.
** Clark : μμ λ²νΌκ° MSSλ§νΌ λ¨μμ λ, λλ λ²νΌμ μ¬μ 곡κ°μ΄ λ²νΌ ν¬κΈ°μ μ λ°μ΄ λ λκΉμ§ μμ μλμ° ν¬κΈ°λ₯Ό κ³μ 0μΌλ‘ νμ¬ ACKλ₯Ό μ μ‘ν©λλ€. μμ λ²νΌμ μΆ©λΆν 곡κ°μ΄ μκΈ°κΈ° μ κΉμ§ νμΈ μλ΅μ 보λ΄μ§ μμ λ²νΌκ³΅κ° νλ³΄κ° κ°λ₯ν©λλ€.
** Slow Start: μ‘μ μΈ‘μμ λ€νΈμν¬ μνμ λ°λΌ νλ¦μ μ μ΄ν©λλ€.
[2] UDP
λ°μ΄ν°λ₯Ό λ°μ΄ν°κ·Έλ¨ λ¨μλ‘ μ²λ¦¬νλ νλ‘ν μ½λ‘, μΌλ ¨μ λ°μ΄ν° κ·Έλ¨λ€μ΄ λ
립μ μΌλ‘ μ΄λνμ¬ μ΅μ μ κ²½λ‘λ‘ μ λ¬νλ λΉμ°κ²°ν νλ‘ν μ½ μ
λλ€.
- λ°μ΄ν° λ¨μ: λ°μ΄ν°κ·Έλ¨
- νλ¦μ μ΄, νΌμ‘μ μ΄, μλ¬μ²΄ν¬κ° λΆκ°λ₯ν©λλ€. κ·Έλ¬λ μ μ‘ μλκ° λΉ¨λΌ μλκ° μ€μν λ°©λ©΄μμ μ¬μ©λ©λλ€. ex) μ€νΈλ¦¬λ° μ΄ν리μΌμ΄μ
- μμ μΈ‘μμ 체ν¬μ¬μ μ΄μ©νμ¬ μλ¬λ₯Ό κ²μ¬ν μ μμ΅λλ€. κ·Έλ¬λ μ‘μ μΈ‘μμλ μ΄λ₯Ό νμΈν μ μκ³ , 체ν¬μ¬μμ μλ¬κ° λ°μν κ²½μ° νμΈμ΄ λΆκ°λ₯νλ€λ νκ³κ° μμ΅λλ€.
[3] TCP ν€λ

TCP ν€λ μ©μ΄
- μμλ²νΈ: λ°μ΄ν° μ€νΈλ¦Όμ λ΄λΆμ μΈ μμλ₯Ό ꡬλΆ
- νμΈμλ΅λ²νΈ: ACKμΌλ, μμ μΈ‘μ΄ λͺ λ²μ§Έ λ°μ΄ν°λ₯Ό μμ νλμ§ μ‘μ μΈ‘μ μλ €μ£Όλ μν β λ€μ λ²νΈμ λ°μ΄ν° μμ²
- νλκ·ΈλΉνΈ
- CWRμ ECEλ λ€νΈμν¬μ λͺ
μμ νΌμ‘ ν΅λ³΄(ECN)μ μν νλκ·Έμ
λλ€. μ‘μ νλ‘μΈμ€μκ² λͺ
μμ μΌλ‘ νΌμ‘ λ°μμ μλ €μ€μ μ€μ€λ‘ νΈλν½μ μννλλ‘ νλ κΈ°μ μ
λλ€.
- ECE: SYNνλκ·Έκ° μ€μ λ κ²½μ°, ECNμ΄ κ°λ₯ν¨μ μλ¦Ό, SYN νλκ·Έκ° 0μ΄λΌλ©΄ IP ν€λ μ
μ νΌμ‘ κ²½ν νλκ·Έκ° μ€μ λ ν¨ν·μ΄ μ μμ μΈ μ μ‘ μ€μ μμ λμμμ μλ―Έ
- CWR: ECEνλκ·Έλ₯Ό μμ ν΄μ μ μ‘νλ μΈκ·Έλ¨ΌνΈ μλμ° ν¬κΈ°λ₯Ό μ€μλ€λ μλ―Έ
- URG: κΈ΄κΈ ν¬μΈν°
- ACK: νμΈμλ΅λ²νΈκ° μ ν¨
- PSH: λ°μ΄ν°λ₯Ό κ°λ₯ν 빨리 μμ©κ³μΈ΅μΌλ‘ μ λ¬ν΄μΌν¨
- RST: μ°κ²° μ¬μ€μ
- SYN: μ°κ²°μ μ΄κΈ°ννκΈ° μν΄ μμλ²νΈ λκΈ°ν - μ΅μ΄μ μ°κ²°μ€μ
- FIN: μ μ‘ μ’
λ£
- μλμ° ν¬κΈ°: μμ μ λ²νΌ μνλ₯Ό 미리 μ‘μ μΈ‘μ μλ €μ€μΌλ‘μ¨ μ‘μ μΈ‘μμ λ²νΌν¬κΈ° λ§νΌ ν¨ν·μ μ΄λμ μ§μ νλλ‘ νλ€. - νλ¦ μ μ΄λ₯Ό μν΄ μ¬μ©
- 체ν¬μ¬: μμ μΈ‘μμ μλ¬ κ²μΆ, IP κ³μΈ΅μμ κ²μ¬ ν IP μ€μλΆλΆμ λ€μ κ²μ¬
- TCP ν€λ μ΅μ
- μ΅μ
μ λ : λ§μ§λ§ μ΅μ
μμ λνλ
- 무μλ(NOF) : TCP ν€λλ₯Ό 4byteμ λ°°μλ‘ λ§λ€κΈ° μν¨
- μ΅λ μΈκ·Έλ¨ΌνΈ ν¬κΈ°(MSS): μ°κ²° μ€μ μ μλ¨κ°μ ν©μμ μν΄ κ²°μ
- μλμ° μ€μΌμΌ ν©ν°: μλμ° ν¬κΈ°λ₯Ό 2λ°°μ© μ¦κ° μν΄μΌλ‘μ¨ κ³ μ λ€νΈμν¬μμ μ²λ¦¬ λμ μ΅λννκΈ° μν¨
- νμ μ€ν¬ν
- μ‘μ μΈ‘ : μ μ‘ μμ μκ°
- μμ μΈ‘: νμΈ μλ΅ μ μ‘μ μμ½ μλ΅νλμ μλμ νμ μ€ν¬ν κ°μ λ£μ΄ μ μ‘
- RTT: μ‘μ μΈ‘μ νμ¬μ μκ°κ³Ό νμ μ€ν¬ν μμ½ μλ΅μ κΈ°λ‘λ μκ°μ μ°¨λ‘ RTTλ₯Ό ꡬν¨
[4] UDP ν€λ

[5] TCP μ°κ²°

Three-way handshake - μ°κ²° μ€μ
- ν΄λΌμ΄μΈνΈλ TCP μΈκ·Έλ¨ΌνΈμ SYN λΉνΈλ₯Ό μ€μ , ISN(Initial Sequence Number)λ₯Ό μ μ‘ν©λλ€.
- μλ²μΈ‘μμλ SYNκ³Ό ν΄λΌμ΄μΈνΈμ μμλ²νΈμ 1λ₯Ό λν ISNκ°μ κ°λ ACKλ₯Ό 보λ
λλ€.
- ν΄λΌμ΄μΈνΈκ° μλ²μκ² ACKλ₯Ό 보λμΌλ‘μ¨ μλ°©ν₯ μ°κ²°μ μ€μ ν©λλ€.
four-way handshake - μ°κ²° μ’
λ£
- μ°κ²°μ μ’
λ£νλ €λ μ‘μ μΈ‘μ FIN λΉνΈλ₯Ό μ€μ νμ¬ μ μ‘ν©λλ€.
- μμ μΈ‘μμ νμΈ μλ΅ λ©μμ§λ₯Ό 보λ΄μ΄ μ‘μ μΈ‘μμ μμ μΈ‘μΌλ‘μ μ°κ²°μ μ’
λ£ν©λλ€.
- μμ μΈ‘μ FIN λΉνΈλ₯Ό μ€μ νμ¬ μ‘μ μΈ‘μΌλ‘ μΈκ·Έλ¨ΌνΈλ₯Ό μ μ‘ν©λλ€.
- μ‘μ μΈ‘μ΄ μ΄ μΈκ·Έλ¨ΌνΈμ νμΈ μλ΅ν¨μΌλ‘μ¨ μμ μΈ‘μμ μ‘μ μΈ‘μΌλ‘μ μ°κ²°μ μ’
λ£ν©λλ€.
- four-way handshake μ΄μ : λ°μ΄ν°μ μ μ€μ λ°©μ§νκΈ° μν΄μ μ
λλ€.
ν΄λΌμ΄μΈνΈκ° μλ²μ μ°κ²° ν΄μ μμ²μ μ μ‘νκ³ , μλ²μμ νλ²μ ν΄μ νλ©΄ μμ§ κ°μνμ λ΄μ λλ¬νμ§ λͺ»ν ν¨ν·μ΄ μ‘΄μ¬ν κ²½μ° μ μ€λ κ°λ₯μ΄ μμ΅λλ€.
ν΄λΌμ΄μΈνΈκ° μ μ‘ν ν¨ν·μ΄ μ¬μ μ‘ λ±μΌλ‘ μλ² μΈ‘μ λ¦κ² λμ°©νλ μν©μμ μ μ€λλ κ²μ λ°©μ§νκΈ° μν΄ 4way handshaekμ ν¨κ» Time-waitμ μ 곡ν©λλ€.
TCP λμ

[6] UDP λμ
