TCP / UDP

TCP (Transmission Control Protocol)

๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ์ง€ํ–ฅ (Connection-oriented) ์œผ๋กœ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์ „ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋†’์€ ์‹ ๋ขฐ์„ฑ (Reliability) ๊ณผ ์ˆœ์„œ (In-order delivery) ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

    • ํ๋ฆ„ ์ œ์–ด(Flow control) ๋ฅผ ํ†ตํ•ด ์†ก์‹ ์ž์˜ ๋ฐ์ดํ„ฐ ์–‘์„ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.

    • ํ˜ผ์žก ์ œ์–ด(Congestion control) ๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ์„ ๊ฐ์ง€ํ•˜๊ณ  ์†ก์‹ ์ž์˜ ๋ฐ์ดํ„ฐ ์–‘์„ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.

    • ์—๋Ÿฌ ๊ฐ์ง€(Error detection) ๋ฅผ ํ†ตํ•ด ์ž˜๋ชป ์ „์†ก๋˜์—ˆ์„ ๊ฒฝ์šฐ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  • ์ „ ์ด์ค‘(Full duplex) ๋ฐฉ์‹ ์œผ๋กœ ๋‘ ํ˜ธ์ŠคํŠธ ๋ชจ๋‘ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ(Byte stream) ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์ธ ๋ฐ”์ดํŠธ๋กœ ๊ฐ„์ฃผํ•˜๊ณ , ์„ธ๊ทธ๋จผํŠธ(Segment) ๋ผ๋Š” ๋‹จ์œ„์˜ ํŒจํ‚ท์œผ๋กœ ์ชผ๊ฐœ์„œ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

  • HTTP, FTP, SMTP, TELNET ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

UDP (User Datagram Protocol)

TCP์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

  • ๋น„์—ฐ๊ฒฐํ˜• (Connection-less) ์œผ๋กœ ์—ฐ๊ฒฐ ์„ค์ •, ํ•ด์ œ ๊ณผ์ •์ด ์—†์Šต๋‹ˆ๋‹ค.

  • ์‹ ๋ขฐ์„ฑ์ด ์—†๊ณ  ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • ํ๋ฆ„ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

    • ์—๋Ÿฌ ๊ฐ์ง€๋Š” ํ—ค๋”์˜ ์ฒดํฌ์„ฌ (Checksum) ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

  • ํŒจํ‚ท์˜ ๋‹จ์œ„๊ฐ€ ๋ฐ์ดํ„ฐ๊ทธ๋žจ (Datagram) ์œผ๋กœ ๊ฒฝ๊ณ„๊ฐ€ ๋ถ„๋ช…ํ•˜์—ฌ ์ˆ˜์‹ ์ž๋Š” ์†ก์‹ ์ž๊ฐ€ ๋ณด๋‚ธ ๊ทธ๋Œ€๋กœ์˜ ํฌ๊ธฐ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ์œ ๋‹ˆ์บ์ŠคํŠธ (1:1), ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ (1:N), ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ (1:M)๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (N์€ ์ „์ฒด, M์€ ์ผ๋ถ€)

  • TCP์— ๋น„ํ•ด์„œ ํ•˜๋Š” ์ž‘์—…๋“ค์ด ๊ต‰์žฅํžˆ ์ ๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ํก๋‹ˆ๋‹ค.

  • DNS, DHCP, ๋น„๋””์˜ค/์˜ค๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

3 Way-Handshake & 4 Way-Handshake

3 Way-Handshake

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์ ‘์†์„ ์š”์ฒญํ•˜๋Š” SYN ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” SYN ์„ ๋ณด๋‚ด๊ณ  SYN/ACK ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” SYN_SENT ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  2. ์„œ๋ฒ„๋Š” SYN ์š”์ฒญ์„ ๋ฐ›๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” ACK ์™€ SYN ์„ ๋ฐœ์†กํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ ACK ์œผ๋กœ ์‘๋‹ตํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ์ด๋•Œ ์„œ๋ฒ„๋Š” SYN_RECEIVED ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ACK ์„ ๋ณด๋‚ด๊ณ  ์ดํ›„๋กœ๋ถ€ํ„ฐ๋Š” ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ์˜ ์ƒํƒœ๊ฐ€ ESTABLISHED ์ž…๋‹ˆ๋‹ค.

4 Way-Handshake

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ฒ ๋‹ค๋Š” FIN ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  2. ์„œ๋ฒ„๋Š” ์ผ๋‹จ ํ™•์ธํ–ˆ๋‹ค๋Š” ACK ์„ ๋ณด๋‚ด๊ณ , ์ž์‹ ์˜ ํ†ต์‹ ์ด ๋๋‚ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š”๋ฐ ์ด ์ƒํƒœ๊ฐ€ TIME_WAIT ์ž…๋‹ˆ๋‹ค.

  3. ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ์ด ๋๋‚ฌ์œผ๋ฉด ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ FIN ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  4. ํด๋ผ์ด์–ธํŠธ๋Š” ํ™•์ธํ–ˆ๋‹ค๋Š” ACK ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

Last updated