• toc {:toc}

Notice

Computer Networks ๊ธ€์€ ๊ฒฝํฌ๋Œ€ํ•™๊ต ์†Œํ”„ํŠธ์›จ์–ด์œตํ•ฉ๋Œ€ํ•™ ์ด์„ฑ์› ๊ต์ˆ˜๋‹˜์˜ [์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ CSE302] ์ˆ˜์—…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

Transport Layer Basic

  • TCP, UDP

Process-to-Process Delivery

  • 2๊ณ„์ธต ๋งํฌ ๊ณ„์ธต์€ ๋‘ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋งํฌ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ”„๋ ˆ์ž„์„ ์ „๋‹ฌํ•˜๋Š”, Node-to-Node ์ „๋‹ฌ์ด ์ด๋ค„์กŒ๋‹ค.
  • ์ด์ „ 2๊ฐœ ์ด์ƒ์˜ ์ค„, 3๊ฐœ ์ด์ƒ์˜ ๊ธฐ๊ธฐ๋“ค์„ ์—ฐ๊ฒฐํ•œ ๊ฒƒ์ด ๋„คํŠธ์›Œํฌ๋ผ๊ณ  ๋งํ–ˆ๊ณ , Host-to-Host ์ „๋‹ฌ์ด ์ด๋ค„์กŒ๋‹ค.
  • Transport(์ดํ•˜ ํŠธ๋žœ์ŠคํฌํŠธ) ๊ณ„์ธต์€ Process-to-Process ์ „๋‹ฌ์ด ์ด๋ค„์ง„๋‹ค. ์ด๋•Œ Process๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค.

image

  • ์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด์— ์ „์†ก์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์†ก์‹  ์ปดํ“จํ„ฐ ์•ˆ์˜ ํ”„๋กœ๊ทธ๋žจ ์ค‘์— Source ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๊ณ , ์ˆ˜์‹  ์ปดํ“จํ„ฐ ์•ˆ์— Destination ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์–ด, ๋‘˜ ์‚ฌ์ด๋ฅผ ์˜ค๊ณ  ๊ฐ„๋‹ค.
  • ๋ฉ”์‹œ์ง€์˜ ๋ถ€๋ถ„, ์ฆ‰ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.
  • ๋‘ ํ”„๋กœ์„ธ์Šค๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ด€๊ณ„๋กœ ํ†ต์‹ ํ•œ๋‹ค.

Client/Server Paradigm

  • ๋Œ€๋ถ€๋ถ„์˜ Process-to-Process ํ†ต์‹ ์€ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„(Client/Server) ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ : Local host์˜ ํ”„๋กœ์„ธ์Šค
  • ์„œ๋ฒ„ : ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” remote host์˜ ํ”„๋กœ์„ธ์Šค
  • ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ๋‘ ํ”„๋กœ์„ธ์Šค๋Š” ๋ชจ๋‘ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ–๋Š”๋‹ค.
    • day time Client process
    • day time Server process

Addressing

  • 2๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋งํฌ์—์„œ ํ”„๋ ˆ์ž„์€ MAC ์ฃผ์†Œ๊ฐ€ ํ•„์š”
  • 3๊ณ„์ธต ๋„คํŠธ์›Œํฌ์—์„œ IP ์ฃผ์†Œ ํ•„์š”
  • 4๊ณ„์ธต ํŠธ๋žœ์ŠคํฌํŠธ์—์„œ ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต ์ฃผ์†Œ, ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • ํฌํŠธ ๋ฒˆํ˜ธ(Port Number) : 0~65,535(16๋น„ํŠธ ์ •์ˆ˜)์˜ ๋ฒ”์œ„์—์„œ ์„ ํƒํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹นํ•œ๋‹ค.
  • Well-known ํฌํŠธ ๋ฒˆํ˜ธ : 0~1023 ํ‘œ์ค€ํ™”๋œ ํฌํŠธ ๋ฒˆํ˜ธ ๋ฒ”์œ„(์˜ˆ์•ฝ์€ ์ฃผ๋กœ ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•œ๋‹ค.)
  • Ephemeral ํฌํŠธ ๋ฒˆํ˜ธ : ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ•ด ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ

image

  • Daytime ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค ํ•œ๋‹ค๋ฉด
  • ์„œ๋ฒ„์—๊ฒŒ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋ ค ํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์˜ ์šด์˜์ฒด์ œ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด์—๊ฒŒ ๊ฐ€๋Šฅํ•œ ํฌํŠธ ๋ฒˆํ˜ธ ๊ฐ’ ์ค‘ 0~1023 ๊ฐ’์ด ์•„๋‹Œ ํฌํŠธ ๋ฒˆํ˜ธ(52,000)๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค.
  • ํ•ด๋‹น ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด์„œ ํ†ต์‹ ํ•œ๋‹ค.

image

  • IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ์˜ ์ฐจ์ด
  • ์ˆ˜๋งŽ์€ ์žฅ์น˜์™€ ์ค„๋“ค๋กœ ์ธํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด๋ฅผ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ-IP
  • ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์˜ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ์€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ์ฐพ์•„๊ฐ„๋‹ค. ํ”„๋กœ์„ธ์Šค-ํฌํŠธ ๋ฒˆํ˜ธ
  • Source IP Address, Source Port Number, Destination IP Address, Destination Port Number 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Socket Address, Multiplexing and Demultiplexing

  • ์†Œ์ผ“(Socket) : IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ์˜ ์กฐํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

  • 4๊ณ„์ธต ์ด์ƒ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ ํฌํŠธ ๋ฒˆํ˜ธ๋งŒ์œผ๋กœ๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ์ฐพ์•„ ํ†ต์‹ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ•จ๊ป˜ ๋ฌถ๋Š” ์†Œ์ผ“์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฌถ์–ด ์‚ฌ์šฉํ•œ๋‹ค.

  • Multiplexing and Demultiplexing

image

  • ์ˆ˜๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘๋™๋  ๋•Œ ํ•˜๋‚˜์˜ IP ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ํ†ต์‹ ํ•œ๋‹ค.
  • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ฌถ์—ฌ ํ•˜๋‚˜์˜ IP๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์„ Multiplexing์ด๋ผ ํ•˜๊ณ  ํ•˜๋‚˜์˜ IP๋กœ ์ „๋‹ฌ๋˜์–ด ๊ฐ ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์„ Demultiplexing์ด๋ผ ํ•œ๋‹ค.

Connectionless VS Connection-Oriented Service

  • Connectionless Service

    • ์—ฐ๊ฒฐ ์„ค์ • ํ•ด์ œ ๊ณผ์ •์ด ์—†๋‹ค.
    • ๊ฐ€์žฅ ์œ ๋ช…ํ•œ Connectionless Protocol์€ UDP์ด๋‹ค.
  • Connection-Oriented Service

    • ๋จผ์ € ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ ์„ค์ •์„ ํ•˜๊ณ  ํ†ต์‹ ์„ ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
    • ๊ฐ€์žฅ ์œ ๋ช…ํ•œ Connection-Oriented Protocol์€ TCP์ด๋‹ค. + SCTP
  • Reliable

    • ์‹ ๋ขฐ์„ฑ์ด ์žˆ๋Š” ์ „์†ก์„ ์œ„ํ•ด์„œ TCP, SCTP ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋А๋ฆฌ๊ณ , ๋” ๋ณต์žกํ•˜๋‹ค.
    • Application ๊ณ„์ธต์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์‹ ๋ขฐ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํ”„๋กœํ† ์ฝœ๋„ ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋‚˜์˜ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•œ๋‹ค.
  • Unreliable

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

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

image

  • ๋ถ„ํ™์„ ๊ณผ ๊ฐ™์ด 1, 2๊ณ„์ธต์˜ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ ์˜ค๋ฅ˜ ๊ฒ€์ถœ, ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค ํ•˜๋”๋ผ๋„ ์žฅ์น˜ ์•ˆ์—์„œ ๋ฐœ์ƒ๊ฐ€๋Šฅํ•œ ์†์‹ค์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , ์‹ ๋ขฐ์„ฑ์„ ์ตœ๋Œ€ํ•œ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŠธ๋žœ์ŠคํฌํŠธ, 4๊ณ„์ธต์—์„œ๋„ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ์„ ์‹ ๊ฒฝ์จ์ค˜์•ผ ํ•œ๋‹ค.

User Datagram Protocol (UDP)

  • UDP : Connectless, Unreliable transport protocol

  • Host-to-Host ๋Œ€์‹  Process-to-Process๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  IP์˜ ์„œ๋น„์Šค์— ์–ด๋– ํ•œ ๊ฒƒ๋„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜๋‹ค.

  • UDP๋Š” ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์ž‘์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ž‘์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋ฉฐ TCP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์†ก์ˆ˜์‹  ๊ด€๊ณ„์—์„œ ์ ์€ ํ†ต์‹ ์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • Connectionless Services : ์—ฐ๊ฒฐ ์„ค์ • ์—†์ด ๊ฐ datagram์€ ๋…๋ฆฝ์ ์ด๋‹ค.

  • Flow and Error Control : ํ๋ฆ„, ์˜ค๋ฅ˜ ์ œ์–ด ๋งค์ปค๋‹ˆ์ฆ˜์ด ์—†๋‹ค.

  • Encapsulation and Decapsulation : IP datagram์—์„œ ์บก์Аํ™”, ๋ถ„ํ•ดํ•œ๋‹ค.

  • Well-known ports used with UDP

image

  • UDP Frame format

image

  • UDP ํ”„๋ ˆ์ž„์€ ์–ด๋А ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ „์†กํ•˜๊ณ  ์–ด๋А ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ›์•„์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด ์ „๋‹ฌ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค.

image

  • ํ•ญ์ƒ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ณด๋‹ค ๋จผ์ € ๋™์ž‘ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ์ธก๋ฉด ๋™์ž‘

  1. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘ํ•˜๋ฉด ํฌํŠธ ๋„˜๋ฒ„๋ฅผ OS์— ์š”์ฒญํ•œ๋‹ค.
  2. ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ outgoing ํ์— source ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.
  3. UDP ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„ ํ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์šฐ๊ณ , IP๋กœ ์ „๋‹ฌํ•œ๋‹ค.
  4. Outgoing ํ๊ฐ€ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿด ๊ฒฝ์šฐ OS๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋ณด๋‚ด์ง€ ๋ง๊ณ  ๋Œ€๊ธฐ์‹œํ‚จ๋‹ค.
  5. ๋ฉ”์‹œ์ง€๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ๋„์ฐฉํ•˜๋ฉด UDP๋Š” incoming ํ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ชฉ์ ์ง€ ํฌํŠธ ๋„˜๋ฒ„๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌํ•œ๋‹ค.
  • ์„œ๋ฒ„ ์ธก๋ฉด ๋™์ž‘
  1. ์‹œ์ž‘ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ํŠน์ • ํฌํŠธ๋ฅผ ์„ค์ •ํ•ด incoming, outcoming ํ๋ฅผ ์š”์ฒญํ•œ๋‹ค.
  2. Incoming ํ์— ๋ฉ”์‹œ์ง€๊ฐ€ ๋„์ฐฉํ•˜๋ฉด UDP๋Š” ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ์— ๋งž๋Š” ํฌํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
  3. ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๊ธธ ์›ํ•  ๋•Œ ๋ฉ”์‹œ์ง€๋ฅผ ํฌํŠธ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ outgoing ํ๋กœ ๋ณด๋‚ธ๋‹ค.
  • Applications of UDP
  • FTP์™€ ๊ฐ™์ด ํŒŒ์ผ ์ „์†ก์˜ ์‹ ๋ขฐ์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
  • TFTP์˜ ๊ฒฝ์šฐ(์ž‘์€ ๋ฐ์ดํ„ฐ) ๊ฐ„ํ˜น ์‚ฌ์šฉ๋œ๋‹ค.
  • Multicasting์ด ์˜ค๋ฅ˜ ๊ฒ€์ถœ, ๋ณต๊ตฌ๋ฅผ ํ•˜๊ธฐ ํž˜๋“  ๊ฒฝ์šฐ ์‚ฌ์šฉ
  • ๋ผ์šฐํ„ฐ๊ฐ„์˜ ์ •๋ณด๋ฅผ ํŒŒ์•…ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • SNMP์™€ ๊ฐ™์ด ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉ๋œ๋‹ค.

Transmission Control Protocol (TCP)

  • TCP : Connection-Oriented Protocol

  • ๋…ผ๋ฆฌ์ ์ธ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค๊ณ , ํ๋ฆ„, ์˜ค๋ฅ˜ ์ œ์–ด ๋งค์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • Connection-Oriented Service : ์—ฐ๊ฒฐ ์„ค์ • ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ณ  ์ „๋‹ฌ์ด ๋๋‚˜ ๋ฒ„ํผ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด ๋ฒ„ํผ๋ฅผ ํŒŒ๊ดดํ•œ๋‹ค.

  • Reliable Service : ACK ๋งค์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ์˜ ๋„์ฐฉ์„ ํ™•์ธํ•˜๊ณ  ๋ณด์žฅํ•œ๋‹ค. Selective Repeat ๋งค์ปค๋‹ˆ์ฆ˜๊ณผ ๋น„์Šท

  • Stream Delivery Service

image

  • TCP๋Š” stream-oriented protocol์ด๋‹ค.
  • ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ํŠœ๋ธŒ๋กœ ์—ฐ๊ฒฐํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ๋งํ•œ๋‹ค.
  • 2๊ณ„์ธต์˜ ๋ฐ์ดํ„ฐ ๋งํฌ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ํŒจํ‚ท์œผ๋กœ ์ชผ๊ฐœ 1๋ฒˆ, 2๋ฒˆ์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ๊ตฌ๋ถ„ํ•ด ์ „์†กํ–ˆ๋Š”๋ฐ, TCP๋Š” ๋ฐ”์ดํŠธ๋ฅผ ์„ธ์–ด ์ „์†กํ•œ๋‹ค.

image

  • ์†ก์‹ , ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๊ณผ ์†Œ๋น„๊ฐ€ ๊ฐ™์€ ์†๋„๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— TCP๋Š” ์ €์žฅ์„ ์œ„ํ•œ ๋ฒ„ํผ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

  • ์†ก์‹ , ์ˆ˜์‹  ๋ฒ„ํผ๋Š” ์ˆœํ™˜ ํ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋ฐ”์ดํŠธ ๋‹จ์œ„(์„ธ๊ทธ๋จผํŠธ ๊ทธ๋ฆผ์—์„œ ๋ถ„ํ™์ƒ‰)๋กœ ๋ณด๋‚ธ๋‹ค๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

  • ์„ธ๊ทธ๋จผํŠธ(Segments)

    • ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์—์„œ TCP๋Š” ํŒจํ‚ท์—์„œ ๋งŽ์€ ๋ฐ”์ดํŠธ๋ฅผ ๊ฐ™์ด ๋ฌถ๋Š”๋ฐ, ์ด๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ  ํ•œ๋‹ค.
    • TCP๋Š” ๊ฐ ์„ธํฌ๋จผํŠธ์— ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  3๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.
    • ์„ธ๊ทธ๋จผํŠธ๋“ค์€ IP datagram์—์„œ ์บก์Аํ™”๋˜๊ณ  ์ „์†ก๋œ๋‹ค.
    • ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅด๊ฑฐ๋‚˜, ์†์‹ค, ๋ณ€ํ˜•๋œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์„ ๊ฒฝ์šฐ ์žฌ์ „์†กํ•œ๋‹ค.
  • Full-Duplex Service

  • TCP๋Š” full-duplex ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Piggybacking : A์—์„œ B๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ ์ˆ˜์‹ ํ–ˆ๋‹ค๋Š” ACK๋ฅผ ๋ถ™์—ฌ ์ „์†กํ•˜๋Š” ๊ฒƒ

Byte numbers

  • TCP๋Š” ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ๋ฅผ ์“ฐ๋Š” ํ•„๋“œ๊ฐ€ ์—†๋‹ค. ๋Œ€์‹ ์— sequence ๋ฒˆํ˜ธ, ack ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๊ฐ ์—ฐ๊ฒฐ์—์„œ ์ „์†ก๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ฐ”์ดํŠธ๋Š” TCP์— ์˜ํ•ด ๋ฒˆํ˜ธ ๋งค๊ฒจ์ง„๋‹ค.

  • ๋ฒˆํ˜ธ๋Š” ๋žœ๋คํ•˜๊ฒŒ(๋ณด์•ˆ ์ธก๋ฉด) ์ƒ์„ฑ๋œ ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ๋งค๊ฒจ์ง€๊ณ , ์ฒซ ๋ฐ”์ดํŠธ์˜ ๋ฒˆํ˜ธ ๋ฒ”์œ„๋Š” ์ด๋‹ค.

  • ๋งŒ์•ฝ ๋‚ด๊ฐ€ 6000๋ฐ”์ดํŠธ๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ๊ณ  ๋žœ๋คํ•˜๊ฒŒ ์ƒ์„ฑ๋œ ์ฒซ ๋ฐ”์ดํŠธ์˜ ๋ฒˆํ˜ธ๊ฐ€ 1057์ด๋ผ ํ•˜๋ฉด ๋ฐ”์ดํŠธ๋Š” 1057~7056์œผ๋กœ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„๋‹ค.

  • ๋ฐ”์ดํŠธ ๋ฒˆํ˜ธ๋Š” ํ๋ฆ„, ์˜ค๋ฅ˜ ์ œ์–ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

  • Sequence Number

    • ๋ฐ”์ดํŠธ์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„ ํ›„ TCP๋Š” ์ „์†ก๋  ๊ฐ ์„ธ๊ทธ๋จผํŠธ์— seq ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.
    • ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ๋Š” ์„ธ๊ทธ๋จผํŠธ์—์„œ ์ฒซ ๋ฒˆ์งธ ๋ฐ”์ดํŠธ์˜ ๋ฒˆํ˜ธ์ด๋‹ค.
  • Acknowledgment Number

    • ์„ธ๊ทธ๋จผํŠธ์—์„œ Ack field ๊ฐ’์€ ๋ฐ›์„ ์˜ˆ์ •์ธ ๋ฐ”์ดํŠธ ๊ทธ๋ฃน์˜ ๋‹ค์Œ ๋ฐ”์ดํŠธ์˜ ๋ฒˆํ˜ธ๋กœ ์ •์˜๋œ๋‹ค.
    • Ack ๋ฒˆํ˜ธ๋Š” ์ถ•์ ๋œ๋‹ค.
  • TCP Segment format

image

  • Control field

image

  • SYN : ์—ฐ๊ฒฐ ์„ค์ • ์š”์ฒญ์„ ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • FIN : ์—ฐ๊ฒฐ ํ•ด์ œ ์š”์ฒญ์„ ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • RST : ๋ณต๊ตฌ ๋ถˆ๊ฐ€ํ•œ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • ACK : ์ž˜ ์ˆ˜์‹ ํ–ˆ๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

TCP is Connection-Oriented

  • Source์™€ Destination ์‚ฌ์ด์— ๋ฌผ๋ฆฌ์ ์ธ ๊ธธ์ด ์•„๋‹Œ ๊ฐ€์ƒ์˜ ๊ธธ์„ ๋งŒ๋“ ๋‹ค.
  • ๊ฐ€์ƒ์˜ ๊ธธ์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€์— ์†ํ•˜๋Š” ๋ชจ๋“  ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • ํ•˜๋‚˜์˜ ๊ฐ€์ƒ์˜ ๊ธธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ†ตํ•ด ์†์ƒ๋˜๊ณ  ์†์‹ค๋œ ํ”„๋ ˆ์ž„์„ ์žฌ์ „์†กํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ACK ํ”„๋กœ์„ธ์Šค๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค.
  • TCP๋Š” ๊ฐœ๋ณ„ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•˜๋Š” IP์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜, ์—ฐ๊ฒฐ ์ž์ฒด๋ฅผ ์ œ์–ดํ•œ๋‹ค.

Connection Establishment

image

  • ์—ฐ๊ฒฐ ๊ณผ์ •
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ, SYN flag๊ฐ€ 1์ด๋‹ค.
    • ์„œ๋ฒ„๋Š” ์—ฐ๊ฒฐ ์š”์ฒญ์— ๋Œ€ํ•œ ACK๋ฅผ ์ „์†กํ•œ๋‹ค. TCP๋Š” ๋ฐ˜๋งŒ ์—ด ์ˆ˜ ์žˆ๊ธฐ์— ์„œ๋ฒ„๋„ SYN flag๋ฅผ 1๋กœ ์„ค์ •ํ•ด ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฐ๊ฒฐ ์š”์ฒญ์— ๋Œ€ํ•œ ACK๋ฅผ ์ „์†กํ•œ๋‹ค.
    • Seq ๋ฒˆํ˜ธ, 8000๊ณผ 15000์€ ๋žœ๋ค ๋ฒˆํ˜ธ๋กœ ์„ค์ •๋˜์–ด ์ „์†ก๋œ๋‹ค.
  • ๋™์‹œ ์—ฐ๊ฒฐ
    • ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฐ๊ฒฐ ํ™œ์„ฑํ™” ์š”์ฒญ์„ ๋ณด๋ƒˆ์„ ๋•Œ ๋™์‹œ ์—ฐ๊ฒฐ์ด ๋ฐœ์ƒํ•œ๋‹ค.
    • ๋‘ TCP๋Š” SYN+ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ๋กœ์—๊ฒŒ ์ „์†กํ•˜์—ฌ ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•œ๋‹ค.
  • SYN Flooding Attack
    • SYN Flooding Attack์€ ์•…์˜์ ์ธ ๊ณต๊ฒฉ์ž๊ฐ€ ๋‹ค์–‘ํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ „์†ก๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€์งœ source IP ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ด SYN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ๋ฒ„์— ๋Œ€๋Ÿ‰์œผ๋กœ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.
    • ์ด ๊ฒฝ์šฐ ๋ฒ„ํผ์— ๋งŽ์€ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์งˆ์ ์ธ ๋ฉ”์‹œ์ง€๋Š” ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ถˆ๋Šฅ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

Full-Duplex Data Transfer

image

  • Full-Duplex ๋ฐ์ดํ„ฐ ์ „์†ก

    • ๋ฐ”์ดํŠธ์˜ ์‹œ์ž‘ ๋ฒˆํ˜ธ๋กœ seq ๋ฒˆํ˜ธ๊ฐ€ ์„ค์ •๋˜์–ด ์ „์†ก๋œ๋‹ค. Ack ๋ฒˆํ˜ธ๋Š” ์ด์ „ ์—ฐ๊ฒฐ ์„ค์ •์œผ๋กœ ์„ค์ •๋œ ๋ฒˆํ˜ธ๊ฐ€ ๊ทธ๋ƒฅ ๋“ค์–ด์˜จ ๊ฒƒ์ด๋‹ค.
    • ๋‘ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋“ค์–ด์™”๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ ๋ณด๋‚ด๋Š” ์„ธ๊ทธ๋จผํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ „์†ก๋œ ๋งˆ์ง€๋ง‰ ๋ฐ”์ดํŠธ ๋ฒˆํ˜ธ์— +1ํ•œ 10001์„ Ack๋กœ ์„ค์ •ํ•ด ๋ณด๋‚ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์„œ๋ฒ„์—์„œ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด ๋ฐ”์ดํŠธ๊ฐ€ 15001-17000์œผ๋กœ ์ „์†กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์—์„œ Ack 17001๋กœ ์„ค์ •ํ•ด ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • Pushing Data

    • ์ƒ์œ„ ๊ณ„์ธต์—์„œ ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•  ๋•Œ ํ•˜์œ„ ๊ณ„์ธต์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์ž๋งˆ์ž ๋ฐ”๋กœ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์œˆ๋„์šฐ๊ฐ€ ๋ชจ๋‘ ์ฐฐ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์ „์†กํ•œ๋‹ค.
    • ํ•˜์ง€๋งŒ Application ํ”„๋กœ๊ทธ๋žจ์ด push ๋™์ž‘์„ ์š”์ฒญํ•˜๋ฉด TCP๋Š” ์œˆ๋„์šฐ๊ฐ€ ์ฐฐ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์ „์†กํ•œ๋‹ค.
  • Urgent Data

    • ์†ก์‹ ํ•˜๋Š” Application ํ”„๋กœ๊ทธ๋žจ์ด URG ๋น„ํŠธ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ „์†กํ•˜๊ณ  ์ˆ˜์‹ ํ•˜๋Š” TCP๊ฐ€ URG ๋น„ํŠธ๊ฐ€ ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜์„ ๋•Œ urgent ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด ์ œ์ผ ๋จผ ์ˆ˜์‹  Application ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.
    • ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์‚ฌ๋ก€๋Š” ๋“œ๋ฌผ๊ณ  ์ด๋ ‡๊ฒŒ ๊ธ‰ํ•œ ๊ฒฝ์šฐ UDP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

Connection Termination

image

  • ์—ฐ๊ฒฐ ํ•ด์ œ
    • FIN flag๋ฅผ ํ†ตํ•ด ์„œ๋กœ์˜ ์—ฐ๊ฒฐ ํ•ด์ œ๋ฅผ ์š”์ฒญํ•œ๋‹ค.

image

  • ํ•œ ์ชฝ๋งŒ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•œ ๊ฒฝ์šฐ
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•œ ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ณ„์†ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ณ , ํด๋ผ์ด์–ธํŠธ๋Š” ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋”๋ผ๋„ ACK๋Š” ๊ณ„์† ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

Flow Control

image

  • ํ๋ฆ„ ์ œ์–ด ์˜ˆ์‹œ
    • 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ - SYN, ACK๋ฅผ ์ „์†กํ•จ์œผ๋กœ์จ ์—ฐ๊ฒฐ ์„ค์ •์„ ํ•œ๋‹ค. ์ด๋•Œ, ์„œ๋ฒ„๋Š” Seq ๋ฒˆํ˜ธ๋ฅผ 100์œผ๋กœ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— 101๋ถ€ํ„ฐ ๋ฐ›๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฒ„ํผ ํฌ๊ธฐ(800)์„ ์„ค์ •ํ•˜์—ฌ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ •๋„๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ ค์ค€๋‹ค.
    • 4๋ฒˆ - 101์˜ Seq ๋ฒˆํ˜ธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ 200๋ฐ”์ดํŠธ ์ „์†กํ•œ๋‹ค. ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ , ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํผ๋Š” 600๋ฐ”์ดํŠธ๋กœ ์ค„์–ด๋“ ๋‹ค. (๋ฒ„ํผ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—ฌ์œ ๊ฐ€ ์žˆ์„ ๋•Œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํผ์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.)
    • 5๋ฒˆ - Ack์™€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ์ „์†กํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” Ack๋ฅผ ๋ฐ›์•˜์œผ๋ฏ€๋กœ ์ˆ˜์‹ ํ•œ ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ์ง€์šฐ๊ณ , ์ „์†ก ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” ์œ ์ง€ํ•œ๋‹ค.
    • 6๋ฒˆ - 300๋ฐ”์ดํŠธ ๋ฐ์ดํ„ฐ, Seq ๋ฒˆํ˜ธ๋ฅผ ์ „์†กํ•œ๋‹ค. ์„œ๋ฒ„๋Š” 100๋ฐ”์ดํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ ์ƒํƒœ์ด๊ณ  300๋ฐ”์ดํŠธ๋ฅผ ๋ฒ„ํผ์— ์ €์žฅํ•ด ๋ฒ„ํผ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๋Š” 400๋ฐ”์ดํŠธ๊ฐ€ ๋œ๋‹ค.
    • ์ดํ›„ ์ฒ˜๋ฆฌํ•œ ๋งŒํผ ์„œ๋ฒ„์˜ ๋ฒ„ํผ๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.

Normal Operation and Error Control

image

  • Ack delaying timer๋ฅผ ์„ค์ •ํ•ด ํƒ€์ด๋จธ๋™์•ˆ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ , ์ดํ›„ ๋“ค์–ด์˜จ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ชจ๋‘ ๊ณ ๋ คํ•ด Ack๋ฅผ ์ „์†กํ•œ๋‹ค.
  • ๋‹จ์ 
    • ์‘๋‹ต์ด ๋ฐ”๋กœ๋ฐ”๋กœ ์˜ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ†ต์‹  ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค.
    • ๋นจ๋ฆฌ Ack๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ธด๊ธ‰ํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ์— ์‘๋‹ต์„ ๋ฐ”๋กœ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค.

image

  • ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฐ ๊ฒฝ์šฐ ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š๊ณ , ์ด ๊ฒฝ์šฐ ์˜ค์ง€ ์•Š์€ 701 Seq ๋ฒˆํ˜ธ๋ฅผ Ack ๋ฒˆํ˜ธ๋กœ ์„ค์ •ํ•ด ์ „์†กํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—์„œ ์žฌ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • ์žฌ์ „์†ก๋„ ํƒ€์ด๋จธ๊ฐ€ ๋๋‚˜์•ผ ์ด๋ฃจ์–ด์ง„๋‹ค.

image

  • Fast retransmission
  • TCP๊ฐ€ ๋ณด๋‚ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๊ณ  ์‚ฌ์šฉ๋˜๋Š” ๋ชฉ์ ์ด ์กฐ๊ธˆ ๋ณ€ํ˜•๋˜๋ฉฐ ์ถ”๊ฐ€๋๋‹ค.
  • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉด์„œ ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๋™์ผํ•œ Ack๋ฅผ ํƒ€์ด๋จธ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ 3๋ฒˆ ๋ฐ›๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์ „์†กํ•˜๊ณ  ํƒ€์ด๋จธ๋ฅผ ์žฌ์‹œ์ž‘ํ•œ๋‹ค.

image

  • ์ค‘๊ฐ„์˜ Ack๊ฐ€ ์†์‹ค๋˜๊ณ  ํƒ€์ด๋จธ๊ฐ€ ๋๋‚˜๊ธฐ ์ „์— Ack๋ฅผ ์ „์†ก ๋ฐ›์€ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ๋Š” ์ค‘๊ฐ„์˜ ์†์‹ค์ด ํฌ๊ฒŒ ์ƒ๊ด€์—†๋‹ค. (Ack๋„ 901๋กœ ์ „์†ก๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ)

image

  • ํƒ€์ด๋จธ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ Ack๊ฐ€ ์˜ค์ง€ ์•Š์œผ๋ฉด ์žฌ์ „์†ก์„ ์ง„ํ–‰ํ•˜๊ณ , ํ•ด๋‹น Ack๋ฅผ ์žฌ์ „์†ก๋ฐ›์•„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

Unique TCP Control

Slow start, exponential increase

image

  • ์„œ๋กœ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์ค„์ด ์–ด๋””์—๋Š” ์žˆ์„ ๊ฒƒ์ด์ง€๋งŒ, ๋ฌผ๋ฆฌ์ ์ธ ์ค„์„ ์„œ๋กœ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ , ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘๋˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๋„ํ•œ ๋ถ€ํ•˜๋ฅผ ์ฃผ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ฐฉ์‹์ด๋‹ค.
  • ์—ฐ๊ฒฐ ์„ค์ •์„ ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์ ์šฉ๋œ๋‹ค.
  • ์„œ๋ฒ„์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ•œ ๋ฒˆ์— ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๋ถ€ํ•˜๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด ํด๋ผ์ด์–ธํŠธ์˜ ์ „์†ก ์ •๋„๋ฅผ ์กฐ์ ˆํ•œ๋‹ค. ์ฆ‰, ์ฒ˜์Œ์—๋Š” ํ•˜๋‚˜์˜ ์„ธ๊ทธ๋จผํŠธ๋งŒ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. Conjestion ์œˆ๋„์šฐ๋ฅผ Receiver ์œˆ๋„์šฐ๋ณด๋‹ค ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์„ค์ •ํ•ด ์ž‘๋™์‹œํ‚จ๋‹ค.
  • Ack๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์˜ฌ ๋•Œ๊นŒ์ง€ ํด๋ผ์ด์–ธํŠธ๋Š” ํ•˜๋‚˜์˜ ์„ธ๊ทธ๋จผํŠธ๋งŒ ์ „์†กํ•œ๋‹ค.
  • Ack๋ฅผ ๋ฐ›์€ ๊ฒฝ์šฐ Conjestion ์œˆ๋„์šฐ x 2 ๋งŒํผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
Conjestion avoidance, additive increase

image

  • rwnd๊ฐ€ ํฌ๋”๋ผ๋„ cwnd์— ๋”ฐ๋ผ ๋™์ž‘ํ•œ๋‹ค.
  • ์ง€์ˆ˜๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.

image

  • Taho TCP์˜ ์˜ˆ์‹œ
  • Y์ถ•์ด Conjestion window
  • Slow start๋กœ ์ง„ํ–‰ํ•˜๋‹ค Time-out(์˜ค๋ฒ„ํ”Œ๋กœ์šฐ, ์ง€์—ฐ์œผ๋กœ ์ธํ•ด ์ „์†ก๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ)๊ฐ€ ๋ฐœ์ƒ
  • ๋‹ค์‹œ 1๋กœ ๋–จ์–ด๋œจ๋ฆฌ๊ณ  Time-outํ•œ cwnd์˜ ์ ˆ๋ฐ˜์„ Threshold level๋กœ ์„ค์ •ํ•œ๋‹ค.
  • Slow start๋ฅผ ํ•˜๊ณ  Th์— ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ Conjestion avoidance๋ฅผ ์‚ฌ์šฉํ•ด ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
  • 3dupACKs๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์‹œ 1๋กœ ๋–จ์–ด๋œจ๋ฆฌ๊ณ  Th๋ฅผ ์žฌ์„ค์ •ํ•œ๋‹ค.

image

  • Reno TCP
  • ์˜ค๋ฅ˜๋Š” ๋“œ๋ฌธ๋“œ๋ฌธ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. 3dupACKs๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ด์ „์—๋Š” ๊ณ„์†ํ•ด์„œ ์ž‘๋™ํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ด์ง ๋‚ฎ์ถฐ์„œ ์ „์†กํ•˜๊ณ  Ack๊ฐ€ ์˜ค๋ฉด ssthresh๋กœ ๋‚ฎ์ถฐ ๋‹ค์‹œ ์˜ฌ๋ฆฐ๋‹ค.

์ฐธ๊ณ ๋ฌธํ—Œ

  • Textbook: Behrouz A. Forouzan, โ€œData Communications and Networking, 5th Editionโ€, McGraw-Hill Companies, Inc.