μ μ ν리μΌμ΄μ κ°λ°μκ° TCP λ³΄λ€ UDP λ°©μμΌλ‘ μ ν리μΌμ΄μ μ κ°λ°νλ €κ³ νλμ§ μμ보μ.
μ ν리μΌμ΄μ λ λ²¨μ΄ λ°μ΄ν° μ‘μ μ λν΄μ μ κ΅ν μ μ΄λ₯Ό ν μ μλ€λ νΉμ§μ΄ μλ€. μ ν리μΌμ΄μ νλ‘μΈμ€κ° λ°μ΄ν°λ₯Ό UDPμκ² μ λ¬νμλ§μ UDPλ λ°μ΄ν°λ₯Ό UDP μΈκ·Έλ¨ΌνΈλ‘ λ§λ€κ³ , μ¦μ κ·Έ μΈκ·Έλ¨ΌνΈλ₯Ό λ€νΈμν¬ κ³μΈ΅μΌλ‘ μ λ¬νλ€. μ΄μ λ°ν΄μ TCPλ νΌμ‘ μ μ΄ λ©μ»€λμ¦μ κ°μ§κ³ μλ€. λ°λ©΄ UDPλ κΈ°λ³Έ μΈκ·Έλ¨ΌνΈ μ λ¬ μΈμ νμν μ΄λ€ μΆκ° κΈ°λ₯μ ꡬνν μ μλ€.
λ λ²μ§Έλ‘ μ°κ²° μ€μ μ΄ μλ€λ κ²μ΄λ€. TCPλ λ°μ΄ν° μ μ‘μ μμνκΈ° μ μ Handshakeλ₯Ό μ¬μ©νλ€. λ°λ©΄μ UDPλ νμμ μΈ μλΉλμ μμ΄ μ μ‘νλ€. κ·Έλ¬λ―λ‘ UDPλ μ°κ²°μ μ€μ νκΈ° μν μ΄λ€ μ§μ°λ μλ€.
μΈ λ²μ§Έλ‘ μ°κ²° μνκ° μλ€. TCPλ μ’ λ¨ μμ€ν μμ μ°κ²° μνλ₯Ό μ μ§νλ€. μ΄μ λ°ν΄ UDPλ μ°κ²° μνλ₯Ό μ μ§νμ§ μμΌλ©° νλΌλ―Έν° μ€μ μ΄λ€ κ²λ κΈ°λ‘νμ§ μλλ€. κ·Έλμ νΉμ μ ν리μΌμ΄μ μ ν λΉλ μλ²λ TCPλ³΄λ€ UDPμμ λμν λ λ λ§μ ν΄λΌμ΄μΈνΈλ₯Ό μμ©ν μ μλ€.
UDPλ RIP λΌμ°ν ν μ΄λΈ κ°±μ μ μ¬μ©λλ€. λν UDPλ λ€νΈμν¬ κ΄λ¦¬ (SNMP) λ°μ΄ν°λ₯Ό μ λ¬νλλ° μ¬μ©λλ€. λ€νΈμν¬ κ΄λ¦¬ μ ν리μΌμ΄μ μ λ€νΈμν¬κ° νΌμ‘ν μνμ μμ λ μμ£Ό λμν΄μΌ νλ―λ‘ μ΄λ¬ν κ²½μ°μλ UDPκ° TCPλ³΄λ€ μ’λ€. λν DNSμ TCPμ μ°κ²° μ€μ μ§μ°μ νΌνκΈ° μν΄μ UDPμμ λμνλ€. λν μ€μκ° μ ν리μΌμ΄μ μ TCP νΌμ‘ μ μ΄κ° λμ μν₯μ λ―ΈμΉλ€. κ·Έλμ ν΄λΉ κ°λ°μλ€μ κ·Έλ€μ μ ν리μΌμ΄μ μ TCP λμ UDPμμ λμνλλ‘ λ§λ λ€.
UDPλ μ ν리μΌμ΄μ νλ‘μΈμ€λ‘λΆν° λ©μμ§λ₯Ό κ°μ Έμμ λ€μ€ν / μλ€μ€ν μλΉμ€μ λν μΆλ°μ§ ν¬νΈ λ²νΈ νλμ λͺ©μ μ§ ν¬νΈ λ²νΈ νλλ₯Ό 첨λΆνκ³ λ€λ₯Έ λ νλλ€μ μΆκ°ν νμ μ΅μ’ μΈκ·Έλ¨ΌνΈλ₯Ό λ€νΈμν¬ κ³μΈ΅μΌλ‘ λ겨μ€λ€.
UDP 체ν¬μ¬μ μ€λ₯ κ²μΆμ μ 곡νλ€. μ¦, 체ν¬μ¬μ μΈκ·Έλ¨ΌνΈκ° μΆλ°μ§λ‘λΆν° λͺ©μ μ§λ‘ μ΄λνμ λ UDP μΈκ·Έλ¨ΌνΈ μμ λΉνΈμ λν λ³κ²½μ¬νμ΄ μλμ§ κ²μ¬νλ κ²μ΄λ€. μ‘μ μΈ‘μμ UDPλ μΈκ·Έλ¨ΌνΈ μμ μλ λͺ¨λ 16λΉνΈ μλ λ¨μλ‘ λνκ³ μ΄μ λνμ¬ λ€μ 1μ 보μλ₯Ό μννλ©°, λ§μ κ³Όμ μμ λ°μνλ μ€λ²νλ‘μ°λ wrap aroundλ₯Ό νλ€.
κ° λΉνΈλ€μ Bitwise μ°μ°μ μννκ³ λ°μν Carryμ λν΄μλ 보μλ₯Ό μ·¨νλ€. ν΄λΉ sumμ ꡬνκ² λ μνμμ 보μλ₯Ό ꡬνλ©΄ 체ν¬μ¬μ ꡬν μ μλ€. μμ μμμλ 체ν¬μ¬μ ν¬ν¨ν 4κ°μ λͺ¨λ 16λΉνΈ μλλ€μ λνλ€. λ§μ½ ν¨ν·μ μ΄λ€ μ€λ₯λ μμ§ μλ€λ©΄ μμ μμμμ ν©μ 1111111111111111μ΄ λ κ²μ΄λ€. λ§μ½ λΉνΈ μ€μμ νλλΌλ 0μ΄ μλ€λ©΄ ν¨ν·μ μ€λ₯κ° λ°μνμμ ν μ μλ€.
μ λ’°μ μΈ λ°μ΄ν° μ μ‘ μ°κ΅¬μ λν νλ μμν¬λ₯Ό 보μ¬μ€λ€. μμ κ³μΈ΅ κ°μ²΄μκ² μ 곡λλ μλΉμ€ μΆμνλ λ°μ΄ν°κ° μ μ‘λ μ μλ μ λ’°μ μΈ μ±λμ μ λ’°μ μΈ μ±λμ μλΉμ€ μΆμνλ€. μ λ’°μ μΈ μ±λμμλ μ μ‘λ λ°μ΄ν°κ° μμλκ±°λ μμ€λμ§ μλλ€. κ·Έλ¦¬κ³ λͺ¨λ λ°μ΄ν°λ μ μ‘λ μμλλ‘ μ λ¬λλ€. μ΄κ²μ TCPκ° μΈν°λ· μ ν리μΌμ΄μ μκ² μ 곡νλ μλΉμ€ λͺ¨λΈμ΄λ€. μ΄ μμ μ μ λ’°μ μΈ μ μ‘ νλ‘ν μ½μ μλμ μλ κ³μΈ΅μ΄ μ λ’°μ μ΄μ§ μμΌλ―λ‘ μ΄λ €μμ§λ€. μλ₯Ό λ€μ΄ TCPλ λΉμ λ’°μ μΈ μ’ λ¨κ° λ€νΈμν¬ κ³μΈ΅ (IP)μ λ°λ‘ μμμ ꡬνλ μ λ’°μ μΈ λ°μ΄ν° μ μ‘ νλ‘ν μ½μ΄λ€.
ν΄λΉ κ·Έλ¦Όμ λ°μ΄ν° μ μ‘ νλ‘ν μ½μ λν μΈν°νμ΄μ€λ₯Ό λνλΈλ€. λ°μ΄ν° μ μ‘ νλ‘ν μ½μ μ‘μ μΈ‘μ rdt_send() νΈμΆμ μν΄μ μμͺ½μΌλ‘λΆν° νΈμΆλ κ²μ΄λ€. μμ μΈ‘μμλ μμ κ³μΈ΅μΌλ‘ μ λ¬λ λ°μ΄ν°λ₯Ό λκΈΈ κ²μ΄λ€. μμ μΈ‘μμ rdt_rcv()λ ν¨ν·μ΄ μ±λμ μμ μΈ‘μΌλ‘λΆν° λμ°©νμ λ νΈμΆλλ€. rdt νλ‘ν μ½μ΄ μμ κ³μΈ΅μ λ°μ΄ν°λ₯Ό μ λ¬νλ €κ³ ν λ deleiver_data()λ₯Ό νΈμΆνλ€. μ΄μ λΆν° νλ‘ν μ½ λ°μ΄ν° λ¨μμ λν΄ μΈκ·Έλ¨ΌνΈλ³΄λ€λ ν¨ν·μ΄λΌλ μ©μ΄λ₯Ό μ¬μ©νλ€.
λ³νλ₯Ό μΌμΌν€λ μ¬κ±΄μ λ³νλ₯Ό νκΈ°νλ ννμ μμ λνλΈλ€. κ·Έλ¦¬κ³ μ΄λ²€νΈκ° λ°μνμ λ μ·¨ν΄μ§λ μ‘μ μ ννμ μλμ λνλΈλ€. rdtμ μ‘μ μΈ‘μ rdt_send(data) μ΄λ²€νΈμ μν΄ μμ κ³μΈ΅μΌλ‘λΆν° λ°μ΄ν°λ₯Ό λ°μλ€μ΄κ³ λ°μ΄ν°λ₯Ό ν¬ν¨ν ν¨ν·μ μμ νλ€. (make_pkt) μ€μ λ‘ rdt_send() μ΄λ²€νΈλ μμ κ³μΈ΅ μ ν리μΌμ΄μ μ νλ‘μμ νΈμΆμ μν΄μ λ°μνλ€.
μμ μΈ‘μμ rdtλ rdt_rcv(packet) μ΄λ²€νΈμ μν΄ νμμ μ±λλ‘λΆν° ν¨ν·μ μμ νκ³ , ν¨ν·μΌλ‘λΆν° λ°μ΄ν°λ₯Ό μΆμΆν ν λ°μ΄ν°λ₯Ό μμ κ³μΈ΅μΌλ‘ μ λ¬νλ€. μ΄λ²€νΈλ νμ κ³μΈ΅ νλ‘ν μ½λ‘λΆν°μ νλ‘μμ νΈμΆ(rdt_rcv)μ μν΄μ λ°μνλ€.
νμ μ±λμ λ μ€μ§ λͺ¨λΈμ ν¨ν· μμ λΉνΈλ€μ΄ νμ μ±λμμ μμλλ λͺ¨λΈμ΄λ€. κ·Έλ¬ν λΉνΈ μ€λ₯λ ν¨ν·μ΄ μ μ‘ λλ μ νλκ±°λ λ²νΌλ§λ λ λ€νΈμν¬μ 물리μ κ΅¬μ± μμμμ μΌλ°μ μΌλ‘ λ°μνλ€. μ μ΄λ©μμ§κ° μΆκ°λλλ° μμ λμλμ§ λλ μλͺ» μμ λμ΄ λ°λ³΅μ΄ νμνμ§λ₯Ό μμ μκ° μ‘μ μμκ² μλ € μ€ μ μκ² νλ€.
νμ§λ§ rdt2.0μ μ λμλλ κ² κ°μ§λ§ μΉλͺ μ μΈ κ²°ν¨μ΄ μλ€. ACK λλ NAK ν¨ν·μ΄ μμλ μ μλ€λ κ°λ₯μ±μ κ³ λ €νμ§ μμλ€. μ‘μ μ λ μμ μ μ±λλ‘ μ€λ³΅ ν¨ν·μ μ μ‘νλ€. νμ§λ§ μ΄κ²μ λ¬Έμ μ μ ACKλ NAKκ° μ‘μ μμκ² μ ννκ² μμ λμλ μ§λ₯Ό μ μ μλ€λ κ²μ΄λ€. κ·Έλ¬λ―λ‘ λμ°©νλ ν¨ν·μ΄ μλ‘μ΄ λ°μ΄ν°λ₯Ό ν¬ν¨νκ³ μλ κ²μΈμ§, μλλ©΄ μ¬μ μ‘μΈμ§λ₯Ό μ¬μ μ μ μ μλ€.
μ΄μ λν μλ‘μ΄ λ¬Έμ μ λν κ°λ¨ν ν΄κ²°μ± μ λ°μ΄ν° ν¨ν·μ μλ‘μ΄ νλλ₯Ό μΆκ°νκ³ μ΄ νλ μμ μμλ²νΈλ₯Ό μ½μ νλ λ°©μμΌλ‘ λ°μ΄ν° ν¨ν·μ μ‘μ μκ° λ²νΈλ₯Ό λΆμ΄λ κ²μ΄λ€.
νλ‘ν μ½ rdt 2.1μ μμ μλ‘λΆν° μ‘μ μκΉμ§μ κΈμ νμΈμλ΅κ³Ό λΆμ νμΈμλ΅μ λͺ¨λ ν¬ν¨νλ€.
μμκ° λ°λ ν¨ν·μ΄ μμ λλ©΄ μμ μλ μ΄λ―Έ μ μ μμ ν ν¨ν·μ λν κΈμ νμΈμλ΅μ μ μ‘νλ€. μμλ ν¨ν·μ΄ μμ λλ©΄ μμ μλ λΆμ νμΈμλ΅μ μ μ‘νλ€. NAKλ₯Ό μ‘μ νλ κ² λμ μ, κ°μ₯ μ΅κ·Όμ μ ννκ² μμ λ ν¨ν·μ λν΄ ACKλ₯Ό μ‘μ ν¨μΌλ‘μ¨ NAKλ₯Ό μ‘μ ν κ²κ³Ό κ°μ ν¨κ³Όλ₯Ό μ»μ μ μλ€. κ°μ ν¨ν·μ λν΄ 2 κ°μ ACKλ₯Ό μμ ν μ‘μ μλ μμ μκ° λ λ² ACKν ν¨ν·μ λ€μ ν¨ν·μ μ ννκ² μμ νμ§ λͺ»νλ€λ κ²μ μλ€. λΉνΈ μ€λ₯λ₯Ό κ°λ μ±λμ μν NAK μλ μ λ’°μ μΈ λ°μ΄ν° μ μ‘ νλ‘ν μ½μ rdt 2.2μ ν΄λΉνλ€.
ν¨ν· μμ€μ΄ μΌμ΄λλ κ²½μ°λ μ΄λ»κ² μ²λ¦¬ν κ²μΈκ°? μ‘μ μκ° λ°μ΄ν° ν¨ν·μ μ μ‘νκ³ ν¨ν· λλ μμ μμ ν¨ν·μ λν ACKλ₯Ό μμ€νλ€κ³ κ°μ νμ. μ΄λ κ²½μ°μλ μ‘μ μλ μ΄λ ν μλ΅λ μλ€. λ§μ½ μ‘μ μκ° ν¨ν·μ μμ΄λ²λ Έλ€λ κ²μ νμ ν μ λλ‘ μΆ©λΆν μκ°μ κΈ°λ€λ¦΄ μλ§ μλ€λ©΄, λ°μ΄ν° ν¨ν·μ κ°λ¨νκ² μ¬μ μ‘λ μ μλ€.
κ·Έλ λ€λ©΄ ν¨ν·μ μμ€νλ€λ κ²μ νμ νκΈ° μν΄ μΌλ§λ μ€λ«λμ κΈ°λ€λ €μΌ ν κΉ? μ‘μ μλ μ μ΄λ μ‘μ μμ μμ μ μ¬μ΄μ μ볡μκ° μ§μ°μ μμ μΈ‘μμ ν¨ν·μ μ²λ¦¬νλ λ° νμν μκ°μ λν λ§νΌ κΈ°λ€λ¦°λ€. λ§μ λ€νΈμν¬μμλ μ΄ μ΅μ μ μ΅λ μ§μ°μκ°μ μμΈ‘νκΈ°λμ‘°μ°¨ λ§€μ° μ΄λ ΅λ€. λμ±μ΄, μ΄μμ μΌλ‘λ νλ‘ν μ½μ΄ ν¨ν· μμ€μ κ°λ₯ν ν 빨리 볡ꡬν΄μΌ νλ€. μ¬κ±΄ κΈ°λ°μ μ¬μ μ‘ λ©μ»€λμ¦μ ꡬννκΈ° μν΄, μ£Όμ΄μ§ μκ°μ΄ κ²½κ³Όλ νμ μ‘μ μλ₯Ό μ€λ¨ν μ μλ μΉ΄μ΄νΈλ€μ΄ νμ΄λ¨Έκ° νμνλ€.
ν΄λΉ κ·Έλ¦Όμ ν¨ν·μ΄ μμλκ±°λ μμ€λ μ μλ μ±λμμ λ°μ΄ν°λ₯Ό μ λ’°μ μΌλ‘ μ μ‘νλ νλ‘ν μ½μΈ rdt 3.0 μ λν μ‘μ μ FSMμ 보μ¬μ€λ€.
μ‘μ μμ κ΄μ μμ μ¬μ μ‘μ λ§λ³ν΅μΉμ½κ³Ό κ°λ€. μ‘μ μλ λ°μ΄ν° ν¨ν·μ΄ μμ€λμλμ§, ACKκ° μμ€λμλμ§, ν¨ν· λλ ACKκ° λ¨μν μ§λμΉκ² μ§μ°λ κ²μΈμ§λ₯Ό μμ§ λͺ»νλ€. μκ° κΈ°λ°μ μ¬μ μ‘ λ§€μ»€λμ¦μ ꡬννκΈ° μν΄, μ£Όμ΄μ§ μκ°μ΄ κ²½κ³Όλ νμ μ‘μ μλ₯Ό μ€λ¨ν μ μλ μΉ΄μ΄νΈλ€μ΄ νμ΄λ¨Έκ° νμνλ€.
(1) 맀 ν¨ν·μ΄ μ‘μ λ μκ°μ νμ΄λ¨Έλ₯Ό μμν¨
(2) νμ΄λ¨Έ μΈν°λ½νΈμ λ°μν¨
(3) νμ΄λ¨Έλ₯Ό λ©μΆ€
μκ°μ λ€μ΄μ΄κ·Έλ¨μ μλ‘λΆν° μλλ‘ μμ§μΈλ€. μ¦ ν¨ν·μ λν μμ μκ°μ μ μ‘ μ§μ°κ³Ό μ ν μ§μ° λλ¬Έμ ν¨ν· μ μ‘ μκ°λ³΄λ€ λ λ¦λ€.
λ€μ κ·Έλ¦Όμμ 보μ΄λ κ²μμ κ΄νΈλ νμ΄λ¨Έκ° μ€μ λ νμ νμ μμλ μκ°μ κ°λ¦¬ν¨λ€. μ΄ νλ‘ν μ½μ μ’ λ μΈμΈν λΆλΆμ νλ°λΆμ λμ€λ―λ‘ λμ€μ μ΄μ΄μ μ€λͺ νλλ‘ νκ² λ€. ν¨ν·μ μμλ²νΈκ° 0κ³Ό 1μ΄ λ²κ°μ λνλλ―λ‘, νλ‘ν μ½ rdt 3.0μ λλλ‘ Alternating-bit νλ‘ν μ½μ΄λΌκ³ λΆλ₯Έλ€.
νλ‘ν μ½ rdt 3.0μ κΈ°λ₯μ μΌλ‘ μ νν νλ‘ν μ½μ΄λ€. κ·Έλ¬λ rdt 3.0μ ν΅μ¬μ μΈ μ±λ₯ λ¬Έμ λ rdt 3.0 μ΄ Stop-and-wait νλ‘ν μ½μ΄λΌλ κ²μ΄λ€. λ―Έκ΅μ μλΆμ λλΆμ κ°κ° μμΉν μ’ λ¨ νΈμ€νΈμ κ²½μ°λ₯Ό κ³ λ €ν΄λ³΄μ. λ μ’ λ¨ μμ€ν μ¬μ΄μ RTTλ λλ΅ 30msec μ΄λ€. μ΄κ²λ€μ΄ 1Gbps μ μ‘λ₯ μ κ°μ§ μ±λμ μν΄μ μ°κ²°λμ΄ μλ€κ³ κ°μ νμ. ν¨ν·λΉ 1000 λ°μ΄νΈ (8000bits) μ ν¨ν· ν¬κΈ°λ₯Ό κ°μ§κ³ 1Gbps λ§ν¬λ‘ ν¨ν·μ μ€μ μ μ‘νλλ° κ±Έλ¦¬λ μκ°μ 8 λ§μ΄ν¬λ‘μΈμ»¨λμ΄λ€.
λ€μ κ·Έλ¦Όμ²λΌ μ μ‘ ν λκΈ° νλ‘ν μ½μ κ°μ§κ³ μ‘μ μκ° t = 0 μμ λ°μ΄ν°λ₯Ό μ μ‘νκΈ° μμνλ€λ©΄ 8 (λ§μ΄ν¬λ‘μΈμ»¨λ)μμ λ§μ§λ§ λΉνΈκ° μ‘μ μΈ‘μ μ±λλ‘ λ€μ΄κ°λ€. μ΄μ ν¨ν·μ 15msec λμ λλ₯μ ν‘λ¨νκ³ 16.008 msecμμ μμ μΈ‘μΌλ‘ λ§μ§λ§ λΉνΈκ° λμ°©νλ€. ACK ν¨ν·μ μ μ‘ μκ°μ 무μν μ μμ λ§νΌμ΄κ³ μμ μλ λ°μ΄ν° ν¨ν·μ λ§μ§λ§ λΉνΈκ° μμ λμ λ§μ ACK ν¨ν·μ μ‘μ ν μ μλ€κ³ κ°μ νμ. μ‘μ μ μΈ‘μ ACK ν¨ν·μ 30.008 msec νμ λ€μ λ°μ μ μλ€.
μ΄λ₯Ό μκ°ν΄λ³΄λ©΄ 30.0008 msec μ€ 0.008 msec λμλ§ λ°μ΄ν°λ₯Ό μ μ‘ν μ μ΄λ€.μ‘μ μκ° μ±λμ ν΅ν΄ μ€μ μ μΌλ‘ λΆμ£Όνκ² λΉνΈλ₯Ό μ μ‘νλ λ°λ§ κ±Έλ¦° μκ°μ μ΄μ©λ₯ (Utilization) μμμΌλ‘ μ μνλ€λ©΄, 0.00027 μ ν΄λΉνλ μ΄μ©λ₯ μ κ°μ§λ€λ κ²μ μ μ μλ€.
ν΄κ²°μ± μ νμΈ μλ΅μ κΈ°λ€λ¦¬μ§ μκ³ μ¬λ¬ ν¨ν·μ μ μ‘νλλ‘ νμ©νλ κ²μ΄λ€.
μ΄ μ¬μ§μ κ²½μ° μ‘μ μκ° 3κ°μ ν¨ν·μ μ μ‘νλλ‘ νμ©νλ€λ©΄ μ‘μ μμ μ΄μ©λ₯ μ 3λ°°κ° λ κ²μ΄λΌλ κ²μ 보μ¬μ€λ€. λ§μ μ μ‘ μ€μΈ μ‘μ μ-μμ μ ν¨ν·μ νμ΄νλΌμΈμ μ±μ λ£μμΌλ‘μ¨ λνλΌ μ μλ€. μ΄ κΈ°μ μ νμ΄ν λΌμ΄λμ΄λΌκ³ λΆλ₯Έλ€.
GBN νλ‘ν μ½μμ μ‘μ μλ νμΈμλ΅μ κΈ°λ€λ¦¬μ§ μκ³ μ¬λ¬ ν¨ν·μ μ μ‘ν μ μλ€. κ·Έλ¬λ νμ΄νλΌμΈμμ νμΈμλ΅μ΄ μ λ ν¨ν·μ μ΅λ νμ© μ Nλ³΄λ€ ν¬μ§ μμμΌ νλ€. νμΈ μλ΅μ΄ μ λ κ°μ₯ μ€λλ ν¨ν·μ μμλ²νΈλ₯Ό baseλ‘ μ μνκ³ μ¬μ©λμ§ μμ κ°μ₯ μμ μμλ²νΈλ₯Ό nextseqnumμΌλ‘ μ μνλ€λ©΄ μμλ²νΈμ λ²μμμ μ΄ 4κ°μ ꡬκ°μ νμΈν μ μλ€.
μ΄λ‘μ κ΅¬κ° - μ΄λ―Έ μ μ‘ λκ³ νμΈμλ΅λ ν¨ν·
λ Έλμ κ΅¬κ° - μ‘μ μ λμμ§λ§ μμ§ νμΈ μλ΅λμ§ μμ ν¨ν·
νλμ κ΅¬κ° - μμ κ³μΈ΅μΌλ‘λΆν° λ°μ΄ν°κ° λμ°©νλ©΄ λ°λ‘ μ μ‘ν μ μλ ν¨ν·
ν¬λͺ μ κ΅¬κ° - νμ΄νλΌμΈμμ νμΈμλ΅μ΄ μ λ ν¨ν·μ νμΈμλ΅μ΄ λμ°©ν λκΉμ§ μ¬μ©λ μ μλ€.
baseμ nextseqnum μ΄λΌλ λ³μλ₯Ό μΆκ°νλ€. μ΄ FSMμ Extended FSMμ΄λΌκ³ λΆλ₯Έλ€.
- μμλ‘λΆν° νΈμΆ
rdt_send()κ° μλ‘λΆν° νΈμΆλλ©΄, μ‘μ μλ μ²«μ§Έλ‘ μλμ°κ° κ°λ μ°Όλμ§, μ¦ Nκ°μ μμ§ νμΈμλ΅λμ§ μμ ν¨ν·μ΄ μλ μ§λ₯Ό νμΈνλ€. (μμ§ ACKλ₯Ό λ°μ§ μμ ν¨ν·μ΄ μλμ§λ₯Ό νμΈνλ μ μ°¨) μ μ νκ² λ³μλ€μ΄ κ°±μ λλ€.
- ACKμ μμ
GBN νλ‘ν μ½μμ μμλ²νΈ nμ κ°μ§ ν¨ν·μ λν νμΈμλ΅μ λμ νμΈ μλ΅μΌλ‘ μΈμλλ€.
μμ μμ νλλ λ¨μνλ€. λ§μ½ μμλ²νΈ nμ κ°μ§ ν¨ν·μ΄ μ€λ₯ μμ΄ μμλλ‘ μμ λλ€λ©΄, μμ μλ ν¨ν· nμ λν ACKλ₯Ό μ‘μ νκ³ μμ κ³μΈ΅μ ν¨ν·μ λ°μ΄ν° λΆλΆμ μ λ¬νλ€. κ·Έ μΈμ κ²½μ°μλ μμ μλ κ·Έ ν¨ν·μ λ²λ¦¬κ³ κ°μ₯ μ΅κ·Όμ μ λλ‘ μμ λ μμμ ν¨ν·μ λν ACKλ₯Ό μ¬μ μ‘νλ€.
GBN νλ‘ν μ½μμ μμ μλ μμκ° μλͺ»λ ν¨ν·λ€μ λ²λ¦°λ€. μ΄κ²μ μ‘μ μ λ²νΌλ§μ κ°λ¨νκ² λ§λ€ μ μλ€. κ·Έλ¬λ―λ‘ μ‘μ μλ μλμ° μμμ νμ κ²½κ³μ μ΄ μλμ° μμ μλ nextseqnum μμΉλ₯Ό μ μ§ν΄μΌ νλ λ°λ©΄μ, μμ μκ° μ μ§ν΄μΌ νλ κ²μ λ¨μ§ λ€μ μμ ν¨ν·μ μμλ²νΈμ΄λ€.
μμ μμμ μ€λ₯κ° λ°μν ν¨ν·μ μμ νλ€κ³ μμ¬λλ ν¨ν·λ§μ μ‘μ μκ° λ€μ μ μ‘νλ―λ‘ λΆνμν μ¬μ μ‘μ νΌνλ€. SR μμ μλ ν¨ν·μ μμμλ 무κ΄νκ² μμ μμ΄ μμ λ ν¨ν·μ λν νμΈμλ΅μ ν κ²μ΄λ€. μμκ° νλ¦° ν¨ν·μ λΆμ€λ ν¨ν·μ΄ μμ λ λκΉμ§ λ²νΌμ μ μ₯νκ³ , μμ€λ ν¨ν·μ΄ μμ λ μμ μμ μΌλ ¨μ ν¨ν·μ μμλλ‘ μμκ³μΈ΅μ μ λ¬ν μ μλ€.