did_story

[๋„คํŠธ์›Œํฌ] 3.2 Multiplexing / demultiplexing | ๋‹ค์ค‘ํ™” / ์—ญ๋‹ค์ค‘ํ™” ๋ณธ๋ฌธ

ComputerScienc๐Ÿ“š/Computer Network

[๋„คํŠธ์›Œํฌ] 3.2 Multiplexing / demultiplexing | ๋‹ค์ค‘ํ™” / ์—ญ๋‹ค์ค‘ํ™”

์–ด์ œ์‹œ์ž‘ 2025. 10. 22. 00:04
 

[๋„คํŠธ์›Œํฌ] 3.1 Transport-layer services | ์ „์†ก ๊ณ„์ธต ์„œ๋น„์Šค

์ „์†ก ๊ณ„์ธต ์„œ๋น„์Šค๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „ ๋จผ์ € ์šฉ์–ด์— ๋Œ€ํ•œ ์ •๋ฆฌ๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.์šฉ์–ด์ •๋ฆฌํ”„๋กœ๊ทธ๋žจ ๋””์Šคํฌ์— ์ €์žฅ๋œ ์‹คํ–‰ํŒŒ์ผ.ํ”„๋กœ์„ธ์Šค ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ ์–ด๋–ค Instance. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ

didcheck.tistory.com

1. ๊ฐœ๋… ์š”์•ฝ

๋„คํŠธ์›Œํฌ ํ†ต์‹ ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํ”„๋กœ์„ธ์Šค)์ด ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์ปดํ“จํ„ฐ์—์„œ ์›น ๋ธŒ๋ผ์šฐ์ €(HTTP)์™€ ๋ฉ”์‹ ์ €(TCP), DNS(Client)๊ฐ€ ๋™์‹œ์— ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์ฃ .
์ด๋•Œ ์ „์†ก ๊ณ„์ธต(Transport Layer) ์€ ๊ฐ๊ฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด
‘๋‹ค์ค‘ํ™”(Multiplexing)’์™€ ‘์—ญ๋‹ค์ค‘ํ™”(Demultiplexing)๋ผ๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

(1) ์†ก์‹  ์ธก ๋‹ค์ค‘ํ™” (Multiplexing at Sender)

์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ์ „์†ก ๊ณ„์ธต์„ ํ†ตํ•ด ๋ฌถ๋Š” ๊ณผ์ •

  ๊ณผ์ •

  1. ์—ฌ๋Ÿฌ ์†Œ์ผ“(socket)์œผ๋กœ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ(Data)๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.
  2. ๊ฐ ๋ฐ์ดํ„ฐ์— ์ถœ๋ฐœ์ง€/๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ ๋“ฑ ์ œ์–ด ์ •๋ณด(Transport Header)๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  3. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๋‹จ์œ„๋ฅผ ์„ธ๊ทธ๋จผํŠธ(Segment)๋ผ๊ณ  ํ•œ๋‹ค.
  4. ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ•˜์œ„ ๊ณ„์ธต(๋„คํŠธ์›Œํฌ ๊ณ„์ธต)์— ์ „๋‹ฌํ•˜์—ฌ, ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ๋ชฉ์ ์ง€๋กœ ์ „์†กํ•œ๋‹ค.
  5. ์ฆ‰, ๋‹ค์ค‘ํ™”๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ(Multiplex) ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

(2) ์ˆ˜์‹  ์ธก ์—ญ๋‹ค์ค‘ํ™” (Demultiplexing at Receiver)

๋„์ฐฉํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ•ด๋‹นํ•˜๋Š” ์†Œ์ผ“์œผ๋กœ ์ •ํ™•ํžˆ ๋ถ„๋ฐฐํ•˜๋Š” ๊ณผ์ •

  ๊ณผ์ •

  1. ์ˆ˜์‹  ์ธก์˜ ์ „์†ก ๊ณ„์ธต์€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ๋ถ€ํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ˆ˜์‹ ํ•œ๋‹ค.
  2. ์„ธ๊ทธ๋จผํŠธ์˜ ํ—ค๋” ์ •๋ณด(ํฌํŠธ ๋ฒˆํ˜ธ ๋“ฑ)๋ฅผ ๋ฅผ ๋ถ„์„ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์†Œ์ผ“์œผ๋กœ ๊ฐ€์•ผ ํ•˜๋Š”์ง€ ์‹๋ณ„ํ•œ๋‹ค.
  3. ์‹๋ณ„๋œ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ, ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค(P1, P2 ๋“ฑ)๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š”๋‹ค.
  4. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์ด ์˜ฌ๋ฐ”๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ •ํ™•ํžˆ ์ „๋‹ฌ๋œ๋‹ค.

2. Connetionless demultiplexing (UDP)

 UDP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ๋กœ, ๋‹จ์ˆœํ•œ ๋‹ค์ค‘ํ™”/์—ญ๋‹ค์ค‘ํ™” ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ “๋ˆ„๊ตฌ์—๊ฒŒ ๋ณด๋‚ด๋Š”์ง€”๋งŒ ๋ช…์‹œํ•˜๊ณ , ์—ฐ๊ฒฐ ๊ด€๋ฆฌ๋‚˜ ์˜ค๋ฅ˜ ๋ณต๊ตฌ๋Š” ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

UDP ์—ญ๋‹ค์ค‘ํ™”๋Š” ์˜ค์ง ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์‹ ํ•  ์†Œ์ผ“์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ์ถœ๋ฐœ์ง€ IP ์ฃผ์†Œ๋‚˜ ์ถœ๋ฐœ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ UDP ๋ฐ์ดํ„ฐ๊ทธ๋žจ์ด๋ผ๋„, ๋™์ผํ•œ ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ๋™์ผํ•œ ์†Œ์ผ“์œผ๋กœ ๋ชจ๋‘ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ˆ˜์‹  ์†Œ์ผ“์ด 2-ํŠœํ”Œ(๋ชฉ์ ์ง€ IP, ๋ชฉ์ ์ง€ ํฌํŠธ)์— ์˜ํ•ด์„œ๋งŒ ์‹๋ณ„๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

 

(1) UDP ์†ก์‹  ์ธก (Multiplexing at Sender)

 1. ์†Œ์ผ“ ์ƒ์„ฑ

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ UDP ํ†ต์‹ ์„ ์œ„ํ•ด DatagramSocket ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋•Œ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์˜ ํŠน์ • ํฌํŠธ ๋ฒˆํ˜ธ(์˜ˆ: 12534)์— ๋ฐ”์ธ๋”ฉ(binding) ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•  “์ถœ์ž…๊ตฌ” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 2. ๋ฐ์ดํ„ฐ๊ทธ๋žจ ์ƒ์„ฑ ๋ฐ ์ „์†ก

  • ์ƒ์„ฑ๋œ ์†Œ์ผ“์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ,
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐ˜๋“œ์‹œ ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ (Destination IP Address)์™€ ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (Destination Port Number)๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์ •๋ณด๋ฅผ ํ†ตํ•ด UDP๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ(datagram)์„ ์ƒ์„ฑํ•˜์—ฌ ํ•˜์œ„ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

(2) UDP ์ˆ˜์‹  ์ธก (Demultiplexing at Receiver)

 1. ์„ธ๊ทธ๋จผํŠธ ์ˆ˜์‹ 

  • ์ˆ˜์‹  ์ธก ํ˜ธ์ŠคํŠธ๋Š” ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ๋ถ€ํ„ฐ UDP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ์„ธ๊ทธ๋จผํŠธ์˜ ํ—ค๋”์— ํฌํ•จ๋œ ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 2. ์†Œ์ผ“ ์‹๋ณ„ ๋ฐ ์ „๋‹ฌ

  • ์šด์˜์ฒด์ œ(OS)๋Š” ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ์™€ ์™€ ์ผ์น˜ํ•˜๋Š” ์†Œ์ผ“์„ ์ฐพ์•„ ํ•ด๋‹น UDP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์‹๋ณ„๋œ ์†Œ์ผ“์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

3. Connection-oriented demultiplexing (TCP)

⇒ TCP๋Š” ์—ฐ๊ฒฐํ˜•(connection-oriented) ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๊ฐ„์— ‘์—ฐ๊ฒฐ(Connection)’์„ ๋จผ์ € ์„ค์ •ํ•˜๊ณ ,

์ด ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋œ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • TCP ์†Œ์ผ“ ์‹๋ณ„์ž: 4-ํŠœํ”Œ (4-tuple) TCP ์†Œ์ผ“, ์ฆ‰ ํŠน์ • ์—ฐ๊ฒฐ(Connection)์€ ๋‹ค์Œ 4๊ฐ€์ง€ ์š”์†Œ์˜ ์กฐํ•ฉ์œผ๋กœ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค. 
๊ตฌ๋ถ„  ์„ค๋ช… 
์ถœ๋ฐœ์ง€ IP ์ฃผ์†Œ (Source IP address) ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ์˜ IP
์ถœ๋ฐœ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (Source port number) ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌํŠธ
๋ชฉ์ ์ง€ IP ์ฃผ์†Œ (Destination IP address) ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์ชฝ์˜ IP
๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (Destination port number) ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌํŠธ

 

⇒  ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”์— ํฌํ•จ๋œ ์œ„ 4๊ฐ€์ง€ ๊ฐ’ ๋ชจ๋‘๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „๋‹ฌํ•  ์ •ํ™•ํ•œ ์†Œ์ผ“์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. (TCP์˜ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ)

(1) ์—ฐ๊ฒฐํ˜• ์—ญ๋‹ค์ค‘ํ™”์˜ ๋™์ž‘ ์›๋ฆฌ

์ˆ˜์‹  ์ธก์—์„œ TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์„ ๋•Œ,
์„ธ๊ทธ๋จผํŠธ ํ—ค๋”์— ํฌํ•จ๋œ 4-ํŠœํ”Œ(์ถœ๋ฐœ์ง€/๋ชฉ์ ์ง€ IP + ํฌํŠธ ๋ฒˆํ˜ธ)์„ ๋ชจ๋‘ ํ™•์ธํ•˜์—ฌ
์–ด๋–ค ์†Œ์ผ“์— ์ „๋‹ฌํ•ด์•ผ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์šด์˜์ฒด์ œ(OS)๋Š” ์ด 4-ํŠœํ”Œ์„ ๊ธฐ์ค€์œผ๋กœ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ TCP ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ TCP๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์™€ ๋™์‹œ์— ํ†ต์‹ ํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ ํ˜ผ์„  ์—†์ด ๋…๋ฆฝ์ ์ธ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(2) ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ์˜ ์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด ์›น ์„œ๋ฒ„์˜ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ 80์ด๋ผ๋ฉด, ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋™์‹œ์— ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ถœ๋ฐœ์ง€ IP ์ถœ๋ฐœ์ง€ port ์„œ๋ฒ„ (๋ชฉ์ ์ง€ IP, ํฌํŠธ)
Client A 192.168.1.10 51000 203.0.113.1:80
Client B 192.168.1.11 52000 203.0.113.1:80
    • ๋‘ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘ ๊ฐ™์€ ์„œ๋ฒ„์˜ 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์šด์˜์ฒด์ œ๋Š” ์ด๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์—ฐ๊ฒฐ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ์ถœ๋ฐœ์ง€ IP์™€ ํฌํŠธ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ๋Š” ์ด๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์—ฐ๊ฒฐ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์„œ๋ฒ„๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์™€ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ฐ ์—ฐ๊ฒฐ์€ ๋…๋ฆฝ์ ์ธ TCP ์†Œ์ผ“์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

⇒ ์ฆ‰, UDP vs TCP: UDP๊ฐ€ ๋ฒˆํ˜ธํ‘œ๋งŒ ๋ณด๊ณ  ์•„๋ฌด๋‚˜ ์‘๋Œ€ํ•˜๋Š” '์€ํ–‰ ์ฐฝ๊ตฌ'์˜€๋‹ค๋ฉด, TCP๋Š” ๊ณ ๊ฐ ํ•œ ๋ช… ํ•œ ๋ช…์—๊ฒŒ '์ „๋‹ด ์ƒ๋‹ด์›'์„ ๋ถ™์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด์—์š”.

 

 

### ํ‹€๋ฆฐ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋ง์”€ํ•ด ์ฃผ์„ธ์š”! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) ###