ਅੱਠ ਬਾਈਟ ਪੜ੍ਹੋ, ਫਿਰ SOCKS4 ਟਨਲ ਸੌਂਪੋ
SOCKS4 ਜਵਾਬ ਦੀ ਨਿਰਧਾਰਤ ਸੀਮਾ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਕੇ ਮੰਜ਼ਿਲ ਦਾ ਸਵਾਗਤ ਨਿਗਲਣ ਜਾਂ ਗੈਰ-ਮੌਜੂਦ ਬਾਈਟਾਂ ਦੀ ਉਡੀਕ ਕਰਨ ਤੋਂ ਬਚੋ।
SOCKS4 ਕਨੈਕਸ਼ਨ ਬੇਨਤੀ ਸਫਲ ਹੁੰਦੀ ਹੈ, ਪਰ ਐਪਲੀਕੇਸ਼ਨ ਸਰਵਰ ਦਾ ਸ਼ੁਰੂਆਤੀ ਸਵਾਗਤ ਕਦੇ ਨਹੀਂ ਦੇਖਦੀ। ਵੇਖਣ ਦੀ ਇੱਕ ਥਾਂ ਕਨੈਕਟਰ ਦੀ ਪਹਿਲੀ ਪੜ੍ਹਤ ਹੈ। ਸੋਲਾਂ ਬਾਈਟ ਦੀ ਪੜ੍ਹਤ ਅੱਠ ਬਾਈਟ ਦੇ SOCKS4 ਜਵਾਬ ਲਈ ਬਹੁਤ ਵੱਡੀ ਹੈ।
| ਜਵਾਬ ਖੇਤਰ | ਬਾਈਟ |
|---|---|
| ਜਵਾਬ ਸੰਸਕਰਣ ਖੇਤਰ | 1 |
| ਨਤੀਜਾ ਕੋਡ | 1 |
| ਪੋਰਟ ਖੇਤਰ | 2 |
| ਪਤਾ ਖੇਤਰ | 4 |
ਨਤੀਜਾ ਕੋਡ 0x5a ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਬੇਨਤੀ ਮਨਜ਼ੂਰ ਹੋਈ। SOCKS4a ਬਦਲਦਾ ਹੈ ਕਿ ਬੇਨਤੀ ਹੋਸਟਨਾਮ ਕਿਵੇਂ ਢੋਂਦੀ ਹੈ; ਇਹ ਜਵਾਬ ਨੂੰ ਸੋਲਾਂ ਬਾਈਟ ਨਹੀਂ ਬਣਾਉਂਦਾ।
ਜਵਾਬ ਤੋਂ ਬਾਅਦ ਉਹੀ TCP ਸਟ੍ਰੀਮ ਮੰਜ਼ਿਲ ਦਾ ਪ੍ਰੋਟੋਕਾਲ ਢੋਂਦੀ ਹੈ। ਮੇਲ ਸਰਵਰ ਆਪਣਾ ਸਵਾਗਤ ਤੁਰੰਤ ਭੇਜ ਸਕਦਾ ਹੈ। ਇਸ ਲਈ ਸੋਲਾਂ ਉਪਲਬਧ ਬਾਈਟ ਖਪਤ ਕਰਨ ਵਾਲੀ ਪੜ੍ਹਤ ਪੂਰਾ ਪ੍ਰੌਕਸੀ ਜਵਾਬ ਅਤੇ ਉਸ ਸਵਾਗਤ ਦੇ ਪਹਿਲੇ ਅੱਠ ਬਾਈਟ ਲੈ ਸਕਦੀ ਹੈ। ਜੇ ਹਾਲੇ ਕੁਝ ਨਹੀਂ ਆਉਂਦਾ, ਤਾਂ ਬਹੁਤ ਵੱਡੀ ਬਲਾਕਿੰਗ ਪੜ੍ਹਤ ਇਸ ਦੀ ਥਾਂ ਬੇਲੋੜੀ ਉਡੀਕ ਜੋੜ ਸਕਦੀ ਹੈ।
ਸਹੀ ਲੰਬਾਈ ਪਾਰਸਰ ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਹੈ
ਇੱਕ ਵਾਰ ਅੱਠ ਬਾਈਟ ਮੰਗਣਾ ਇਸ ਗੱਲ ਦਾ ਪੂਰਾ ਸਬੂਤ ਨਹੀਂ ਕਿ ਅੱਠ ਬਾਈਟ ਆਏ। ਸਟ੍ਰੀਮ ਪੜ੍ਹਤਾਂ ਘੱਟ ਵਾਪਸ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਸਮਾਂ-ਸੀਮਾ ਵਿੱਚ ਜਵਾਬ ਦੀ ਲੰਬਾਈ ਸਹੀ ਇਕੱਠੀ ਕਰੋ, ਬੰਦ ਜਾਂ ਫੇਲ੍ਹ ਸਟ੍ਰੀਮ ’ਤੇ ਰੁਕੋ, ਜਵਾਬ ਜਾਂਚੋ, ਅਤੇ ਅਗਲੇ ਬਾਈਟ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਛੱਡੋ।
ਜੇ ਕਨੈਕਟਰ ਵੱਡੀ ਬਫਰ ਪੜ੍ਹਤ ਵਰਤਦਾ ਹੈ, ਸੀਮਾ ਤੋਂ ਬਾਅਦ ਦਾ ਸਭ ਕੁਝ ਸੰਭਾਲੋ ਅਤੇ ਅਗਲੇ ਖਪਤਕਾਰ ਨੂੰ ਦਿਓ। ਵਾਧੂ ਸੁੱਟਣਾ ਵੱਖਰੇ ਪੜ੍ਹਤ ਆਕਾਰ ਨਾਲ ਉਹੀ ਡੇਟਾ ਨੁਕਸਾਨ ਹੈ।
SOCKS5 ਨੂੰ ਆਪਣਾ ਪਾਰਸਰ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਦੇ ਜਵਾਬ ਪਤੇ ਦੀ ਲੰਬਾਈ ਪਤਾ ਕਿਸਮ ਅਨੁਸਾਰ ਵੱਖਰੀ ਹੋ ਸਕਦੀ ਹੈ। ਹਰ ਪ੍ਰੌਕਸੀ ਪੜ੍ਹਤ ਨੂੰ ਨਿਰਧਾਰਤ ਅੱਠ ਬਾਈਟ ਦੀ ਪੜ੍ਹਤ ਨਾਲ ਬਦਲਣਾ ਇੱਕ ਪ੍ਰੋਟੋਕਾਲ ਠੀਕ ਕਰੇਗਾ ਪਰ ਦੂਜਾ ਤੋੜ ਦੇਵੇਗਾ।