๊ด€๋ฆฌ ๋ฉ”๋‰ด

Unfazedโ—๏ธ๐ŸŽฏ

TCP ํ”„๋กœํ† ์ฝœ - TCP์˜ ๋™์ž‘ ์›๋ฆฌ ๋ณธ๋ฌธ

Network (๋„คํŠธ์›Œํฌ)/Mobile Network (๋ชจ๋ฐ”์ผ๋„คํŠธ์›Œํฌ)

TCP ํ”„๋กœํ† ์ฝœ - TCP์˜ ๋™์ž‘ ์›๋ฆฌ

9taetae9 2024. 12. 9. 11:37
728x90

TCP ํ”„๋กœํ† ์ฝœ์€ ์ „์ด์ค‘(full-duplex) ๋ฐฉ์‹์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๊ฐ€์ƒ ํšŒ์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์†ก ๋ฐ์ดํ„ฐ์™€ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ „์†กํ•˜๋Š” ํ”ผ๊ธฐ๋ฐฐํ‚น(Piggybacking) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” TCP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ ์„ค์ •, ๋ฐ์ดํ„ฐ ์ „์†ก, ์—ฐ๊ฒฐ ํ•ด์ œ๋ผ๋Š” 3๋‹จ๊ณ„๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

 

์—ฐ๊ฒฐ ์„ค์ •

TPC ์—ฐ๊ฒฐ ์„ค์ •

TCP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰ํ•˜๋Š” ์—ฐ๊ฒฐ ์„ค์ •์€ ์œ„์™€ ๊ฐ™์€ 3๋‹จ๊ณ„ ์„ค์ •(Three-Way Handshake) ๋ฐฉ์‹์ด๋‹ค.

A ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฐ๊ฒฐ ์„ค์ •์„ ์š”๊ตฌํ•˜๊ณ , B ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด๋ฅผ ์ˆ˜๋ฝํ•˜๋Š” ํ˜•์‹์ด๋‹ค.

๊ตฌ์ฒด์  ๋‹จ๊ณ„ :

1. A ํ”„๋กœ์„ธ์Šค๊ฐ€ TCP ํ—ค๋”์˜ SYN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†ก, ์ž„์˜์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ 10 (์—ฐ๊ฒฐ ์„ค์ • ์š”๊ตฌ)

2. ์—ฐ๊ฒฐ ์„ค์ • ์š”๊ตฌ๋ฅผ ๋ฐ›์€ B ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•˜๊ธฐ ์œ„ํ•ด SYN ํ”Œ๋ž˜๊ทธ์™€ ACK ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ด ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ธ์ • ์‘๋‹ต ํ‘œ์‹œ

   SYN ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋œ ์„ธ๊ทธ๋จผํŠธ์—๋Š” ์ „์†ก ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•„๋„ ์ˆœ์„œ ๋ฒˆํ˜ธ๋Š” 1 ์ฆ๊ฐ€, B ํ”„๋กœ์„ธ์Šค๋Š” ์ž„์˜์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ 50์„ ์ง€์ •

3. B ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ „์†กํ•œ ์—ฐ๊ฒฐ ์ˆ˜๋ฝ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ๋„์ฐฉํ–ˆ์Œ์„ ์•Œ๋ฆผ

    ์œ„์˜ ์ƒํ™ฉ์€ A ํ”„๋กœ์„ธ์Šค์— ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ , ์ „์†ก ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์„ธ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ์—์„œ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก

 

 

๋ฐ์ดํ„ฐ ์ „์†ก

TCP๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ •์—์„œ ํ๋ฆ„ ์ œ์–ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•จ

๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์‘๋‹ต ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”์˜ Window ํ•„๋“œ๋ฅผ ์ด์šฉํ•ด ์œˆ๋„์šฐ ํฌ๊ธฐ๋กœ ์†ก์‹  ํ”„๋กœ์„ธ์Šค์˜ ์ „์†ก ์†๋„๋ฅผ ์กฐ์ ˆํ•จ

 

์ •์ƒ์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก

TCP ๋ฐ์ดํ„ฐ ์ „์†ก

TCP์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์€ ์–‘์ชฝ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ „์ด์ค‘ ๋ฐฉ์‹์„ ์ง€์›ํ•œ๋‹ค.

์œ„๊ทธ๋ฆผ์€ ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ • ํ›„ ์ด์–ด์ง€๋Š” ์ „์†ก๊ณผ์ •์„ ํ‘œํ˜„ํ•œ๋‹ค.

A ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์ˆœ์„œ ๋ฒˆํ˜ธ 11๋ฒˆ๋ถ€ํ„ฐ 5๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ , B ํ”„๋กœ์„ธ์Šค๋Š” ์ˆœ์„œ ๋ฒˆํ˜ธ 51๋ฒˆ๋ถ€ํ„ฐ 10๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.

์ˆœ์„œ ๋ฒˆํ˜ธ์™€ ์‘๋‹ต ๋ฒˆํ˜ธ์˜ ์กฐํ•ฉ์€ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์— ๋”ฐ๋ผ ์ ์ ˆํžˆ ์กฐ์ •๋˜๊ณ  ์žˆ๋‹ค.

TCP์˜ ํ๋ฆ„ ์ œ์–ด๋Š” ํ”„๋กœํ† ์ฝœ ํ—ค๋”์˜ Window ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ, Window ํ•„๋“œ์— ์ง€์ •ํ•œ ๊ฐ’ ์ด์ƒ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์— ๋งž๋Š” ๊ฐ’์œผ๋กœ Window ํ•„๋“œ ๊ฐ’์„ ์ง€์ •ํ•ด ์†ก์‹  ํ”„๋กœ์„ธ์Šค์˜ ์ „์†ก ์†๋„๋ฅผ ์ œ์–ดํ•œ๋‹ค.

window ์‚ฌ์ด์ฆˆ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ด์ „ ์‘๋‹ต์ด ๋„์ฐฉํ–ˆ์„ ๋•Œ ์ด์–ด์„œ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ์ดํ„ฐ ์ „์†ก ์˜ค๋ฅ˜

์ˆœ์„œ ๋ฒˆํ˜ธ๋Š” ์ƒ์œ„ ๊ณ„์ธต์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ์˜ ๋ฐ”์ดํŠธ ์ˆ˜์— ๊ธฐ์ดˆํ•˜์—ฌ ๋ถ€์—ฌ๋˜๊ณ , ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋Š” ์ˆœ์„œ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ์ •๋ ฌํ•œ๋‹ค. ์ˆœ์„œ ๋ฒˆํ˜ธ๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ์ค‘๋ณต์œผ๋กœ ํŒ๋‹จํ•˜์—ฌ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„๋ฆฌ๊ณ , ์ค‘๊ฐ„์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๊ฐ€ ๋น ์ง„ ๊ฒฝ์šฐ๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์‹ค๋กœ ํŒ๋‹จ  

์ „์†ก ์˜ค๋ฅ˜

TCP๋Š” ๋ถ€์ • ์‘๋‹ต ๊ธฐ๋Šฅ์ธ NAK๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์— ๋„์ฐฉํ•œ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์˜ ๋‚ด์šฉ์ด ๋ณ€ํ˜•๋˜์–ด๋„ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‘๋‹ต์„ ํ•˜์ง€ ์•Š์•„ ๋ฐ์ดํ„ฐ ๋ถ„์‹ค๊ณผ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ณ€ํ˜•๊ณผ ๋ถ„์‹ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ํšŒ์‹ ์„ ๋ฐ›์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์†ก์‹  ํ”„๋กœ์„ธ์Šค์˜ ํƒ€์ž„์•„์›ƒ ๊ธฐ๋Šฅ์— ์˜ํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ณต๊ตฌ๋œ๋‹ค.

์—ฐ๊ฒฐ ํ•ด์ œ

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

์—ฐ๊ฒฐ ํ•ด์ œํ•˜๊ณ ์ž ํ•˜๋Š” ์ชฝ์—์„œ FIN ํ”„๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ด ์š”๊ตฌ

์—ฐ๊ฒฐ ํ•ด์ œ๋Š” ๋‘ ํ”„๋กœ์„ธ์Šค ๋™์˜ํ•˜์— ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ฒฐ ํ•ด์ œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ FIN ํ”Œ๋ž˜๊ทธ๋กœ ์‘๋‹ตํ•  ๋•Œ๊นŒ์ง€ ์—ฐ๊ฒฐ์€ ๊ณ„์† ์œ ์ง€

 

๊ทธ๋ฆผ์—์„œ FIN ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์ˆœ์„œ ๋ฒˆํ˜ธ๋ฅผ 1 ์ฆ๊ฐ€์‹œ์ผœ ์‘๋‹ต ๋ฒˆํ˜ธ๋ฅผ 17๋ฒˆ์œผ๋กœ ์ง€์ •ํ•œ ๊ธ์ •์‘๋‹ต ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํšŒ์‹ ํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์ด ์ „์†กํ•  61๋ฒˆ ์„ธ๊ทธ๋จผํŠธ ์ดํ›„์˜ ๋ฐ์ดํ„ฐ(5๋ฐ”์ดํŠธ)๋Š” ๊ณ„์† ์ „์†กํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค.

์ดํ›„ B ํ”„๋กœ์„ธ์Šค๋Š” FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด ์—ฐ๊ฒฐ ์ข…๋ฃŒ์— ํ•ฉ์˜ํ•˜๊ณ  ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋œ๋‹ค. 

 

์ถ”๊ฐ€๋กœ ์ˆœ์ˆ˜ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ์ด์ „์— ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ sequence number๋Š” ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. (Seq=17, Ack=66, ACK)๋ฅผ B ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜์‹ ๋ฐ›๊ณ  (Seq=66, Ack=17, ACK, FIN)์ฒ˜๋Ÿผ Ack=18์ด ์•„๋‹Œ 17 ๊ทธ๋Œ€๋กœ ์‘๋‹ตํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ/ ์—ฐ๊ฒฐ ๊ฑฐ๋ถ€(RST ์‚ฌ์šฉ)

์‚ฌ์šฉ ์ƒํ™ฉ

1. ์ž์› ๋ถ€์กฑ
์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค(๋ฉ”๋ชจ๋ฆฌ, CPU ๋“ฑ)๊ฐ€ ๋ถ€์กฑํ•  ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์–ด RST ํŒจํ‚ท์„ ๋ณด๋‚ด ์—ฐ๊ฒฐ์„ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
2. ์„ธ์…˜ ์˜ค๋ฅ˜
TCP ์—ฐ๊ฒฐ ์ƒํƒœ๊ฐ€ ๋ถˆ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ์„ธ์…˜ ๊ด€๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ RST ํŒจํ‚ท์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค
3. ์ด๋ฏธ ๋‹ซํžŒ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์„ธ๊ทธ๋จผํŠธ ์ˆ˜์‹ 
ํ•œ์ชฝ์—์„œ ์—ฐ๊ฒฐ์„ ์ด๋ฏธ ์ข…๋ฃŒํ–ˆ๋Š”๋ฐ, ์ƒ๋Œ€๋ฐฉ์ด ๊ณ„์†ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ RST ํŒจํ‚ท์„ ๋ณด๋‚ด ์—ฐ๊ฒฐ์ด ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์Œ์„ ์•Œ๋ฆผ

4. ์„œ๋ฒ„์˜ ์—ฐ๊ฒฐ ์„ค์ • ๊ฑฐ๋ถ€
์„œ๋ฒ„๊ฐ€ ํŠน์ • ์ด์œ ๋กœ ์—ฐ๊ฒฐ ์„ค์ •์„ ๊ฑฐ๋ถ€ํ•  ๋•Œ RST ํŒจํ‚ท์„ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํฌํŠธ๋กœ์˜ ์—ฐ๊ฒฐ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

 

 

 

 

 

์ฐธ๊ณ  ์ž๋ฃŒ :

์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ ํ†ต์‹ ๊ณผ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ 3ํŒ - ๋ฐ•๊ธฐํ˜„ ์ง€์Œ

728x90