์ธํฐ๋ท์ ํต์ ๊ณ์ธต์ ๋ํ๋ด๋ TCP/IP 5๊ณ์ธต ๋ชจ๋ธ์์ ๋คํธ์ํฌ ๊ณ์ธต๊น์ง๋ง ํด๋ ์ธํฐ๋ท์์ ๋ชจ๋ ์ปดํจํฐ๊ฐ ์๋ก ํต์ ํ ์ ์๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ ํจํท์ ๋ฐ์ ๋์์ด ์๊ฑฐ๋ ๋ถ๋ฅ ์ํ์ธ ๊ฒฝ์ฐ, ํน์ ์ค๊ฐ์ ํจํท์ด ์์ค๋๊ฑฐ๋ ์์๋๋ก ์ค์ง ์๋๋ค๋ฉด ํต์ ์ด ์ํํ๊ฒ ์ด๋ฃจ์ด์ง ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์ฌํ ๋ชฉ์ ์ง ์ปดํจํฐ์ ๋์ฐฉํ๋๋ผ๋ ๊ฐ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ์๋ฒ์์ ํต์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ์ด์์ด๋ผ๋ฉด ์ด๋ค ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ผํ ์ง ์ ์ ์๋ค.
TCP/IP์ ์ ์ก ๊ณ์ธต์์ TCP/UDP ํ๋กํ ์ฝ์ ํตํด ์ด๋ฌํ ๋คํธ์ํฌ ๊ณ์ธต์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ์ ์๋ค.
TCP ํ๋กํ ์ฝ์ ๋ฐ์ดํฐ์ ๋์ฐฉ ๋ณด์ฆ ๋ฐ ์์ ๋ณด์ฅ์ผ๋ก ์ ๋ขฐ์ฑ์ ์ ๊ณตํ๋ค. ๋ํ TCP/UDP ํจํท์ ์ถ๋ฐ์ง, ๋ชฉ์ ์ง PORT ๋ฒํธ๋ฅผ ํฌํจํ์ฌ ์ต์ข ๋์ฐฉ์ง ํ๋ก์ธ์ค์ ๋๋ฌํ ์ ์๊ฒ ํด์ค๋ค.
๐ฝ OSI 7๊ณ์ธต๊ณผ TCP/IP 5๊ณ์ธต
[๋คํธ์ํฌ] OSI 7 ๊ณ์ธต๊ณผ TCP/IP 5 ๊ณ์ธต
OSI 7 ๊ณ์ธต์ด๋ ๊ตญ์ ํ์คํ๊ธฐ๊ตฌ(ISO)์์ ๊ฐ๋ฐํ ๋ชจ๋ธ๋ก, ์ปดํจํฐ ๋คํธ์ํฌ ํ๋กํ ์ฝ ๋์์ธ๊ณผ ํต์ ์ ๊ณ์ธต์ผ๋ก ๋๋์ด ์ค๋ช ํ ๊ฒ์ด๋ค. ๊ณผ๊ฑฐ OSI 7 ๊ณ์ธต๋ชจ๋ธ์ ๊ฐ๋ตํ๋ TCP/IP 4 ๊ณ์ธต ๋ชจ๋ธ๋ก ๋์ฒด๋์
miyeonlee.tistory.com
TCP (Transmission Control Protocol)
์ ์ก ์ ์ด ํ๋กํ ์ฝ๋ก ์ฐ๊ฒฐํ, ์ ๋ขฐ์ฑ์ ํน์ง์ ๊ฐ๋๋ค.
TCP๋ก ์ ์กํ๋ ํจํท์ segment๋ผ๊ณ ํ๋ค.
1. ์ฐ๊ฒฐํ
์ฐ๊ฒฐ์งํฅ์ ์๋น์ค ์ ๊ณต์ ์ํด TCP์ ํต์ ์ Connection Setup → Data Transfer → Connection Termination ์ด๋ ๊ฒ 3 ๋จ๊ณ๋ก ๋๋๋ค.
1) Connection Setup (TCP ์ฐ๊ฒฐ ์ด๊ธฐํ)
๋ฐ์ดํฐ ์ ์ก ์ ๋ ํธ์คํธ์ ์ ์ก ๊ณ์ธต ์ฌ์ด์ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ์ ์ค๋ฆฝํ๋ค. (๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ด ์๋ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ง ์ฐ๊ฒฐ๋ ๊ฐ์ ์ฐ๊ฒฐ์ด๋ค)
์ด ๊ณผ์ ์ 3 way handshaking์ด๋ผ๊ณ ํ๋ค.
- SYN : ์ ์ ์์ฒญ
- ACK : ์์ฒญ ์๋ฝ
- 3 ๋จ๊ณ์์ ACK๊ณผ ํจ๊ป ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํ๋ค.
2) Data Transfer (๋ฐ์ดํฐ ์ ์ก)
3) Connection Termination (TCP ์ฐ๊ฒฐ ์ข ๋ฃ)
3 way handshaking์ผ๋ก TCP ์ฐ๊ฒฐ์ ์ด๊ธฐํํ๋ค๋ฉด TCP ์ฐ๊ฒฐ์ ์ข ๋ฃ๋ 4 way hand shaking์ ํตํด ์ด๋ฃจ์ด์ง๋ค. ๊ทธ ์ด์ ๋ ์๋ฐฉํฅ์ผ๋ก 2๊ฐ์ ์ฐ๊ฒฐ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋ซํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค์์ close๋ฅผ ํ๋ฉด ์๋ฒ๋ก FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ๋ค.
- ์๋ฒ๋ FIN์ ๋ํ ์๋ต์ผ๋ก ACK์ ๋ณด๋ธ๋ค. ์ด๋ ์๋ฒ๋ด ํ๋ก์ธ์ค์๊ฒ EOF๋ฅผ ๋ณด๋ด์ง๋ง, ์์ง close ๋์ง ์์ ์ ์๋ค.
- ์๋ฒ ํ๋ก์ธ์ค๋ก๋ถํฐ close๋ฅผ ๋ฐ์ผ๋ฉด ํด๋ผ์ด์ธํธ๋ก FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ๋ค.
- ํด๋ผ์ด์ธํธ๋ FIN์ ๋ํ ์๋ต์ผ๋ก ACK์ ๋ณด๋ด๊ณ ์๋ฒ๊ฐ ACK์ ๋ฐ์ผ๋ฉด TCP ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ค.
2. ์ ๋ขฐ์ฑ - ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ, ์์ ๋ณด์ฅ
์ ๋ขฐ์ฑ์๋ ์๋น์ค ์ ๊ณต์ ์ํด TCP๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ๊ณผ ์์๋ฅผ ๋ณด์ฅํ๋ค.
์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ฅ์ ์ด, ํ๋ฆ์ ์ด, ํผ์ก์ ์ด ๋ฑ์ด ์๋ค. ์ด๋ TCP ํค๋์ checksum, ํ์ธ ์๋ต, ํ์-์์ ๋ฑ์ ํตํด ์ํ๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ์ผ๋ก ์ธํด TCP ํ๋กํ ์ฝ์ ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ์ด๋ผ ๋ถ๋ฆฌ๊ณ , ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ TCP๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด header๊ฐ ๋ ํฌ๊ณ ์๋๊ฐ ๋น๊ต์ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์๋ค.
UDP (User Datagram Protocol)
์ฌ์ฉ์ ๋ฐ์ดํฐ ํ๋กํ ์ฝ๋ก ๋น์ฐ๊ฒฐํ, ๋น์ ๋ขฐ์ฑ์ ํน์ง์ ๊ฐ๋๋ค.
๋ฐ์ดํฐ ์ ์ก๊ณผ ์์๋ฅผ ๋ณด์ฅํ์ง ์์ ๋จ์ํ๊ณ , ๋น ๋ฅธ ํ๋กํ ์ฝ์ด๋ค.
๊ทธ๋์ ํ์ ๊ณ์ธต์ IP ํ๋กํ ์ฝ๊ณผ ๊ฑฐ์ ์ ์ฌํ๊ณ , PORT ๋ฒํธ์ checksum ์ ๋๋ง ์ถ๊ฐ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. (์ ํ๋ฆฌ์ผ์ด์ ์์ ์ถ๊ฐ ์์ ์ด ํ์ํ๋ค)
์ด๋ฌํ ๋จ์์ฑ์ผ๋ก ์ ์ ์์ ์ค๋ฒํค๋๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ์์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๊ฑฐ๋ ์ ๋ขฐ์ฑ์ ํฌ๊ฒ ๊ณ ๋ คํ์ง ์์๋ ๋๋ ์ค์๊ฐ์ฑ์ด ๋ ์ค์ํ ์ํฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ์ต๊ทผ์๋ HTTP/3.0 ๋ฒ์ ์ด UDP ๊ธฐ๋ฐ์ผ๋ก ์ถ์๋๋ฉด์ UDP์ ์ฌ์ฉ์ด ๋๊ณ ์๋ค๊ณ ํ๋ค.(HTTP/1.1๊ณผ 2.0๋ฒ์ ์ TCP ๊ธฐ๋ฐ์ด๋ค)
UDP๋ก ์ ์กํ๋ ํจํท์ datagram์ด๋ผ๊ณ ํ๋ค.
โ๏ธ TCP๋ ์ ๋ขฐ์ฑ์ด ์ค์ํ ํต์ (HTTP, File ์ ์ก ๋ฑ)์ ์ฐ์ด๊ณ , UDP๋ ์ค์๊ฐ์ฑ์ด ์ค์ํ ํต์ (๋์์ ์คํธ๋ฆฌ๋ฐ ๋ฑ)๊ณผ ์ต์ ํ๋ฅผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
๐ ์ฐธ๊ณ
๊ธฐ์ถ๋ก ๋๋นํ๋ ๊ฐ๋ฐ์ ์ ๊ณต๋ฉด์ [CS ์์ ์ ๋ณต] ๊ฐ์ - ์ธํ๋ฐ
CS ์ ๊ณต๋ฉด์ ๊ธฐ์ถ ๋ถ์ [์ด์์ฒด์ /์๋ฃ๊ตฌ์กฐ/์๊ณ ๋ฆฌ์ฆ/๋ฐ์ดํฐ๋ฒ ์ด์ค/๋คํธ์ํฌ]!, ๋ฑ ํ์ํ ํต์ฌ๋ง ์ถ๋ ธ๋ค! ๐CS ์ ๊ณต๋ฉด์ , ์ด์ ์์ ์๊ฒ ์ค๋นํ์ธ์. ์๊ฐ์ ํฉ๊ฒฉ์๊ธฐ ๐ [์ฌ์ง] [์ฌ์ง] [์ฌ์ง
www.inflearn.com
๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์ ๊ฐ์ - ์ธํ๋ฐ
์ค๋ฌด์ ๊ผญ ํ์ํ HTTP ํต์ฌ ๊ธฐ๋ฅ๊ณผ ์ฌ๋ฐ๋ฅธ HTTP API ์ค๊ณ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค., [์ฌ์ง] ๐ฃ ํ์ธํด์ฃผ์ธ์!๋ณธ ๊ฐ์๋ ์๋ฐ ์คํ๋ง ์์ ์ ๋ณต ์๋ฆฌ์ฆ์ ์ธ ๋ฒ์งธ ๊ฐ์์ ๋๋ค. ์ฐ์ํํ์ ๋ค ์ต์ฐ์ ๊ธฐ์
www.inflearn.com