software engineering/์ปดํ“จํ„ฐ๋„คํŠธ์›Œํฌ

[Network] TCP์˜ ๊ธฐ๋ณธ ๋™์ž‘

jjingle 2023. 11. 9. 11:49

3๋‹จ๊ณ„ ํ•ธ๋“œ์…ฐ์ดํฌ(3-way handshake)

  •  ์ „์ด์ค‘(Full-duplex) ํ†ต์‹  ์ฑ„๋„์„ ์„ค์ •
  • ๋Šฅ๋™๊ฐœ๋ฐฉ = ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์€ ์„œ๋ฒ„๋กœ์˜ TCP์—ฐ๊ฒฐ(SYN)์„ ์š”์ฒญ
  • ์ˆ˜๋™๊ฐœ๋ฐฉ = ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ TCP์—๊ฒŒ ์—ฐ๊ฒฐ ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ ์•Œ๋ฆผ
            -> ํƒ€์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ ์š”์ฒญ(SYN)์„ ์ˆ˜์‹ ํ•˜๋ฉด์„œ ์‹œ์ž‘๋จ
  • ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ ํ™•์ธ์‘๋‹ต์„ ๋™์‹œ์— ์ „์†ก -> ํ”ผ๊ธฐ๋ฐฑ(Piggyback)
  • ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” TCPํ—ค๋” ์ƒ์˜ ์ œ์–ด ํ•„๋“œ
    • ํ‘ธ์‹œ(Push)ํ”Œ๋ž˜๊ทธ : TCP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„ํผ์—์„œ ๋Œ€๊ธฐ์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ „์†กํ•˜๊ณ , ์ˆ˜์‹  TCP์—์„œ๋„ ๋ฐ”๋กœ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ „๋‹ฌํ•˜๋„๋ก ์š”์ฒญ
    • ๊ธด๊ธ‰(Urgent)ํ”Œ๋ž˜๊ทธ & ๊ธด๊ธ‰ ํฌ์ธํ„ฐ : ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ํŠน๋ณ„ํžˆ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ „๋‹ฌํ•˜๋Š” ์šฉ๋„๋กœ ์ •์˜
  • ํด๋ผ์ด์–ธํŠธ ํ˜น์€ ์„œ๋ฒ„์˜ ์–ด๋Š์ชฝ๋„ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Œ
  • 3๋‹จ๊ณ„ ํ•ธ๋“œ์…ฐ์ดํฌ ํ˜น์€ ์ ˆ๋ฐ˜๋‹ซ๊ธฐ(half-close)๋ฅผ ์ด์šฉํ•œ 4๋‹จ๊ณ„ ํ•ธ๋“œ์…ฐ์ดํฌ์˜ 2๊ฐ€์ง€ ์˜ต์…˜์ด ์‚ฌ์šฉ

 

* 3๋‹จ๊ณ„ ํ•ธ๋“œ์…ฐ์ดํฌ ์ ˆ์ฐจ

  1. ํด๋ผ์ด์–ธํŠธ TCP๊ฐ€ SYN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ๋ฒ„ TCP๋กœ ์ „์†ก
  2. ์„œ๋ฒ„ TCP๋Š” (SYN+ACK)์„ธ๊ทธ๋จผํŠธ๋ฅผ ํด๋ผ์ด์–ธํŠธ TCP๋กœ ์ „์†ก
  3. ํด๋ผ์ด์–ธํŠธ TCP๋Š” ACK์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ๋ฒ„ TCP๋กœ ์ „์†ก

 

* TCP ์—ฐ๊ฒฐ ํ•ด์ œ

  • ์ ˆ๋ฐ˜-๋‹ซ๊ธฐ(Half-close)
    • ํ•œ์ชฝ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ๋งŒ TCP ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ณ , ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ํ•„์š”ํ•œ๋งŒํผ TCPํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
    • TCPํ†ต์‹ ์ด ์™„๋ฃŒ๋œ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ๋Š” ์—ฐ๊ฒฐ์„ ํ•ด์ œ : ์ ˆ๋ฐ˜ ๋‹ซ๊ธฐ
    • ์–‘์ชฝ ๋ฐฉํ–ฅ์˜ ์—ฐ๊ฒฐ ํ•ด์ œ ์‹œ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ์—ฐ๊ฒฐ์ด ํ•ด์ œ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 4๋‹จ๊ณ„ ํ•ธ๋“œ์‰์ดํ‚น ํ•„์š”
  • ๋ฆฌ์…‹ ํ”Œ๋ž˜๊ทธ(Reset Flag) : ์ œ์–ด ํ•„๋“œ์˜ ๋ฆฌ์…‹ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ ๊ฑฐ์ ˆ(SYN์„ธ๊ทธ๋จผํŠธ)์— ๋Œ€ํ•ด ๊ฑฐ์ ˆํ•˜๊ฑฐ๋‚˜, ํ˜น์€ ์—ฐ๊ฒฐ์„ ๋น„์ •์ƒ ์ข…๋ฃŒํ•จ