๋งค์ผ๋ฉ์ผ ๋ฐฑ์๋ ์ง๋ฌธ์ ์ฐธ๊ณ ํด ๊ฐ์ธ์ ์ผ๋ก ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค.
์ค๋ฅ๊ฐ ์๋ค๋ฉด ์ธ์ ๋ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ๋ฐ๋ก ๋ฐ์ํ๊ฒ ์ต๋๋ค..!
1. DNS ์ง์
์ปดํจํฐ๋ ์ฌ๋์ด ์ฐ๋ ๋ฌธ์ ์ฃผ์๋ฅผ ์ดํดํ์ง ๋ชปํ๊ณ , ์ซ์๋ก ๋ IP ์ฃผ์๋ก๋ง ์๋ก๋ฅผ ์ฐพ์๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ www.google.com์ด๋ผ๋ ๋๋ฉ์ธ ์ด๋ฆ์ ์
๋ ฅํ๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๊ฐ์ฅ ๋จผ์ ์ด ์ด๋ฆ์ ํด๋นํ๋ ์๋ฒ์ ์ค์ IP ์ฃผ์(ex. 142.250.190.78)๋ฅผ ์ฐพ๊ธฐ ์์ํจ
์ด๋ ๋ธ๋ผ์ฐ์ ๋ DNS(Domain Name System) ์๋ฒ์๊ฒ www.google.com์ IP ์ฃผ์๋ฅผ ๋ฌผ์ด๋ด
=> DNS๋ ๊ฑฐ๋ํ ์ธํฐ๋ท ์ฃผ์๋ก์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋๋ฐ ๋๋ฉ์ธ ์ด๋ฆ์ ๋งค์นญ๋๋ IP ์ฃผ์๋ฅผ ์ฐพ์์ ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ต
(์ด ๋ชจ๋ ๊ณผ์ ์ OSI 7๊ณ์ธต ์ค ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต์์ ๋ฐ์)
2. TCP 3-Way Handshake
๋ ์์ธํ ๋์ ๋ฐฉ์์ ๋ฐ์ ํฌ์คํ ์ ์ดํด๋ณด๋ฉด๋จ
https://hanjungyo.tistory.com/171
TCP 3-way handshake & 4-way handshake
๋งค์ผ๋ฉ์ผ ๋ฐฑ์๋ ์ง๋ฌธ์ ์ฐธ๊ณ ํด ๊ฐ์ธ์ ์ผ๋ก ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค.์ค๋ฅ๊ฐ ์๋ค๋ฉด ์ธ์ ๋ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ๋ฐ๋ก ๋ฐ์ํ๊ฒ ์ต๋๋ค..! TCP๋? TCP๋ Transmission Control Protocol์ ์ฝ์๋ก, TCP/IP ๋ชจ๋ธ
hanjungyo.tistory.com
์ด์ ๋ชฉ์ ์ง์ธ ๊ตฌ๊ธ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์์์ผ๋, ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ ์ ์๋ก ํต์ ํ ์ค๋น๊ฐ ๋์๋์ง ํ์ธํ๋ ๊ณผ์ ์ด ํ์ํจ
=> ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์ ๋ขฐ์ฑ ์๊ฒ ์ ๋ฌํ๊ธฐ ์ํด TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉฐ, ์ด ๊ณผ์ ์ ์ ์ก ๊ณ์ธต(4๊ณ์ธต)์์ ์ด๋ฃจ์ด์ง
(์ด ์ ์ฐจ๋ฅผ 3-Way Handshake๋ผ๊ณ ๋ถ๋ฆ)
- ํด๋ผ์ด์ธํธ (๋ด ์ปดํจํฐ) → ์๋ฒ: ํต์ ์ด ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ฅผ ๋ฌผ์ด๋ด (SYN)
- ์๋ฒ → ํด๋ผ์ด์ธํธ: ๊ฐ๋ฅํ๋ค๊ณ ๋๋ตํ๊ณ ํต์ ์ด ๊ฐ๋ฅํ์ง ๋๋ฌผ์ด๋ด (SYN+ACK)
- ํด๋ผ์ด์ธํธ → ์๋ฒ: ๊ด์ฐฎ๋ค๊ณ ๋๋ตํ๊ณ ํต์ ์ด ์์๋จ (ACK)
์ด๋ ๊ฒ ์ธ ๋จ๊ณ์ ๊ฑธ์ณ ์ฐ๊ฒฐ์ด ํ์คํ ์๋ฆฝ๋์ด์ผ๋ง ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์์ํจ
3. HTTP ํต์
์ฐ๊ฒฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๊ตฌ๊ธ ์๋ฒ์๊ฒ ์น ํ์ด์ง๋ฅผ ๋ฌ๋ผ๊ณ ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ณด๋
=> ์ด๊ฑธ HTTP Request๋ผ๊ณ ํจ
- ์์ฒญ: GET / HTTP/1.1 (์๋ฏธ: ๊ธฐ๋ณธ ํ์ด์ง(/)๋ฅผ HTTP/1.1 ๋ฐฉ์์ผ๋ก ์ฃผ์ธ์(GET))
์ด๋ฐ ์์ฒญ ๋ฉ์์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์์ ๋ง๋ค์ด์ง๊ณ ์๋ ๊ณ์ธต์ผ๋ก ๋ด๋ ค๊ฐ๋ฉด์ ์ ๋ณด๊ฐ ์ถ๊ฐ๋จ
- ์ ์ก ๊ณ์ธต(4๊ณ์ธต): TCP ํค๋๊ฐ ๋ถ์ด ์ธ๊ทธ๋จผํธ(Segment)๊ฐ ๋จ (์ถ๋ฐ์ง/๋ชฉ์ ์ง ํฌํธ ๋ฒํธ ๋ฑ)
- ๋คํธ์ํฌ ๊ณ์ธต(3๊ณ์ธต): IP ํค๋๊ฐ ๋ถ์ด ํจํท(Packet)์ด ๋จ (์ถ๋ฐ์ง/๋ชฉ์ ์ง IP ์ฃผ์ ๋ฑ)
- ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต(2๊ณ์ธต): ํ๋ ์ ํค๋๊ฐ ๋ถ์ด ํ๋ ์(Frame)์ด ๋จ (MAC ์ฃผ์ ๋ฑ)
์ด ๊ณผ์ ์ ์บก์ํ๋ผ๊ณ ๋ถ๋ฆ
=> ์ด๋ ๊ฒ ๊ฒน๊ฒน์ด ํฌ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๊ตฌ๊ธ ์๋ฒ์ ๋์ฐฉํ๋ฉด, ์๋ฒ๋ ํฌ์ฅ์ ์ญ์์ผ๋ก ํ๋ฉด์(์ญ์บก์ํ) ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ํ์ธํจ
์์ฒญ์ ์ฒ๋ฆฌํ ๊ตฌ๊ธ ์๋ฒ๋ HTTP Response ๋ฉ์์ง๋ฅผ ๋ง๋ค์ด ์๋ตํจ
- ์๋ต: 200 OK ์ํ ์ฝ๋์ ํจ๊ป ์น ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ HTML, CSS, JavaScript ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋
4. ๋ ๋๋ง ๋ฐ TCP 4-Way Handshake
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํด์ํด์ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ์๊ฐ์ ์ธ ์น ํ์ด์ง๋ก ๊ทธ๋ ค๋
=> ์ด ๊ณผ์ ์ ๋ ๋๋ง(Rendering)์ด๋ผ๊ณ ํจ
๋ชจ๋ ๋ฐ์ดํฐ ์ ์ก์ด ์ฑ๊ณต์ ์ผ๋ก ๋๋๋ฉด, ์ฐ๊ฒฐ์ ์์ ํ๊ฒ ์ข ๋ฃํด์ผ ํ๋๋ฐ ์ด๋๋ 4-Way Handshake๋ผ๋ ์ ์ฐจ๋ฅผ ํตํด ์ข ๋ฃํจ
- ํด๋ผ์ด์ธํธ → ์๋ฒ: ๋ ์ด์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ์๋ฆผ (FIN)
- ์๋ฒ → ํด๋ผ์ด์ธํธ: ์๋ฆผ์ ์ ๋ฐ์๋ค๊ณ ๋ค์ ์๋ ค์ค (ACK)
- ์๋ฒ → ํด๋ผ์ด์ธํธ: ๋๊ฐ์ด ๋ ์ด์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ์๋ฆผ (FIN)
- ํด๋ผ์ด์ธํธ → ์๋ฒ: ์๋ฆผ์ ๋ฐ์๋ค๊ณ ๋ค์ ์๋ ค์ฃผ๊ณ ์ฐ๊ฒฐ์ ์ข
๋ฃํจ (ACK)
์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ฉฐ ๋ชจ๋ ํต์ ๊ณผ์ ์ด ๋ง๋ฌด๋ฆฌ๋จ
'๐ป CS > ๋งค์ผ๋ฉ์ผ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋๊ธฐ, ๋น๋๊ธฐ / ๋ธ๋กํน, ๋ ผ๋ธ๋กํน (@Async) (3) | 2025.08.16 |
|---|---|
| TCP 3-way handshake & 4-way handshake (6) | 2025.08.14 |
| ๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑ : == ์ equals() (3) | 2025.08.08 |
| ํฐ์บฃ(Tomcat)์ด๋? (5) | 2025.08.05 |
| ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ์ ์ฐจ์ด (4) | 2025.08.04 |