๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ Computer Science/Network

[Network] TCP๋Š” ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ• ๊นŒ? (3-Way-Handshake & 4-Way-Handshake)

by Fomagran ๐Ÿ’ป 2022. 4. 8.
728x90
๋ฐ˜์‘ํ˜•

TCP

 

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

 

๊ทธ๋ ‡๋‹ค๋ฉด TCP๋Š” ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•œ ๊ฒƒ์ผ๊นŒ?

 

์šฐ์„  TCP๋Š” ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1๋Œ€ 1๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

 

์ฆ‰, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค.


3-Way-Handshake

 

์ด ๋•Œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌ๋˜๋ ค๋ฉด ์—ฐ๊ฒฐ์ด ํ™•์‹คํ•˜๊ฒŒ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.

 

๊ทธ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ "3-Way-Handshake" ์ด๋‹ค.

 

์ด๋ฆ„์ด 3 way handshake์ธ ์ด์œ ๋Š” 3๋ฒˆ ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

1. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋จผ์ € ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŠน์ • ์ˆซ์ž๊ฐ€ ๋‹ด๊ธด ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

2. ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ

 

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ณด๋‚ธ ํŒจํ‚ท์„ ๋ฐ›๊ณ  ์ „๋‹ฌ ๋ฐ›์•˜๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

 

3. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„

 

๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ํŒจํ‚ท์„ ๋ฐ›์•˜๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋“ฃ๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

์ถœ์ฒ˜: https://www.techopedia.com/definition/10339/three-way-handshake

 

์•„๋ž˜ ๋ธ”๋กœ๊ทธ์—์„œ ์•„์ฃผ ๋น„์œ ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ํ•ด๋†“์•˜๋Š”๋ฐ "์ „ํ™”"๋กœ ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค.

 

 

[์ •๋ฆฌ] 3 Way-Handshake

3 Way-Handshake ๋ž€, ์ „์†ก์ œ์–ด ํ”„๋กœํ† ์ฝœ(TCP)์—์„œ ํ†ต์‹ ์„ ํ•˜๋Š” ์žฅ์น˜๊ฐ„ ์„œ๋กœ ์—ฐ๊ฒฐ์ด ์ž˜ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •/๋ฐฉ์‹์ด๋‹ค. ๋” ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์†ก์ˆ˜์‹ ์ž(๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” 2์‚ฌ๋žŒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์šธ

hyemsinabro.tistory.com

 

1. ๋“ค๋ ค?

 

2. ์‘ ๋“ค๋ ค! ๋„Œ ์–ด๋•Œ?

 

3. ๋‚˜๋„ ๋“ค๋ ค! ์ด์ œ ๋งํ• ๊ฒŒ

 

๊ฐ€ ๋ฐ”๋กœ 3-Way-Handshake๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


SYN๊ณผ ACK

 

SYN

 

์œ„ 3-Way-Handshake์—์„œ ํŠน์ • ์ˆซ์ž๋ฅผ ๋ณด๋‚ธ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ๋‹ค.

 

๋ฐ”๋กœ ์ด ํŠน์ • ์ˆซ์ž๊ฐ€ SYN(SYnchronize sequence Number)์ด๋‹ค.

 

SYN์€ ์ž„์˜์˜ ๋žœ๋ค ์ˆซ์ž๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์ธก์— ์—ฐ๊ฒฐ ํ™•์ธ์„ ์œ„ํ•˜์—ฌ ๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

ACK

 

ACK ๋˜ํ•œ ํŠน์ • ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, ์ด๋Š” SYN์ด ๋ณด๋‚ธ ์ˆซ์ž์— +1์„ ํ•œ ์ˆซ์ž์ด๋‹ค.

 

ACK(ACKnowledgements)๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ฐ›์•˜๋‹ค๋ผ๊ณ  ํ™•์ธ ์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.


Statement

 

3-Way-Handshake๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ณผ์ •์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ค€๋น„ํ•˜๋Š” ์ƒํƒœ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์€ ์ƒํƒœ ๋“ฑ ์—ฌ๋Ÿฌ ์ƒํƒœ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

 

1. CLOSED

 

๋ง ๊ทธ๋Œ€๋กœ ๋‹ซํžŒ ์ƒํƒœ์ธ๋ฐ, ์ด๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์ „ ์—ฐ๊ฒฐ์ด ์•ˆ๋œ ๊ธฐ๋ณธ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

2. SYN-SENT

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ SYN์„ ๋ณด๋ƒˆ๋‹ค๋Š” ์ƒํƒœ๋กœ, ์ด ๋ง์€ ๋‹ค๋ฅธ ๋ง๋กœ ์„œ๋ฒ„์ธก์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

3. LISTEN

 

CLOSED ์ƒํƒœ์— ์žˆ๋˜ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์–ด ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

4. SYN-RECEIVED

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ณด๋‚ธ SYN์„ ์„œ๋ฒ„ ์ธก์—์„œ ์ž˜ ๋ฐ›์•˜๋‹ค๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

5. ESTABLISHED

 

์—ฐ๊ฒฐ์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋˜์—ˆ๋‹ค๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„  ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ํ•ด๋‹น ์ƒํƒœ๊ฐ€ ๋˜๊ณ , ์„œ๋ฒ„ ์ธก์—์„  ์‘๋‹ต์„ ๋ณด๋‚ด๊ณ  ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด ํ•ด๋‹น ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.


4-Way-Handshake

 

์œ„์—์„œ 3-Way-Handshake๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ „์†ก์ด ๋๋‚˜๊ณ  ์ด์ œ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•ด์•ผ ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

 

๋ฐ”๋กœ "4-Way-Handshake"๋ฅผ ํ†ตํ•ด ์–‘ ์ธก์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•œ๋‹ค.

 

4-Way-Handshake๋Š” ๋ง ๊ทธ๋Œ€๋กœ 3-Way-Handshake ๋ณด๋‹ค ์‹ ํ˜ธ๋ฅผ ํ•œ๋ฒˆ ๋” ์ฃผ๊ณ  ๋ฐ›์•„ ์ด 4๋ฒˆ์˜ ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

 

1. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ฒ ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

2. ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ

 

์„œ๋ฒ„ ์ธก์—์„  ํ™•์ธํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์ง€๋งŒ, ์ž์‹ ์˜ ์ „์†ก์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•œ๋‹ค.

 

3. ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ

 

์„œ๋ฒ„ ์ธก์—์„œ ์™„์ „ํžˆ ํ†ต์‹ ์ด ๋๋‚œ ๋’ค ํด๋ผ์ด์–ธํŠธ ์ธก์— ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ฒ ๋‹ค๊ณ  ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

4. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„

 

์„œ๋ฒ„ ์ธก์—์„œ ๋ณด๋‚ธ ์—ฐ๊ฒฐ ํ•ด์ œ ์‹ ํ˜ธ๋ฅผ ๋ฐ›๊ณ  ํ™•์ธํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

 

์ด๊ฒƒ๋„ 3-Way-Handshake์™€ ๊ฐ™์ด "์ „ํ™”"๋กœ ์‰ฝ๊ฒŒ ๋น„์œ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

1. ๋‚˜ ์ด์ œ ์ „ํ™” ๋Š๊ณ ์‹ถ์–ด

 

2. ์‘, ๋‚˜ ์ด๊ฑฐ ๊นŒ์ง€๋งŒ ๋งํ•˜๊ณ  ๋Š์„๊ฒŒ

 

3. ์ด์ œ ๋‹ค ๋งํ–ˆ์–ด ๋Š์ž!

 

4. ์‘, ๊ทธ๋ž˜~

 

๊ฐ€ 4-Way-Handshake๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


FIN๊ณผ ACK

 

FIN

 

4-Way-Handshake์—์„œ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ฒ ๋‹ค๊ณ  ๋จผ์ € ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

์ด ์‹ ํ˜ธ๊ฐ€ ๋ฐ”๋กœ "FIN(FINish)" ์ด๋‹ค.

 

FIN message ํ˜น์€ FIN flag๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ฒ ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

ACK

 

3-Way-Handshake์™€ ๊ฐ™์ด ์š”์ฒญ์— ์‘๋‹ตํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.


Statement

 

3-Way-Handshake์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 4-Way-Handshake๋„ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๊ณผ์ •์—์„œ ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค ํ†ต๋ณดํ•˜๋Š” ์ƒํƒœ, ์—ฐ๊ฒฐ ํ•ด์ œ๋ฅผ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ ๋“ฑ ์—ฌ๋Ÿฌ ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค.

 

1. FIN-WAIT

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ฒ ๋‹ค๊ณ  ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

2. CLOSE-WAIT

 

์„œ๋ฒ„ ์ธก์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ฒ ๋‹ค ์‹ ํ˜ธ๋ฅผ ๋ฐ›์€ ์ƒํƒœ์ด๋ฉฐ, ์•„์ง ์ „์†ก์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ๋Š” ์ „์†ก์ด ๋๋‚˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์„ ์˜ˆ๋ฐฉํ•ด์ค€๋‹ค.

 

3. LAST-ACK

 

์„œ๋ฒ„ ์ธก์—์„œ ์ „์†ก์ด ๋๋‚˜๊ณ  ํด๋ผ์ด์–ธํŠธ ์ธก์œผ๋กœ ์ „์†ก์ด ์™„์ „ํžˆ ๋๋‚ฌ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ ์ƒํƒœ์ด๋‹ค.

 

4. TIME-WAIT

 

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ์ „์†ก์ด ๋๋‚ฌ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ฐ›์€ ์ƒํƒœ์ด๋ฉฐ, ์™„์ „ํžˆ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•  ์ค€๋น„ํ•˜๋Š” ์ƒํƒœ์ด๋‹ค.

 

CLOSE-WAIT๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ „์†ก์ด ๋๋‚˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์„ ์˜ˆ๋ฐฉํ•ด์ค€๋‹ค.

 

5. CLOSED

 

์—ฐ๊ฒฐ์ด ํ•ด์ œ๋œ ์ƒํƒœ๋กœ ํด๋ผ์ด์–ธํŠธ ์ธก๊ณผ ์„œ๋ฒ„ ์ธก์˜ ๊ธฐ๋ณธ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€