TCP ਕਨੈਕਸ਼ਨ ਸੈੱਟਅੱਪ
ਜਦੋਂ ਅਸੀਂ ਵੈੱਬ ਬ੍ਰਾਊਜ਼ ਕਰਦੇ ਹਾਂ, ਈਮੇਲ ਭੇਜਦੇ ਹਾਂ, ਜਾਂ ਕੋਈ ਔਨਲਾਈਨ ਗੇਮ ਖੇਡਦੇ ਹਾਂ, ਤਾਂ ਅਸੀਂ ਅਕਸਰ ਇਸਦੇ ਪਿੱਛੇ ਗੁੰਝਲਦਾਰ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਬਾਰੇ ਨਹੀਂ ਸੋਚਦੇ। ਹਾਲਾਂਕਿ, ਇਹ ਪ੍ਰਤੀਤ ਹੋਣ ਵਾਲੇ ਛੋਟੇ ਕਦਮ ਹਨ ਜੋ ਸਾਡੇ ਅਤੇ ਸਰਵਰ ਵਿਚਕਾਰ ਸਥਿਰ ਸੰਚਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ। ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਕਦਮਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ TCP ਕੁਨੈਕਸ਼ਨ ਸੈਟਅਪ, ਅਤੇ ਇਸਦਾ ਮੁੱਖ ਹਿੱਸਾ ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਹੈ।
ਇਹ ਲੇਖ ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਦੇ ਸਿਧਾਂਤ, ਪ੍ਰਕਿਰਿਆ ਅਤੇ ਮਹੱਤਤਾ ਬਾਰੇ ਵਿਸਥਾਰ ਵਿੱਚ ਚਰਚਾ ਕਰੇਗਾ। ਕਦਮ-ਦਰ-ਕਦਮ, ਅਸੀਂ ਦੱਸਾਂਗੇ ਕਿ ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਦੀ ਲੋੜ ਕਿਉਂ ਹੈ, ਇਹ ਕਿਵੇਂ ਕੁਨੈਕਸ਼ਨ ਸਥਿਰਤਾ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਡੇਟਾ ਟ੍ਰਾਂਸਫਰ ਲਈ ਇਹ ਕਿੰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਥ੍ਰੀ-ਵੇ ਹੈਂਡਸ਼ੇਕ ਦੀ ਡੂੰਘੀ ਸਮਝ ਦੇ ਨਾਲ, ਅਸੀਂ ਨੈੱਟਵਰਕ ਸੰਚਾਰ ਦੇ ਅੰਤਰੀਵ ਤੰਤਰ ਦੀ ਬਿਹਤਰ ਸਮਝ ਅਤੇ TCP ਕੁਨੈਕਸ਼ਨਾਂ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਦਾ ਇੱਕ ਸਪਸ਼ਟ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਪ੍ਰਾਪਤ ਕਰਾਂਗੇ।
TCP ਥ੍ਰੀ-ਵੇ ਹੈਂਡਸ਼ੇਕ ਪ੍ਰਕਿਰਿਆ ਅਤੇ ਰਾਜ ਪਰਿਵਰਤਨ
TCP ਇੱਕ ਕਨੈਕਸ਼ਨ-ਅਧਾਰਿਤ ਟਰਾਂਸਪੋਰਟ ਪ੍ਰੋਟੋਕੋਲ ਹੈ, ਜਿਸ ਲਈ ਡੇਟਾ ਟ੍ਰਾਂਸਮਿਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਕਨੈਕਸ਼ਨ ਦੀ ਸਥਾਪਨਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਨਾ ਪ੍ਰਕਿਰਿਆ ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਦੁਆਰਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਆਉ TCP ਪੈਕੇਟਾਂ 'ਤੇ ਡੂੰਘਾਈ ਨਾਲ ਵਿਚਾਰ ਕਰੀਏ ਜੋ ਹਰੇਕ ਕੁਨੈਕਸ਼ਨ ਵਿੱਚ ਭੇਜੇ ਜਾਂਦੇ ਹਨ।
ਸ਼ੁਰੂ ਵਿੱਚ, ਕਲਾਇੰਟ ਅਤੇ ਸਰਵਰ ਦੋਵੇਂ ਬੰਦ ਹਨ। ਪਹਿਲਾਂ, ਸਰਵਰ ਇੱਕ ਪੋਰਟ 'ਤੇ ਸਰਗਰਮੀ ਨਾਲ ਸੁਣਦਾ ਹੈ ਅਤੇ LISTEN ਸਥਿਤੀ ਵਿੱਚ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸਰਵਰ ਚਾਲੂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਅੱਗੇ, ਕਲਾਇੰਟ ਵੈਬਪੇਜ ਤੱਕ ਪਹੁੰਚ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਤਿਆਰ ਹੈ। ਇਸਨੂੰ ਸਰਵਰ ਨਾਲ ਇੱਕ ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਪਹਿਲੇ ਕੁਨੈਕਸ਼ਨ ਪੈਕੇਟ ਦਾ ਫਾਰਮੈਟ ਇਸ ਤਰ੍ਹਾਂ ਹੈ:
ਜਦੋਂ ਇੱਕ ਕਲਾਇੰਟ ਇੱਕ ਕਨੈਕਸ਼ਨ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਇਹ ਇੱਕ ਬੇਤਰਤੀਬ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ (client_isn) ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ TCP ਸਿਰਲੇਖ ਦੇ "ਕ੍ਰਮ ਨੰਬਰ" ਖੇਤਰ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। ਉਸੇ ਸਮੇਂ, ਕਲਾਇੰਟ ਇਹ ਦਰਸਾਉਣ ਲਈ SYN ਫਲੈਗ ਸਥਿਤੀ ਨੂੰ 1 'ਤੇ ਸੈੱਟ ਕਰਦਾ ਹੈ ਕਿ ਆਊਟਗੋਇੰਗ ਪੈਕੇਟ ਇੱਕ SYN ਪੈਕੇਟ ਹੈ। ਕਲਾਇੰਟ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਸਰਵਰ ਨੂੰ ਪਹਿਲਾ SYN ਪੈਕੇਟ ਭੇਜ ਕੇ ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਇਸ ਪੈਕੇਟ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਲੇਅਰ ਡੇਟਾ (ਭਾਵ, ਭੇਜਿਆ ਗਿਆ ਡੇਟਾ) ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ। ਇਸ ਸਮੇਂ, ਕਲਾਇੰਟ ਦੀ ਸਥਿਤੀ ਨੂੰ SYN-SENT ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਜਦੋਂ ਇੱਕ ਸਰਵਰ ਇੱਕ ਕਲਾਇੰਟ ਤੋਂ ਇੱਕ SYN ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਬੇਤਰਤੀਬੇ ਤੌਰ 'ਤੇ ਆਪਣਾ ਸੀਰੀਅਲ ਨੰਬਰ (server_isn) ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਉਸ ਨੰਬਰ ਨੂੰ TCP ਸਿਰਲੇਖ ਦੇ "ਸੀਰੀਅਲ ਨੰਬਰ" ਖੇਤਰ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। ਅੱਗੇ, ਸਰਵਰ "ਸਵੀਕ੍ਰਿਤੀ ਨੰਬਰ" ਖੇਤਰ ਵਿੱਚ client_isn + 1 ਦਾਖਲ ਕਰਦਾ ਹੈ ਅਤੇ SYN ਅਤੇ ACK ਬਿੱਟਾਂ ਨੂੰ 1 'ਤੇ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ਸਰਵਰ ਗਾਹਕ ਨੂੰ ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ-ਲੇਅਰ ਡੇਟਾ ਨਹੀਂ ਹੁੰਦਾ ਹੈ (ਅਤੇ ਸਰਵਰ ਲਈ ਕੋਈ ਡਾਟਾ ਨਹੀਂ ਹੁੰਦਾ ਹੈ। ਭੇਜਣ ਲਈ) ਇਸ ਸਮੇਂ, ਸਰਵਰ SYN-RCVD ਸਥਿਤੀ ਵਿੱਚ ਹੈ।
ਇੱਕ ਵਾਰ ਜਦੋਂ ਕਲਾਇੰਟ ਨੂੰ ਸਰਵਰ ਤੋਂ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਉਸਨੂੰ ਅੰਤਿਮ ਜਵਾਬ ਪੈਕੇਟ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਅਨੁਕੂਲਨ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ: ਪਹਿਲਾਂ, ਕਲਾਇੰਟ ਜਵਾਬ ਪੈਕੇਟ ਦੇ TCP ਸਿਰਲੇਖ ਦੇ ACK ਬਿੱਟ ਨੂੰ 1 ਤੇ ਸੈੱਟ ਕਰਦਾ ਹੈ; ਦੂਜਾ, ਕਲਾਇੰਟ "ਜਵਾਬ ਨੰਬਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ" ਖੇਤਰ ਵਿੱਚ ਮੁੱਲ ਸਰਵਰ_isn + 1 ਦਾਖਲ ਕਰਦਾ ਹੈ; ਅੰਤ ਵਿੱਚ, ਕਲਾਇੰਟ ਸਰਵਰ ਨੂੰ ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ। ਇਹ ਪੈਕੇਟ ਗਾਹਕ ਤੋਂ ਸਰਵਰ ਤੱਕ ਡੇਟਾ ਲੈ ਜਾ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਕਾਰਵਾਈਆਂ ਦੇ ਪੂਰਾ ਹੋਣ 'ਤੇ, ਕਲਾਇੰਟ ਸਥਾਪਿਤ ਸਥਿਤੀ ਵਿੱਚ ਦਾਖਲ ਹੋਵੇਗਾ।
ਇੱਕ ਵਾਰ ਜਦੋਂ ਸਰਵਰ ਨੂੰ ਕਲਾਇੰਟ ਤੋਂ ਜਵਾਬ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਸਥਾਪਿਤ ਸਥਿਤੀ ਵਿੱਚ ਵੀ ਬਦਲ ਜਾਂਦਾ ਹੈ।
ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਉਪਰੋਕਤ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਦੇਖ ਸਕਦੇ ਹੋ, ਜਦੋਂ ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਕਰਦੇ ਹੋ, ਤੀਜੇ ਹੈਂਡਸ਼ੇਕ ਨੂੰ ਡੇਟਾ ਲਿਜਾਣ ਦੀ ਇਜਾਜ਼ਤ ਹੁੰਦੀ ਹੈ, ਪਰ ਪਹਿਲੇ ਦੋ ਹੈਂਡਸ਼ੇਕ ਨਹੀਂ ਹੁੰਦੇ। ਇਹ ਇੱਕ ਅਜਿਹਾ ਸਵਾਲ ਹੈ ਜੋ ਅਕਸਰ ਇੰਟਰਵਿਊਆਂ ਵਿੱਚ ਪੁੱਛਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਵਾਰ ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਦੋਵੇਂ ਧਿਰਾਂ ਸਥਾਪਤ ਸਥਿਤੀ ਵਿੱਚ ਦਾਖਲ ਹੁੰਦੀਆਂ ਹਨ, ਇਹ ਦਰਸਾਉਂਦੀਆਂ ਹਨ ਕਿ ਕੁਨੈਕਸ਼ਨ ਸਫਲਤਾਪੂਰਵਕ ਸਥਾਪਿਤ ਹੋ ਗਿਆ ਹੈ, ਜਿਸ ਸਮੇਂ ਕਲਾਇੰਟ ਅਤੇ ਸਰਵਰ ਇੱਕ ਦੂਜੇ ਨੂੰ ਡੇਟਾ ਭੇਜਣਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹਨ।
ਤਿੰਨ ਹੱਥ ਮਿਲਾਉਂਦੇ ਕਿਉਂ ਹਨ? ਦੋ ਵਾਰ ਨਹੀਂ, ਚਾਰ ਵਾਰ?
ਆਮ ਜਵਾਬ ਹੈ, "ਕਿਉਂਕਿ ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਭੇਜਣ ਦੀ ਯੋਗਤਾ ਦੀ ਗਰੰਟੀ ਦਿੰਦਾ ਹੈ।" ਇਹ ਜਵਾਬ ਸਹੀ ਹੈ, ਪਰ ਇਹ ਸਿਰਫ ਸਤਹੀ ਕਾਰਨ ਹੈ, ਮੁੱਖ ਕਾਰਨ ਨੂੰ ਅੱਗੇ ਨਹੀਂ ਰੱਖਦਾ. ਹੇਠਾਂ ਦਿੱਤੇ ਵਿੱਚ, ਮੈਂ ਇਸ ਮੁੱਦੇ ਬਾਰੇ ਸਾਡੀ ਸਮਝ ਨੂੰ ਡੂੰਘਾ ਕਰਨ ਲਈ ਤਿੰਨ ਪਹਿਲੂਆਂ ਤੋਂ ਤੀਹਰੇ ਹੱਥ ਮਿਲਾਉਣ ਦੇ ਕਾਰਨਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਾਂਗਾ।
ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਇਤਿਹਾਸਕ ਤੌਰ 'ਤੇ ਦੁਹਰਾਉਣ ਵਾਲੇ ਕੁਨੈਕਸ਼ਨਾਂ ਦੀ ਸ਼ੁਰੂਆਤ ਤੋਂ ਬਚ ਸਕਦਾ ਹੈ (ਮੁੱਖ ਕਾਰਨ)
ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਇਸ ਗੱਲ ਦੀ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਦੋਵਾਂ ਧਿਰਾਂ ਨੂੰ ਇੱਕ ਭਰੋਸੇਯੋਗ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਪ੍ਰਾਪਤ ਹੋਇਆ ਹੈ।
ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਸਰੋਤਾਂ ਨੂੰ ਬਰਬਾਦ ਕਰਨ ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ।
ਕਾਰਨ 1: ਇਤਿਹਾਸਕ ਡੁਪਲੀਕੇਟ ਜੋੜਨ ਤੋਂ ਬਚੋ
ਸੰਖੇਪ ਰੂਪ ਵਿੱਚ, ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਦਾ ਮੁੱਖ ਕਾਰਨ ਪੁਰਾਣੇ ਡੁਪਲੀਕੇਟ ਕੁਨੈਕਸ਼ਨ ਦੀ ਸ਼ੁਰੂਆਤ ਕਾਰਨ ਹੋਣ ਵਾਲੀ ਉਲਝਣ ਤੋਂ ਬਚਣਾ ਹੈ। ਇੱਕ ਗੁੰਝਲਦਾਰ ਨੈਟਵਰਕ ਵਾਤਾਵਰਣ ਵਿੱਚ, ਡੇਟਾ ਪੈਕੇਟ ਦਾ ਸੰਚਾਰ ਹਮੇਸ਼ਾ ਨਿਰਧਾਰਤ ਸਮੇਂ ਦੇ ਅਨੁਸਾਰ ਮੰਜ਼ਿਲ ਹੋਸਟ ਨੂੰ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਪੁਰਾਣੇ ਡੇਟਾ ਪੈਕੇਟ ਨੈਟਵਰਕ ਭੀੜ ਅਤੇ ਹੋਰ ਕਾਰਨਾਂ ਕਰਕੇ ਪਹਿਲਾਂ ਮੰਜ਼ਿਲ ਹੋਸਟ ਤੇ ਪਹੁੰਚ ਸਕਦੇ ਹਨ। ਇਸ ਤੋਂ ਬਚਣ ਲਈ, TCP ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਲਈ ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।
ਜਦੋਂ ਇੱਕ ਕਲਾਇੰਟ ਇੱਕ ਤੋਂ ਵੱਧ SYN ਕਨੈਕਸ਼ਨ ਸਥਾਪਨਾ ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ, ਤਾਂ ਨੈੱਟਵਰਕ ਭੀੜ ਵਰਗੀਆਂ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਹੇਠ ਲਿਖੇ ਹੋ ਸਕਦੇ ਹਨ:
1- ਪੁਰਾਣੇ SYN ਪੈਕੇਟ ਨਵੀਨਤਮ SYN ਪੈਕੇਟਾਂ ਤੋਂ ਪਹਿਲਾਂ ਸਰਵਰ 'ਤੇ ਪਹੁੰਚਦੇ ਹਨ।
2- ਪੁਰਾਣਾ SYN ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ ਸਰਵਰ ਗਾਹਕ ਨੂੰ ਇੱਕ SYN + ACK ਪੈਕੇਟ ਦਾ ਜਵਾਬ ਦੇਵੇਗਾ।
3- ਜਦੋਂ ਕਲਾਇੰਟ ਨੂੰ SYN + ACK ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਕਿ ਕੁਨੈਕਸ਼ਨ ਇੱਕ ਇਤਿਹਾਸਕ ਕਨੈਕਸ਼ਨ ਹੈ (ਕ੍ਰਮ ਨੰਬਰ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਜਾਂ ਸਮਾਂ ਸਮਾਪਤ) ਇਸਦੇ ਆਪਣੇ ਸੰਦਰਭ ਦੇ ਅਨੁਸਾਰ, ਅਤੇ ਫਿਰ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਅਧੂਰਾ ਛੱਡਣ ਲਈ ਸਰਵਰ ਨੂੰ RST ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ।
ਦੋ-ਹੈਂਡਸ਼ੇਕ ਕਨੈਕਸ਼ਨ ਦੇ ਨਾਲ, ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਦਾ ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ ਹੈ ਕਿ ਮੌਜੂਦਾ ਕੁਨੈਕਸ਼ਨ ਇੱਕ ਇਤਿਹਾਸਕ ਕਨੈਕਸ਼ਨ ਹੈ ਜਾਂ ਨਹੀਂ। ਥ੍ਰੀ-ਵੇ ਹੈਂਡਸ਼ੇਕ ਕਲਾਇੰਟ ਨੂੰ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਕਿ ਕੀ ਮੌਜੂਦਾ ਕਨੈਕਸ਼ਨ ਸੰਦਰਭ ਦੇ ਅਧਾਰ ਤੇ ਇੱਕ ਇਤਿਹਾਸਕ ਕਨੈਕਸ਼ਨ ਹੈ ਜਦੋਂ ਇਹ ਤੀਜਾ ਪੈਕੇਟ ਭੇਜਣ ਲਈ ਤਿਆਰ ਹੁੰਦਾ ਹੈ:
1- ਜੇਕਰ ਇਹ ਇੱਕ ਇਤਿਹਾਸਕ ਕੁਨੈਕਸ਼ਨ ਹੈ (ਕ੍ਰਮ ਨੰਬਰ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ ਹੈ ਜਾਂ ਸਮਾਂ ਸਮਾਪਤ), ਤੀਜੇ ਹੈਂਡਸ਼ੇਕ ਦੁਆਰਾ ਭੇਜਿਆ ਗਿਆ ਪੈਕੇਟ ਇਤਿਹਾਸਕ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਅਧੂਰਾ ਛੱਡਣ ਲਈ ਇੱਕ RST ਪੈਕੇਟ ਹੈ।
2- ਜੇਕਰ ਇਹ ਇਤਿਹਾਸਕ ਕੁਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੀਜੀ ਵਾਰ ਭੇਜਿਆ ਗਿਆ ਪੈਕੇਟ ਇੱਕ ACK ਪੈਕੇਟ ਹੈ, ਅਤੇ ਦੋ ਸੰਚਾਰ ਕਰਨ ਵਾਲੀਆਂ ਧਿਰਾਂ ਸਫਲਤਾਪੂਰਵਕ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਦੀਆਂ ਹਨ।
ਇਸ ਲਈ, TCP ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਮੁੱਖ ਕਾਰਨ ਇਹ ਹੈ ਕਿ ਇਹ ਇਤਿਹਾਸਕ ਕੁਨੈਕਸ਼ਨਾਂ ਨੂੰ ਰੋਕਣ ਲਈ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
ਕਾਰਨ 2: ਦੋਵਾਂ ਧਿਰਾਂ ਦੇ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰਾਂ ਨੂੰ ਸਮਕਾਲੀ ਕਰਨ ਲਈ
TCP ਪ੍ਰੋਟੋਕੋਲ ਦੇ ਦੋਵੇਂ ਪਾਸਿਆਂ ਨੂੰ ਇੱਕ ਕ੍ਰਮ ਸੰਖਿਆ ਬਣਾਈ ਰੱਖਣੀ ਚਾਹੀਦੀ ਹੈ, ਜੋ ਭਰੋਸੇਯੋਗ ਪ੍ਰਸਾਰਣ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ ਮੁੱਖ ਕਾਰਕ ਹੈ। ਕ੍ਰਮ ਨੰਬਰ TCP ਕੁਨੈਕਸ਼ਨਾਂ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੇ ਹਨ। ਉਹ ਹੇਠਾਂ ਦਿੱਤੇ ਕੰਮ ਕਰਦੇ ਹਨ:
ਪ੍ਰਾਪਤਕਰਤਾ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਖਤਮ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਡੇਟਾ ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾ ਸਕਦਾ ਹੈ.
ਪ੍ਰਾਪਤਕਰਤਾ ਡੇਟਾ ਦੀ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕ੍ਰਮ ਨੰਬਰ ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦਾ ਹੈ।
● ਕ੍ਰਮ ਨੰਬਰ ਉਸ ਡੇਟਾ ਪੈਕੇਟ ਦੀ ਪਛਾਣ ਕਰ ਸਕਦਾ ਹੈ ਜੋ ਦੂਜੀ ਧਿਰ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਭਰੋਸੇਯੋਗ ਡੇਟਾ ਸੰਚਾਰ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
ਇਸ ਲਈ, ਇੱਕ TCP ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ 'ਤੇ, ਕਲਾਇੰਟ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਦੇ ਨਾਲ SYN ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਨੂੰ ਇੱਕ ACK ਪੈਕੇਟ ਨਾਲ ਜਵਾਬ ਦੇਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜੋ ਗਾਹਕ ਦੇ SYN ਪੈਕੇਟ ਦੇ ਸਫਲ ਰਿਸੈਪਸ਼ਨ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਫਿਰ, ਸਰਵਰ ਕਲਾਇੰਟ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਦੇ ਨਾਲ SYN ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ ਅਤੇ ਗਾਹਕ ਦੇ ਜਵਾਬ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ, ਇੱਕ ਵਾਰ ਅਤੇ ਸਭ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਭਰੋਸੇਯੋਗਤਾ ਨਾਲ ਸਮਕਾਲੀ ਹਨ।
ਹਾਲਾਂਕਿ ਇੱਕ ਚਾਰ-ਤਰੀਕੇ ਵਾਲਾ ਹੈਂਡਸ਼ੇਕ ਵੀ ਦੋਵਾਂ ਧਿਰਾਂ ਦੇ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰਾਂ ਨੂੰ ਭਰੋਸੇਯੋਗਤਾ ਨਾਲ ਸਮਕਾਲੀ ਕਰਨ ਲਈ ਸੰਭਵ ਹੈ, ਦੂਜੇ ਅਤੇ ਤੀਜੇ ਕਦਮਾਂ ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਕਦਮ ਵਿੱਚ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜਿਸਦੇ ਨਤੀਜੇ ਵਜੋਂ ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਹੁੰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਦੋ ਹੈਂਡਸ਼ੇਕ ਸਿਰਫ ਇਸ ਗੱਲ ਦੀ ਗਾਰੰਟੀ ਦੇ ਸਕਦੇ ਹਨ ਕਿ ਇੱਕ ਧਿਰ ਦਾ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਦੂਜੀ ਧਿਰ ਦੁਆਰਾ ਸਫਲਤਾਪੂਰਵਕ ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਪਰ ਇਸ ਗੱਲ ਦੀ ਕੋਈ ਗਾਰੰਟੀ ਨਹੀਂ ਹੈ ਕਿ ਦੋਵਾਂ ਧਿਰਾਂ ਦੇ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਇਸ ਲਈ, TCP ਕੁਨੈਕਸ਼ਨਾਂ ਦੀ ਸਥਿਰਤਾ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਤਿੰਨ-ਤਰੀਕੇ ਵਾਲਾ ਹੈਂਡਸ਼ੇਕ ਸਭ ਤੋਂ ਵਧੀਆ ਵਿਕਲਪ ਹੈ।
ਕਾਰਨ 3: ਸਰੋਤਾਂ ਨੂੰ ਬਰਬਾਦ ਕਰਨ ਤੋਂ ਬਚੋ
ਜੇਕਰ ਸਿਰਫ਼ "ਟੂ-ਹੈਂਡਸ਼ੇਕ" ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਕਲਾਇੰਟ SYN ਬੇਨਤੀ ਨੂੰ ਨੈੱਟਵਰਕ ਵਿੱਚ ਬਲੌਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਕਲਾਇੰਟ ਸਰਵਰ ਦੁਆਰਾ ਭੇਜਿਆ ਗਿਆ ACK ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ, ਇਸਲਈ SYN ਮੁੜ ਭੇਜਿਆ ਜਾਵੇਗਾ। ਹਾਲਾਂਕਿ, ਕਿਉਂਕਿ ਕੋਈ ਤੀਜਾ ਹੈਂਡਸ਼ੇਕ ਨਹੀਂ ਹੈ, ਸਰਵਰ ਇਹ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਕੀ ਕਲਾਇੰਟ ਨੇ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਲਈ ACK ਰਸੀਦ ਪ੍ਰਾਪਤ ਕੀਤੀ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਸ ਲਈ, ਸਰਵਰ ਹਰੇਕ SYN ਬੇਨਤੀ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ ਹੀ ਸਰਗਰਮੀ ਨਾਲ ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਹੇਠ ਲਿਖੇ ਵੱਲ ਲੈ ਜਾਂਦਾ ਹੈ:
ਸਰੋਤਾਂ ਦੀ ਬਰਬਾਦੀ: ਜੇਕਰ ਕਲਾਇੰਟ ਦੀ SYN ਬੇਨਤੀ ਨੂੰ ਬਲੌਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕਈ SYN ਪੈਕੇਟਾਂ ਦੇ ਵਾਰ-ਵਾਰ ਪ੍ਰਸਾਰਣ ਹੁੰਦੇ ਹਨ, ਸਰਵਰ ਬੇਨਤੀ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ ਕਈ ਬੇਲੋੜੇ ਅਵੈਧ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਸਥਾਪਿਤ ਕਰੇਗਾ। ਇਹ ਸਰਵਰ ਸਰੋਤਾਂ ਦੀ ਬੇਲੋੜੀ ਬਰਬਾਦੀ ਵੱਲ ਖੜਦਾ ਹੈ।
ਸੁਨੇਹਾ ਧਾਰਨ: ਤੀਜੇ ਹੈਂਡਸ਼ੇਕ ਦੀ ਕਮੀ ਦੇ ਕਾਰਨ, ਸਰਵਰ ਕੋਲ ਇਹ ਜਾਣਨ ਦਾ ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ ਹੈ ਕਿ ਗਾਹਕ ਨੇ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਲਈ ACK ਰਸੀਦ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਾਪਤ ਕੀਤੀ ਹੈ ਜਾਂ ਨਹੀਂ। ਨਤੀਜੇ ਵਜੋਂ, ਜੇਕਰ ਸੁਨੇਹੇ ਨੈੱਟਵਰਕ ਵਿੱਚ ਫਸ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਕਲਾਇੰਟ ਵਾਰ-ਵਾਰ SYN ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਰਹੇਗਾ, ਜਿਸ ਨਾਲ ਸਰਵਰ ਲਗਾਤਾਰ ਨਵੇਂ ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰੇਗਾ। ਇਹ ਨੈੱਟਵਰਕ ਭੀੜ ਅਤੇ ਦੇਰੀ ਨੂੰ ਵਧਾਏਗਾ ਅਤੇ ਸਮੁੱਚੇ ਨੈੱਟਵਰਕ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਨਕਾਰਾਤਮਕ ਤੌਰ 'ਤੇ ਪ੍ਰਭਾਵਿਤ ਕਰੇਗਾ।
ਇਸ ਲਈ, ਨੈਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਸਥਿਰਤਾ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, TCP ਇਹਨਾਂ ਸਮੱਸਿਆਵਾਂ ਦੇ ਵਾਪਰਨ ਤੋਂ ਬਚਣ ਲਈ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਲਈ ਤਿੰਨ-ਪੱਖੀ ਹੈਂਡਸ਼ੇਕ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।
ਸੰਖੇਪ
ਦਨੈੱਟਵਰਕ ਪੈਕੇਟ ਬ੍ਰੋਕਰTCP ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਨਾ ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਨਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਦੇ ਦੌਰਾਨ, ਕਲਾਇੰਟ ਪਹਿਲਾਂ ਸਰਵਰ ਨੂੰ SYN ਫਲੈਗ ਵਾਲਾ ਇੱਕ ਪੈਕੇਟ ਭੇਜਦਾ ਹੈ, ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਕਲਾਇੰਟ ਤੋਂ ਬੇਨਤੀ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਸਰਵਰ ਗਾਹਕ ਨੂੰ SYN ਅਤੇ ACK ਫਲੈਗ ਦੇ ਨਾਲ ਇੱਕ ਪੈਕੇਟ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕਨੈਕਸ਼ਨ ਬੇਨਤੀ ਸਵੀਕਾਰ ਕੀਤੀ ਗਈ ਹੈ, ਅਤੇ ਆਪਣਾ ਸ਼ੁਰੂਆਤੀ ਕ੍ਰਮ ਨੰਬਰ ਭੇਜਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ਕਲਾਇੰਟ ਸਰਵਰ ਨੂੰ ਇੱਕ ACK ਫਲੈਗ ਨਾਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਇਹ ਦਰਸਾਉਣ ਲਈ ਕਿ ਕੁਨੈਕਸ਼ਨ ਸਫਲਤਾਪੂਰਵਕ ਸਥਾਪਿਤ ਹੋ ਗਿਆ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਦੋਵੇਂ ਪਾਰਟੀਆਂ ਸਥਾਪਤ ਸਥਿਤੀ ਵਿੱਚ ਹਨ ਅਤੇ ਇੱਕ ਦੂਜੇ ਨੂੰ ਡੇਟਾ ਭੇਜਣਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਆਮ ਤੌਰ 'ਤੇ, TCP ਕਨੈਕਸ਼ਨ ਸਥਾਪਨਾ ਲਈ ਤਿੰਨ-ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਸ਼ੇਕ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਕਨੈਕਸ਼ਨ ਸਥਿਰਤਾ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ, ਇਤਿਹਾਸਕ ਕਨੈਕਸ਼ਨਾਂ 'ਤੇ ਉਲਝਣ ਅਤੇ ਸਰੋਤਾਂ ਦੀ ਬਰਬਾਦੀ ਤੋਂ ਬਚਣ, ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ ਕਿ ਦੋਵੇਂ ਧਿਰਾਂ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ ਭੇਜਣ ਦੇ ਯੋਗ ਹਨ।
ਪੋਸਟ ਟਾਈਮ: ਜਨਵਰੀ-08-2025