μ΄μ κΈμ ν΅ν΄ μμΌμ μμ±νλ κ²μ μμ보μλ€.
μ΄λ²μλ μμ±λ μμΌμ μ΄μ©νμ¬ μλ²μ μ μνλ κ²μ μμ보μ.
π 1. μ μμ μλ―Έ
μλ²μ μ μμ νλ€λ κ²μ ν΅μ μλμ μ μ΄ μ 보λ₯Ό μ£Όκ³ λ°μ μμΌμ νμν μ 보λ₯Ό κΈ°λ‘νκ³ λ°μ΄ν° μ‘·μμ μ΄ κ°λ₯ν μνλ‘ λ§λλ κ²μ μλ―Ένλ€.
μ μ΄ μ 보λ IP μ£Όμλ ν¬νΈ λ²νΈμ κ°μ΄ λ°μ΄ν° μ‘·μμ λμμ μ μ΄νκΈ° μν μ 보λ€.
λν, λ°μ΄ν° μ‘·μμ λμμ μ€νν λλ μ‘·μμ νλ λ°μ΄ν°λ₯Ό μΌμμ μΌλ‘ μ μ₯νλ λ©λͺ¨λ¦¬ μμ(=λ²νΌ λ©λͺ¨λ¦¬)μ΄ νμνλ°, λ²νΌ λ©λͺ¨λ¦¬μ ν보λ μ μμ ν λ μ€νλλ€.
π 2. 맨 μλΆλΆμ μ μ΄ μ 보λ₯Ό κΈ°λ‘ν ν€λλ₯Ό λ°°μΉνλ€.
μ μ΄ μ 보λ 'TCP ν€λμ κΈ°μ λλ μ 보'μ 'μμΌ(νλ‘ν μ½ μ€νμ λ©λͺ¨λ¦¬ μμ)μ κΈ°λ‘λλ μ 보'λ‘ λλλ€.
π 1. TCP ν€λμ κΈ°μ λλ μ 보
TCP ν€λμ κΈ°μ λλ μ μ΄ μ 보λ ν΄λΌμ΄μΈνΈμ μλ²κ° μλ‘ μ°λ½μ μ μΆ©νκΈ° μν΄ μ£Όκ³ λ°λ μ μ΄ μ 보λ€.
μ΄ νλͺ©μ κ³ μ νλμ΄ μκΈ° λλ¬Έμ 'μ μ λ¨κ³, μ‘·μμ λ¨κ³, μ°κ²° λκΈ° λ¨κ³'μμ ν΄λΌμ΄μΈνΈμ μλ²κ° λνν λλ§λ€ ν¨ν·μ ν΄λΉ μ μ΄ μ 보λ₯Ό λΆκ°νλ€.
μ¦, ν€λμ κΈ°μ λ μ μ΄μ 보λ₯Ό μ΄μ©νμ¬ ν΄λΌμ΄μΈνΈμ μλ²κ° μλ‘ μ°λ½μ μ£Όκ³ λ°λ κ²μ΄λ€.
π 2. μμΌ(νλ‘ν μ½ μ€νμ λ©λͺ¨λ¦¬ μμ)μ κΈ°λ‘λλ μ 보
λ λ²μ§Έ μ μ΄ μ 보λ 'μμΌμ κΈ°λ‘λμ΄ νλ‘ν μ½ μ€νμ λμμ μ μ΄νκΈ° μν κ²'μ΄λ€.
μ¬κΈ°μλ μ ν리μΌμ΄μ μμ ν΅μ§λ μ 보, ν΅μ μλλ‘λΆν° λ°μ μ 보, μ‘·μμ λμμ μ§ν μν© λ±μ΄ μμλ‘ κΈ°λ‘λκ³ , νλ‘ν μ½ μ€νμ μ΄λ¬ν μ 보λ₯Ό μ°Έμ‘°νμ¬ λμνκ² λλ€.
μμΌμ κΈ°λ‘νλ μ μ΄ μ 보λ κ³ μ νλμ΄ μμ§ μκ³ νλ‘ν μ½ μ€νμ λ§λλ μ¬λμ λ°λΌ λ¬λΌμ§λ€. κ·Έλ¬λ μμΌμ μ μ΄ μ 보 μ€μμ μ€μν κ²μ λͺ λ Ήμ μν΄ νμλ μ μλλ°, μ΄κ²μ OSμ νλ‘ν μ½ μ€νμλ 곡ν΅μ΄λ€.
π 3. μ μ λμμ μ€μ²΄
μ ν리μΌμ΄μ μ΄ Socket λΌμ΄λΈλ¬λ¦¬μ connectλ₯Ό νΈμΆνλ κ²λΆν° μμνμ¬ μ μ λμμ μ΄ν΄λ³΄λλ‘ νμ.
- Socket λΌμ΄λΈλ¬λ¦¬μ connect νΈμΆ
connect(<λμ€ν¬λ¦½ν°>, <μλ² μΈ‘μ IP μ£Όμμ ν¬νΈ λ²νΈ>,...) - μ μ΄ μ 보λ₯Ό κΈ°λ‘ν TCP ν€λλ₯Ό λ§λ λ€.
컨νΈλ‘€ λΉνΈμΈ SYNλΌλ λΉνΈλ₯Ό 1λ‘ λ§λ λ€. - λ§λ€μ΄μ§ TCP ν€λλ₯Ό IP λ΄λΉ λΆλΆμ 건λ€μ£Όμ΄ μ‘μ νλλ‘ μλ’°νλ€.
- μλ² μΈ‘μ μ μμ κΈ°λ€λ¦¬λ μνμ μ§μ λ μμΌμ λμ°©νλ€.
- ν΄λΌμ΄μΈνΈμ λ§μ°¬κ°μ§λ‘ μ μ΄ μ 보λ₯Ό κΈ°λ‘ν TCP ν€λλ₯Ό λ§λ λ€.
SYN λΉνΈλΏλ§ μλλΌ ACKλΌλ 컨νΈλ‘€ λΉνΈλ 1λ‘ λ§λ λ€.
ACKλ₯Ό 1λ‘ λ§λλ μ΄μ λ ν¨ν·μ μ λ°μλ€λ κ²μ μ리기 μν κ²μ΄λ€. - μλ² μΈ‘μ TCP ν€λλ₯Ό IP λ΄λΉ λΆλΆμ 건λ€μ£Όμ΄ ν΄λΌμ΄μΈνΈμκ² μλ΅μ μ μ‘νλ€.
- μλ² μΈ‘μΌλ‘λΆν° 건λ€λ°μ μλ΅μ TCP ν€λλ₯Ό μ‘°μ¬νμ¬ μλ² μΈ‘μ μ μ λμμ΄ μ±κ³΅νλμ§ νμΈνλ€.
SYNμ ACKκ° 1μ΄λ©΄ μ μ μ±κ³΅μ΄λ€.
μ μ μλ£λ₯Ό λνλ΄λ μ μ΄ μ 보λ₯Ό μμΌμ κΈ°λ‘νλ€. - ν¨ν·μ΄ λμ°©ν κ²μ μλ²μ μλ¦°λ€.
ACK λΉνΈλ₯Ό 1λ‘ λ§λ TCP ν€λλ₯Ό μ μ‘νλ€.
μμ κ³Όμ μ κ±°μΉλ©΄ μ μμ΄ μλ£λκ³ μ‘·μμ ν μ μλ μνκ° λμλ€κ³ ν μ μλ€.
νμ΄νμ κ°μ κ²μΌλ‘ μμΌμ΄ μ°κ²°λμλ€κ³ μκ°ν μ μλλ°, λ€νΈμν¬μμ μ΄ νμ΄νλ₯Ό '컀λ₯μ 'μ΄λΌκ³ νλ€.
컀λ₯μ μ λ°μ΄ν° μ‘·μμ λμμ κ³μνκ³ μλ λμ, μ¦ closeλ₯Ό νΈμΆνμ¬ μ°κ²°μ λμ λκΉμ§ κ³μ μ‘΄μ¬νλ€. μ΄κ²μ΄ μ΄μ κΈμμ μ΄ν΄λ³΄κΈ°λ‘ νλ, μ°κ²°μ λμ§ μκ³ μμ²κ³Ό μλ΅μ μ£Όκ³ λ°λ λ°©λ²μ΄λ€.
ν΄λΉ κΈμ Tsutomu Tone λμ 'μ±κ³΅κ³Ό μ€ν¨λ₯Ό κ²°μ νλ 1%μ λ€νΈμν¬ μ리'λ₯Ό μ°Έκ³ νμμ΅λλ€.