์ „์†ก ๊ณ„์ธต

์ „์†ก ๊ณ„์ธต์€ ๋ชฉ์ ์ง€๊นŒ์ง€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค. ํ•ด๋‹น ๊ณ„์ธต์˜ ๊ธฐ๋Šฅ์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • ์˜ค๋ฅ˜๋ฅผ ์ ๊ฒ€ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ์žฌ์ €์†ก์„ ์š”์ฒญํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  • ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชฉ์ ์ง€๊ฐ€ ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ์ง€ ์‹๋ณ„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

๋˜ํ•œ, ์ „์†ก ๊ณ„์ธต์—๋“œ ํฌ๊ฒŒ 2๊ฐ€์ง€ ํ†ต์‹  ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • ์—ฐ๊ฒฐํ˜• ํ†ต์‹  : ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ์ ์ง€์— ๋ฌธ์ œ ์—†์ด ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹ 
  • ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹  : ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹ 

TCP

Transmission Control Protocol์˜ ์•ฝ์ž๋กœ, ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ œ๊ณตํ•œ๋‹ค. ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์—ฐ๊ฒฐํ˜• : ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์—ฐ๊ฒฐ์„ ๋งบ์Œ
  • ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ : ๋ฐ์ดํ„ฐ ์†์‹ค ์‹œ ์žฌ์ „์†ก
  • ์ˆœ์„œ ๋ณด์žฅ : ๋ณด๋‚ธ ์ˆœ์„œ๋Œ€๋กœ ์ˆ˜์‹  ์ธก์— ์ „๋‹ฌ
  • ํ๋ฆ„ ์ œ์–ด : ์ˆ˜์‹ ์ž๊ฐ€ ๊ฐ๋‹น ๊ฐ€๋Šฅํ•œ ๋งŒํผ ์ „์†ก
  • ํ˜ผ์žก ์ œ์–ด : ๋„คํŠธ์›Œํฌ ํ˜ผ์žก ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ „์†ก๋Ÿ‰ ์กฐ์ ˆ
  • ์†๋„ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆผ : ์—ฌ๋Ÿฌ ์ œ์–ด ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์— UDP๋ณด๋‹ค ๋А๋ฆผ

์‚ฌ์šฉํ•˜๋Š” ๊ณณ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์›น HTTP/HTTPS
  • ํŒŒ์ผ ์ „์†ก
  • ์ด๋ฉ”์ผ
  • SSH
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ

3-way Handshake

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์ „์— ๋จผ์ € ์—ฐ๊ฒฐ์„ ๋งบ๋Š”๋‹ค. ์ด ๊ณผ์ •์„ 3-way Handshake๋ผ๊ณ  ํ•œ๋‹ค. ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • Client โ†’ Server : SYN
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
    • ์ดํ›„ ํด๋ผ์ด์–ธํŠธ๋Š” CLOSED์—์„œ SYN-SENT ์ƒํƒœ๋กœ ๋ณ€ํ•œ๋‹ค.
  • Server โ†’ Client : SYN + ACK
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์‘๋‹ตํ•œ๋‹ค.
    • ์ดํ›„ ์„œ๋ฒ„์˜ ์ƒํƒœ๋Š” LISTEN์—์„œ SYN_RECEIVED ์ƒํƒœ๋กœ ๋ณ€ํ•œ๋‹ค.
  • Client โ†’ Server : ACK
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ํ™•์ธํ•œ๋‹ค.
    • ์ดํ›„ Client์™€ Server์€ ESTABLISHED ์ƒํƒœ๋กœ ๋ณ€ํ•œ๋‹ค.

๋‹จ์ˆœ ์—ฐ๊ฒฐ ์—ฌ๋ถ€๋งŒ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฃผ์š” ๋ชฉ์ ์„ ๊ฐ€์ง„๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ
  • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ
  • ์–‘์ชฝ์ด ์„œ๋กœ์˜ ์ดˆ๊ธฐ ์ˆœ์„œ ๋ฒˆํ˜ธ๋ฅผ ๋™๊ธฐํ™”

๊ทธ๋Ÿฌ๊ธฐ ๋•Œ๋ฌธ์— Sequence Number๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฐ๊ฒฐ ์‹œ์ž‘ ์‹œ์ ์— ์–‘์ชฝ์ด ์ดˆ๊ธฐ Sequence Number๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„์•ผ ํ•œ๋‹ค.

4-way Handshake

TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ๋•Œ๋Š” 4-way Handshake ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฐ๊ฒฐ๊ณผ ๋‹ฌ๋ฆฌ 4๋ฒˆ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ด์œ ๋Š” TCP๊ฐ€ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋” ์ด์ƒ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด๋„ ์„œ๋ฒ„๊ฐ€ ์•„์ง ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„ ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • Client โ†’ Server : FIN
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
    • ์ดํ›„ ํด๋ผ์ด์–ธํŠธ๋Š” ESTABLISHED์—์„œ FIN_WAIT_1 ์ƒํƒœ๋กœ ๋ณ€ํ•œ๋‹ค.
  • Server โ†’ Client : ACK
    • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ›์€ ์š”์ฒญ์„ ๋ฐ›์•˜๋‹ค๊ณ  ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.
    • ์„œ๋ฒ„์˜ ์ƒํƒœ๋Š” ESTABLISHED์—์„œ CLOSE_WAIT๋กœ ๋ณ€ํ•œ๋‹ค.
    • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ACK๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” FIN_WAIT_1์—์„œ FIN_WAIT_2 ์ƒํƒœ๋กœ ๋ณ€ํ•œ๋‹ค.
    • ์ด ๊ณผ์ •์—์„œ ์•„์ง ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • Server โ†’ Client : FIN
    • ์„œ๋ฒ„๋„ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•œ ๋’ค ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ข…๋ฃŒ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
    • ์„œ๋ฒ„์˜ ์ƒํƒœ๋Š” CLOSE_WAIT์—์„œ LAST_ACK๋กœ ๋ณ€ํ•œ๋‹ค.
  • Client โ†’ Server : ACK
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์˜จ ์ข…๋ฃŒ ์š”์ฒญ์„ ํ™•์ธํ–ˆ๋‹ค๊ณ  ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.
    • ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” FIN_WAIT_2 โ†’ TIME_WAIT โ†’ CLOSE ์ˆœ์„œ๋กœ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•œ๋‹ค.
    • ์„œ๋ฒ„๋Š” ACK๋ฅผ ๋ฐ›์œผ๋ฉด LAST_ACK์—์„œ CLOSED๋กœ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ TIME_WAIT ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋Š” ์ด์œ ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ ๋งˆ์ง€๋ง‰ ACK๊ฐ€ ์œ ์‹ค๋  ์ˆ˜ ์žˆ๋‹ค.
    • ์œ ์‹ค๋  ๊ฒฝ์šฐ ์„œ๋ฒ„๊ฐ€ FIN๋ฅผ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค.
    • ์ด๋•Œ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ CLOSED๊ฐ€ ๋˜๋ฒ„๋ฆฌ๋ฉด ์„œ๋ฒ„์˜ ์žฌ์ „์†ก์— ๋Œ€์‘ํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ด์ „ ์—ฐ๊ฒฐ์˜ ํŒจํ‚ท์ด ์ƒˆ ์—ฐ๊ฒฐ์— ์„ž์ด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.
    • ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์œผ๋กœ ์ธํ•ด ํŒจํ‚ท์ด ๋’ค๋Šฆ๊ฒŒ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๋•Œ, ๊ฐ™์€ IP์™€ ํฌํŠธ ์กฐํ•ฉ์œผ๋กœ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์ด ๋ฐ”๋กœ ๋งŒ๋“ค์–ด์กŒ์„ ๋•Œ, ํŒจํ‚ท์ด ์„ž์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

UDP

User Datagram Protocol์˜ ์•ฝ์ž๋กœ, ๋น ๋ฅธ ์ „์†ก์„ ์šฐ์„ ํ•œ๋‹ค. ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

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

์‚ฌ์šฉํ•˜๋Š” ๊ณณ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์‹ค์‹œ๊ฐ„ ์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ
  • ์˜จ๋ผ์ธ ๊ฒŒ์ž„
  • ์Œ์„ฑ ํ†ตํ™”
  • DNS
  • DHCP

ํ๋ฆ„ ์ œ์–ด

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

  • ์†ก์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ˆ˜์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„๊ฐ€ ๋А๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • ์†ก์‹ ์ž๊ฐ€ ์ดˆ๋‹น 100MB๋ฅผ ๋ณด๋‚ด๋Š”๋ฐ, ์ˆ˜์‹ ์ž๊ฐ€ ์ดˆ๋‹น 10MB๋ฐ–์— ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ˆ˜์‹  ๋ฒ„ํผ๊ฐ€ ๊ฐ€๋“ ์ฐฌ๋‹ค.
    • TCP ์ˆ˜์‹  ์ธก์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ์ˆ˜์‹  ๋ฒ„ํผ๊ฐ€ ์žˆ๋‹ค.
    • ์ˆ˜์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ์ „๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋Š” ์ด ๋ฒ„ํผ์— ์ €์žฅ๋œ๋‹ค.
  • ๋ฒ„ํผ์— ๊ฐ€๋“ ์ฐจ๋ฉด ์ดํ›„ ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฒ„๋ ค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— TCP๋Š” ํ๋ฆ„ ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

TCP๋Š” ์œˆ๋„์šฐ๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ด ์†ก์‹ ๋Ÿ‰์„ ์กฐ์ ˆํ•œ๋‹ค. ์ˆ˜์‹ ์ž๋Š” ACK๋ฅผ ๋ณด๋‚ผ ๋•Œ ํ˜„์žฌ ์–ผ๋งˆ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์ด ๊ฐ’์„ ์ˆ˜์‹  ์œˆ๋„์šฐ๋ผ๊ณ  ํ•œ๋‹ค.

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋ณด๋‚ด๊ณ  ACK๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค. ACK๋ฅผ ๋ฐ›์œผ๋ฉด ์œˆ๋„์šฐ๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

image.png

ํ˜ผ์žก ์ œ์–ด

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

  • Slow Start
    • ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ๊ฐ’์„ ์ž‘์€ ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•œ ๋’ค, ACK๋ฅผ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.
  • Congestion Avoidance
    • ์–ด๋А ๊ธฐ์ค€๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ๋” ์ด์ƒ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š๊ณ , ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    • ์ด๋•Œ ๊ธฐ์ค€๊ฐ’์„ ssthresh Slow Start Threshold๋ผ๊ณ  ํ•œ๋‹ค.
  • Fast Retransmit
    • TCP๋Š” ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์†์‹ค๋˜๋ฉด ์žฌ์ „์†ก์„ ํ•ด์•ผํ•˜๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ๋™์ผํ•œ ACK๊ฐ€ 3๋ฒˆ ์ค‘๋ณตํ•ด์„œ ์˜ค๋ฉด ์†ก์‹ ์ž๋Š” ํŠน์ • ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์†์‹ค๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค.
    • ์ด๋ฅผ 3 Duplicate ACKs๋ผ๊ณ  ํ•œ๋‹ค.
    • ์ด๋•Œ ํƒ€์ž„์•„์›ƒ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์žฌ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์„ Fast Retransmit๋ผ๊ณ  ํ•œ๋‹ค.
  • Fast Recovery
    • Fast Retransmit ์ดํ›„ ํ˜ผ์žก ์œ„๋„์šฐ๋ฅผ ์™„์ „ํžˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ , ์–ด๋А ์ •๋„ ์ค„์ธ ์ƒํƒœ์—์„œ ํšŒ๋ณต์„ ์‹œ๋„ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ’์„ ํฌ๊ฒŒ ์ค„์ด๊ณ , Slow Start๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ๋ฐ˜๋ฉด 3 Duplicate ACK๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Fast Retransmit๊ณผ Fast Recovery๊ฐ€ ๋™์ž‘ํ•œ๋‹ค.

ํฌํŠธ ๋ฒˆํ˜ธ ์ฒด๊ณ„

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ํ•œ ์ปดํ“จํ„ฐ ์•ˆ์—์„œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฒˆํ˜ธ์ด๋‹ค. IP ์ฃผ์†Œ๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ๋ผ๋ฉด, ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ปดํ“จํ„ฐ ์•ˆ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ๊ธฐ ์œ„ํ•œ ๋ฒˆํ˜ธ์ด๋‹ค. ํฌํŠธ ๋ฒˆํ˜ธ์˜ ๋ฒˆํ˜ธ๋Š” 0๋ฒˆ๋ถ€ํ„ฐ 65535๋ฒˆ๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ 16๋น„ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • 0 ~ 1023 : ์ฃผ์š” ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ, Well-known Port
  • 1024 ~ 49151 : ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋“ฑ๋กํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ, Registered Port
  • 49152 ~ 65535 : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ, Dynamic/Private/Ephemeral Port

์„œ๋ฒ„๋Š” ๋ณดํ†ต ์ •ํ•ด์ง„ ํฌํŠธ๋ฅผ ์—ด๊ณ  ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์ž„์‹œ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

NAT

Network Address Translation์˜ ์•ฝ์ž๋กœ, IP ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ฃผ๋กœ ์‚ฌ์„ค IP์™€ ๊ณต์ธ IP๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋™์ž‘ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ๋…ธํŠธ๋ถ๊ณผ ๊ณต์œ ๊ธฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•œ๋‹ค.
    • ๋…ธํŠธ๋ถ ์‚ฌ์„ค IP: 192.168.0.10
    • ๊ณต์œ ๊ธฐ ๊ณต์ธ IP: 203.0.113.10
    • ์›น ์„œ๋ฒ„ IP: 142.250.207.14
  • ๋…ธํŠธ๋ถ์ด ์›น ์„œ๋ฒ„์— ์ ‘์†ํ•œ๋‹ค.
    • 192.168.0.10:52341 โ†’ 142.250.207.14:443
  • ํ•ด๋‹น ์š”์ฒญ์ด ๊ณต์œ ๊ธฐ๋ฅผ ์ง€๋‚˜๋ฉด์„œ NAT๊ฐ€ ์ ์šฉ๋œ๋‹ค.
    • 203.0.113.10:60001 โ†’ 142.250.207.14:443
  • ๊ณต์œ ๊ธฐ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ NAT ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜์—ฌ ๋‚ด๋ถ€ ์ฃผ์†Œ์™€ ๋ณ€ํ™˜๋œ ์™ธ๋ถ€ ์ฃผ์†Œ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์›น ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.
    • 142.250.207.14:443 โ†’ 203.0.113.10:60001
  • ํ•ด๋‹น ์‘๋‹ต์„ ๋ฐ›์€ ๊ณต์œ ๊ธฐ๋Š” NAT ํ…Œ์ด๋ธ”์„ ๋ณด๊ณ  ์›๋ž˜ ๋‚ด๋ถ€ ์ฃผ์†Œ๋กœ ๋‹ค์‹œ ๋ณ€ํ™˜ํ•œ๋‹ค.
    • 142.250.207.14:443 โ†’ 192.168.0.10:52341

์—ฌ๋Ÿฌ ๋‚ด๋ถ€ ๊ธฐ๊ธฐ๊ฐ€ ํ•˜๋‚˜์˜ ๊ณต์ธ IP๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๊นŒ์ง€ ํ•จ๊ป˜ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ฅผ PAT ๋˜๋Š” NAPT๋ผ๊ณ  ํ•œ๋‹ค.

  • ์žฅ์ 
    • ๊ณต์ธ IP ์ ˆ์•ฝ
    • ๋‚ด๋ถ€๋ง ๋ณดํ˜ธ
    • ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ ์šฉ์ด
  • ๋‹จ์ 
    • ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ ๊ธฐ๊ธฐ๋กœ ์ง์ ‘ ์ ‘๊ทผ ์–ด๋ ค์›€
    • P2P ํ†ต์‹  ๋ณต์žก
    • NAT ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ ํ•„์š”
    • ์ข…๋‹จ ๊ฐ„ ์—ฐ๊ฒฐ์„ฑ ์•ฝํ™”

NAT ํ™˜๊ฒฝ์—์„œ๋Š” ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ ์„œ๋ฒ„์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

  • ์ง‘ ๋‚ด๋ถ€์˜ PC์—์„œ ์›น ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค.
    • ๋‚ด๋ถ€ ์„œ๋ฒ„: 192.168.0.10:8080
    • ๊ณต์œ ๊ธฐ ๊ณต์ธ IP: 203.0.113.10
  • ์™ธ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ ์ฃผ์†Œ๋กœ ์ ‘์†ํ•œ๋‹ค.
    • 203.0.113.10:80
  • ๊ณต์œ ๊ธฐ๊ฐ€ ์ด ์š”์ฒญ์„ ๋‚ด๋ถ€ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • 203.0.113.10:80 โ†’ 192.168.0.10:8080

์ด๊ฒƒ์„ ํฌํŠธ ํฌ์›Œ๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.