DevLog ๐ถ
[Network] ํ๋กํ ์ฝ ์คํ์ ๋ฐ์ดํฐ ์ก/์์ , ๋ง์ ๊ณผ์ ์์๋ณด๊ธฐ ๋ณธ๋ฌธ
[Network] ํ๋กํ ์ฝ ์คํ์ ๋ฐ์ดํฐ ์ก/์์ , ๋ง์ ๊ณผ์ ์์๋ณด๊ธฐ
dolmeng2 2023. 4. 27. 22:32
์ ๋ฒ ํฌ์คํ ์์๋ ํ๋กํ ์ฝ ์คํ ๋ฐ, ์์์ ์์ผ ์์ฑ์ ๋ํ ๋ถ๋ถ์ ์์๋ณด์์๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ๊ตฌ์ฒด์ ์ผ๋ก ํ๋กํ ์ฝ ์คํ์ ๋ฐ์ดํฐ ์ก์์ ๋ฐ ๋ง์ ๊ณผ์ ์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค.
โ๏ธ ์์ผ์ ์ ์ํ๊ธฐ
์์ผ์ ๋ง๋ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ (๋ธ๋ผ์ฐ์ )๋ connect()๋ฅผ ํธ์ถํ๊ณ , ํ๋กํ ์ฝ ์คํ์ ๋ณธ์ธ ์ชฝ์ ์์ผ์ ์๋ฒ ์ธก์ ์ ์ํ๋ค.
์ด๋๋ท์ด๋ ํต์ ํ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํญ์ ์ผ์ด๋ธ์ด ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ธ์ ๋ ์ง ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ํธ๋ก๋ง ๋ณํํ๋ฉด ๋๋ค. ํ์ง๋ง ๋ง์ฝ ์์ผ์ ๋ง๋ ๋ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ก์ ์๋ขฐ๊ฐ ์จ๋ค๋ฉด, ํ๋กํ ์ฝ ์คํ์ ์ด๋ป๊ฒ ๋ ๊น?
์ฐ์ , ๊ธฐ๋ณธ์ ์ผ๋ก ์์ผ์ ์์ฑํ ๋ค์์๋ ์๋ฌด๊ฒ๋ ์๊ธฐ ๋๋ฌธ์ ํต์ ์๋๋ ๋ชจ๋ฅธ๋ค.
๊ทธ๋์ ์๋ขฐ๊ฐ ์จ๋ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ด๋๋ก ๋ณด๋ด๋ฉด ์ข์์ง๋ ์ ์ ์๋ค.
๋ธ๋ผ์ฐ์ ๋ URL์ ๋ฐํ์ผ๋ก ์๋ฒ์ IP ์ฃผ์๋ฅผ ์กฐ์ฌํ๊ณ , ํฌํธ๋ ๋ณดํต 80๋ฒ์ผ๋ก ๊ณ ์ ๋์ด ์๋ค๋ ์ ๋ณด๋ ์๊ณ ์์ง๋ง, ์ด๊ฑธ๋ก๋ socket() ๋ฉ์๋๋ฅผ ํธ์ถํ๋๋ผ๋ ์๋ฌด ์ผ๋ ๋ฐ์ํ์ง ์๋๋ค. ๊ทธ๋์ ์๋ฒ์ IP๋ ํฌํธ ๋ฒํธ๋ฅผ ํ๋กํ ์ฝ ์คํ์ ์๋ฆฌ๋ ๋์์ด ์ฐ์ ์ผ๋ก ํ์ํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์๋ฒ ์ญ์ ์์ผ์ ์์ฑํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ธ๋ผ์ฐ์ ์ ๋ํด ์๋ฌด ์ ๋ณด๋ ์ ์ ์๊ธฐ ๋๋ฌธ์, ํด๋ผ์ด์ธํธ๋ ๋ณดํต ๋ณธ์ธ์ IP์ ํฌํธ ๋ฒํธ๋ฅผ ๋ฐํ์ ์๋ ค์ ํต์ ํ๊ณ ์ถ๋ค๋ ๊ฒ์ ์ ๋ฌํ๋ค.
์ฆ, ์ฒ์์๋ ํต์ ์๋์ ์ ์ด ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์์ผ์ ํ์ํ ์ ๋ณด ๊ธฐ๋กํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ก/์์ ์ด ๊ฐ๋ฅํ ์ํ๋ก ๋ณ๊ฒฝํ๋ค.
์ฌ๊ธฐ์ ํด๋ผ์ด์ธํธ ์ธก์ IP ์ฃผ์๋ ํฌํธ ๋ฒํธ ๋ฑ์ ์๋ฒ ์ธก์๊ฒ ์๋ ค์ค๋ค. ์ดํ, ๋ฐ์ดํฐ ์ก/์์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ฒํผ๊ฐ ํ์ํ๋ฐ, ์ด๋ฅผ '๋ฒํผ ๋ฉ๋ชจ๋ฆฌ'๋ผ๊ณ ํ๋ฉฐ ์ด์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ญ์ ์ ์ ๋จ๊ณ์์ ์ผ์ด๋๋ค.
์ฌ๊ธฐ์ ๋ฐ์ดํฐ ์ก/์์ ์ ์ํด ์ด๋ค ๋ฐ์ดํฐ๊ฐ ํ์ํ ๊น?
์๋๋ TCP ํค๋์ ๋ค์ด๊ฐ๋ ํ๋ ์ ๋ณด์ด๋ค.
ํ๋ ๋ช ์นญ | ๊ธธ์ด(๋นํธ) | ์ค๋ช |
์ก์ ์ฒ ํฌํธ ๋ฒํธ | 16 | ์ด ํจํท์ ์ก์ ํ ์ธก์ ํ๋ก๊ทธ๋จ์ ํฌํธ ๋ฒํธ |
์์ ์ฒ ํฌํธ ๋ฒํธ | 16 | ์ด ํจํท์ ๋ฐ๋ ์๋ ํ๋ก๊ทธ๋จ์ ํฌํธ ๋ฒํธ |
์ํ์ค ๋ฒํธ (์ก์ ๋ฐ์ดํฐ์ ์ผ๋ จ ๋ฒํธ) | 32 | ์ด ํจํท์ ๋งจ ์ ์์น์ ๋ฐ์ดํฐ๊ฐ ์ก์ ๋ฐ์ดํฐ์ ๋ช ๋ฒ์งธ ๋ฐ์ดํธ์ ํด๋นํ๋์ง ์ก์ ์ธก์์ ์์ ์ธก์ ์ ๋ฌํ๊ธฐ ์ํ ๊ฒ |
ACK ๋ฒํธ (์์ ๋ฐ์ดํฐ์ ์ผ๋ จ ๋ฒํธ) | 32 | ๋ฐ์ดํฐ๊ฐ ๋ช ๋ฐ์ดํธ๊น์ง ์์ ์ธก์ ๋์ฐฉํ๋์ง๋ฅผ ์์ ์ธก์์ ์ก์ ์ธก์ ์ ๋ฌํ๊ธฐ ์ํ ๊ฒ. ACK๋ acknowledge์ ์ฝ์๋ก, '์ํฌ'๋ผ๊ณ ์ฝ์ต๋๋ค. |
๋ฐ์ดํฐ ์คํ์ | 4 | ๋ฐ์ดํฐ ๋ถ๋ถ์ด ์ด๋๋ถํฐ ์์ํ๋์ง๋ฅผ ๋ํ๋ธ๋ค. ํค๋์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค. |
์ฌ์ฉํ์ง ์์ | 6 | ํ์ฌ ์ฌ์ฉํ์ง ์๋ ํค๋ |
์ปจํธ๋กค ๋นํธ | 6 | ๊ฐ ๋นํธ๊ฐ ๊ฐ๊ฐ ํต์ ์ ์ด์์ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. - URG: ๊ธด๊ธ ํฌ์ธํฐ์ ํ๋๊ฐ ์ ํจํ๋ค๋ ๊ฒ. - ACK : ์์ ๋ฐ์ดํฐ์ ์ผ๋ จ๋ฒํธ ํ๋๊ฐ ์ ํจํ๋ค๋ ๊ฒ์ ๋ํ๋ธ๋ค. ๋ณดํต ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์์ ์ธก์ ๋์ฐฉํ ๊ฒ์ ์๋ฏธํ๋ค. - PSH: flush ๋์์ ์ํด ์ก์ ๋ ๋ฐ์ดํฐ - RST: ์ ์์ ๊ฐ์ ๋ก ์ข ๋ฃํ๊ณ ์ด์ ์ข ๋ฃ ์ ์ฌ์ฉํ๋ค. - SYN: ์ก์ ์ธก๊ณผ ์์ ์ธก์์ ์ผ๋ จ๋ฒํธ๋ฅผ ์๋ก ํ์ธํ๋ค. ์ด๊ฑธ๋ก ์ ์ ๋์์ ๋ํ๋ธ๋ค. - FIN: ์ฐ๊ฒฐ ๋ํ๋ฅผ ๋ํ๋ธ๋ค. |
์๋์ฐ | 16 | ์์ ์ธก์์ ์ก์ ์ธก์ ์๋์ฐ ์ฌ์ด์ฆ (์์ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฌถ์ด์ ์ก์ ํ ์ ์๋ ๋ฐ์ดํฐ ์)๋ฅผ ํต์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. |
์ฒดํฌ์ฌ | 16 | ์ค๋ฅ ์ ๋ฌด ๊ฒ์ฌ |
๊ธด๊ธ ํฌ์ธํฐ | 16 | ๊ธด๊ธํ๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ์ ์์น |
์ต์ | ๊ฐ๋ณ ๊ธธ์ด | ์์ ํค๋ ํ๋ ์ด์ธ์ ์ ์ด ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด, ํค๋์ ์ต์ ํ๋๋ฅผ ์ถ๊ฐํ ์ ์๋ค. ๊ทธ๋ฌ๋ ์ ์ ๋์์ ์ ์ธํ๋ฉด ์ต์ ํ๋๋ฅผ ์ฌ์ฉํ๋ ์๊ฐ ์ ๋ค. |
์์ ํญ๋ชฉ์ ๊ณ ์ ์ด ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ ์์ด๋ ์ก/์์ , ์ฐ๊ฒฐ ๋๊ธฐ์ ๊ฐ ๋จ๊ณ์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ํํ ๋๋ง๋ค ์ด ์ ์ด ์ ๋ณด๋ฅผ ๋ถ๊ฐํ๋ค. (ํจํท์ ๋งจ ์๋ถ๋ถ์ ๋ถ๊ฐํ๋ค๋ ๊ฒ)
์์ง์ ์ ์์ ํ๋ ๋จ๊ณ์ด๊ธฐ ๋๋ฌธ์ ํจํท ๋ด์ฉ์๋ ์ ์ด ์ ๋ณด๋ง ์์ผ๋ฉฐ, ์ด ์ ์ด ์ ๋ณด๋ฅผ ๋งจ ์๋ถ๋ถ์ ๋ฐฐ์นํ๋ ๊ณณ๋ถํฐ 'ํค๋'๋ผ๊ณ ๋งํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ฌ์ฉํ๋ ํค๋์ ๊ฒฝ์ฐ TCP ํค๋๋ผ๊ณ ๋งํ๋ค.
์์ ๋ชจ์ต์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ฃผ๊ณ ๋ฐ๋ ์ ์ด ์ ๋ณด์ด๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํจํท์ ๋ชจ์ต์ด๋ค.
๋ง์ฝ ์ ์ด ๋์์ด๋ ์ฐ๊ฒฐ ๋๊ธฐ ๋์์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ์ ์ด ์ ๋ณด๋ง ์ฃผ๊ณ ๋ฐ์์ ํ ๋ฐ, ์ด๋๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ด ๋น ์ง๋ค.
ํ๋กํ ์ฝ ์คํ์ ๋ด๋ถ์ ์ ์ฅ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํต์ง๋ ์ ๋ณด๋ ํต์ ์๋๋ก๋ถํฐ ๋ฐ์ ์ ๋ณด, ์งํ ์ํฉ ๋ฑ์ ์ฐธ๊ณ ํ๋ฉด์ ์์ง์ธ๋ค. ๊ทธ๋์ ์์ผ์ ์ ์ด ์ ๋ณด๋ ํ๋กํ ์ฝ ์คํ์ ํ๋ก๊ทธ๋จ๊ณผ ์ผ์ฒดํ ๋์ด ์๋ค๊ณ ๋งํ ์๋ ์๋ค. (์ฌ์ค ํ๋กํ ์ฝ์ ๋ง๋๋ ์ฌ๋์๊ฒ ๋ฌ๋ ค์๋ค)
๋ํ, ์์ผ์ ๊ธฐ๋กํ ์ ์ด ์ ๋ณด๋ ์๋์ธก์์ ๋ณผ ์ ์๋ค. ๊ท์น์ ๋ฐ๋ผ ํค๋์ ๊ธฐ๋ก๋ ์ ์ด ์ ๋ณด๋ก๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ์ฐ๋ฝ์ ์ทจํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํต์ ๋์์ ์ด์ฉ๋๋ ์ ์ด ์ ๋ณด
- ํค๋์ ๊ธฐ์ ๋๋ ์ ๋ณด
- ์์ผ (ํ๋กํ ์ฝ ์คํ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ)์ ๊ธฐ๋ก๋๋ ์ ๋ณด
์, ๋ค์ ๋์๊ฐ์ connect() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์์ ์ ์๊ฐํด๋ณด์.
์ด๋ ์๋ฒ์ธก์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ์ฐ๋ฉด ๋ช ๋ น์ด ํ๋กํ ์ฝ ์คํ์ TCP ์ชฝ์ผ๋ก ์ ๋ฌ๋๋ค.
์ ๋ฌ๋ TCP๋ ์๋ฒ์ TCP์ ์ ์ด ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ, ๋จผ์ ์ ์ด ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ํค๋๋ฅผ ๋ง๋ ๋ค.
์๊น ์์์ ์์ฑํ ํ ์ค์์ '์ก์ ์ฒ'์ '์์ ์ฒ'์ 'ํฌํธ๋ฒํธ' ์ ๋ณด๊ฐ ํค๋์ ์๋ ๊ฑธ ๋ณผ ์ ์๋๋ฐ, ์ด 2๊ฐ์ง์ ์ ๋ณด๋ฅผ ํตํด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ธก์ ์์ผ์ ์ง์ ํ์ฌ ์ด๋ค ์์ผ์ผ๋ก ์ ์ํด์ผ ํ ์ง ํ๋จํ ์ ์๋ค.
ํ๋จํ ์ดํ์๋ ์ปจํธ๋กค ๋นํธ์ธ 'SYN' ๋นํธ๋ฅผ 1๋ก ๋ง๋๋๋ฐ, ์ด๋ ๊ฒ ๋ง๋ ํค๋๋ฅผ IP์๊ฒ ๊ฑด๋ค์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก IP์์๋ ์ด๋ ํ ๋์์ ํ๊ณ , ์๋ฒ์ ๋์ฐฉํ๋ฉด ์๋ฒ ์ธก์ IP๊ฐ ์ด๋ฅผ ๋ฐ๊ณ , ๋ค์ ์๋ฒ ์ธก์ TCP๊ฐ ๋ฐ๋๋ค.
์๋ฒ ์ธก์ TCP๋ ํค๋ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ ์ฒ์ ์์ผ์ ์ฐพ์๋ด๊ณ , ํด๋น ์์ผ์๊ฒ ์งํ ์ค์ด๋ผ๊ณ ์๋ตํ๋ค.
์๋ฒ์์๋ ๋์ผํ๊ฒ ์ก/์์ ์ฒ์ ํฌํธ ๋ฒํธ์ SYN=1์ธ ํค๋๋ฅผ ๋ง๋ค๊ณ , ์ถ๊ฐ์ ์ผ๋ก 'ACK'๋ผ๋ ๋นํธ๋ 1๋ก ๋ง๋ ๋ค. (ํด๋ผ์ด์ธํธ์์๋ 0์ด์์) ์ด๋ ๊ฒ ๋ง๋ ํค๋๋ฅผ IP์๊ฒ ์ฃผ๊ณ , ๋ ๋ค์ ํด๋ผ์ด์ธํธ์ IP -> TCP๋ก ๊ฐ๋ ๊ฒ์ด๋ค.
ํด๋ผ์ด์ธํธ๋ ๋ค์ TCP ํค๋๋ฅผ ์กฐ์ฌํ์ฌ ์ ์ ๋์์ด ์ฑ๊ณตํ๋์ง ํ์ธํ๊ณ , SYN์ด 1์ด๋ฉด ์์ผ์ ์ ์ ์๋ฃ์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ณ , ๋ง์ฐฌ๊ฐ์ง๋ก ํจํท์ด ๋์ฐฉํ ๊ฒ์ ์๋ฒ์๊ฒ ์๋ฆฌ๊ธฐ ์ํด์ ACK ๋นํธ๋ฅผ 1๋ก ๋ง๋ TCP ํค๋๋ฅผ ๋ฐ์กํ๋ค.
์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ก๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก '์ปค๋ฅ์ '์ ์ ์งํ๋ฉด์ close๋ฅผ ํตํด ์ฐ๊ฒฐ์ ๋์ ๋๊น์ง ๊ณ์ ์ ์ง๋๋ฉฐ, ์ปค๋ฅ์ ์ด ์๋ฃ๋๋ฉด ํ๋กํ ์ฝ ์คํ์ ์ ์ ๋์์ด ๋๋๊ธฐ ๋๋ฌธ์ connect์ ์คํ์ด ๋๋๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ดํ ์ ์๊ฒ ๋๋ค.
โ๏ธ ๋ฐ์ดํฐ ์ก/์์ ํ๊ธฐ
์ด์ ์ด ๋ถ๋ถ์ ๋ํด์ ํ ๋ฒ ์์๋ณด๋๋ก ํ์.
write๋ฅผ ํธ์ถํ์ฌ ์ก์ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ํ๋กํ ์ฝ ์คํ์ ๊ฑด๋ค์ค๋ค.
์ด๋ฅผ ๋ฐ์ ํ๋กํ ์ฝ ์คํ์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๋ค.
๐ฑ 1. ๋ฐ์ ๋ฐ์ดํฐ ๋ด์ฉ์ ์ ์ ์๋ค.
write๋ฅผ ํธ์ถํ ๋ ์ก์ ๋ฐ์ดํฐ์ ๊ธธ์ด๋ฅผ ์ง์ ํ์ง๋ง, ํ๋กํ ์ฝ ์คํ์ ํด๋น ๊ธธ์ด๋งํผ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๊ฐ 1๋ฐ์ดํธ์ฉ ๋์ด๋์ด ์๋ค๊ณ ๋ง ์ธ์ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋กํ ์ฝ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ '์ก์ ์ฉ ๋ฒํผ ๋ฉ๋ชจ๋ฆฌ ์์ญ'์ ์ ์ฅํ๋ค.
์๋ํ๋ฉด, ์ก์ ์ ์๋ขฐํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ๋กํ ์ฝ ์คํ์ ๊ฑด๋ค์ฃผ๋ ๋ฐ์ดํฐ ๊ธธ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ํ๋กํ ์ฝ์์ ์ ์ดํ ์ ์์ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ ์ ์ฅํ๊ณ ๋์, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ผ ๋์์ ํ๋ ๊ฒ์ด๋ค.
ํ๋จํ ์ ์๋ ๊ธฐ์ค์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋๋๋ฐ, ํ๋๋ 'ํ ํจํท์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ', ํ๋๋ 'ํ์ด๋ฐ' ์ด๋ค.
fํ๋กํ ์ฝ์ ๊ธฐ๋ณธ์ ์ผ๋ก MTU (Maximum Transmission Unit)๋ฅผ ๋ฐํ์ผ๋ก ํ๋จํ๋๋ฐ, ํจํท์ ๋งจ ์ ๋ถ๋ถ์ ํค๋๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ํค๋ ์ ๋ณด๋ฅผ ์ ์ธํ ๊ฒ์ MSS (Maximum Segment Size)๋ผ๊ณ ํ๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ ๋ฐ์ดํฐ๊ฐ MSS์ ๋๋ฌํ ๋๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ก์ ๋์์ ํ๋ฉด ํจํท์ด ๋๋์ด์ง ๊ฑฑ์ ์ ํ ํ์๋ ์๋ค. ๋ง์ฝ, ์ก์ ์๋๊ฐ ๋๋ ค์ง๋ ๊ฒฝ์ฐ MSS์ ๊ฐ๊น๊ฒ ์ ์ฅํ๋ฉด ์ ์ฅํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ผ๋ก ์ธํด ์ก์ ๋์์ด ์ง์ฐ๋๊ธฐ ๋๋ฌธ์ ๋ด๋ถ์ ํ์ด๋จธ๋ฅผ ํตํด ์ผ์ ์๊ฐ์ด ๊ฒฝ๊ณผํ๋ฉด ํจํท์ ์ก์ ํ๋ค.
๐ฌ MSS๋ฅผ ์ค์ํ๋ฉด ํจํท ๊ธธ์ด๊ฐ ๊ธธ์ด์ง๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ํจ์จ์ด ๋์์ง์ง๋ง, ๋ฒํผ์ ๋จธ๋ฌด๋ ์๊ฐ๋งํผ ์ก์ ๋์์ด ์ง์ฐ๋๋ค.
๋ฐ๋๋ก ํ์ด๋ฐ์ ์ค์ํ๊ฒ ๋๋ฉด ์ง์ฐ์ ์ค์ด๋ค์ง๋ง, ํจ์จ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ํ๋กํ ์ฝ ์คํ ๊ฐ๋ฐ์๊ฐ ์ ์ ์ถฉํด์ผ ํ๋ค.
- ๋ฌผ๋ก , ์ด๋ ๊ฒ ํ๋กํ ์ฝ ์คํ์๋ง ์ ๋ถ ๋งก๊ธธ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ธก์์ ์ก์ ์ ํ์ด๋ฐ์ ์ ์ดํ๋ ์ฌ์ง๋ ๋จ๊ฒจ๋์๋ค. ๋ฐ์ดํฐ ์ก์ ์ ์๋ขฐํ ๋ ์ต์ ์ ์ง์ ํ ์ ์์ผ๋ฉฐ, ๋ฒํผ์ ์ ์ฅ ์์ด ๋ฐ๋ก ์ก์ ํ๋๋ก ํ๋ฉด ํ๋กํ ์ฝ ์คํ์ ๋ฐ๋ก ์ก์ ์ด ๊ฐ๋ฅํ๋ค.
๐ฑ 2. ๋ฐ์ดํฐ๊ฐ ํฌ๋ฉด ๋ถํ ํ๋ค.
HTTP ๋ฆฌํ์คํธ ๋ฉ์์ง๋ ๋ณ๋ก ์ ๊ธธ์ง๋ง, ํผ๋ฐ์ดํฐ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋๊ฒ ๊ธธ๋ค.
์ด๋ฌ๋ฉด MSS์ ๊ธธ์ด๋ฅผ ์ด๊ณผํ๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ถํ ํ๊ณ , ๋ถํ ํ ์กฐ๊ฐ์ ํ ๊ฐ์ฉ ํจํท์ ๋ฃ์ด ์ก์ ํด์ผ ํ๋ค.
์ก์ ๋ฒํผ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ MSS ๊ธธ์ด๋ฅผ ์ด๊ณผํ๊ธฐ ๋๋ฌธ์ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์๋ค.
๊ทธ๋ฅ ์ก์ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ๋งจ ์๋ถํฐ MSS์ ๋ง๊ฒ ๋ถํ ํ๊ณ , ๋ถํ ๋ ์กฐ๊ฐ์ ํ ๊ฐ์ฉ ํจํท์ ๋ฃ์ด ์ก์ ํ๋ค.
์ด๋ ๊ฒ ์ก์ ํ ๋ฐ์ดํฐ ๋งจ ์์ TCP ํค๋๋ฅผ ๋ถ๊ฐํ๊ณ , ์์ผ์ ๊ธฐ๋ก๋ ์ ์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ก์ /์์ ์ฒ ํฌํธ ๋ฒํธ ๋ฑ ํ์ํ ํญ๋ชฉ์ ๋ถ๊ฐํ ๋ค์ IP์ ๊ฑด๋ค์ฃผ์ด ์ก์ ๋์์ ์ํํ๋ค.
๐ฑ 3. ACK ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ํจํท์ด ๋์ฐฉํ๋์ง ํ์ธํ๋ค
TCP์ ๊ฒฝ์ฐ ์ก์ ํ ํจํท์ด ์๋์๊ฒ ๋์ฐฉํ๋์ง ํ์ธํ๊ณ , ๋์ฐฉํ์ง ์์๋ค๋ฉด ๋ค์ ์ก์ ํ๋ ๊ธฐ๋ฅ์ด ์๋ค.
์ฐ์ , ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ป๊ฒ ํ์ธํ๋์ง ์์๋ณด์.
TCP๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฐ์ผ๋ก ๋ถํ ํ ๋ ๊ฐ ์กฐ๊ฐ์ด ๋ช ๋ฒ์งธ ๋ฐ์ดํธ์ ํด๋นํ๋์ง ์ธ์ด๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ์ก์ ํ ๋ ์ธ์ด๋ ๊ฐ์ TCP ํค๋์ ๊ธฐ๋กํ๋๋ฐ, '์ํ์ค ๋ฒํธ'๋ผ๋ ํญ๋ชฉ์ด ํด๋น๋๋ค.
์ก์ ํ๋ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ ์์ ์ธก์ ์ ๋ฌํ์ง๋ง, ํจํท์ ์ ์ฒด ๊ธธ์ด์์ ํค๋ ๊ธธ์ด๋ฅผ ๋นผ๋ฉด ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ํค๋์ด ๊ธฐ๋กํ์ง๋ ์๋๋ค.
ํนํ, ์ด๋ ๊ฒ ๊ณ์ฐํ๋ ๊ณผ์ ์์ ์์ ์ธก์ ํจํท์ ๋๋ฝ๋ ํ์ธํ ์ ์๋ค.
๋ง์ฝ 1460 ๋ฐ์ดํธ๊น์ง ์์ ์ ์๋ฃํ ์ํ์์, ์ํ์ค ๋ฒํธ๊ฐ 1461์ด๋ผ๋ฉด ํจํท ๋๋ฝ์ด ์๋ ๊ฒ์ด๊ฒ ์ง๋ง, ์ํ์ค ๋ฒํ 1461์ด ๋์ฐฉ๋ ์ ํ๋๋ฐ 2921์ธ ํจํค์ฑ ๋์ฐฉํ๋ค๋ฉด ๋๋ฝ๋ ๊ฒ์ ์ ์ถํด๋ผ ์ ์๊ฒ ๋๋ค.
๋ง์ฝ, ๋๋ฝ์ด ์๋ค๋ฉด ์์ ์ธก์ ๊ทธ ์ด์ ์ ์์ ํ ๋ฐ์ดํฐ์ ํฉ์ณ์ ๋ฐ์ดํฐ๋ฅผ ๋ช ๋ฒ์งธ ๋ฐ์ดํธ๊น์ง ์์ ํ ๊ฒ์ธ์ง ๊ณ์ฐํ๊ณ , ๊ทธ ๊ฐ์ TCP ํค๋์ ACK ๋ฒํธ์ ๊ธฐ๋กํ์ฌ ์ก์ ์ธก์๊ฒ ์๋ ค์ค๋ค.
์ํ์ค ๋ฒํธ๋ 1์ด ์๋ ๋์๋ฅผ ์ด๊ธฐ๊ฐ์ผ๋ก ์ผ๋๋ค. 1๋ถํฐ ์์ํ๋ค๊ณ ์ ํด์ก๋ค๋ฉด ์ ์์ ์ธ ๊ณต๊ฒฉ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง ๋ช ๋ฒ์งธ ์ด๊ธฐ๊ฐ์ธ์ง ์ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ๊ฐ์ ์ก/์์ ์ ์ ๋ฏธ๋ฆฌ ์๋ ค์ค๋ค.
์์ ๊ทธ๋ฆผ์์ SYN=1์ ์ ์กํ๋ ๊ทธ๋ฆผ์ด ๋ ์ค๋ฅผ ๊ฒ์ด๋ค. ๊ฑฐ๊ธฐ์ SYN=1๋ก ์๋ฒ์๊ฒ ๋ณด๋ผ ๋ ์ด๊ธฐ๊ฐ์ ํต์งํ๋ค.
๐ฌ ๊ทธ๋ ๋ค๋ฉด, ๋ง์ฝ ์๋ฐฉํฅ์ผ๋ก ํต์ ํ ๋๋ ๊ด์ฐฎ์๊น?
์ง๊ธ๊น์ง ๋จ๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋๋ง ๊ณ ๋ คํ์๋ค.
ํ์ง๋ง, TCP์ ๋ฐ์ดํฐ ์ก/์์ ์ ์๋ฐฉํฅ์ด๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด์๋ ๊ณ ๋ คํด์ผ ํ๋ค.
๋จผ์ , ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก ๋ณด๋ด๋ ์ํ์ค ๋ฒํธ๋ ํด๋ผ์ด์ธํธ์์ ์ฐ์ถํ์ฌ ๋ฐ์ดํฐ์ ํจ๊ป ์๋ฒ์๊ฒ ํต์งํ๋ค.
์ด๊ฒ์ด ํต๊ณผํ๋ฉด ์๋ฒ์ธก์์๋ ACK ๋ฒํธ๋ฅผ ์ฐ์ถํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์กํ๋ค.
๋ฐ๋๋ก, ์๋ฒ -> ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ ์ํ์ค ๋ฒํธ๋ ์๋ฒ์ธก์์ ์ฐ์ถํ์ฌ ํด๋ผ์ด์ธํธ์ ํต์งํ๊ณ , ์ด๊ฒ์ด ๋์ฐฉํ๋ฉด ํด๋ผ์ด์ธํธ ์ธก์ ์ด๋ฅผ ๋ฐ์ ACK ๋ฒํธ๋ฅผ ์ฐ์ถํ์ฌ ์๋ฒ์ ๋ฐ์กํ๋ค.
์ด๋ ๊ฒ ์ด๊ธฐ๊ฐ๋ ์์ชฝ์์, ์ ์ ๋์์ ํ ๋๋ ์๋ก ํต์งํ๊ฒ ๋๋ค.
์, ๊ทธ๋ฌ๋ฉด ์ค์ ๋ก ์ด๋ป๊ฒ ์์ง์ด๋์ง ์ดํด๋ณด์.
1. ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก ๋ณด๋ด๋ ๋ฐ์ดํฐ์ ๋ํ ์ํ์ค ๋ฒํธ์ ์ด๊ธฐ๊ฐ์ ํด๋ผ์ด์ธํธ์์ ์ฐ์ถ ํ, ์๋ฒ์ ํต์ง
2. ์๋ฒ๋ ๋ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก๋ถํฐ ACK ๋ฒํธ๋ฅผ ์ฐ์ถ ํ ํด๋ผ์ด์ธํธ์ ๋ฐ์ก
3. ์๋ฒ ์ญ์ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ ๋ฐ์ดํฐ์ ๊ดํ ์ํ์ค ๋ฒํธ์ ์ด๊ธฐ๊ฐ์ ์ฐ์ถํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ํจ๊ป ํต์ง
4. ํด๋ผ์ด์ธํธ๋ ๋ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก๋ถํฐ ACK ๋ฒํธ ์ฐ์ถ ํ ์๋ฒ์๊ฒ ๋ฐ์ก
5. (๊ธฐ์กด์ ์๋ฐฉํฅ์ด์ง๋ง ์น์ ๊ฒฝ์ฐ) ์ต์ด๋ก ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ , ๋ฐ์ดํฐ์ ํจ๊ป ์ํ์ค ๋ฒํธ ์ ์ก
6. ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ACK ๋ฒํธ ๋ฐ์ก (๋ง์ฝ ์๋ฒ์์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ๋ค๋ฉด 5, 6์ ํ์ดํ ๋ฐฉํฅ ๋ณ๊ฒฝ)
TCP ์ญ์ ์ด๋ฌํ ๋ฐฉ๋ฒ์ผ๋ก ์๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๊ฒ์ ํ์ธํ๋ฉฐ, ํ์ธํ ๋๊น์ง ์ก์ ํ ํจํท์ ์ก์ ์ฉ ๋ฒํผ ๋ฉ๋ชจ๋ฆฌ์ ๋ณด๊ดํ๋ค.
๋ง์ฝ ์ก์ ํ ๋ฐ์ดํฐ์ ๋ํ ACK ๋ฒํธ๊ฐ ์๋๋ก๋ถํฐ ์ค์ง ์์ผ๋ฉด ํจํท์ ์ฌ์ ์กํ๋ค.
โญ๏ธ ์์ ๊ตฌ์กฐ๋ ํจํท์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ฐฉํ์ง ์์๋ค๋ฉด ๋ค์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์, ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ํ๋ณต์ด ๊ฐ๋ฅํ๋ค.
๋ํ, ์ด๊ณณ์์ ํ๋ณต ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ LAN ์ด๋ํฐ๋ ๋ฒํผ, ๋ผ์ฐํฐ ๋ชจ๋ ํ๋ณต ์กฐ์น๋ฅผ ์ทจํ ํ์๊ฐ ์๋ค.
๊ทธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ฉด ํจํท์ ๋ฒ๋ฆฌ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
- ์ฐธ๊ณ ๋ก, ์ผ์ด๋ธ ๋ถ๋ฆฌ๋ ์๋ฒ ๋ค์ด ๊ฐ์ ๊ฒฝ์ฐ ๋ช ๋ฒ์ด๋ ์ฌ์ ์ก์ ํ๋๋ผ๋ ์ ์ค๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋๋ ๊ฐ์ ๋ก ์ข ๋ฃํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ฅ๋ฅผ ํต์งํ๋ค.
๐ฑ 4. ํจํท ํ๊ท ์๋ณต ์๊ฐ์ผ๋ก ACK ๋ฒํธ์ ๋๊ธฐ ์๊ฐ์ ์กฐ์ ํ๋ค.
๐ฌ ํ์์์: ACK ๋ฒํธ๊ฐ ๋์์ค๊ธธ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ.
๋ณดํต ACK ๋ฒํธ๊ฐ ์ง์ฐ๋๋ ๊ฒฝ์ฐ๋ ํผ์กํ ๋๊ฐ ๋ง๊ธฐ ๋๋ฌธ์, ๋ฒํธ๊ฐ ์ค์ง ์๋๋ค๊ณ ๋ฌด์์ ํจํท์ ์ ์กํ๋ฉด ์คํ๋ ค ์ํฉ์ ์ ํ์ํฌ ์ ์๋ค. ๊ทธ๋์ ํ์์์ ์๊ฐ์ ์ ์ ํ ๊ฐ์ผ๋ก ์ค์ ํด์ผ ํ๋ค.
TCP์ ๊ฒฝ์ฐ ๋๊ธฐ ์๊ฐ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์์ผ๋ฉฐ, ACK ๋ฒํธ๊ฐ ๋์์ค๋ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋๊ธฐ ์๊ฐ์ ํ๋จํ๋ค. ๋ฐ์ดํฐ ์ก์ ์ ACK ๋ฒํธ๊ฐ ๋์์ค๋ ์๊ฐ์ ํญ์ ์ธก์ ํด๋๊ณ , ๊ทธ์ ๋ฐ๋ผ ๋๊ธฐ ์๊ฐ์ ๋ณํ์ํค๊ณ ์๋ค. (์ต์๋ 0.5~1์ด)
๐ฑ 5. ์๋์ฐ ์ ์ด ๋ฐฉ์์ ํตํด ํจ์จ์ ์ผ๋ก ACK ๋ฒํธ๋ฅผ ๊ด๋ฆฌํ๋ค.
๐ฌ ์๋์ฐ ์ ์ด: ํ ๊ฐ์ ํจํท์ ๋ณด๋ธ ํ, ACK ๋ฒํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ฐจ๋ก๋ก ์ฐ์๋ ํจํท์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
ACK ๋ฒํธ๊ฐ ๋์์ฌ ๋๊น์ง ์๋ฌด ์ผ๋ ์ ํ๋ ๊ฑฐ๋ ๋งค์ฐ ๋ญ๋น๋ค.
TCP๋ ACK ๋ฒํธ๊ฐ ๋์์ฌ ๋๊น์ง '์๋์ฐ ์ ์ด'๋ผ๋ ๋ฐฉ์์ ํตํด ์ก์ ๋ ํจ๊ป ์งํํ๋ค.
ํ์ง๋ง, ์ด ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๋ค.
์์ ์ธก์ TCP์ ๊ฒฝ์ฐ ์ผ๋จ ํจํท์ ๋ฐ์ผ๋ฉด ์ด๋ฅผ ์์ ์ฉ ๋ฒํผ ๋ฉ๋ชจ๋ฆฌ์ ๋ณด๊ดํ๋ค.
๊ธฐ์กด ๊ฐ์์ผ๋ฉด ์์ ์ธก์ ACK ๋ฒํธ๋ฅผ ๊ณ์ฐํ๊ฑฐ๋ ์กฐ๊ฐ์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ ๋ค์! ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ ๊ฑด๋ค์ฃผ์ด์ผ ํ๋๊น ๋ค์ ํจํท์ด ์๋ ์์ ๋ฒํผ๋ฅผ ์ค์นํ๊ณ ๋ณด๊ดํ๋ค.
ํ์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑด๋ค์ฃผ๋ ์๋๋ณด๋ค ๋น ๋ฅธ ์๋๋ก ํจํท์ด ์ค๊ฒ ๋๋ฉด ์์ ๋ฒํผ๋ ๋์น๊ณ ๋ง๋ค.
๊ทธ๋์ ์์ ์ธก์์ ์ก์ ์ธก์ ์์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์์ ํต์งํ๊ณ , ์์ ์ธก์ ์ด ์์ ํต์งํ์ง ์๋๋ก ์ก์ ๋์์ ์คํํ๋ค.
โญ๏ธ ์์ ์ธก์ ์์ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ณด๊ดํ๊ณ , ์์ ์ฒ๋ฆฌ๋ฅผ ์งํํ๋ค.
- ์์ ์ฒ๋ฆฌ๊ฐ ๋๋๊ณ ๋ฒํผ์ ๋น ๊ณต๊ฐ์ด ์๊ธฐ๋ฉด ๊ทธ ๋ถ๋๋งํผ ์์ ํ ์ ์๋ ๋ฐ์ดํฐ ์์ ๋๋ฆฐ๋ค!
๊ทธ๋ฆฌ๊ณ , ์ด๋ฅผ TCP ํค๋์ '์๋์ฐ ํ๋'์์ ์ก์ ์ธก์ ์๋ฆฐ๋ค.
์์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์์ ์ต๋๊ฐ์ '์๋์ฐ ์ฌ์ด์ฆ'๋ผ๊ณ ํ๋ฉฐ, TCP๋ฅผ ์ ๋ฐ ์กฐ์ ํ๋ ๋งค๊ฐ ๋ณ์ ์ค ํ๋์ด๋ค.
๐ฑ 6. ACK ๋ฒํธ์ ์๋์ฐ๋ฅผ ํฉ์นํ๋ค.
์์ ๋ฐ์ดํฐ๊ฐ ์์ ๋ฒํผ์ ํต์ง๋๋ค๋ฉด, ์๋์ฐ๋ฅผ ํ๋ํ๋ ์์ ์ธก์ ํต์งํ ํ์๋ ์๋ค.
์๋์ฐ ๊ฐ์ ์ก์ ์ธก์ด ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ ๋๋ง๋ค ๋ณธ์ธ์ด ๋ณด๋ธ ๋ฐ์ดํฐ๋งํผ ๊ฐ์ฐํ์ฌ ์ค์ค๋ก ์ฐ์ถํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋์ฐ ํต์ง๊ฐ ํ์ํ ๊ฒ์, ์์ ์ธก์ด ์์ ๋ฒํผ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ ๊ฑด๋ค์ฃผ์์ ๋์ด๋ค.
์ด ๋์์ ์์ ์ธก์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋จผ์ ์๋ขฐ๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์ธ์ ์ผ์ด๋ ์ง ์ก์ ์ธก์์๋ ์ ์๊ฐ ์๋ค. ๊ทธ๋์ ์์ ์ธก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋ค์ฃผ๊ณ , ์์ ๋ฒํผ์ ๋น ์์ญ์ด ๋์ด๋ฌ์ ๋ ์ก์ ์ธก์ ํต์ง๋ฅผ ํด์ผ ํ๋๋ฐ, ์ด๊ฒ์ด ์๋์ฐ ํต์ง์ ํ์ด๋ฐ์ด๋ค.
ACK ๋ฒํธ ์ญ์ ์์ ์ธก์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ๋์, ์ ์์ ์ผ๋ก ์์ ์ด ๊ฐ๋ฅํ๋ฉด ๋ณด๋ธ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, ์ก์ ์ธก์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ , ๊ทธ๊ฒ '์ ์์ ์ผ๋ก ๋์ฐฉํ์ ๋' ACK ๋ฒํธ๋ฅผ ์ก์ ์ธก์ ํต์งํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑด๋ค์ฃผ์์ ๋ ์๋์ฐ๋ฅผ ์ก์ ์ธก์ ํต์งํ๊ฒ ๋๋ค.
= ๋ฐ์ดํฐ์ ํจํท์ ๋ฐ์ ๋๋ง๋ค ACK ๋ฒํธ๋ ๋ณด๋ด๊ณ , ์๋์ฐ ํต์ง๋ ๋ณด๋ด๋ ๊ฒ์ด๋ค.
= ํจ์จ์ฑ์ด ๋งค์ฐ ๋ฎ๋ค.
๊ทธ๋์ ์์ผ์ ๋ฐ๋ก ๋ณด๋ด์ง ์๊ณ ์ ์ ๊ธฐ๋ค๋ ธ๋ค๊ฐ, ๊ทธ ์ฌ์ด ํต์ง ๋์์ด ์ผ์ด๋๋ฉด ํ ๊ฐ์ ํจํท์ผ๋ก ๋ฌถ์ด์ ๋ณด๋ธ๋ค.
ํน์, ACK ๋ฒํธ๋ ์๋์ฐ ํต์ง๊ฐ ์ฐ์ํด์ ์ผ์ด๋๋ค๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง ํต์ง๋ง ๋ณด๋ด์ ๋ณด๋ด๋ ํจํท์ ์์ ์ค์ธ๋ค.
๐ฑ 7. HTTP ์๋ต ๋ฉ์์ง ์์ ํ๊ธฐ
์ด์ ํ๋กํ ์ฝ ์คํ์ด HTTP ๋ฆฌํ์คํธ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๋์์ ๋๋ฌ๋ค.
ํ์ง๋ง, ์ด๋ ๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ์น ์๋ฒ์์ ์๋ต ๋ฉ์์ง๊ฐ ์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์ค๋ฉด ์ด๋ฅผ ๋ฐ๋๋ค.
์ฌ๊ธฐ์๋ ์งง๊ฒ ๋งํ์๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๋ฆฌํ์คํธ ๋ฉ์์ง๋ฅผ ์ก์ ํด๋ฌ๋ผ๊ณ ์๋ขฐํ๊ณ , ์๋ฒ์์ ๋์์ค๋ ์๋ต ๋ฉ์์ง๋ฅผ ๋ฐ๊ธฐ ์ํด read()๋ฅผ ํธ์ถํ๋ค. ๊ทธ๋ฌ๋ฉด ํ๋กํ ์ฝ ์คํ์ผ๋ก ๋ค์ ์ ์ด๊ฐ ๋์ด๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ๋ฒํผ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑด๋ค์ค๋ค.
๋ง์ฝ ์๋ต ๋ฉ์์ง๊ฐ ์์ง ๋์์ค์ง ์์๋ค๋ฉด ์์ ๋ฒํผ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ์ผ์ ์ ์ ๋ณด๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ , ์๋ฒ์์ ์๋ต ๋ฉ์์ง์ ํจํท์ด ๋์ฐฉํ์ ๋ ์ด๋ฅผ ์์ ํ์ฌ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑด๋ค์ค๋ค.
์ฌ์ค ์ก์ ์ด๋ ๊ฑฐ์ ๋น์ทํ๋ค. ๊ฐ๋จํ ์ฝ์ด๋ณด๊ณ ๋ง๋ฌด๋ฆฌํ์.
์์ ํ ๋ฐ์ดํฐ ์กฐ๊ฐ + TCP ํค๋๋ฅผ ๋ณด๊ณ ๋ฐ์ดํฐ ๋๋ฝ ๊ฒ์ฌ > ์์ ํ๋ฉด ACK ๋ฐ์ก > ๋ฐ์ดํฐ ์กฐ๊ฐ์ ์์ ๋ฒํผ์ ์ผ์์ ์ผ๋ก ๋ณด๊ด > ์กฐ๊ฐ์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ ๋ณต์ > ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ง์ ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๊ธฐ๋กํด์ฃผ๊ณ > ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ ์ ์ด ๊ฑด๋ค์ฃผ๊ธฐ > ๊ทธ๋ฆฌ๊ณ ํ์ด๋ฐ์ ๊ฐ๋ ํ์ฌ ์๋์ฐ๋ฅผ ์ก์ ์ธก์ ํต์ง!
โ๏ธ ๋ฐ์ดํฐ ์ ์ก ํ ์ฐ๊ฒฐ ๋๊ธฐ
๋ง์ง๋ง์ผ๋ก ์ด๋ป๊ฒ ์์ผ์ ๋ง์ํ๋์ง ์์๋ณด์.
์ก/์์ ๋์์ด ์ข ๋ฃ๋์ด์ผ ์ฐ๊ฒฐ ๋๊ธฐ ๊ณผ์ ์ผ๋ก ๋ค์ด๊ฐ๋๋ฐ, ๋ง์ฝ ์น ๋ธ๋ผ์ฐ์ ๋ผ๋ฉด ์น ์๋ฒ์ ๋ฆฌํ์คํธ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ , ์๋ฒ์ ์ด์ ๋ํด ์๋ต ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ๋ฐ์ดํฐ ๋ณด๋ด๊ธฐ๊ฐ ์๋ฃ๋์ด ์ฐ๊ฒฐ ๋๊ธฐ ๋จ๊ณ์ ๋ค์ด๊ฐ ์ ์๋ค. ํด๋ผ์ด์ธํธ ์ธก์์ ๋จผ์ ์ฐ๊ฒฐ ๋๊ธฐ๋ฅผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ฉด, ๋ฐ๋๋ก ํด๋ผ์ด์ธํธ์์ ๋จผ์ ์ข ๋ฃํ ๊ฒ์ด๋ค.
์๋ฒ ์ธก์์ ๋จผ์ ์ฐ๊ฒฐ์ ๋๋๋ค๊ณ ๊ฐ์ ํด๋ณด์.
7. ์๋ฒ์์ ์ปจํธ๋กค ๋นํธ์ธ FIN ๋นํธ์ 1์ ์ค์ ํ์ฌ IP์๊ฒ ์๋ขฐํ๋ค.
8. ํด๋ผ์ด์ธํธ์ธก์ ํ๋กํ ์ฝ ์คํ์ ์ด๋ฅผ ๋ฐ์ ์ฐ๊ฒฐ ๋๊ธฐ ๋์์ ๋ค์ด๊ฐ๋ค๋ ๊ฒ์ ๊ธฐ๋กํ๊ณ , ACK ๋ฒํธ๋ฅผ ์๋ฒ์ธก์ ๋ฐ์กํ๋ค.
์ด๊ฒ์ด ๋๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๋ฌ ์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค. (๋ง์ฝ ํด๋ผ์ด์ธํธ ์ธก์ด ๋จผ์ ๋๋๋ค๋ฉด 7, 8๋ฒ์ ํ์ดํ ๋ฐฉํฅ์ ๋ฐ๋๊ฐ ๋๋ค)
9. ํด๋ผ์ด์ธํธ ์ญ์ FIN = 1์ ์ค์ ํ์ฌ IP๋ฅผ ์๋ขฐํ๋ค.
10. ์๋ฒ์์๋ ์ด๋ฅผ ๋ฐ์ ๊ธฐ๋ก ํ ACK ๋ฒํธ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์กํ๋ค.
์ดํ, ์ ํ๋ฆฌ์ผ์ด์ ์ด read๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๋ฌ ์จ๋ค๋ฉด ๋ฐ์ดํฐ ๋์ ์ ์๋ฒ์์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ์์ ์๋ฃํ๋ค๋ ์ฌ์ค์ ํด๋ผ์ด์ธํธ ์ธก์ ์ ํ๋ฆฌ์ผ์ด์ (=๋ธ๋ผ์ฐ์ )์๊ฒ ์๋ฆฐ๋ค. ์๋ฒ์์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ์์ ์๋ฃํ์ ๋ ํด๋ผ์ด์ธํธ๋ ์ข ๋ฃ๋๋ค.
๐ฌ FIN=1๋ก ์ค์ ํ ํจํท์ด ๋์ฐฉํ๊ธฐ ์ ์, ์ก์ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ ์ก์ ๋ฒํผ์ ์ ์ฅํด๋ ์ ์๋๋ฐ, ์ด๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋ด์ฃผ๋ ์์ ์ด ๋ณด๋ฅ๋์๊ธฐ ๋๋ฌธ์ read๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๋ฌ ์์ ๋ ๋จ์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๊ฑด๋ค์ค๋ค.
์ดํ, ํด๋ผ์ด์ธํธ์ธก์ ์ ํ๋ฆฌ์ผ์ด์ ์ญ์ close๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ ์ก/์์ ์ ๋์์ ์ข ๋ฃํ๊ณ , ํ๋กํ ์ฝ ์คํ๋ ๋ง์ฐฌ๊ฐ์ง๋ก FIN=1์ ์ค์ ํ TCP ํค๋๋ฅผ ๋ง๋ค๊ณ IP์ ์๋ขฐํ์ฌ ์๋ฒ์ ์ก์ ํ ๋ค์, ACK ๋ฒํธ๊ฐ ๋์์ค๋ฉด ์ข ๋ฃํ๋ค.
โ๏ธ ์์ผ ๋ง์ํ๊ธฐ
์ ๋ง ๋ง์ง๋ง ๋จ๊ณ์ด๋ค. ์์ผ์ ๋ง์ํ๋ ๋จ๊ณ์ง๋ง, ์ค์ํ ๊ฑด ๋ฐ๋ก ๋ง์์ํค๋ ๊ฒ ์๋๋ผ ์ ์ ๋๊ธฐํ๋ค๊ฐ ๋ง์ํ๋ค๋ ๊ฒ์ด๋ค.
์ด๋ ์ค๋์์ ๋ง๊ธฐ ์ํด์์ธ๋ฐ, ๋ํ์ ์ธ ์ค๋์ ์ค ํ๋๋ฅผ ์ดํด๋ณด์.
์ด๋ฒ์๋ ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ ์ฐ๊ฒฐ ๋๊ธฐ๋ฅผ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
1. ํด๋ผ์ด์ธํธ๋ FIN=1 ์ก์
2. ์๋ฒ๋ ์ด๋ฅผ ๋ฐ์ ACK ๋ฒํธ ์ก์
3. ์๋ฒ๋ FIN=1 ์ก์
4. ํด๋ผ์ด์ธํธ๋ ์ด๋ฅผ ๋ฐ์ ACK ๋ฒํธ ์ก์
์ด๋, ๋ง์ฝ ๋ง์ง๋ง์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ACK ๋ฒํธ๊ฐ ๋์์ค์ง ์์์ ๋ค์ FIN์ ๋ณด๋ด๋ ค๊ณ ํ๋๋ฐ, ํด๋ผ์ด์ธํธ์ ์์ผ์ด ์์ด์ก๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? ์์ผ์ด ์์ด์ง๋ฉด ๋ด๋ถ์ ์๋ ์ ์ด ์ ๋ณด (์ก/์์ ์ธก์ ํฌํธ๋ฒํธ ๋ฑ๋ฑ)๋ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์, ์ด๋ค ๊ฒ์ผ๋ก ๋ณด๋ด์ผ ํ ์ง ์ ์ ์๋ค.
๋ํ, ๋ง์ฝ ์๋ก์ด ์์ผ์ด ๊ทธ ์ฌ์ด์ ์์ฑ๋์ด ๊ทธ์ ์ ํด๋ผ์ด์ธํธ์ ์ฌ์ฉํ๋ ์์ผ๊ณผ ๋์ผํ ํฌํธ ๋ฒํธ๊ฐ ํ ๋น๋๋ค๋ฉด?
๊ทธ๋ฌ๋ฉด ์๋ก์ด ์์ผ์ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ FIN์ ๋ฐ์์ ๋ฐ๋ก ์ฐ๊ฒฐ์ด ๋์ด์ง ์๋ ์๊ฒ ๋๋ค.
ํจํท์ด ์์ด์ก์ ๋ ๋ค์ ๋ณด๋ด๋ ๋์์ ๋ณดํต ๋ช ๋ถ์ฏค ๊ณ์๋๊ณ , ์ด๋ ์ ๋ ์ง๋ฌ์ ๋ ํ๋ณต ์ ๋ง์ด ์๋ค๊ณ ํ๋จํ๊ณ ๋ณด๋ด๋ ๊ฑธ ๋ฉ์ถ๋ค.
๋ช ํํ ๊ท์ ์ ์์ง๋ง, ๋ณดํต ๋ช ๋ถ... ์ ๋ ๊ธฐ๋ค๋ฆฌ๊ณ ๋์ ์์ผ์ ๋ง์ํ๋ค.