์
๋ฐ์ดํธ ๋ก๊ทธ
2023.06.24
2023.07.01
2023.08.21
์ปดํจํฐ ์์คํ ์ ์์๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ฌ์ฉ์๊ฐ ์ปดํจํฐ๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋ชจ์
์ ์ ์์ญ, ์ปค๋์์ญ 2๊ฐ์ง๋ก ๋ถ๋ฆฌ๋๋ค.
์ ์ ์์ญ: ์คํ, ํ, ๋ฐ์ดํฐ, ์ฝ๋๋ก ๋๋จ
์ปค๋์์ญ: ํ๋์ ํ๋ก์ธ์ค์ ํ ๋น๋๋ ์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์ค์์ ์ ์ ์์ญ์ ์ ์ธํ ๋๋จธ์ง ์์ญ, ์ปค๋์ด ์์นํ๊ณ ์์ (์ปค๋: ์ด์์ฒด์ ๋ผ๋ ํ๋์ ์ํํธ์จ์ด๋ฅผ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ)
ํ๋ก์ธ์ค: ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ์ ์์ ์ ๋จ์
์ค๋ ๋: ํ๋ก์ธ์ค์ ์คํ ๋จ์, ๊ฐ ์ค๋ ๋๋ ๋ ๋ฆฝ์ ์ธ ์คํ ํ๋ฆ์ ๊ฐ์ง๊ณ ์์
ํ๋ก์ธ์ค๋ ์๋ฒฝํ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ(Code, Data, Heap, Stack)์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณต์ ๋ฅผ ํ์ง ์์ง๋ง, ์ฐ๋ ๋๋ ํด๋น ์ฐ๋ ๋๋ฅผ ์ํ ์คํ์ ์์ฑํ ๋ฟ ๊ทธ ์ด์ธ์ Code, Data, Heap์์ญ์ ๊ณต์ ํ๋ค.
ํ๋ก๊ทธ๋จ > ํ๋ก์ธ์ค > ์ค๋ ๋
์คํ์ ํจ์ ํธ์ถ ์ ์ ๋ฌ๋๋ ์ธ์, ๋ฐํ ์ฃผ์๊ฐ, ํจ์ ๋ด ๋ณ์ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
์คํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ ๋ฆฝ์ ์ด๋ผ๋ ๊ฒ์ ๋ ๋ฆฝ์ ์ธ ํจ์ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๊ณ ์ด๋ ๋ ๋ฆฝ์ ์ธ ์คํ ํ๋ฆ์ด ์ถ๊ฐ๋๋ ๊ฒ์ด๋ค.
๋ฉํฐ ํ๋ก์ธ์ค: ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์๋ก ํ๋ ฅ์ ์ผ๋ก ์ผ์ ์ฒ๋ฆฌํ๋ ๊ฒ
๋ฉํฐ ์ค๋ ๋ : ํ๋์ ํ๋ก์ธ์ค์ ์ฌ๋ฌ ์ค๋ ๋๋ก ์์์ ๊ณต์ ํ๋ฉฐ ์์ ์ ๋๋ ์ํํ๋ ๊ฒ
๋ฉํฐ ์ค๋ ๋๋ ๋ฉํฐ ํ๋ก์ธ์ค๋ณด๋ค ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ Context Switching์ด ๋น ๋ฅด๋, ํ๋์ ์ค๋ ๋ ์ฅ์ ๋ก ์ ์ฒด ์ค๋ ๋๊ฐ ์ข ๋ฃ๋ ์ํ์ ๊ฐ๊ณ ์์
๋ฉํฐ ํ๋ก์ธ์ค๋ ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ๋๋ผ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํฅ์ ์ฃผ์ง ์์ ์์ ์ฑ์ด ๋์ง๋ง, ๋ฉํฐ ์ค๋ ๋๋ณด๋ค ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ cpu์๊ฐ์ ์ฐจ์งํ๋ ๋จ์ ์ด ์์
ํ์ฌ ์งํํ๊ณ ์๋ Task(Process,Thread)์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ๋ค์ ์งํํ Task์ ์ํ ๊ฐ์ ์ฝ์ด ๋ณต์(restore)ํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
๋ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์๋ก ๊ธฐ๋ค๋ฆด ๋ ๋ฌดํ ๋๊ธฐ์ ๋น ์ง๋ ์ํฉ
ํฌ๊ฒ 4๊ฐ์ง
์ํธ ๋ฐฐ์ : ํ ๋ฒ์ ํ๋ก์ธ์ค ํ๋๋ง ํด๋น ์์์ ์ฌ์ฉํ ์ ์์. ์ฌ์ฉ ์ค์ธ ์์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ค๋ฉด ์์ฒญํ ์์์ด ํด์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํจ
์ ์ ๋๊ธฐ: ์์์ ์ต์ํ ํ๋ ๋ณด์ ํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํด์ผ ํจ
๋น์ ์ : ์ด๋ฏธ ํ ๋น๋ ์์์ ๊ฐ์ ๋ก ๋นผ์์ ์ ์์(๋น์ ์ )
์ํ ๋๊ธฐ: ๋๊ธฐ ํ๋ก์ธ์ค์ ์งํฉ์ด ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํจ
ํ์ด์ง: ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๊ณ ์ ๋ ์ฌ์ด์ฆ์ ํ์ด์ง ๋จ์๋ก ๋๋์ด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์์ ์ผ๋ก ํ ๋นํ๋ ๋ฐฉ์
์ธ๊ทธ๋ฉํ ์ด์ : ํ๋ก์ธ์ค๋ฅผ ๊ฐ๊ฐ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๋ ผ๋ฆฌ์ ์ธ ๋ธ๋ก ๋จ์ ์ธ๊ทธ๋จผํธ(Segment)๋ก ๋ถํ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น
RAM์์ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ์์ ์กฐ๊ฐ์ผ๋ก ๋๋์ด์ ธ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ ์กด์ฌํ์ง๋ง ํ ๋น(์ฌ์ฉ)์ด ๋ถ๊ฐ๋ฅํ ์ํ, ์ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ด ์ค์ด๋ค์ด swapping, ์ฆ์ ํ์ด์ง ๊ต์ฒด ๋ฑ์ผ๋ก ์์คํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์์
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋์จ ๊ธฐ์ , ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํฐ ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
์ด์์ฒด์ ์์ ์ฌ์ฉ๋๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ค ํ๋, ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ ํ์ํ ํ์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ , ํ์ํ์ง ์์ ํ์ด์ง๋ ๋์คํฌ์ ์ ์ฅํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๋ ๋ฐฉ๋ฒ. ์ด๋ฅผ ์ํด ํ์ด์ง ํ ์ด๋ธ์ ํ์ด์ง์ ์์น ์ ๋ณด์ ํจ๊ป ๊ฐ ํ์ด์ง์ ์ ๊ทผ ์ฌ๋ถ๋ฅผ ํ์ํ์ฌ ํ์ํ ํ์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋๋ค.
์น์์ ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์ ์๋ฒ๊ฐ ํต์ ํ ๋ ์ฌ์ฉํ๋ ํต์ ๊ท์ฝ
ํ๋กํ ์ฝ ๊ธฐ๋ณธ ์์
1) ๊ตฌ๋ฌธ: ์ ์กํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ ํ์, ๋ถํธํ, ์ ํธ ๋ ๋ฒจ ๋ฑ์ ๊ท์
2) ์๋ฏธ: ๋ ๊ธฐ๊ธฐ ๊ฐ์ ํจ์จ์ ์ด๊ณ ์ ํํ ์ ๋ณด ์ ์ก์ ์ํ ํ์กฐ ์ฌํญ๊ณผ ์ค๋ฅ ๊ด๋ฆฌ๋ฅผ ์ํ ์ ์ด ์ ๋ณด๋ฅผ ๊ท์
3) ์๊ฐ: ๋ ๊ธฐ๊ธฐ ๊ฐ์ ํต์ ์๋, ๋ฉ์์ง์ ์์ ์ ์ด ๋ฑ์ ๊ท์
ํ๋กํ ์ฝ์ ๊ธฐ๋ฅ ์ข
๋ฅ
1) ์บก์ํ
2) ํ๋ฆ์ ์ด
3) ์ฐ๊ฒฐ์ ์ด
4) ์ค๋ฅ์ ์ด
5) ์ฃผ์์ค์
6) ์์์ค์
7) ๋๊ธฐํ
8) ์ธ๋ถํ์ ์ฌํฉ์ฑ
9) ๋ค์คํ
Hyper Text Transfer Protocol์ ์ฝ์, ์น ์์์ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ํ ์ฌ๋ฌ ๊ท์น์ด๋ฉฐ, ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ์์ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค. ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์ปค๋์ฆ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ, '๋น์ฐ๊ฒฐ์ฑ'๊ณผ '๋ฌด์ํ' ๋ผ๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
๋ฌด์ํ ํ๋กํ ์ฝ (Stateless)
์น ์๋ฒ๊ฐ ์น ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ์ ์งํ์ง ์๋ ๊ฒ์ ์๋ฏธํจ. HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ์ ๋ณด๋ฅผ ์ ์งํ์ง ์์ผ๋ฏ๋ก ์ํ ์ ๋ณด ์ ์ง๊ฐ ํ์ํ ์์
์ ์ฟ ํค๋ ์ธ์
์ ์ด์ฉํ๋ค.
์ํ์ ๋ณด: ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ์ ๋ฌํ๋ฉด์ ํจ๊ป ์ ๋ฌํ ๋ฐ์ดํฐ
๋น์ฐ๊ฒฐ์ฑ(Connectionless)
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์์ฒญํ๋ ์๊ฐ ์ ๊น ์๋ฒ์ ์ฐ๊ฒฐ๋๋ค๊ฐ ์๋ฒ๋ก๋ถํฐ ์๋ต์ด ์ ์ก๋ ํ ๊ณง๋ฐ๋ก ์ฐ๊ฒฐ์ด ๋๊ธฐ๋ ๊ฒ์ ์๋ฏธ
Get method๋ ํด๋ผ์ด์ธํธ์์ ์ ๋ณด๋ฅผ ์์ฒญํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ์๋, POST๋ ํด๋ผ์ด์ธํธ์ ๋ฆฌ์์ค๋ฅผ ์์ฑ ๋๋ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋๋ฐ ์ฌ์ฉ๋จ, GET๊ณผ ๋ฌ๋ฆฌ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ HTTP ๋ฉ์์ง์ Body์ ๋ด์์ ์ ์กํจ
PUT
์ ๋ฆฌ์์ค์ ๋ชจ๋ ๊ฒ์ ์ ๋ฐ์ดํธ ํ๋ค.PATCH
๋ ๋ฆฌ์์ค์ ์ผ๋ถ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ค.
์ ๋ฆฌํด๋์ ๊ธ
์ด HTTPS(Hypertext Transfer Protocol Secure)๋ HTTP์ ํ์ฅ ๋ฒ์ ๋๋ ๋ ์์ ํ ๋ฒ์ ์ ๋๋ค. HTTPS์์๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ์์ ํ๊ณ ์ํธํ๋ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค. HTTP๋ ์ํธํ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ์์ ์ ์ก๋ ์ ๋ณด๋ฅผ ์ 3์๊ฐ ๊ฐ๋ก์ฑ๊ณ ์ฝ์ ์ ์์ต๋๋ค. ์ด๋ ์ด์์ ์ธ ํ๋ก์ธ์ค๊ฐ ์๋์๊ธฐ ๋๋ฌธ์, ํต์ ์ ๋ ๋ค๋ฅธ ๋ณด์ ๊ณ์ธต์ ์ถ๊ฐํ๊ธฐ ์ํด HTTPS๋ก ํ์ฅ๋์์ต๋๋ค. HTTPS๋ HTTP ์์ฒญ ๋ฐ ์๋ต์ SSL ๋ฐ TLS ๊ธฐ์ ์ ๊ฒฐํฉํฉ๋๋ค. - aws
1) ๐โโ๏ธserver "hello": ํด๋ผ์ด์ธํธ hello ๋ฉ์์ง์ ๋ํ ์๋ต์ผ๋ก ์๋ฒ๊ฐ ์๋ฒ์ SSL ์ธ์ฆ์, ์๋ฒ์์ ์ ํํ ์ํธ ์ ํ๊ตฐ, ๊ทธ๋ฆฌ๊ณ ์๋ฒ์์ ์์ฑํ ๋ ๋ค๋ฅธ ๋ฌด์์ ๋ฐ์ดํธ ๋ฌธ์์ด์ธ "server random"๋ฅผ ํฌํจํ๋ ๋ฉ์์ง๋ฅผ ์ ์กํฉ๋๋ค.
2) โ Verify server certificate : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ SSL ์ธ์ฆ์๋ฅผ ์ธ์ฆ์ ๋ฐํ ๊ธฐ๊ด(CA)์ ํตํด ๊ฒ์ฆํฉ๋๋ค. ์ด๋ฅผ ํตํด ์๋ฒ๊ฐ ์ธ์ฆ์์ ๋ช ์๋ ์๋ฒ์ธ์ง, ํด๋ผ์ด์ธํธ๊ฐ ์ํธ์์ฉ ์ค์ธ ์๋ฒ๊ฐ ์ค์ ํด๋น ๋๋ฉ์ธ์ ์์ ์์ธ์ง๋ฅผ ํ์ธํฉ๋๋ค.
3) ๐ Client key exchange : ํ์ธ์ด ์๋ฃ๋๋ฉด ํด๋ผ์ด์ธํธ๋ "The premaster secret"๋ผ๊ณ ํ๋ ๋ฌด์์ ๋ฐ์ดํธ ๋ฌธ์์ด์ ๊ณต๊ฐ ํค๋ก ์ํธํํ์ฌ ์ ์กํฉ๋๋ค. (ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ SSL ์ธ์ฆ์์์ ๊ณต๊ฐ ํค๋ฅผ ๋ฐ์ต๋๋ค.)
4) ๐ณ Send client certificate : ๋ง์ฝ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ธ์ฆ์๋ฅผ ์๊ตฌํ๋ค๋ฉด ์๋ฒ์ ์ธ์ฆ์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ํธํ๋ฅผ ์งํํ์ฌ ํจ๊ป ์ ์กํฉ๋๋ค.
5) ๐ง Verify client certificate : ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ The premaster secret์ ๊ฐ์ธํค๋ฅผ ํตํด ํด๋ ํฉ๋๋ค.
6) ๐ Client "finished" : ํด๋ผ์ด์ธํธ๊ฐ "client random", "server random", "The premaster secret"๋ฅผ ์ด์ฉํด ๋์นญํค๋ก ํ์ฉํ "์ธ์ ํค"๋ฅผ ์์ฑํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ ํค๋ก ์ํธํ๋ "finished" ๋ฉ์์ง๋ฅผ ์ ์กํฉ๋๋ค.
7) ๐ Server "finished" : ์๋ฒ๊ฐ "client random", "server random", "The premaster secret"๋ฅผ ์ด์ฉํด ๋์นญํค๋ก ํ์ฉํ ์ธ์ ํค๋ฅผ ์์ฑํฉ๋๋ค. ์๋ฒ๊ฐ ์ธ์ ํค๋ก ์ํธํ๋ "finished" ๋ฉ์์ง๋ฅผ ์ ์กํฉ๋๋ค.
8) ๐ค Exchange messages : ํธ๋์ ฐ์ดํฌ๊ฐ ์๋ฃ๋๊ณ , ์ธ์ ํค๋ฅผ ์ด์ฉํด ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค.
TCP๋ ์ฐ์์ฑ๋ณด๋ค ์ ๋ขฐ์ฑ ์๋ ์ ์ก์ด ์ค์ํ ๋ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ฉฐ,UDP๋ TCP๋ณด๋ค ๋น ๋ฅด๊ณ ๋คํธ์ํฌ ๋ถํ๊ฐ ์ ๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ์ง๋ ์๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ๋ณด๋ค๋ ์ฐ์์ฑ์ด ์ค์ํ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ ์๋น์ค์ ์์ฃผ ์ฌ์ฉ๋๋ค.
์ฐ๊ฒฐํ ์๋น์ค๋ก ๊ฐ์ ํ์ ๋ฐฉ์์ ์ ๊ณตํ๋ค. 3-way handshaking ๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , 4-way handshaking ๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ํด์ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ ์ ์๋ค.
3-Way-Handshake
1. ๋จผ์ Open ํ ํด๋ผ์ด์ธํธ๊ฐ SYN(๋ด ๋ง ๋ค๋ ค?)๋ฅผ ๋ณด๋ด๊ณ SYN_SENT ์ํ๋ก ๋๊ธฐํ๋ค.
2. ์๋ฒ๋ SYN-RECEIVED ์ํ๋ก ๋ฐ๊พธ๊ณ SYN๊ณผ ์๋ต ACK(์ด ์ ๋ค๋ ค! ๋ด ๋ง์ ๋ค๋ ค?)๋ฅผ ๋ณด๋ธ๋ค.
3. SYN๊ณผ ์๋ต ACK๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ESTABLISHED ์ํ๋ก ๋ณ๊ฒฝํ๊ณ ์๋ฒ์๊ฒ ์๋ต ACK(์ ๋ค๋ ค!)๋ฅผ ๋ณด๋ธ๋ค.
4. ์๋ต ACK๋ฅผ ๋ฐ์ ์๋ฒ๋ ESTABLISHED ์ํ๋ก ๋ณ๊ฒฝํ๋ค.
4-Way-Handshake
1. ๋จผ์ close๋ฅผ ์คํํ ํด๋ผ์ด์ธํธ๊ฐ FIN(์ฐ๊ฒฐ ๋์!)์ ๋ณด๋ด๊ณ FIN-WAIT-1 ์ํ๋ก ๋๊ธฐํ๋ค.
2. ์๋ฒ๋ CLOSE-WAIT์ผ๋ก ๋ฐ๊พธ๊ณ ์๋ต ACK(์๊ฒ ์ด! ์ ์๋ง~)๋ฅผ ์ ๋ฌํ๋ค. ๋์์ ํด๋น ํฌํธ์ ์ฐ๊ฒฐ๋์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ close๋ฅผ ์์ฒญํ๋ค.
3. ACK๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ์ํ๋ฅผ FIN-WAIT-2๋ก ๋ณ๊ฒฝํ๋ค.
4. close ์์ฒญ์ ๋ฐ์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ ํ๋ก์ธ์ค๋ฅผ ์งํํ๊ณ FIN(๋๋ ๋์๊ฒ!)์ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด LAST_ACK ์ํ๋ก ๋ฐ๊พผ๋ค.
5. FIN์ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ACK(์๊ฒ ์ด!)๋ฅผ ์๋ฒ์ ๋ค์ ์ ์กํ๊ณ TIME-WAIT์ผ๋ก ์ํ๋ฅผ ๋ฐ๊พผ๋ค. TIME-WAIT์์ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด CLOSE ๋๋ค. ACK๋ฅผ ๋ฐ์ ์๋ฒ๋ ํฌํธ๋ฅผ CLOSED๋ก ๋ซ๋๋ค.
TIME-WAIT
: ๋จผ์ ์ฐ๊ฒฐ์ ๋๋ ์ชฝ์์ ์์ฑ๋๋ ์์ผ์ผ๋ก, ํน์ ๋ชจ๋ฅผ ์ ์ก ์คํจ์ ๋๋นํ๊ธฐ ์ํด ์กด์ฌํ๋ ์์ผ์ด๋ฉฐ, TIME-WAIT์ด ์๋ค๋ฉด, ํจํท์ ์์ค์ด ๋ฐ์ํ๊ฑฐ๋ ํต์ ์ ๊ฐ ์ฐ๊ฒฐ ํด์ ๊ฐ ์ ๋๋ก ๋์ง ์์ ์ ์๋ค.