ยซ   2025/06   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Recent Posts
06-08 07:25

Today
Total

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

์—ฐ์˜ ๊ธฐ๋ก ๐Ÿช

์ „์†ก๊ณ„์ธต - TCP์™€ UDP ๋ณธ๋ฌธ

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

์ „์†ก๊ณ„์ธต - TCP์™€ UDP

kite707 2025. 4. 20. 20:16

ํŒจํ‚ท์˜ ์ตœ์ข… ๋ชฉ์ ์ง€๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ์ด๋Š” IP์ฃผ์†Œ+ํฌํŠธ ๋ฒˆํ˜ธ์˜ ์กฐํ•ฉ์œผ๋กœ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ „์†ก๊ณ„์ธต์€ ์ด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ณ„์ธต์ด๋‹ค.

ํฌํŠธ ๋ฒˆํ˜ธ

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ด 16๋น„ํŠธ๋กœ ํ‘œํ˜„๋œ๋‹ค. ๊ทธ๋ž˜์„œ 0~2^16-1๊นŒ์ง€ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

0~1023 ์›ฐ๋…ธ์šด ํฌํŠธ
1024~49151 ๋“ฑ๋ก๋œ ํฌํŠธ
49152~65535 ๋™์  ํฌํŠธ

์›ฐ๋…ธ์šด ํฌํŠธ๋Š” ๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํฌํŠธ์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด FTP(20, 21), SSH(22), TELNET(23), DNS(53), DHCP(67, 68), HTTP(80), HTTPS(443) ๋“ฑ์ด ์žˆ๋‹ค.

๋˜ ๋“ฑ๋ก๋œ ํฌํŠธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” MySQL(3306), Redis(6379), MSSQL(1433)๋“ฑ์ด ์žˆ๋‹ค.

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

  TCP UDP
์—ฐ๊ฒฐ์ˆ˜๋ฆฝ O X
์ƒํƒœ๊ด€๋ฆฌ, ํ๋ฆ„์ œ์–ด O X
์˜ค๋ฅ˜์ œ์–ด, ํ˜ผ์žก๊ด€๋ฆฌ O X
์—ฐ๊ฒฐ ์ข…๋ฃŒ O X

UDP๊ฐ€ TCP์— ๋น„ํ•ด ๊ฐ„๋‹จํ•œ ๋งŒํผ UDP๋Š” ํ—ค๋”๋„ ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฒผ๋‹ค.

๋น„๊ต์  ๊ฐ„๋‹จํ•œ UDP ํ—ค๋”๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. UDP ํ—ค๋”์—๋Š” ์†ก, ์ˆ˜์‹ ์ง€์˜ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธธ์ด ํ•„๋“œ์—๋Š” ํ—ค๋”๋ฅผ ํฌํ•จํ•œ UDP ํŒจํ‚ท์˜ ๋ฐ”์ดํŠธ ํฌ๊ธฐ๊ฐ€, ์ฒดํฌ์„ฌ์—๋Š” ์†ก, ์ˆ˜์‹  ๊ณผ์ •์—์„œ์˜ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ›ผ์† ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ๋‹ค.

TCP ํ—ค๋”์—๋„ ์†ก, ์ˆ˜์‹ ์ง€์˜ ํฌํŠธ๋ฒˆํ˜ธ๊ฐ€ ์žˆ๋‹ค. ๊ทธ ์™ธ์— ๋‹ค๋ฅธ ๊ฐ’๋“ค๋„ ์žˆ๋Š”๋ฐ ์ˆœ์„œ๋ฒˆํ˜ธ์™€ ํ™•์ธ ์‘๋‹ต๋ฒˆํ˜ธ๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ์ˆœ์„œ๋ฒˆํ˜ธ๋Š” ํ˜„์žฌ ํŒจํ‚ท์ด ์ฃผ๊ณ ๋ฐ›๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ช‡ ๋ฒˆ์งธ ํŒจํ‚ท์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋˜ ํ™•์ธ ์‘๋‹ต๋ฒˆํ˜ธ๋Š” ์•ž์œผ๋กœ ๋ฐ›๊ณ ์ž ํ•˜๋Š” ํŒจํ‚ท์˜ ๋ฒˆํ˜ธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 5๋ฒˆ์งธ ํŒจํ‚ท๊นŒ์ง€ ๋ฐ›์•˜๋‹ค๋ฉด ํ™•์ธ ์‘๋‹ต๋ฒˆํ˜ธ์—๋Š” 6์ด ์„ธํŒ…๋œ๋‹ค. ์ด๋Š” TCP์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. TCP๊ฐ€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ณด๋‚ธ ํŒจํ‚ท์ด ์ž˜ ๋„์ฐฉํ–ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค๋Š” ๋œป์ธ๋ฐ, ์ˆœ์„œ๋ฒˆํ˜ธ์™€ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ๊ฐ€ ์—ฌ๊ธฐ์— ์‚ฌ์šฉ๋œ๋‹ค.

๋˜ ACK, SYN, FIN๋“ฑ์€ ์ œ์–ด๋น„ํŠธ์— ํฌํ•จ๋˜๋Š” ๊ฐ’๋“ค๋กœ ๋ง ๊ทธ๋Œ€๋กœ “๋น„ํŠธ”์ด๋‹ค. ์ฆ‰ 0 ๋˜๋Š” 1์˜ ๊ฐ’์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค. ์ด ๊ฐ’๋“ค์€ ์ถ”ํ›„ TCP์˜ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๊ณผ์ •์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

 

TCP ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ

TCP์˜ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ์ด๋ž€ ์šฐ๋ฆฌ๊ฐ€ ๋งŽ์ด ๋“ค์–ด๋ณธ 3-way-handshake๋ฅผ ๋งํ•œ๋‹ค. ์•ž์„œ ์‚ดํŽด๋ณธ SYN, ACK ๊ฐ’๋“ค๊ณผ ์ˆœ์„œ๋ฒˆํ˜ธ, ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ด์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์ธก์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ ์•„๋ž˜ 3๊ฐ€์ง€ ๊ณผ์ •์ด ์ง„ํ–‰๋œ๋‹ค.

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— SYN ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•˜๊ณ , ์ˆœ์„œ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” SYN ๋น„ํŠธ์™€ ACK ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•˜๊ณ , ์ˆœ์„œ ๋ฒˆํ˜ธ์— ์ž์‹ ์˜ ์ˆœ์„œ๋ฒˆํ˜ธ. ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ˆœ์„œ๋ฒˆํ˜ธ์— 1์„ ๋”ํ•œ ๊ฐ’์„ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ์— ์„ธํŒ…ํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ๋„ ACK๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•˜๊ณ , ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ์— ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฐ’์— 1์„ ๋”ํ•œ ๊ฐ’์„ ์„ธํŒ…ํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐํ•œ ํ›„ ํŒจํ‚ท์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ณผ์ •์—์„œ TCP๋Š” ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•ด ํฌ๊ฒŒ ์˜ค๋ฅ˜์ œ์–ด, ํ๋ฆ„์ œ์–ด, ํ˜ผ์žก์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ๊ธฐ๋Šฅ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

 

TCP ์˜ค๋ฅ˜์ œ์–ด

TCP๋Š” ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•ด ์˜ค๋ฅ˜์ œ์–ด, ํ๋ฆ„์ œ์–ด, ํ˜ผ์žก์ œ์–ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

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

์ค‘๋ณต๋œ ACK ์ˆ˜์‹ 

์˜ˆ๋ฅผ ๋“ค์–ด N๋ฒˆ์งธ ํŒจํ‚ท์„ ๋ณด๋ƒˆ๋Š”๋ฐ ์ด๊ฒƒ์ด ์œ ์‹ค๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ์ˆ˜์‹ ์ง€์—์„œ๋Š” ACK์— 1์„ ์„ธํŒ…ํ•˜๊ณ , ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ์— ๋˜๋‹ค์‹œ N์„ ์„ธํŒ…ํ•˜์—ฌ ๋ณด๋‚ผ ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ค‘๋ณต๋œ ACK์„ ์ˆ˜์‹ ํ•˜๋ฉด ์†ก์‹ ์ž๋Š” N๋ฒˆ์งธ ํŒจํ‚ท์„ ์žฌ์ „์†กํ•œ๋‹ค.

ํƒ€์ž„ ์•„์›ƒ ๋ฐœ์ƒ

TCP ํŒจํ‚ท์„ ์†ก์‹ ํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์žฌ์ „์†ก ํƒ€์ด๋จธ๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํŒจํ‚ท์„ ๋ณด๋‚ธ ๋’ค ์ผ์ • ์‹œ๊ฐ„ ๋‚ด์— ACK์„ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํ•ด๋‹น ํŒจํ‚ท์„ ์žฌ์ „์†กํ•œ๋‹ค.

 

TCP ํ๋ฆ„์ œ์–ด

TCP ํ๋ฆ„์ œ์–ด๋ผ๋Š” ๊ฒƒ์€ ์ˆ˜์‹ ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์ข€ ๋” ์ž์„ธํžˆ ๋ณด์ž๋ฉด ์ˆ˜์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์œผ๋ฉด ์ด๋ฅผ ์ž์‹ ์˜ ์ˆ˜์‹ ๋ฒ„ํผ๋ผ๋Š” ๊ณณ์— ์ €์žฅํ•˜๊ฒŒ ๋˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด๋ฅผ ์ฝ์–ด๊ฐ„๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ˆ˜์‹ ์ž๊ฐ€ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ท์˜ ํฌ๊ธฐ๋Š” TCP ์ˆ˜์‹  ๋ฒ„ํผ์˜ ํฌ๊ธฐ์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค.

TCP๋Š” 3-way-handshake๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์ˆ˜์‹ ์ž๊ฐ€ ์†ก์‹ ์ž์—๊ฒŒ ์ž์‹ ์˜ ์ˆ˜์‹  ์œˆ๋„์šฐ(ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์–‘)์˜ ํฌ๊ธฐ๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์•ž์„œ ์‚ดํŽด๋ณธ TCP ํ—ค๋”์˜ ์œˆ๋„์šฐ ํ•„๋“œ๋ฅผ ํ†ตํ•ด์„œ ๋ง์ด๋‹ค. ์ฆ‰ ์†ก์‹ ์ž๋Š” ์ด๋ฅผ ํ†ตํ•ด ์ˆ˜์‹ ์ž๊ฐ€ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์˜ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.

 

TCP ํ˜ผ์žก์ œ์–ด

ํ˜ผ์žก์ œ์–ด๋Š” ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ธํ•ด ํŒจํ‚ท์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋А๋ ค์ง€๊ฑฐ๋‚˜ ๋А๋ ค์ง€๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ๋ฆ„์ œ์–ด๋Š” ๋ฐ›๋Š” ์ชฝ์˜ ์ž…์žฅ์—์„œ ํ•œ ๋ฒˆ์— ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์–‘์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ ํ˜ผ์žก์ œ์–ด๋Š” ๋ณด๋‚ด๋Š” ์ชฝ์—์„œ ํŒ๋‹จํ•˜์—ฌ ๊ฒฐ์ •ํ•œ๋‹ค. ์ด๋•Œ ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก ์—ฌ๋ถ€๋Š” ์•ž์„œ ์˜ค๋ฅ˜์ œ์–ด์™€ ๊ฐ™์ด ์ค‘๋ณต๋œ ACK์„ ์ˆ˜์‹ ํ•˜๊ฑฐ๋‚˜ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค.

์•ž์„œ ์ˆ˜์‹ ์ž๊ฐ€ ์ˆ˜์‹  ์œˆ๋„์šฐ(Reveiver WiNDow)๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋“ฏ์ด ์†ก์‹ ์ž๋„ ํ˜ผ์žก ์œˆ๋„์šฐ(Congestion WiNDow)๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ˜ผ์žก ์œˆ๋„์šฐ๋Š” ํ˜ผ์žก ์—†์ด ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์–‘์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰ ์†ก์‹ ์ž๋Š” min(rwnd,cwnd)๊ฐ’ ๋งŒํผ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋Š” ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ์—ฐ์‚ฐ๋˜๋Š”๋ฐ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์€ AIMD(Additive Increase/Multiplicative Decrease)์ด๋‹ค. ํ˜ผ์žก์ด ๊ฐ์ง€๋˜์ง€ ์•Š์„ ๋•Œ๋Š” ํ•ฉ์œผ๋กœ ์ฆ๊ฐ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ํ˜ผ์žก์ด ๊ฐ์ง€๋˜๋Š” ์ˆœ๊ฐ„ ์ ˆ๋ฐ˜์œผ๋กœ(1/2๊ณฑ์œผ๋กœ) ๊ฐ์†Œ์‹œํ‚จ๋‹ค.

์ถœ์ฒ˜: https://code-lab1.com/tcp-%ED%98%BC%EC%9E%A1%EC%A0%9C%EC%96%B4/

ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์ด ์ˆ˜์‹ ๋˜๊ธฐ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ RTT๋ผ๊ณ  ํ•˜๋Š”๋ฐ AIMD๋Š” ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ RTT๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ํ˜ผ์žก์ด ๊ฐ์ง€๋˜๋ฉด ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ๊ฐ์†Œ์‹œํ‚ค๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

TCP Tahoe์™€ TCP Reno

TCP Tahoe์™€ TCP Reno๋Š” ๋Œ€ํ‘œ์ ์ธ ํ˜ผ์žก์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด๊ฒƒ์˜ ๋™์ž‘๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ์•„๋ž˜ ์šฉ์–ด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
TCP SlowStart window size๋ฅผ 1๋ถ€ํ„ฐ ์ง€์ˆ˜์Šน์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
→ 1, 2, 4, 8, 16 …
๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ํŒจํ‚ท ์†์‹ค์„ ๊ฐ์ง€ํ•˜๋ฉด window size๋ฅผ 1๋กœ ์ค„์ธ๋‹ค.
AIMD window size๋ฅผ 1MSS์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๊ฐ€ ํŒจํ‚ท ์†์‹ค์„ ๊ฐ์ง€ํ•˜๋ฉด window size๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค.
sshthresh(์ž„๊ณ„์ ) ์ž„๊ณ„์ ์€ slow start threshold(ssthresh)์ธ๋ฐ, ๋ง ๊ทธ๋Œ€๋กœ ์—ฌ๊ธฐ๊นŒ์ง€ slow start๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค. ์šด์˜์ฒด์ œ๋งˆ๋‹ค ๊ตฌํ˜„๋ฐฉ์‹์ด ๋‹ค๋ฅด์ง€๋งŒ ์ฒ˜์Œ์—๋Š” ์ž„๊ณ„์ ์„ ๋งค์šฐ ํฐ ๊ฐ’(์˜ˆ: 65535 ๋ฐ”์ดํŠธ)๋กœ ์„ค์ •ํ•ด๋‘๊ณ , ํ˜ผ์žก์ด ๋ฐœ์ƒํ•˜๋ฉด ํ˜ผ์žก์ด ๋ฐœ์ƒํ•œ ์‹œ์ ์˜ cwnd์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

TCP Tahoe
์ž„๊ณ„์  ๋„๋‹ฌ ์ „๊นŒ์ง€๋Š” Slow Start, ์ž„๊ณ„์  ๋„๋‹ฌ ์‹œ AIMD ๋ฐฉ์‹ ์‚ฌ์šฉ.
์ดํ›„ ํ˜ผ์žก์ด ๋ฐœ์ƒํ•˜๋ฉด cwnd๊ฐ’์„ 1๋กœ ์ค„์ด๊ณ  ๋‹ค์‹œ Slow Start

TCP Reno
TCP Tahoe์™€ ๋น„์Šทํ•˜์ง€๋งŒ 3 duplicate ACKs์™€ Timeout์„ ๊ตฌ๋ถ„ํ•œ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฅด๋‹ค.
3 duplicate ACKs๋ฅผ ๋งŒ๋‚˜๋ฉด ์ผ๋ถ€ ํŒจํ‚ท๋งŒ ์†์‹ค๋œ๊ฒƒ์ด๊ณ  ๋„คํŠธ์›Œํฌ๊ฐ€ ์™„์ „ํžˆ ๋ง‰ํžˆ์ง€ ์•Š์•˜๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์œˆ๋„์šฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ssthresh๊ฐ’๋„ ํ˜„์žฌ ์œˆ๋„์šฐ ๊ฐ’์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
Timeout์€ ACK๊ฐ€ ์ „ํ˜€ ๋„์ฐฉํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ด๊ณ  ๋„คํŠธ์›Œํฌ๊ฐ€ ๋งค์šฐ ํ˜ผ์žกํ•œ ์ƒํ™ฉ์ด๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ssthresh๊ฐ’์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ (ํ˜„์žฌ ์ •๋ณด๋Š” ์‹ ๋ขฐ ๋ถˆ๊ฐ€ํ•˜๋‹ˆ ๋‹ค์Œ ํ˜ผ์žก์ƒํ™ฉ์— ์กฐ์ ˆํ•˜์ž!) cwnd๊ฐ’์„ 1๋กœ ์ค„์—ฌ slow start๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

 

TCP ์—ฐ๊ฒฐ ์ข…๋ฃŒ

TCP์˜ ์ข…๋ฃŒ๋Š” 4-way-handshak๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์•ž์„œ ์‚ดํŽด๋ณธ FIN๊ณผ ACK๊ฐ’์ด ์‚ฌ์šฉ๋œ๋‹ค.

์ด๋ฒˆ์—๋„ ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฐ๊ฒฐ ๋Š๊ธฐ์— ๋“ค์–ด๊ฐ„๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ๋จผ์ € ํด๋ผ์ด์–ธํŠธ์ชฝ์—์„œ ์ปจํŠธ๋กค ๋น„ํŠธ ์ค‘ FIN์˜ ๊ฐ’์„ 1๋กœ ์„ค์ •ํ•˜์—ฌ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค. ์„œ๋ฒ„๋Š” FIN์„ 1๋กœ ์„ค์ •ํ•œ ํŒจํ‚ท์„ ๋ฐ›์•˜๋‹ค๋Š” ์˜๋ฏธ์—์„œ ACK ํŒจํ‚ท์„ ๋ฐ˜์†กํ•˜๊ณ , ์„œ๋ฒ„ ์ชฝ์—์„œ๋„ Close๊ฐ€ ํ˜ธ์ถœ๋˜์–ด FIN์„ 1๋กœ ์„ค์ •ํ•œ ํŒจํ‚ท์„ ๋ฐ˜์†กํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ์ด๋ฅผ ๋ฐ›์•„ ACK ํŒจํ‚ท์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์ด๋ฅผ ๋ฐ›์œผ๋ฉด ์„œ๋ฒ„๋Š” Closed ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋ช‡ ๋ถ„ ์ •๋„ TIME_WAIT ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๋‹ค๊ฐ€ Closed๋กœ ์ „ํ™˜๋œ๋‹ค.

์ด๋•Œ ๋ช‡ ๋ถ„์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ด์œ ๋Š” ๋งˆ์ง€๋ง‰ ACK์ด ์ œ๋Œ€๋กœ ์ „์†ก๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์„œ์ด๋‹ค. ๋งŒ์•ฝ ๋งˆ์ง€๋ง‰ ACK์„ ๋ณด๋‚ด๊ณ  ์†Œ์ผ“์„ ๋ง์†Œํ•ด๋ฒ„๋ ธ๋Š”๋ฐ ACK์ด ์„œ๋ฒ„์— ์ „์†ก๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„๋Š” FIN์„ ๋‹ค์‹œ ๋ณด๋‚ด๊ฒ ์ง€๋งŒ ์ด๋ฏธ ํด๋ผ์ด์–ธํŠธ๋Š” ์†Œ์ผ“์„ ๋ง์†Œํ•ด๋ฒ„๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ›์„ ์ˆ˜๊ฐ€ ์—†๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๋ถ„ ์ •๋„๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.