• ์ด์ „์‹œ๊ฐ„ ์ •๋ฆฌ 
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด : ๋ฉ”์„ธ์ง€ (Message)
    • ํŠธ๋žœ์ŠคํฌํŠธ ๋ ˆ์ด์–ด : ์„ธ๊ทธ๋จผํŠธ (Segment)
    • ๋„คํŠธ์›Œํฌ ๋ ˆ์ด์–ด : ํŒจํ‚ท (Packet)

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต๋“ค์ด reliable ํ•˜๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ†ต์‹ ์€ ? TCP

 

TCP ๋ผ๋Š” ๊ฒƒ์€ ํŠน์ • ์„ผ๋” ํ˜น์€ ๋ฆฌ์‹œ๋ฒ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ ์—”๋“œํฌ์ธํŠธ๋“ค์€ ์„ผ๋”๋ฉด์„œ ๋ฆฌ์‹œ๋ฒ„์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด HTTP request ์™€ response ๊ฐ€ ๊ฐ™์ด ์ž‘์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ฒ„ํผ๋Š” ๊ฐ TCP ๋งˆ๋‹ค ๋‘ ๊ฐœ์”ฉ ์กด์žฌํ•œ๋‹ค. (Send Buffer / Receive Buffer)

  • Send Buffer
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‚ด๋ ค์˜จ ๋ฉ”์„ธ์ง€๊ฐ€ ๋‹ด๊ธด๋‹ค.
    • ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ†ตํ•ด์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜์—ˆ์„ ๊ฒฝ์šฐ์— ์žฌ์ „์†ก์„ ํ•˜๊ธฐ์œ„ํ•ด์„œ ๋ณด๊ด€ํ•œ๋‹ค.
    • ์ดํ›„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ „์†ก๋˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
    • ํ•˜์ง€๋งŒ TCP ์ž์ฒด๋Š” ํ•˜๋‚˜์”ฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ์—” ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ดํ”„๋ผ์ด๋‹ ํ†ต์‹ ์„ ํ•œ๋‹ค.
    • ๊ทธ๋ ‡๊ฒŒ ํ•œ ๋ฒˆ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋… ์ž์ฒด๋ฅผ window size ๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์‚ฌ์ด์ฆˆ ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋Š” ํ”ผ๋“œ๋ฐฑ ์—†์ด ํ•œ๋ฒˆ์— ์ „์†กํ•œ๋‹ค.
  • Receive Buffer 
    • TCP ๋Š” Reliable ํ†ต์‹ ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, In-order delivery ๋„ ๊ฐ€๋Šฅ์ผ€ ํ•œ๋‹ค.
    • ๋”ฐ๋ผ์„œ SendBuffer ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ๋ฒ„ํผ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์ˆœ์„œ๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ sequence number ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (Send Buffer ์— ํ•ด๋‹น ๋ฐ”์ดํŠธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ์žˆ๋‹ค.)
    • ๊ทธ๋ฆฌ๊ณ  Receive Buffer ์—์„œ์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋Š” ์ƒ๋Œ€๋ฐฉ์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์ด๋‹ค. ์–ด๋””๊นŒ์ง€ ์ˆ˜์‹ ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ
    • ํŒจํ‚ท์˜ ์œ ์‹ค ์œ ๋ฌด๋Š” ํƒ€์ด๋จธ๋ฅผ ํ†ตํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํƒ€์ด๋จธ์˜ ๋งŒ๋ฃŒ์‹œ๊ฐ„์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ํ”ผ๋“œ๋ฐฑ์ด ์˜ค์ง€ ์•Š์œผ๋ฉด ์œ ์‹ค์ด๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ํƒ€์ด๋จธ์˜ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆด๋•Œ๊นŒ์ง€ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ACKs ์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์ค‘๋ณตํ•ด์„œ ์„ธ ๋ฒˆ ๋ฐ›์œผ๋ฉด ๋‹ค์‹œ ์žฌ์ „์†ก์„ ํ•œ๋‹ค. ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์ค‘๋ณตํ•ด์„œ ์„ธ ๋ฒˆ ๋ฐ›๋Š” ๊ฒƒ์€ 3-duplicate ACKs ๋ผ ํ•˜๋ฉฐ ์žฌ์ „์†ก ํ•˜๋Š” ๊ฒƒ์„ Fast Re-Transmit ์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • TCP ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ธ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ
    • Reliable data transfer
    • Flow control
    • Congestion control
  • Flow control
    • ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ ์†๋„๋กœ ๋ณด๋‚ผ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๊ฒฐ์ • ์š”์†Œ ๋‘๊ฐ€์ง€ ์กด์žฌ
      • ๋ฆฌ์‹œ๋ฒ„๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฐ›์•„๋“ค์ผ ์ค€๋น„๊ฐ€ ๋˜์–ด์žˆ๋Š”์ง€ => ๋ฆฌ์‹œ๋ฒ„์˜ ๋Šฅ๋ ฅ => Flow control
      • ์ค‘๊ฐ„ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์˜ ํ˜ผ์žก์œ ๋ฌด => Congestion control
    • ๋ฆฌ์‹œ๋ฒ„๊ฐ€ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ๊ณ„์† ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๋ฉด ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€?
      • TCP ํ—ค๋”์— ๋ฆฌ์‹œ๋ธŒ ์œˆ๋„์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์‚ฌ์ด์ฆˆ๋งŒํผ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅ
    • Corner case ) ๋ฆฌ์‹œ๋ธŒ ๋ฒ„ํผ๊ฐ€ ๊ฐ€๋“ ์ฐฌ ๊ฒฝ์šฐ
      • TCP ํ—ค๋” ํ•„๋“œ์— 0์„ ์จ์„œ ์„ผ๋” ์ธก์— ๋ณด๋‚ธ๋‹ค. 
      • ๋ฆฌ์‹œ๋ธŒ ๋ฒ„ํผ์— ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๊ธฐ ์ „๊นŒ์ง€ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.
      • ...
      • ์ดํ›„ ๋ฆฌ์‹œ๋ธŒ ์ธก์˜ ์„ผ๋” ๋ฒ„ํผ์— ๋ณด๋‚ผ ACKs ๊ฐ€ ์—†์–ด์„œ ๊ต์ฐฉ ์ƒํƒœ์— ๋น ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 
      • ํ•˜์ง€๋งŒ ์„ผ๋” ์ธก์—์„œ๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ 1Byte ํฌ๊ธฐ์˜ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋‚ ๋ฆฌ๋Š” ํ–‰์œ„๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.
  • Silly Window Syndorme
    • ์„ค๋ช…
      • ์œ ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งŽ์ด ์ƒ์„ฑํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŽ์ด ๋‚ด๋ ค๋ณด๋‚ด๋ฉด ์ƒ๊ด€์—†์Œ
      • ์„ผ๋” ๋ฒ„ํผ๋Š” ํ•ญ์ƒ ๊ฐ€๋“ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ, 
      • ์„ธ๊ทธ๋จผํŠธ(๋ฐ์ดํ„ฐ ์˜์—ญ + ํ—ค๋” ์˜์—ญ) ๋ฅผ ๊ฐ€๋“ ์ฑ„์›Œ์„œ ๋ณด๋‚ด๋ฉด ์ข‹๋‹ค. (์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—)
      • ์œ ์ € ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋Šฆ๊ฒŒ ์ƒ์„ฑํ•œ๋‹ค๋ฉด ?
      • ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๋งŒ๋“ค์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์•ผํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•œ ๋ฌธ์ œ์ œ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฑ„์šฐ๋Š” ์–ด๋Š์ •๋„์˜ ๊ธฐ์ค€์„ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
        • ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜๋Š” ์ฆ‰์‹œ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ, ๋‚ญ๋น„๊ฐ€ ๋œ๋‹ค.
        • ๋ฐ์ดํ„ฐ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ์—๋„ ๋ถˆ์™„์ „ํ•œ ์ƒํ™ฉ์ด๋‹ค.
      • Nagle's Algorithm ์ด ๋“ฑ์žฅ
        • ์ฒ˜์Œ TCP ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด 1 Byte ๋ผ๋„ ๋ณด๋‚ธ๋‹ค.
        • ๊ทธ ์ดํ›„๋ถ€ํ„ฐ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฑ„์šฐ๋ฉด์„œ ๋ณด๋‚ผ ์ค€๋น„๋ฅผ ํ•œ๋‹ค.
        • Maximum Size ๊ฐ€ ์ฐจ๋Š” ๊ฒฝ์šฐ ๋˜๋Š” ๋ฐฉ๊ธˆ ๋ณด๋‚ธ ์„ธ๊ทธ๋จผํŠธ์˜ ACKs๋ฅผ ๋ฐ›์€ ๊ฒฝ์šฐ ๋ณด๋‚ธ๋‹ค.
        • ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋‹ค ์ฑ„์›Œ์ง€๊ธฐ ์ด์ „์— ACKs ๊ฐ€ ์™”๋‹ค๋Š” ๊ฒƒ์˜ ์˜๋ฏธ : ๋„คํŠธ์›Œํฌ ์ƒํƒœ, ์ฆ‰ ์†๋„๊ฐ€ ์ข‹๋‹ค.
        • ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋‹ค ์ฑ„์›Œ์งˆ๋•Œ๊นŒ์ง€ ACKs ๊ฐ€ ์˜ค์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ ์˜๋ฏธ : ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ฐ€๋“ ์ฑ„์› ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ์†ก์‹ 
      • ์„ธ๊ทธ๋จผํŠธ ์‚ฌ์ด์ฆˆ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์„œ ๋ณด๋‚ผ ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ์ด์Šˆ 
        • Maximum Size ๋กœ ๋ณด๋‚ผ ๊ฒƒ์ธ๊ฐ€
        • ๋œ ์ฑ„์›Œ์„œ ๋ณด๋‚ผ ๊ฒƒ์ธ๊ฐ€
  • Connection Management
    • TCP Connection ์„ ๋งบ์–ด๋‘๊ณ  Sequence Number ํŠธ๋ž™ํ‚นํ•˜๋ฉฐ Reliable ๊ณผ Flow Control ์ด์ „์˜ ์ด์•ผ๊ธฐ
    • ์„ผ๋” ์ธก๊ณผ ๋ฆฌ์‹œ๋ฒ„ ์ธก์—์„œ๋Š” ์ตœ์ดˆ์— ์–ด๋–ป๊ฒŒ ์„œ๋กœ๊ฐ„์˜ Sequence Number ๋ฅผ ์•„๋Š” ๊ฒƒ์ธ๊ฐ€?
    • ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”๊ฐ€? => ์˜์‚ฌ๊ฒฐ์ • => ์„œ๋กœ ๊ฐ„์˜ ํ˜‘์˜
    • 2-way handshake
      • A์™€ B ์„œ๋กœ๊ฐ„์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•ด์„œ ํ•œ ์ชฝ๋งŒ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์–ป์—ˆ์„ ๋ฟ, ์ƒ๋Œ€๋ฐฉ์€ ์–ป์ง€ ๋ชปํ–ˆ๋‹ค.
    • 3-way handshake (Transport Layer ์—์„œ ์ด๋ฃจ์–ด์ง)
      • A์™€ B ์„œ๋กœ๊ฐ„์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ƒํ˜ธ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ํ•˜๊ธฐ ์œ„ํ•จ
      • 1) Client -> Server : SYNbit = 1, Seq = x
        ์‚ฌ์šฉํ•  ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์„ ์ •ํ•˜๊ณ  ํ•ด๋‹น ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ TCP ํ—ค๋”์— ๋‹ด์•„์„œ ์ „์†ก (SYN 1๋น„ํŠธ ๋ฐ์ดํ„ฐ), ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ™์ง€ ์•Š์€ TCP ํ—ค๋” ์ž์ฒด์˜ ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. 40Byte SYN ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์„ธ๊ทธ๋จผํŠธ๊ฐ€ IP ํŒจํ‚ท์— ๋‹ด๊ธด๋‹ค) ๋ชจ๋“  IP ํŒจํ‚ท์—๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ 40Byte ๊ฐ€ ๋ถ™๋Š”๋‹ค. (ํŒจํ‚ท ํ—ค๋” : 20Byte + ์„ธ๊ทธ๋จผํŠธ ํ—ค๋” : 20Byte)
      • 2) Server -> Client : SYNbit = 1, Seq = y, ACKbit = 1, ACKnum = x+1
        SYNACK ๋ฅผ ๋ณด๋‚ธ๋‹ค.
      • 3) Client -> Server : ACKbit = 1, ACKnum = y + 1
        SYN์— ๋Œ€ํ•œ ACK ์ด๊ธฐ๋„ ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์„œ ๋ณด๋‚ด๋„ ๋˜๋Š” ์„ธ๊ทธ๋จผํŠธ์ด๋‹ค.
  • TCP : Closing a Connection
    • ํ†ต์‹ ์„ ๋๋‚˜๊ณ  ์ดํ›„์— ๋„คํŠธ์›Œํฌ๋ฅผ ๋Š๊ธฐ ์œ„ํ•จ 
      • Client -> Server : FINbit = 1, Seq = x
        ์ปค๋„ฅ์…˜์„ ๋๋‚ด๊ธฐ ์œ„ํ•œ FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.
      • Server -> Client : ACKbit = 1, ACKnum = x + 1
      • Server -> Client : FINbit = 1, Seq = y
      • Client -> Server : ACKbit = 1, ACKnum = y + 1
  • Congestion control
    • window size ๋ผ๋Š” ๊ฒƒ์€ ํ•œ๊บผ๋ฒˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์–‘์ด๋‹ค.
    • Flow control ์€ ๋ฆฌ์‹œ๋ฒ„๊ฐ€ ๊ฐ€์ง„ ์ €์žฅ๊ณต๊ฐ„์— ๋งž๊ฒŒ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    • window size ๋Š” ์ƒ๋Œ€๋ฐฉ์˜ buffer size ์— ๋”ฐ๋ผ ์œ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.
    • ํ•˜์ง€๋งŒ window size ๋Š” ๋‘๊ฐ€์ง€ ์š”์ธ์„ ๋™์‹œ์— ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.
      • Network ์˜ ์ƒํ™ฉ
      • Receiver Buffer ์˜ ์ƒํ™ฉ
    • window size ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ์ด ์†๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ, ๋”ฐ๋ผ์„œ Network ์ƒํ™ฉ๊ณผ Receiver Buffer ์— ๋Œ€ํ•œ ๋‘ ๊ฐœ์˜ ๊ฐ’ ์ค‘์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ๊ฐ€์ง€๊ณ  window size ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ•˜๋“œ์›จ์–ด ์ŠคํŽ™์ด ๋†’์•„์ง€๋ฉด์„œ window size ๋Š” ๋Œ€๋ถ€๋ถ„ Network ์ƒํ™ฉ์„ ๋ฐ˜์˜๋ฐ›๋Š”๋‹ค.

์ •๋ฆฌ )

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด, ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„
  • ํŠธ๋žœ์ŠคํฌํŠธ ๋ ˆ์ด์–ด, ๋ฐ์ดํ„ฐ ๋‹จ์œ„
  • ๋„คํŠธ์›Œํฌ ๋ ˆ์ด์–ด, ๋ฐ์ดํ„ฐ ๋‹จ์œ„
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต๋“ค์ด reliable ํ•˜๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ์€
  • TCP๋Š” ๊ฐ๊ฐ์ด ์„ผ๋”์ด๋ฉด์„œ ๋ฆฌ์‹œ๋ฒ„ (์ƒํ˜ธ ๊ฐ„์˜ ์—”๋“œํฌ์ธํŠธ)
  • TCP SendBuffer ์™€ Receive Buffer ์„ค๋ช…
  • TCP ์—์„œ ์ œ๊ณตํ•˜๋Š” ์„ธ๊ฐ€์ง€ ์ค‘์š” ๊ธฐ๋Šฅ
  • Nagle's Algorithm ์ด๋ž€
    • ์„ผ๋” ์ธก์—์„œ ์ „์†กํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ƒ๋Œ€๋ฐฉ์˜ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋งค์šฐ ์ž‘์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ท์˜ ํฌ๊ธฐ ์ž์ฒด๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์€ ํฌ๊ธฐ์˜ ํŒจํ‚ท์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ ์„œ๋Š” ๋ณด๋‚ด์ง€ ๋ชปํ•œ๋‹ค. ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ๊ฐ€๋Šฅํ•œ ๋ชจ์•„์„œ ๋” ํฐ ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ค์–ด ํ•œ๋ฒˆ์— ๋ณด๋‚ด๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ. ๊ทธ ๋ฌธ์ œ์— ๋”ฐ๋ผ์„œ ๊ณ ์•ˆ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. 
  • Connection Management : 3-way handshaking ์„ค๋ช…
  • TCP Closing a Connection ์„ค๋ช…

 

Posted by doubler
,