CS๊ณต๋ถ€/๋„คํŠธ์›Œํฌ

[ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ๋„คํŠธ์›Œํฌ] 4์žฅ. ์ „์†ก ๊ณ„์ธต

alswlfl 2026. 5. 29. 23:10

์ „์†ก ๊ณ„์ธต ๊ฐœ์š”: IP์˜ ํ•œ๊ณ„์™€ ํฌํŠธ

์ „์†ก ๊ณ„์ธต์€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต๊ณผ ์‘์šฉ ๊ณ„์ธต ์‚ฌ์ด์— ์กด์žฌํ•จ

  • IP ํ•œ๊ณ„ ๋ณด์™„: ์‹ ๋ขฐํ•  ์ˆ˜ ์ž‡๋Š” ํ†ต์‹ ๊ณผ ์—ฐ๊ฒฐํ˜• ํ†ต์‹  ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์‘์šฉ ๊ณ„์ธต์˜ ํ”„๋กœ์„ธ์Šค ์‹๋ณ„: ํฌํŠธ ๋ฒˆํ˜ธ ํ™œ์šฉ

IP ํ•œ๊ณ„

  • IP๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” (๋น„์‹ ๋ขฐ์„ฑ) ํ”„๋กœํ† ์ฝœ(unreliable protocol)
    • ํŒจํ‚ท์ด ์ˆ˜์‹ ์ง€๊นŒ์ง€ ์ œ๋Œ€๋กœ ์ „์†ก๋˜์—ˆ๋‹ค๋Š” ๋ณด์žฅ์„ ํ•˜์ง€ ์•Š์Œ
    • ํ†ต์‹  ๊ณผ์ •์—์„œ ํŒจํ‚ท์ด ์ž˜๋ชป ์ „์†ก๋˜์–ด๋„ ์ด๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ , ์žฌ์ „์†ก๋„ ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ˆœ์„œ๋Œ€๋กœ ํŒจํ‚ท์ด ๋„์ฐฉํ•  ๊ฒƒ์ด๋ผ๋Š” ๋ณด์žฅ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ
    • ์ตœ์„ ํ˜• ์ „๋‹ฌ(best effort delivery)
     
  • IP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ(connectionless protocol)
    • ์†ก์ˆ˜์‹  ํ˜ธ์ŠคํŠธ ๊ฐ„์— ์‚ฌ์ „ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ์ž‘์—…์„ ๊ฑฐ์น˜์ง€ ์•Š์Œ
    • ๊ทธ์ € ์ˆ˜์‹ ์ง€๋ฅผ ํ–ฅํ•ด ํŒจํ‚ท์„ ๋ณด๋‚ด๊ธฐ๋งŒ ํ•  ๋ฟ
  • IP ํŒจํ‚ท์˜ ์ „๋‹ฌ = ์‹ ๋ขฐ์„ฑ์ด ์—†๋Š” ํ†ต์‹  + ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ 
  • IP๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š”, ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์„ ํ•˜๋Š” ์ด์œ ๋Š”, '์„ฑ๋Šฅ'๋•Œ๋ฌธ์ž„
    • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹ ์€ ํŒจํ‚ท์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํ™•์ธ์„ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์— ์•…์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Œ
    • ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „์†ก์ด ๋ชจ๋“  ๊ฒฝ์šฐ์— ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹˜

ICMP: IP์˜ ์ „์†ก ํŠน์„ฑ์„ ๋ณด์™„ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ

  • IP ํŒจํ‚ท ์ „์†ก ๊ณผ์ •์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ ๋ฉ”์‹œ์ง€ ์ œ๊ณต
  • ํ”ผ๋“œ๋ฐฑ ๋ฉ”์‹œ์ง€
    • ์ „์†ก ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ณด๊ณ 
    • ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ง„๋‹จ ์ •๋ณด(๋„คํŠธ์›Œํฌ์ƒ์˜ ์ •๋ณด ์ œ๊ณต)
  • ICMP ๋ฉ”์‹œ์ง€ = ํƒ€์ž…(type) + ์ฝ”๋“œ(code)
    • ํƒ€์ž…: ICMP ๋ฉ”์‹œ์ง€ ์œ ํ˜• ๋ฒˆํ˜ธ
    • ์ฝ”๋“œ: ๊ตฌ์ฒด์ ์ธ ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ ๋ฒˆํ˜ธ
  • ์ „์†ก ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ณด๊ณ  ์ •๋ณด ๋‚ด์šฉ
ํƒ€์ž… ์ด๋ฆ„(ํƒ€์ž… ๋ฒˆํ˜ธ) ์ฝ”๋“œ ๋ฒˆํ˜ธ ์ฝ”๋“œ ์„ค๋ช…
์ˆ˜์‹ ์ง€ ๋„๋‹ฌ ๋ถˆ๊ฐ€ (3): ํŠน์ • ํŒจํ‚ท์ด ์ˆ˜์‹ ์ง€๊นŒ์ง€ ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ„ 0 ๋„คํŠธ์›Œํฌ ๋„๋‹ฌ ๋ถˆ๊ฐ€
1 ํ˜ธ์ŠคํŠธ ๋„๋‹ฌ ๋ถˆ๊ฐ€
2 ํ”„๋กœํ† ์ฝœ ๋„๋‹ฌ ๋ถˆ๊ฐ€: ์ˆ˜์‹ ์ง€์—์„œ ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
3 ํฌํŠธ ๋„๋‹ฌ ๋ถˆ๊ฐ€
4 ๋‹จํŽธํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ DF๊ฐ€ 1๋กœ ์„ค์ •๋˜์–ด ๋‹จํŽธํ™”ํ•  ์ˆ˜ ์—†์Œ
์‹œ๊ฐ„ ์ดˆ๊ณผ(11) 0 TTL ๋งŒ๋ฃŒ

 

  • ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ง„๋‹จ ์ •๋ณด ์˜ค๋ฅ˜ ๋ณด๊ณ  ์ •๋ณด ๋‚ด์šฉ
ํƒ€์ž… ์ด๋ฆ„(ํƒ€์ž… ๋ฒˆํ˜ธ) ์ฝ”๋“œ ๋ฒˆํ˜ธ ์ฝ”๋“œ ์„ค๋ช…
์—์ฝ” ์š”์ฒญ(8) 0 ์—์ฝ” ์š”์ฒญ
์—์ฝ” ์‘๋‹ต(0) 0 ์—์ฝ” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต
๋ผ์šฐํ„ฐ ๊ด‘๊ณ (9) 0 ๋ผ์šฐํ„ฐ ๊ด‘๊ณ : ๋ผ์šฐํ„ฐ๊ฐ€ ํ˜ธ์ŠคํŠธ์—๊ฒŒ ์ž์‹ ์„ ์•Œ๋ฆผ
  • '์—์ฝ”'๋Š” ping ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ
  • ICMP๋Š” IP์˜ ๋ณด์กฐ์ผ ๋ฟ, ์‹ ๋ขฐ์„ฑ์˜ ์™„์ „ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Œ!
    • ICMP ๋ฉ”์‹œ์ง€ ์ž์ฒด๊ฐ€ ์œ ์‹ค๋˜๋Š” ๊ฒฝ์šฐ๋„ ์กด์žฌํ•จ

์ „์†ก ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ

TCP

  • ์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
    • ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋™์•ˆ์—๋Š” ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ณ , ์†ก์ˆ˜์‹ ์ด ๋๋‚˜๋ฉด ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ
  • ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
    • ์žฌ์ „์†ก์„ ํ†ตํ•œ ์˜ค๋ฅ˜ ์ œ์–ด, ํ๋ฆ„ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณต

UDP

  • ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํ†ต์‹ , ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
    • IP์˜ ๊ป๋ฐ๊ธฐ ์—ญํ• 
  • TCP๋ณด๋‹ค๋Š” ๋น„๊ต์  ๋น ๋ฅธ ์ „์†ก์ด ๊ฐ€๋Šฅํ•จ

์‘์šฉ ๊ณ„์ธต์„ ์‹๋ณ„ํ•˜๋Š” ์ „์†ก ๊ณ„์ธต

ํฌํŠธ๋ฅผ ํ™œ์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹๋ณ„

ํฌํŠธ(port): ๋„คํŠธ์›Œํฌ ์ƒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹๋ณ„ ์ •๋ณด

์ „์†ก ๊ณ„์ธต์˜ ์—ญํ• , ์‘์šฉ ๊ณ„์ธต ์‹๋ณ„(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

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

ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋‘ ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉ ์ค‘์ผ ์ˆ˜ ์žˆ์Œ

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ํŒจํ‚ท์ด ์ตœ์ข…์ ์œผ๋กœ ํ–ฅํ•ด์•ผ ํ•˜๋Š” ๊ณณ์€ ์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค์ž„

 

ํฌํŠธ์˜ ๋ถ„๋ฅ˜

TCP์™€ UDP ํ—ค๋” ์ •๋ณด(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

ํŒจํ‚ท ๋‚ด ์ˆ˜์‹ ์ง€ ํฌํŠธ์™€ ์†ก์‹ ์ง€ ํฌํŠธ๋ฅผ ํ†ตํ•ด ์†ก์ˆ˜์‹ ์ง€ ํ˜ธ์ŠคํŠธ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹๋ณ„

  • 16๋น„ํŠธ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ํฌํŠธ์˜ ์ˆ˜๋Š” $2^{16}$(65536)๊ฐœ๋กœ, ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” 0๋ฒˆ~65535๋ฒˆ
  • ํฌํŠธ๋Š” ํŠน์ • ์œ ํ˜•์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ ๊ฐ€๋Šฅํ•จ

1. ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ(well-known port): 0๋ฒˆ๋ถ€ํ„ฐ 1023๋ฒˆ๊นŒ์ง€์˜ ํฌํŠธ

  • ์‹œ์Šคํ…œ ํฌํŠธ
  • ๋ฒ”์šฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธ
์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ ๋ฒˆํ˜ธ ์„ค๋ช…
20, 21 FTP
22 SSH
23 TELNET
53 DNS
67, 68 DHCP
80 HTTP
443 HTTPS

 

2. ๋“ฑ๋ก๋œ ํฌํŠธ(registered port): 1024๋ฒˆ๋ถ€ํ„ฐ 49151๋ฒˆ๊นŒ์ง€์˜ ํฌํŠธ

  • ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ์— ๋น„ํ•ด์„œ๋Š” ๋œ ๋ฒ”์šฉ์ 
  • ํ”ํžˆ ์‚ฌ์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์— ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์ธํ„ฐ๋„ท ํ• ๋‹น ๋ฒˆํ˜ธ ๊ด€๋ฆฌ ๊ธฐ๊ด€(IANA): ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ์™€ ๋“ฑ๋ก๋œ ํฌํŠธ๋ฒˆํ˜ธ ๊ด€๋ฆฌ
  • ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ๊ถŒ๊ณ  ์‚ฌํ•ญ์ผ ๋ฟ ๊ฐ•์ œ ์‚ฌํ•ญ์€ ์•„๋‹˜
๋“ฑ๋ก๋œ ํฌํŠธ ๋ฒˆํ˜ธ ์„ค๋ช…
1194 OpenVPN
1433 Microsoft SQL Server ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
3306 MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
6379 Redis
8080 HTTP ๋Œ€์ฒด

 

3. ๋™์  ํฌํŠธ(dynamic port), ์‚ฌ์„ค ํฌํŠธ(private port), ์ž„์‹œ ํฌํŠธ(ephemeral port): 49152๋ฒˆ๋ถ€ํ„ฐ 65535๋ฒˆ๊นŒ์ง€์˜ ํฌํŠธ

  • ํŠน๋ณ„ํžˆ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š” ํฌํŠธ ๋ฒˆํ˜ธ ๋ฒ”์œ„: ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์„œ๋ฒ„๋Š” ๋Œ€๋ถ€๋ถ„ ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ์™€ ๋“ฑ๋ก๋œ ํฌํŠธ ์‚ฌ์šฉ
  • ํด๋ผ์ด์–ธํŠธ๋Š” ๋Œ€๋ถ€๋ถ„ ๋™์  ํฌํŠธ ์‚ฌ์šฉํ•จ ex)์›น ๋ธŒ๋ผ์šฐ์ €

ํด๋ผ์ด์–ธํŠธ์˜ ๋™์  ํฌํŠธ(์ถœ์ฒ˜ : https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

'ํŠน์ • ํ˜ธ์ŠคํŠธ'์—์„œ ์‹คํ–‰ ์ค‘์ธ 'ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค' ์‹๋ณ„

IP ์ฃผ์†Œ:ํฌํŠธ๋ฒˆํ˜ธ ํ˜•์‹ ex) 192.168.0.15:8000

  • IP ์ฃผ์†Œ: ํ˜ธ์ŠคํŠธ ์‹๋ณ„ → 192.168.0.15
  • ํฌํŠธ ๋ฒˆํ˜ธ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค ์‹๋ณ„ → 8000

ํฌํŠธ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ธฐ์ˆ : ํฌํŠธ ๊ธฐ๋ฐ˜ NAT(=NAPT)

NAT: NAT ๋ณ€ํ™˜ ํ…Œ์ด๋ธ”๋กœ, ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์˜ ์‚ฌ์„ค IP์™€ ๋„คํŠธ์›Œํฌ ์™ธ๋ถ€์˜ ๊ณต์ธ IP ๊ฐ„์˜ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ 

  • NAT ๋ณ€ํ™˜ ํ…Œ์ด๋ธ”: ๋ณ€ํ™˜์˜ ๋Œ€์ƒ์ด ๋˜๋Š” IP ์ฃผ์†Œ ์Œ
  • ์‚ฌ์„ค IP ์ฃผ์†Œ ํ•˜๋‚˜๋‹น ๊ณต์ธ IP ์ฃผ์†Œ ํ•˜๋‚˜๊ฐ€ ๋Œ€์‘: ๋งŽ์€ ์‚ฌ์„ค IP ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์Œ
  • ๊ณต์ธ IP ์ฃผ์†Œ์˜ ๋‚ญ๋น„: ์‚ฌ์„ค IP ์ฃผ์†Œ์˜ ์ˆ˜๋งŒํผ ๊ณต์ธ IP ์ฃผ์†Œ๊ฐ€ ํ•„์š”
  • ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ํฌํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ทน๋ณต ๊ฐ€๋Šฅํ•จ

ํฌํŠธ ๊ธฐ๋ฐ˜์˜ NAT, NAPT

  • NAPT(Network Address Port Translation) ๋˜๋Š” APT(Address Port Translation)
  • NAPT๋Š” NAT ํ…Œ์ด๋ธ”์— ๋ณ€ํ™˜ํ•  IP ์ฃผ์†Œ ์Œ๊ณผ ๋”๋ถˆ์–ด ํฌํŠธ ๋ฒˆํ˜ธ๋„ ํ•จ๊ป˜ ๊ธฐ๋กํ•˜๊ณ , ๋ณ€ํ™˜
  • ํ•˜๋‚˜์˜ ๊ณต์ธ IP ์ฃผ์†Œ(1)๋ฅผ ์—ฌ๋Ÿฌ ์‚ฌ์„ค IP ์ฃผ์†Œ(N)๊ฐ€ ๊ณต์œ  ๊ฐ€๋Šฅ
    • ์‚ฌ์„ค IP ์ฃผ์†Œ: ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ N:1๋กœ ๋ณ€ํ™˜
    • ๊ณต์ธ IP ์ฃผ์†Œ ์ˆ˜ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•œ ๊ธฐ์ˆ 

NAPT(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

ํฌํŠธ ํฌ์›Œ๋”ฉ(port forwarding)

 

๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์˜ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋„คํŠธ์›Œํฌ ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€๋กœ (์›๊ฒฉ ์ ‘์†์„ ์‹œ๋„ํ•˜๋Š” ๋“ฑ) ํ†ต์‹ ์„ ์‹œ์ž‘ํ•˜๋Š” ์ƒํ™ฉ์—์„œ, ์™ธ๋ถ€ ํ˜ธ์ŠคํŠธ ์ž…์žฅ์—์„œ ์–ด๋–ค IP ์ฃผ์†Œ(๋ฐ ํฌํŠธ)๋ฅผ ์ˆ˜์‹ ์ง€ ์ฃผ์†Œ๋กœ ์‚ผ์•„์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ์ˆ ์ด 'ํฌํŠธ ํฌ์›Œ๋”ฉ'์ด๋‹ค.

 

ํฌํŠธ ํฌ์›Œ๋”ฉ์€ ๋„คํŠธ์›Œํฌ ๋‚ด ํŠน์ • ํ˜ธ์ŠคํŠธ์— IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๊ณ , 'ํ•ด๋‹น IP ์ฃผ์†Œ:ํฌํŠธ ๋ฒˆํ˜ธ'๋กœ์จ ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์—๊ฒŒ ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ

  • ํŠน์ • IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ ์Œ์„ ํ˜ธ์ŠคํŠธ์—๊ฒŒ ํ• ๋‹นํ•œ ๋’ค, ์™ธ๋ถ€ ํ˜ธ์ŠคํŠธ์—๊ฒŒ ํ•ด๋‹น ์ ‘์† ์ •๋ณด(IP ์ฃผ์†Œ: ํฌํŠธ ๋ฒˆํ˜ธ ์Œ)์„ ์•Œ๋ ค์ฃผ๋ฉด ๋จ

์ „์†ก ๊ณ„์ธต์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ”„๋กœํ† ์ฝœ: TCP์™€ UDP

TCP(Transmission Control Protocol)

์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹ ์„ ์œ„ํ•œ ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ

 

TCP ํ†ต์‹  ๊ณผ์ •

TCP๋Š” ํ†ต์‹ (๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ )ํ•˜๊ธฐ ์ „์— ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๊ณ  ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ

โ‘  ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ

โ‘ก ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  → ์žฌ์ „์†ก์„ ํ†ตํ•œ ์˜ค๋ฅ˜ ์ œ์–ด, ํ๋ฆ„ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด

โ‘ข ์—ฐ๊ฒฐ ์ข…๋ฃŒ

 

MSS(Maximum Segment Size) ๋‹จ์œ„: TCP๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํŽ˜์ด๋กœ๋“œ ํฌ๊ธฐ(TCP ํ—ค๋” ํฌ๊ธฐ๋Š” ์ œ์™ธ)

 

TCP ์„ธ๊ทธ๋จผํŠธ ๊ตฌ์กฐ

TCP ์„ธ๊ทธ๋จผํŠธ ๊ตฌ์กฐ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

1. ์†ก์‹ ์ง€ ํฌํŠธ, ์ˆ˜์‹ ์ง€ ํฌํŠธ: ์†ก์ˆ˜์‹ ํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ

2. ์ˆœ์„œ ๋ฒˆํ˜ธ(sequence number): ์ˆœ์„œ ๋ฒˆํ˜ธ๊ฐ€ ๋ช…์‹œ๋˜๋Š” ํ•„๋“œ

  • ์ˆœ์„œ ๋ฒˆํ˜ธ: ์†ก์ˆ˜์‹ ๋˜๋Š” ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ์˜ ์ฒซ ๋ฐ”์ดํŠธ์— ๋ถ€์—ฌ๋˜๋Š” ๋ฒˆํ˜ธ๋กœ, ์„ธ๊ทธ๋จผํŠธ์˜ ์˜ฌ๋ฐ”๋ฅธ ์†ก์ˆ˜์‹  ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฒˆํ˜ธ

ex) ์‘์šฉ ๊ณ„์ธต์œผ๋กœ๋ถ€ํ„ฐ 1900๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , MSS ๋‹จ์œ„๊ฐ€ 500๋ฐ”์ดํŠธ๋ผ๊ณ  ๊ฐ€์ •(4๊ฐœ์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ถ„ํ• ๋จ)

์ถœ์ฒ˜)https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s

  • ์ˆœ์„œ ๋ฒˆํ˜ธ = ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ + ์†ก์‹ ํ•œ ๋ฐ”์ดํŠธ ์ˆ˜
    • ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ(ISN, Initial Sequence Number)๋Š” ๋ฌด์ž‘์œ„ ๊ฐ’
    • ์„ธ๊ทธ๋จผํŠธ B์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๋Š” ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ์ธ 100์—์„œ 500๋ฐ”์ดํŠธ ๋–จ์–ด์ง„ ์…ˆ์ด๋ฏ€๋กœ 600
    • ์„ธ๊ทธ๋จผํŠธ C์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๋Š” ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ๋กœ๋ถ€ํ„ฐ 1000๋ฐ”์ดํŠธ ๋–จ์–ด์ง„ 1100
    • ์„ธ๊ทธ๋จผํŠธ D์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๋Š” ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ๋กœ๋ถ€ํ„ฐ 1500๋ฐ”์ดํŠธ ๋–จ์–ด์ง„ 1600

์ถœ์ฒ˜)https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s

 

3. ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ(acknowledgment number): ์ƒ๋Œ€ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋ณด๋‚ธ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ์‘๋‹ต

  • ๋‹ค์Œ์œผ๋กœ ์ˆ˜์‹ ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š” ์ˆœ์„œ ๋ฒˆํ˜ธ๊ฐ€ ๋ช…์‹œ(์ผ๋ฐ˜์ ์œผ๋กœ '์ˆ˜์‹ ํ•œ ์ˆœ์„œ ๋ฒˆํ˜ธ + 1')
  • ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ ๊ฐ’์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ œ์–ด ๋น„ํŠธ์—์„œ ์Šน์ธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„ํŠธ์ธ ACK ํ”Œ๋ž˜๊ทธ๋ฅผ 1๋กœ ์„ค์ •

์ถœ์ฒ˜)https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s

4. ์ œ์–ด ๋น„ํŠธ(control bits) ๋˜๋Š” ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ(flag bits): ํ˜„์žฌ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด

  • ๊ธฐ๋ณธ์ ์œผ๋กœ 8๋น„ํŠธ๋กœ ๊ตฌ์„ฑ
    • ACK: ์„ธ๊ทธ๋จผํŠธ์˜ ์Šน์ธ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๋น„ํŠธ
    • SYN: ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๊ธฐ ์œ„ํ•œ ๋น„ํŠธ
    • FIN: ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ๋น„ํŠธ

5. ์œˆ๋„์šฐ(window): ์ˆ˜์‹  ์œˆ๋„์šฐ(ํ•œ ๋ฒˆ์— ์ˆ˜์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘)์˜ ํฌ๊ธฐ๊ฐ€ ๋ช…์‹œ

 

TCP ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ๊ณผ ์ข…๋ฃŒ

์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ: 3-way handshake

  • ์“ฐ๋ฆฌ ์›จ์ด ํ•ธ๋“œ์…ฐ์ดํฌ ์„ธ ๊ฐœ์˜ ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง„ TCP์˜ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๊ณผ์ •

ex) ํ˜ธ์ŠคํŠธ A์™€ B๊ฐ€ ์“ฐ๋ฆฌ ์›จ์ด ํ•ธ๋“œ์‰์ดํฌ๋ฅผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •

์“ฐ๋ฆฌ ์›จ์ด ํ•ธ๋“œ์„ธ์ดํฌ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

์†ก์ˆ˜์‹  ๋ฐฉํ–ฅ ์„ธ๊ทธ๋จผํŠธ ์„ธ๊ทธ๋จผํŠธ์— ํฌํ•จ๋œ ์ฃผ์š” ์ •๋ณด ๋น„์œ 
A → B SYN ์„ธ๊ทธ๋จผํŠธ - ํ˜ธ์ŠคํŠธ A์˜ ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ
- 1๋กœ ์„ค์ •๋œ SYN ๋น„ํŠธ
'์—ฐ๊ฒฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.'
B → A SYN + ACK ์„ธ๊ทธ๋จผํŠธ - ํ˜ธ์ŠคํŠธ B์˜ ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ
- ํ˜ธ์ŠคํŠธ A๊ฐ€ ์ „์†กํ•œ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ
- 1๋กœ ์„ค์ •๋œ SYN ๋น„ํŠธ
- 1๋กœ ์„ค์ •๋œ ACK ๋น„ํŠธ
'๋„ค, ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ ์‹œ์ž‘ํ•ด์š”!'
A → B ACK ์„ธ๊ทธ๋จผํŠธ - ํ˜ธ์ŠคํŠธ A์˜ ๋‹ค์Œ ์ˆœ์„œ ๋ฒˆํ˜ธ
- ํ˜ธ์ŠคํŠธ B๊ฐ€ ์ „์†กํ•œ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ
- 1๋กœ ์„ค์ •๋œ ACK ๋น„ํŠธ
'๋„ค, ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.'
  • ์•กํ‹ฐ๋ธŒ ์˜คํ”ˆ(active open): ์—ฐ๊ฒฐ ์‹œ์ž‘ ํ˜ธ์ŠคํŠธ์˜ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๊ณผ์ •
  • ํŒจ์‹œ๋ธŒ ์˜คํ”ˆ(passive open): ์—ฐ๊ฒฐ ์ˆ˜๋ฝ ํ˜ธ์ŠคํŠธ์˜ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๊ณผ์ •

์—ฐ๊ฒฐ ์ข…๋ฃŒ: 4-way handshake

์†ก์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฐ๊ฐ ํ•œ ๋ฒˆ์”ฉ FIN๊ณผ ACK๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ TCP ์—ฐ๊ฒฐ ์ข…๋ฃŒ

ํฌ ์›จ์ด ํ•ธ๋“œ์„ธ์ดํฌ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

์†ก์ˆ˜์‹  ๋ฐฉํ–ฅ ์„ธ๊ทธ๋จผํŠธ ์„ธ๊ทธ๋จผํŠธ์— ํฌํ•จ๋œ ์ฃผ์š” ์ •๋ณด ๋น„์œ 
A → B FIN ์„ธ๊ทธ๋จผํŠธ - 1๋กœ ์„ค์ •๋œ FIN ๋น„ํŠธ '์—ฐ๊ฒฐ ๋Š์„๊ฒŒ์š”'
B → A ACK ์„ธ๊ทธ๋จผํŠธ - ํ˜ธ์ŠคํŠธ A๊ฐ€ ์ „์†กํ•œ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ
- 1๋กœ ์„ค์ •๋œ ACK ๋น„ํŠธ
'๋„ค, ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค'
B → A FIN ์„ธ๊ทธ๋จผํŠธ - 1๋กœ ์„ค์ •๋œ FIN ๋น„ํŠธ '์ด์ œ ์—ฐ๊ฒฐ ๋Š์–ด์š”'
A → B ACK ์„ธ๊ทธ๋จผํŠธ - ํ˜ธ์ŠคํŠธ B๊ฐ€ ์ „์†กํ•œ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ
- 1๋กœ ์„ค์ •๋œ ACK ๋น„ํŠธ
'๋„ค, ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค'
  • ์•กํ‹ฐ๋ธŒ ํด๋กœ์ฆˆ(active close): ์ข…๋ฃŒ ์‹œ์ž‘ ํ˜ธ์ŠคํŠธ์˜ ์ข…๋ฃŒ ๊ณผ์ •
  • ํŒจ์‹œ๋ธŒ ํด๋กœ์ฆˆ(passive close): ์ข…๋ฃŒ ์ˆ˜๋ฝ ํ˜ธ์ŠคํŠธ์˜ ์ข…๋ฃŒ ๊ณผ์ •

TCP ์ƒํƒœ(state)

ํ˜„์žฌ ์–ด๋–ค ํ†ต์‹  ๊ณผ์ •์— ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋ณด๋กœ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” TCP๋ฅผ ์Šคํ…Œ์ดํŠธํ’€(stateful) ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ๋ถ€๋ฆ„

TCP ์ƒํƒœ ์ข…๋ฅ˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์—ฐ๊ฒฐ์ด ์ˆ˜๋ฆฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ
    • CLOSED: ์•„๋ฌด๋Ÿฐ ์—ฐ๊ฒฐ์ด ์—†๋Š” ์ƒํƒœ
    • LISTEN: ์ผ์ข…์˜ ์—ฐ๊ฒฐ ๋Œ€๊ธฐ ์ƒํƒœ(SYN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ)
      • ์„œ๋ฒ„๋กœ์„œ ๋™์ž‘ํ•˜๋Š” ํŒจ์‹œ๋ธŒ ์˜คํ”ˆ ํ˜ธ์ŠคํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ LISTEN ์ƒํƒœ ์œ ์ง€
      • LISTEN ํ˜ธ์ŠคํŠธ์—๊ฒŒ SYN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ด๋ฉด ์“ฐ๋ฆฌ ์›จ์ด ํ•ธ๋“œ์…ฐ์ดํฌ ์‹œ์ž‘

(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๊ณผ์ •์—์„œ ์ฃผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ
    • SYN-SENT: ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋‚ธ ๋’ค ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ
      • ์•กํ‹ฐ๋ธŒ ์˜คํ”ˆ ํ˜ธ์ŠคํŠธ๊ฐ€ SYN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ธ ๋’ค ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต์ธ SYN+ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
    • SYN-RECEIVED
      • ํŒจ์‹œ๋ธŒ ์˜คํ”ˆ ํ˜ธ์ŠคํŠธ๊ฐ€ SYN+ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ธ ๋’ค ๊ทธ์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
    • ESTABLISHED: ์—ฐ๊ฒฐ์ด ํ™•๋ฆฝ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ

  • ์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •์—์„œ ์ฃผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ
    • FIN-WAIT-1: ์ผ๋ฐ˜์ ์œผ๋กœ TCP ์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •์— ์žˆ์–ด FIN-WAIT-1์€ ์—ฐ๊ฒฐ ์ข…๋ฃŒ์˜ ์ฒซ ๋‹จ๊ณ„
    • CLOSE-WAIT: ์ข…๋ฃŒ ์š”์ฒญ์ธ FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์€ ํŒจ์‹œ๋ธŒ ํด๋กœ์ฆˆ ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ธ ํ›„ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ
    • FIN-WAIT-2: FIN-WAIT-2 ์ƒํƒœ์—์„œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›๊ณ  ์ƒ๋Œ€ ํ˜ธ์ŠคํŠธ์˜ FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
    • LAST-ACK: CLOSE-WAIT ์ƒํƒœ์—์„œ FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ ๋’ค ์ด์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
    • TIME-WAIT: ์•กํ‹ฐ๋ธŒ ํด๋กœ์ฆˆ ํ˜ธ์ŠคํŠธ๊ฐ€ FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ•œ ๋’ค, ์ด์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ ๋’ค ์ ‘์–ด๋“œ๋Š” ์ƒํƒœ
      • ํŒจ์‹œ๋ธŒ ํด๋กœ์ฆˆ ํ˜ธ์ŠคํŠธ๋Š” ๋งˆ์ง€๋ง‰ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด CLOSED ์ƒํƒœ๋กœ ์ „์ด
      • TIME-WAIT ์ƒํƒœ์˜ ์•กํ‹ฐ๋ธŒ ํด๋กœ์ฆˆ ํ˜ธ์ŠคํŠธ๋Š” ์ผ์ • ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฐ ๋’ค CLOSED ์ƒํƒœ๋กœ ์ „์ด
    • CLOSING

  • ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋กœ TCP ์ƒํƒœ ํ™•์ธ ๊ฐ€๋Šฅ → netstat

UDP(User Datagram Protocol)

TCP๋ณด๋‹ค ์‹ ๋ขฐ์„ฑ์€ ๋–จ์–ด์ง€์ง€๋งŒ, ๋น„๊ต์  ๋น ๋ฅธ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ

UDP ๊ตฌ์กฐ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

UDP ๋ฐ์ดํ„ฐ ๊ทธ๋žจ์˜ ๊ตฌ์กฐ

  • UDP๋Š” TCP์™€ ๋‹ฌ๋ฆฌ ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœํ† ์ฝœ
  • ๊ทธ๋ž˜์„œ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ๋ฐ ํ•ด์ œ, ์žฌ์ „์†ก์„ ํ†ตํ•œ ์˜ค๋ฅ˜ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด, ํ๋ฆ„ ์ œ์–ด ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ
    • ์ „์†ก ๋„์ค‘ ์ผ๋ถ€ ํŒจํ‚ท ์†Œ์‹ค๋  ์ˆ˜ ๋„ ์žˆ์Œ
  • ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€๋„ ์•Š์Œ: ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šค(stateless) ํ”„๋กœํ† ์ฝœ
  • UDP๋Š” TCP์— ๋น„ํ•ด ์ ์€ ์˜ค๋ฒ„ํ—ค๋“œ๋กœ ํŒจํ‚ท์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ
  • ์ฃผ๋กœ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค, ์ธํ„ฐ๋„ท ์ „ํ™”์ฒ˜๋Ÿผ ์‹ค์‹œ๊ฐ„์„ฑ์ด ๊ฐ•์กฐ๋˜๋Š” ์ƒํ™ฉ์—์„œ TCP๋ณด๋‹ค ๋” ๋งŽ์ด ์“ฐ์ž„

TCP์™€ UDP์˜ ์ „์†ก ๋น„๊ต(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)


TCP์˜ ์˜ค๋ฅ˜, ํ๋ฆ„, ํ˜ผ์žก ์ œ์–ด

TCP์˜ ๊ธฐ๋Šฅ

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

์žฌ์ „์†ก ๊ธฐ๋ฐ˜ ์˜ค๋ฅ˜ ์ œ์–ด

TCP ์„ธ๊ทธ๋จผํŠธ์˜ ์ฒดํฌ์„ฌ ํ•„๋“œ๋งŒ์œผ๋กœ ์˜ค๋ฅ˜ ๊ฒ€์ถœํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Œ

  • ์ฒดํฌ์„ฌ ํ•„๋“œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ›ผ์†๋œ ์—ฌ๋ถ€๋งŒ ๋‚˜ํƒ€๋‚ด๋Š” ํ•„๋“œ์ž„
  • ํŒจํ‚ท์ด ์œ ์‹ค๋˜๊ฑฐ๋‚˜ ์ž˜๋ชป ์ „์†ก๋˜๊ฑฐ๋‚˜, ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป ์ „์†ก๋œ ๊ฒฝ์šฐ์—๋Š” ์˜ค๋ฅ˜ ๊ฒ€์ถœํ•  ์ˆ˜ ์—†์Œ

TCP๊ฐ€ ์‹ ๋ขฐ์„ฑ์„ ์ œ๋Œ€๋กœ ๋ณด์žฅํ•˜๋ ค๋ฉด,

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

TCP๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์žฌ์ „์†กํ•˜๋Š” ์ƒํ™ฉ

  • ์ค‘๋ณต๋œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„ ๋•Œ

์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s

  • ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ
    • ํ˜ธ์ŠคํŠธ๊ฐ€ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•  ๋•Œ๋งˆ๋‹ค ์žฌ์ „์†ก ํƒ€์ด๋จธ(retransimission timer) ์‹œ์ž‘
    • ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ์žฌ์ „์†ก

์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s

 

์žฌ์ „์†ก ๊ธฐ๋ฒ•: ARQ(Automatic Repeat Request, ์ž๋™ ์žฌ์ „์†ก ์š”๊ตฌ)

  • ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ๋‹ต๋ณ€(ACK)๊ณผ ํƒ€์ž„์•„์›ƒ์„ ํ† ๋Œ€๋กœ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๊ณ ,
  • ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๋ฉ”์‹œ์ง€๋ฅผ ์žฌ์ „์†กํ•จ์œผ๋กœ์จ ์‹ ๋ขฐ์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๋ฐฉ์‹

[ARQ์˜ ๋Œ€ํ‘œ์ ์ธ ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹]

 

1. Stop-and-Wait ARQ

  • ์ œ๋Œ€๋กœ ์ „๋‹ฌํ–ˆ์Œ์„ ํ™•์ธํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š” ๋ฐฉ์‹
  • "์†ก์‹ ํ•˜๊ณ , ํ™•์ธ ๋ฐ›๊ณ , ์†ก์‹ ๋ฐ›๊ณ , ํ™•์ธ ๋ฐ›๊ณ , ..."
  • ์žฅ์ : ๋‹จ์ˆœํ•˜์ง€๋งŒ, ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅ
  • ๋‹จ์ : ๋„คํŠธ์›Œํฌ์˜ ์ด์šฉ ํšจ์œจ์ด ๋‚ฎ์•„์ง€๊ณ  ์„ฑ๋Šฅ์ด ์ €ํ•˜๋จ
    • ์†ก์‹  ํ˜ธ์ŠคํŠธ(A): ํ™•์ธ ์‘๋‹ต ๋ฐ›๊ธฐ ์ „์—๋Š” ๋” ๋ณด๋‚ด๊ณ  ์‹ถ์–ด๋„ ๋ชป ๋ณด๋ƒ„
    • ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ(B): ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด๋„ ํ•˜๋‚˜์”ฉ๋งŒ ํ™•์ธ ์‘๋‹ต
  • ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    • ๊ฐ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋„์ฐฉํ•˜๊ธฐ ์ „์ด๋ผ๋„ ์—ฌ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
    • ํŒŒ์ดํ”„๋ผ์ด๋‹(pipelining): ์—ฐ์†ํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ 

Stop-and-Wait ARQ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

2. Go-Back-N ARQ

  • ํŒŒ์ดํ”„๋ผ์ด๋‹ ๊ธฐ๋ฐ˜ ARQ ์ผ์ข…
  • ์—ฌ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†ก ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ๋ถ€ํ„ฐ ์ „๋ถ€ ์žฌ์ „์†ก
  • ์ˆœ์„œ ๋ฒˆํ˜ธ n๋ฒˆ์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋Š” 'n๋ฒˆ๋งŒ์˜' ํ™•์ธ ์‘๋‹ต์ด ์•„๋‹Œ 'n๋ฒˆ๊นŒ์ง€์˜ ๋ˆ„์  ํ™•์ธ ์‘๋‹ต'(CACK, Cumulative Acknowledgment)

Go-Back-N ARQ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

๋น ๋ฅธ ์žฌ์ „์†ก(fast retransmit)
์žฌ์ „์†ก ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „์ด๋ผ๋„ ์„ธ ๋ฒˆ์˜ ๋™์ผํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด ๊ณง๋ฐ”๋กœ ์žฌ์ „์†ก
- ํƒ€์ด๋จธ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
๋น ๋ฅธ ์žฌ์ „์†ก(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

3. Selective Repeat ARQ

  • ์„ ํƒ์ ์œผ๋กœ ์žฌ์ „์†ก, ๊ฐ๊ฐ์˜ ํŒจํ‚ท๋“ค์— ๋Œ€ํ•ด ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹
  • Go-Back-N ARQ์˜ ACK ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋ˆ„์  ํ™•์ธ ์‘๋‹ต์ด๋ผ๋ฉด,
    Selective Repeat ARQ์˜ ACK ์„ธ๊ทธ๋จผํŠธ๋Š” ๊ฐœ๋ณ„ ํ™•์ธ ์‘๋‹ต(Selective Acknowledgment)
  • ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ ํ˜ธ์ŠคํŠธ๋Š” Selective Repeat ARQ ์ง€์›
  • Selective Repeat ARQ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ Go-Back-N ARQ๋กœ ๋™์ž‘

Selective Repeat ARQ ์ „์†ก(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)


ํ๋ฆ„์ œ์–ด

ํŒŒ์ดํ”„๋ผ์ด๋‹ ๊ธฐ๋ฐ˜์˜ Go-Back-N ARQ/Selective Repeat ARQ ๋ฐฉ์‹์ด ํ•œ ๋ฒˆ์— ๋ฌดํ•œํžˆ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

์ •์ƒ ๋™์ž‘ํ•˜๋ ค๋ฉด,

  • ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ํ•œ ๋ฒˆ์— ์–ผ๋งˆ๋‚˜ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฐ˜๋“œ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•จ
  • ํ˜ธ์ŠคํŠธ๊ฐ€ ํ•œ ๋ฒˆ์— ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ์˜ ์–‘์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ
  • ํ•œ ๋ฒˆ์— n๊ฐœ์˜ ๋ฐ”์ดํŠธ๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด n๋ฐ”์ดํŠธ๋งŒ ๋ณด๋‚ด์•ผ ํ•จ

TCP ํ๋ฆ„์ œ์–ด๋Š” ์†ก์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๊ณ ๋ คํ•˜๋ฉฐ ์†ก์ˆ˜์‹  ์†๋„๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

  • Stop-and-Wait ARQ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ„๋„์˜ ํ๋ฆ„ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ
  • ํŒŒ์ดํ”„๋ผ์ด๋‹ ๊ธฐ๋ฐ˜์˜ Go-Back-N ARQ/Selective Repeat ARQ์—์„œ๋Š” ํ๋ฆ„ ์ œ์–ด ํ•„์š”

TCP ํ๋ฆ„ ์ œ์–ด ๊ธฐ๋ฒ•: ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ(sliding window)

์œˆ๋„์šฐ(window): ์†ก์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ํŒŒ์ดํ”„๋ผ์ด๋‹ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€๋Ÿ‰

์ฆ‰, ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋งŒํผ ํ™•์ธ ์‘๋‹ต์„ ๋ฐ›์ง€ ์•Š๊ณ ๋„ ํ•œ ๋ฒˆ์— ์ „์†ก ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ

์œˆ๋„์šฐ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

ex)

 

์ฒซ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ ~ ๋„ค ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ๊นŒ์ง€๊ฐ€ ํ™•์ธ ์‘๋‹ต์„ ๋ฐ›์ง€ ์•Š๊ณ ๋„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์–‘

- ์œˆ๋„์šฐ ํฌ๊ธฐ์—์„œ ๋ฒ—์–ด๋‚œ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ์„ธ๊ทธ๋จผํŠธ๋Š” ์ „์†กํ•  ์ˆ˜ ์—†์Œ!

 

 

์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด,

์œˆ๋„์šฐ๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ ์ด๋™

 

 

์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๋กœ๋ถ€ํ„ฐ ๋‘ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด,

์œˆ๋„์šฐ๊ฐ€ ์ ์ฐจ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฏธ๋„๋Ÿฌ์ง€๋“ฏ ์›€์ง์ž„

 

 

  • ์†ก์‹  ์ธก์˜ ์œˆ๋„์šฐ(์†ก์‹  ์œˆ๋„์šฐ)๋„ ์žˆ๋‹ค.
    • ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๋Š” TCP ํ—ค๋”(์œˆ๋„์šฐ ํ•„๋“œ)๋ฅผ ํ†ตํ•ด ์†ก์‹  ํ˜ธ์ŠคํŠธ์—๊ฒŒ ์ž์‹ ์ด ๋ฐ›์„ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์•Œ๋ ค์คŒ
    • ์†ก์‹  ์œˆ๋„์šฐ: ํ—ค๋”๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ˆ˜์‹  ์œˆ๋„์šฐ ํ† ๋Œ€๋กœ ์—ฐ์‚ฐ

ํ๋ฆ„ ์ œ์–ด(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)


ํ˜ผ์žก ์ œ์–ด

ํ˜ผ์žก(congestion): ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ธํ•ด ํŒจํ‚ท์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Šฆ์–ด์ง€๊ฑฐ๋‚˜ ์œ ์‹ค๋  ์šฐ๋ ค๊ฐ€ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ

 

TCP์˜ ํ˜ผ์žก ์ œ์–ด(congestion control)

  • ์†ก์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ํ˜ผ์žกํ•œ ์ •๋„์— ๋งž์ถฐ ์œ ๋™์ ์œผ๋กœ ์ „์†ก๋Ÿ‰์„ ์กฐ์ ˆํ•˜๋Š” ๊ธฐ๋Šฅ
  • ํ๋ฆ„ ์ œ์–ด์˜ ์ฃผ์ฒด๊ฐ€ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๋ผ๋ฉด ํ˜ผ์žก ์ œ์–ด์˜ ์ฃผ์ฒด๋Š” ์†ก์‹  ํ˜ธ์ŠคํŠธ
  • ํ˜ผ์žก ์œˆ๋„์šฐ(congestion window): ํ˜ผ์žก ์—†์ด ์ „์†กํ•  ์ˆ˜ ์žˆ์„ ๋ฒ•ํ•œ ๋ฐ์ดํ„ฐ์–‘
    • ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ€ ํฌ๋ฉด? ํ•œ ๋ฒˆ์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๊ฐ€ ๋งŽ์Œ
    • ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ€ ์ž‘์œผ๋ฉด? (๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•œ ์ƒํ™ฉ) ํ•œ ๋ฒˆ์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๊ฐ€ ์ ์Œ
  • ์ˆ˜์‹  ์œˆ๋„์šฐ๋Š” ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ํ—ค๋”๋กœ ์•Œ๋ ค์คŒ
  • ํ˜ผ์žก ์œˆ๋„์šฐ๋Š” ์†ก์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ์•Œ์•„์„œ ์ง์ ‘ ๊ณ„์‚ฐํ•ด์„œ ์•Œ์•„๋‚ด์•ผ ํ•จ

TCP์˜ ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ˜ผ์žก ์ œ์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋ จ์˜ ๋ฐฉ๋ฒ•

 

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ AIMD(Additive Increase/Multiplicative Decrease)

  • ํ•ฉ์œผ๋กœ ์ฆ๊ฐ€, ๊ณฑ์œผ๋กœ ๊ฐ์†Œ
  • ํ˜ผ์žก์ด ๊ฐ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ RTT(Round Trip Time)๋งˆ๋‹ค 1์”ฉ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€
    • RTT: ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•œ ๋’ค ๊ทธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ๋ฐ›๋Š” ๋ฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
  • ํ˜ผ์žก์ด ๊ฐ์ง€๋˜๋ฉด, ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๋™์ž‘์„ ๋ฐ˜๋ณต
    • ์ค‘๋ณต๋œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„ ๋•Œ, ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ผ์žก ๊ฐ์ง€ํ•จ

AIMD๋ฅผ ๊ณ ๋„ํ™”ํ•˜๋Š” ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

1. ๋А๋ฆฐ ์‹œ์ž‘(slow start) ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

  • ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ฌธ์ œ ์—†์ด ์ˆ˜์‹ ๋œ ACK ์„ธ๊ทธ๋จผํŠธ ํ•˜๋‚˜๋‹น 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ์‹
  • ํ˜ผ์žก ์œˆ๋„์šฐ๋Š” RTT๋งˆ๋‹ค 2๋ฐฐ์”ฉ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€: ์ดˆ๊ธฐ ์ „์†ก ์†๋„ ๋น ๋ฅธ ํ™•๋ณด
  • ๋А๋ฆฐ ์‹œ์ž‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Œ
  • ๋А๋ฆฐ ์‹œ์ž‘ ์ž„๊ณ„์น˜(slow start threshold)๋ผ๋Š” ํŠน์ • ๊ฐ’๊นŒ์ง€๋งŒ ํ˜ผ์žก ์œˆ๋„์šฐ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Œ

 

 

 

  • ํ˜ผ์žก ์œˆ๋„์šฐ ๊ฐ’์ด ๊ณ„์† ์ฆ๊ฐ€ํ•˜๋‹ค๊ฐ€,
    1. ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ๋А๋ฆฐ ์‹œ์ž‘ ์ž„๊ณ„์น˜ ์ด์ƒ์ด ๋˜๊ฑฐ๋‚˜,
    2. ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜
    3. ์„ธ ๋ฒˆ์˜ ์ค‘๋ณต๋œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด
  • ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜ ์„ ํƒ
์ƒํ™ฉ ๋ถ„๋ฅ˜ ๋ฐฉ๋ฒ•
ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒ ํ˜ผ์žก ์œˆ๋„์šฐ ๊ฐ’์„ 1๋กœ, ๋А๋ฆฐ ์‹œ์ž‘ ์ž„๊ณ„์น˜๋ฅผ ํ˜ผ์žก์ด ๊ฐ์ง€๋˜์—ˆ์„ ์‹œ์ ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ๊ฐ’์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ ๋’ค ๋А๋ฆฐ ์‹œ์ž‘ ์žฌ๊ฐœ
ํ˜ผ์žก ์œˆ๋„์šฐ >= ๋А๋ฆฐ ์‹œ์ž‘ ์ž„๊ณ„์น˜ ๋А๋ฆฐ ์‹œ์ž‘ ์ข…๋ฃŒ, ํ˜ผ์žก ํšŒํ”ผ ์ˆ˜ํ–‰
์„ธ ๋ฒˆ์˜ ์ค‘๋ณต ACK ๋ฐœ์ƒ (๋น ๋ฅธ ์žฌ์ „์†ก ํ›„) ๋น ๋ฅธ ํšŒ๋ณต ์ˆ˜ํ–‰

 

2. ํ˜ผ์žก ํšŒํ”ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜: RTT๋งˆ๋‹ค ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ 1MSS์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€
  • ๋А๋ฆฐ ์‹œ์ž‘ ์ž„๊ณ„์น˜๋ฅผ ๋„˜์–ด์„œ๋ฉด ํ˜ผ์žก ์—ฌ์ง€๊ฐ€ ์žˆ์œผ๋‹ˆ ์กฐ์‹ฌํ•ด์„œ ํ˜ผ์žก ์œˆ๋„์šฐ ์ฆ๊ฐ€ํ•˜๊ธฐ

ํ˜ผ์žก ํšŒํ”ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

3. ๋น ๋ฅธ ํšŒ๋ณต(fast recovery) ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์„ธ ๋ฒˆ์˜ ์ค‘๋ณต๋œ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด, ๋น ๋ฅธ ์žฌ์ „์†ก + ๋น ๋ฅธ ํšŒ๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์„ธ ๋ฒˆ์˜ ์ค‘๋ณต ์„ธ๊ทธ๋จผํŠธ ์ˆ˜์‹  vs ํƒ€์ž„ ์•„์›ƒ → ํƒ€์ž„ ์•„์›ƒ์ด ๋” ํฐ ๋ฌธ์ œ์ž„
  • ๋น ๋ฅธ ์ „์†ก๋ฅ  ํšŒ๋ณต์„ ์œ„ํ•ด ๋А๋ฆฐ ์‹œ์ž‘์€ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ˜ผ์žก ํšŒํ”ผ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๋‹จ, ๋น ๋ฅธ ํšŒ๋ณต ๋„์ค‘์ด๋ผ๋„ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์‹œ ๋А๋ฆฐ ์‹œ์ž‘์„ ์ˆ˜ํ–‰

ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…ํ•ฉ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

ECN: ์ค‘๊ฐ„ ๋…ธ๋“œ์˜ ๋„์›€์œผ๋กœ ํ˜ผ์žก์„ ์ œ์–ด

  • ํ˜ผ์žก ๊ฐ์ง€, ํ˜ผ์žก ์œˆ๋„์šฐ ๊ณ„์‚ฐ, ์žฌ์ „์†ก์€ ์˜ค๋กœ์ง€ ์†ก์‹  ํ˜ธ์ŠคํŠธ์˜ ๋ชซ์ด์—ˆ์Œ
  • ํ˜ผ์žก์„ ํšŒํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์ค‘๊ฐ„ ์žฅ์น˜(์ฃผ๋กœ ๋ผ์šฐํ„ฐ)์˜ ๋„์›€์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด ECN์ž„
  • ํ˜ธ์ŠคํŠธ๊ฐ€ ECN์„ ์ง€์›ํ•  ๊ฒฝ์šฐ, TCP/IP ํ—ค๋”์— ECN ๊ด€๋ จ ๋น„ํŠธ ์ถ”๊ฐ€

ECN(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์†ก์‹  ํ˜ธ์ŠคํŠธ๋งŒ ํ˜ผ์žก ์ œ์–ด๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ดํ›„์— ๋น„๋กœ์†Œ ํ˜ผ์žก ์ œ์–ด
  • ECN์„ ์ด์šฉํ•˜๋ฉด ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ†ตํ•ด ๋” ๋น ๋ฅด๊ฒŒ ํ˜ผ์žก์„ ๊ฐ์ง€ ๊ฐ€๋Šฅ