Amenable 2023. 6. 16. 16:42

  ์ „์†ก ๊ณ„์ธต(Transport Layer)์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. IP์— ์˜ํ•ด ์ „๋‹ฌ๋˜๋Š” ํŒจํ‚ท์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์žฌ์ „์†ก ์š”๊ตฌ ๋“ฑ์˜ ์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ „์†ก๊ณ„์ธต์—์„œ ์ด์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด ๋ฐ”๋กœ TCP์™€ UDP์ด๋‹ค.

 

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

 

  ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์—ฌ ํ™•์‹คํžˆ ์ฃผ๊ณ ๋ฐ›๊ณ  ์‹ถ์„ ๋•Œ๋Š” TCP(Transmission Control Protocol)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ์„ ์ œ์ณ๋‘๊ณ  ์‹ ์†ํ•˜๊ฒŒ ๋ณด๋‚ด๊ณ  ์‹ถ์„ ๋•Œ๋Š” UDP(User Datagram Protocol)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  ์ด์ œ๋ถ€ํ„ฐ TCP์™€ UDP์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•์„ ์ด์šฉํ•˜์—ฌ ์กฐ๊ธˆ ๋” ์ƒ์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

 

๐Ÿ“™ 1. TCP

๐Ÿ“Œ 1. ๊ฐœ๋…

  TCP(Transmission Control Protocol)๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋ž€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธํ•œ๋‹ค.

  ๋˜ํ•œ, TCP๋Š” ๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์€ ๊ฐ ํŒจํ‚ท์—๋Š” ๊ฐ€์ƒํšŒ์„  ์‹๋ณ„์ž๊ฐ€ ํฌํ•จ๋˜๋ฉฐ ๋ชจ๋“  ํŒจํ‚ท์„ ์ „์†กํ•˜๋ฉด ๊ฐ€์ƒํšŒ์„ ์ด ํ•ด์ œ๋˜๊ณ  ํŒจํ‚ท๋“ค์€ ์ „์†ก๋œ '์ˆœ์„œ๋Œ€๋กœ' ๋„์ฐฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.

๐Ÿ“Œ 2. ํŠน์ง•

  • ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉ
    3-Way Handshake๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ , 4-Way Handshake๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•œ๋‹ค.
  • ํ๋ฆ„ ์ œ์–ด(Flow Control)
    ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ์ˆ˜์‹ ์ž์˜ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค.
    ์ˆ˜์‹ ์ž๊ฐ€ ์œˆ๋„์šฐ ํฌ๊ธฐ(Window Size) ๊ฐ’์„ ํ†ตํ•ด ์ˆ˜์‹ ๋Ÿ‰์„ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ˜ผ์žก ์ œ์–ด(Congestion Control)
    ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ํŒจํ‚ท ์ˆ˜๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•œ๋‹ค.
    ์ •๋ณด์˜ ์†Œํ†ต๋Ÿ‰์ด ๊ณผ๋‹คํ•˜๋ฉด ํŒจํ‚ท์„ ์กฐ๊ธˆ๋งŒ ์ „์†กํ•˜์—ฌ ํ˜ผ์žก ๋ถ•๊ดด ํ˜„์ƒ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.
  • ๋†’์€ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ
    ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ์ „์†ก์„ ํ•˜๊ธฐ ์œ„ํ•ด UDP๋ณด๋‹ค ์†๋„๊ฐ€ ๋А๋ฆผ
  • ์ „์ด์ค‘(Full-Duplex), ์ ๋Œ€์ (Point to Point) ๋ฐฉ์‹
    ์ „์ด์ค‘(Full-Duplex)
    : ์ „์†ก์ด ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.
    ์ ๋Œ€์ (Point to Point)
    : ๊ฐ ์—ฐ๊ฒฐ์ด ์ •ํ™•ํžˆ 2๊ฐœ์˜ ์ข…๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

 

๐Ÿ“™ 2. UDP

๐Ÿ“Œ 1. ๊ฐœ๋…

  UDP(User Datagram Protocol)์€ ๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋ž‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์—ฐ๊ฒฐ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐœ์‹ ์ž๊ฐ€ ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœ์‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.

  ๋˜ํ•œ, UDP๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท  ๊ตํ™˜ ๋ฐฉ์‹์ด๋ž€ ํŒจํ‚ท์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ด๋™ํ•˜๋Š”๋ฐ, ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€์—์„œ ๋ถ„ํ• ๋œ ์—ฌ๋Ÿฌ ํŒจํ‚ท์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ „์†ก๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋„์ฐฉํ•œ '์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹'์„ ๋œปํ•œ๋‹ค.

๐Ÿ“Œ 2. ํŠน์ง•

  • ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉ
    ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค
  • ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๋Š”๋‹ค
    TCP์˜ 3-Way Handshake์™€ ๊ฐ™์€ ๊ณผ์ •์ด ์—†๋‹ค
  • ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๋‹ค
    ํ๋ฆ„ ์ œ์–ด(Flow Control)๊ฐ€ ์—†์–ด์„œ ์ œ๋Œ€๋กœ ์ „์†ก๋˜์—ˆ๋Š”์ง€ ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.
  • TCP๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค
  • 1:1 OR 1:N OR N:N ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

๐Ÿ“™ 3. ์ฐจ์ด์  ์ •๋ฆฌ

  ์œ„์—์„œ ์‚ดํŽด๋ณธ TCP์™€ UDP์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•์„ ์ด์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฐจ์ด์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

  TCP UDP
์—ฐ๊ฒฐ ๋ฐฉ์‹ ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค
ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ ๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹
์ „์†ก ์ˆœ์„œ ์ „์†ก ์ˆœ์„œ ๋ณด์žฅ ์ „์†ก ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Œ
์ˆ˜์‹  ์—ฌ๋ถ€ ํ™•์ธ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•จ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์Œ
ํ†ต์‹  ๋ฐฉ์‹ 1:1 ํ†ต์‹  1:1  or 1:N  or 1:N ํ†ต์‹ 
์‹ ๋ขฐ์„ฑ ๋†’๋‹ค ๋‚ฎ๋‹ค
์†๋„ ๋А๋ฆฌ๋‹ค ๋น ๋ฅด๋‹ค
์‚ฌ์šฉ์ฒ˜ ํŒŒ์ผ ์ „์†ก ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ

 

ํ•ด๋‹น ๊ธ€์€
์ฝ”๋”ฉํŒฉํ† ๋ฆฌ์˜ '[Network] TCP / UDP์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•, ์ฐจ์ด์ ',
coco3o ๋‹˜์˜ 'TCP์™€ UDP์˜ ํŠน์ง• ๋ฐ ์ฐจ์ด์  ์•Œ์•„๋ณด๊ธฐ',
hidaehyunlee ๋‹˜์˜ 'TCP์™€ UDP ์ฐจ์ด๋ฅผ ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž',
์ฃผํ™์ฒ  ๋‹˜์˜ '๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ'
๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋Œ“๊ธ€์ˆ˜0