TCP(Transmission Control Protocol, ์ ์ก์ ์ด ํ๋กํ ์ฝ)
- ์ข
๋จ๊ฐ์
์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํธ ์คํธ๋ฆผ์ ์ ์กํ๋๋ก ์ค๊ณ๋์๋ค. - TCP ์๋น์ค๋ ์ก์ ์์ ์์ ์๊ฐ
์์ผ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ์ข ๋จ์ ์ ์์ฑํจ์ผ๋ก์จ ์ด๋ฃจ์ด์ง๋ค. ์ ์ด์ค(full-duplex): ์ ์ก์ด ์๋ฐฉํฅ์ผ๋ก ๋์์ ์ผ์ด๋ ์ ์๋ค.์ ๋์ (point to point): ๊ฐ ์ฐ๊ฒฐ์ด ์ ํํ 2๊ฐ์ ์ข ๋จ์ ์ ๊ฐ์ง๋ค.- ๋ฉํฐ์บ์คํ (๋ถํน์ ํ ๋ชจ๋์๊ฒ ์ ์ก)๊ณผ ๋ธ๋ก๋์บ์คํ (ํน์ ํ ๋ค์์๊ฒ ์ ์ก)์ ์ง์ํ์ง ์๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ ์์ ์์ฒญํ๋ SYN ํจํท์ ๋ณด๋ธ๋ค.
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ธ SYN์ ๋ฐ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ์๋ฝํ๋ค๋ ACK์ SYN์ ํจํท์ ๋ณด๋ธ๋ค.
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์๋ฝ ์๋ต์ธ ACK์ SYN ํจํท์ ๋ฐ๊ณ ACK๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๋ฉด ์ฐ๊ฒฐ์ด ์ฑ๋ฆฝ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ฒ ๋ค๋ FIN ํ๋๊ทธ(TCP Header์ Flag Bit)๋ฅผ ์ ์กํ๋ค.
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ํ์ธ ๋ฉ์ธ์ง๋ก ACK๋ฅผ ๋ณด๋ด๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณด๋ธ๋ค.
- ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณด๋ด๊ณ ํต์ ์ด ๋๋ฌ๋ค๋ฉด ํด๋ผ์ด์ธํธ์๊ฒ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๋ค.
- ํด๋ผ์ด์ธํธ๋ FIN์ ํ์ธํ๋ค๋ ACK๋ฅผ ๋ณด๋ธ๋ค.
- ํด๋ผ์ด์ธํธ์ ACK ๋ฉ์ธ์ง๋ฅผ ๋ฐ์ ์๋ฒ๋ ์์ผ ์ฐ๊ฒฐ์ closeํ๋ค.
- ํด๋ผ์ด์ธํธ๋ ์์ง ์๋ฒ๋ก๋ถํฐ ๋ฐ์ง ๋ชปํ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒ์ ๋๋นํด ์ผ์ ์๊ฐ๋์ ์ธ์
์ ๋จ๊ฒจ๋๊ณ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆฐ๋ค. (
TIME_WAIT)
UDP(User Datagram Protocol, ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ)
๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ด๋ค.- IP ๋ฐ์ดํฐ๊ทธ๋จ์ ์บก์ํํ์ฌ ๋ณด๋ด๋ ๋ฐฉ๋ฒ / ์ฐ๊ฒฐ ์ค์ ์ ํ์ง ์๊ณ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์๊ธฐ ๋๋ฌธ์ํ๋ฆ์ ์ด, ์ค๋ฅ์ ์ด, ์ฌ์ ์ก์ ํ์ง ์๋๋ค.- ํฌํธ๋ค์ ์ฌ์ฉํ์ฌ IP ํ๋กํ ์ฝ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
- ์ฝ๋๊ฐ ๊ฐ๋จํ๊ณ ์ด๊ธฐ ์ค์ ์ ์ํ ๋ฉ์ธ์ง๊ฐ ์ ๋ค.
- ํต์ ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ฑฐ๋ ํต์ ํ ์ฐ๊ฒฐ์ ํด์ ํ๋ ๊ณผ์ ์ด ํ์ํ์ง ์๋ค.
- DNS ์๋ฒ์ ํธ์คํธ ๋ค์์ ์ ์กํ๊ณ , ์๋ฒ์๊ฒ IP ์ฃผ์๋ฅผ ์ ๋ฌ๋ฐ๋ ๊ณผ์ ์์ UDP ํจํท์ ์ฌ์ฉํ๋ค.
https://github.com/JaeYeopHan/Interview_Question_for_Beginner https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake