๐Ÿ’กTCP 3-way-handshake๋ฅผ ํ•™์Šตํ•ด ๋ณด์ž

-ยท2022๋…„ 1์›” 16์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
7/12
post-thumbnail

TCP 3-way-handshake

TCP 3-way-handshake ๋ž€?


  • TCP๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ์ 
  • ์˜ค๋ฅ˜์ œ์–ด, ํ๋ฆ„์ œ์–ด, ํ˜ผ์žก์ œ์–ด, ํƒ€์ด๋จธ ์žฌ์ „์†ก ๋“ฑ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก ์‚ฌ์ด์— ์ „์šฉ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ์†ก๋กœ(Session) ์„ ๋งŒ๋“ ๋‹ค
  • TCP์™€ IP๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, IP๊ฐ€ ๋ฐ์ดํ„ฐ์˜ ๋ฐฐ๋‹ฌ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด TCP๋Š” ํŒจํ‚ท์„ ์ถ”์  ๋ฐ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(TCP)์—์„œ ํ†ต์‹ ์„ ํ•˜๋Š” ์žฅ์น˜๊ฐ„ ์„œ๋กœ ์—ฐ๊ฒฐ์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •

์šฉ์–ด ์ •๋ฆฌ

  • SYN: Synchronized sequence number

    • Sequence Number๋ฅผ ๋žœ๋ค์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ดˆ๊ธฐ์— Sequence Number๋ฅผ ์ „์†ก
  • ACK: Acknowledgement

    • Sequence Number๋ฅผ ๋žœ๋ค์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ดˆ๊ธฐ์— Sequence Number๋ฅผ ์ „์†ก
  • CLOSED: ํฌํŠธ๊ฐ€ ๋‹ซํžŒ ์ƒํƒœ

  • LISTEN: ํฌํŠธ๊ฐ€ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์—ฐ๊ฒฐ ์š”์ฒญ ๋Œ€๊ธฐ ์ค‘

  • SYN_RCV: SYNC ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ƒ๋Œ€๋ฐฉ์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘

  • ESTABLISHED: ํฌํŠธ ์—ฐ๊ฒฐ ์ƒํƒœ

TCP 3-way-handshake ๋™์ž‘ ๊ณผ์ •

A -> B: SYN

  • ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค A๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์ „์†ก SYN(10)
  • ์†ก์‹ ์ž๊ฐ€ ์ตœ์ดˆ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ Sequence Number๋ฅผ ์ž„์˜์˜ ๋žœ๋ค ์ˆซ์ž๋กœ ์ง€์ •ํ•˜๊ณ , SYN ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • PORT ์ƒํƒœ - B: LISTEN, A: CLOSED

B -> A: SYN + ACK

  • ์ ‘์† ์š”์ฒญ์„ ๋ฐ›์€ ํ”„๋กœ์„ธ์Šค B๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ–ˆ์œผ๋ฉฐ, ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค์ธ A๋„ ํฌํŠธ๋ฅผ ์—ด์–ด ๋‹ฌ๋ผ๋Š” ๋ฉ”์‹œ์ง€ ์ „์†ก (SYN + ACK)
  • ์„œ๋ฒ„๋Š” Acknowledgement Number ํ•„๋“œ๋ฅผ (10+1)๋กœ ์ง€์ •ํ•˜๊ณ , SYN๊ณผ ACK ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • PORT ์ƒํƒœ - B: SYN_RCV, A: CLOSED

A -> B: ACK

  • PORT ์ƒํƒœ - B: SYN_RCV, A: ESTABLISHED
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค A๊ฐ€ ์ˆ˜๋ฝ ํ™•์ธ์„ ๋ณด๋‚ด ์—ฐ๊ฒฐ์„ ๋งบ์Œ (ACK)
    ์ด๋•Œ, ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์ด ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • PORT ์ƒํƒœ - B: ESTABLISHED, A: ESTAB

Reference

profile
-์˜ Velog

0๊ฐœ์˜ ๋Œ“๊ธ€