Computer Network #03-1. Transport Layer : Multiplexing and demultiplexing

๊น€์„œ์˜ยท2025๋…„ 4์›” 18์ผ
0

์ปดํ“จํ„ฐ๋„คํŠธ์›Œํฌ

๋ชฉ๋ก ๋ณด๊ธฐ
12/15
post-thumbnail

1. Multiplexing / Demultiplexing ๊ฐœ์š”

Multiplexing (์†ก์‹  ์ธก)

์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ(์†Œ์ผ“)์—์„œ ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋ชจ์•„์„œ ๋„คํŠธ์›Œํฌ๋กœ ๋ณด๋ƒ„

  • ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ์— ์ „์†ก ๊ณ„์ธต ํ—ค๋”(ex.port ๋ฒˆํ˜ธ)๋ฅผ ๋ถ™์ž„
    (header๋Š” ๋‚˜์ค‘์— ์‹๋ณ„ํ•  ๋•Œ ์‚ฌ์šฉ)
  • ํ•ฉ์น˜๊ธฐ ๋А๋‚Œ

Demultiplexing (์ˆ˜์‹  ์ธก)

์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ(segment) ๋ฅผ ๋ฐ›๊ณ , ํ—ค๋” ์ •๋ณด๋ฅผ ํ™•์ธํ•ด์„œ ์–ด๋А ํ”„๋กœ๊ทธ๋žจ(์†Œ์ผ“)์œผ๋กœ ๋ณด๋‚ด์•ผ ํ•  ์ง€ ๊ฒฐ์ •

  • ๋‚˜๋ˆ„๊ธฐ ๋А๋‚Œ

2. Demultiplexing ๋™์ž‘ ๋ฐฉ์‹

1) host๊ฐ€ IP datagram ์ˆ˜์‹ 

IP datagram ์š”์†Œ

  • ์†ก์‹ ์ง€ IP Address
  • ๋ชฉ์ ์ง€ IP Address
  • ์ „์†ก ๊ณ„์ธต Segment(TCP/UDP Segment format)

2) Segment ์•ˆ ์ •๋ณด

  • ์†ก์‹ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (source port)
  • ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (destination port)
  • ๊ธฐํƒ€ ํ—ค๋” ํ•„๋“œ : TCP/UDP ์˜ต์…˜๋“ค
  • application data (payload)
    ์ง„์งœ ๋ณด๋‚ด๋ ค๋˜ ๋ฐ์ดํ„ฐ (ex. ๋ฉ”์ผ, ์ฑ„ํŒ… ๋“ฑ)

host๋Š” IP address์™€ Port ๋ฒˆํ˜ธ๋ฅผ ๋ณด๊ณ  ์ ์ ˆํ•œ ์†Œ์ผ“(Process)์œผ๋กœ ์ „๋‹ฌ

3. Demultiplexing (UDP)

1) ์ดˆ๊ธฐ ์ค€๋น„ ๋‹จ๊ณ„
์†Œ์ผ“ ์ƒ์„ฑ ํ›„, ํ˜ธ์ŠคํŠธ ๋‚ด๋ถ€ ํฌํŠธ ๋ฒˆํ˜ธ์— ๋ฐ”์ธ๋”ฉ

serverSocket.bind(('', serverPort))

2) ์†ก์‹  ๋‹จ๊ณ„
UDP datagram์„ ๋ณด๋‚ผ ๋•Œ๋Š”๋ชฉ์ ์ง€ IP Address + Port ๋ฒˆํ˜ธ๋ฅผ ๋ช…์‹œ ํ•ด์•ผํ•จ

3) ์ˆ˜์‹  ๋‹จ๊ณ„
์ˆ˜์‹ ํ•œ UDP ์„ธ๊ทธ๋จผํŠธ์˜ ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•˜๋ฉด,
ํ•ด๋‹น ํฌํŠธ ๋ฒˆํ˜ธ์— ๋ฐ”์ธ๋”ฉ๋œ ์†Œ์ผ“์œผ๋กœ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „๋‹ฌ

  • ๋ชฉ์ ์ง€ port ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์œผ๋ฉด, ์†ก์‹  IP address๋‚˜ ์†ก์‹  port ๋ฒˆํ˜ธ๊ฐ€ ๋‹ฌ๋ผ๋„ ๋ชจ๋‘ ๊ฐ™์€ ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌ
    (๋ชฉ์ ์ง€ port ๋ฒˆํ˜ธ๋งŒ ๋ณด๊ณ  ์†Œ์ผ“ ๊ฒฐ์ •)

Example

์†ก์‹ ์ž์˜ IP๋‚˜ ์†ก์‹  ํฌํŠธ๋Š” ๋‹ค๋ฅด์ง€๋งŒ,
๋ชฉ์ ์ง€ ํฌํŠธ๋งŒ ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ์„œ๋ฒ„ ์†Œ์ผ“์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธ ๊ฐ€๋Šฅ

Server

6428๋ฒˆ ํฌํŠธ์— ๋ฐ”์ธ๋”ฉ

serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', 6428))

Client1

clientSocket ๋งŒ๋“ค์–ด์„œ ๋ฐ์ดํ„ฐ ๋ณด๋ƒ„
source port: 9157, dest port: 6428

Client2

๋‹ค๋ฅธ clientSocket ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ ๋ณด๋ƒ„
source port: 5775, dest port: 6428

4. Demultiplexing (TCP)

4-tuple

TCP ์†Œ์ผ“์€ ๋ชฉ์ ์ง€ ํฌํŠธ๋งŒ ๋ณด๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ,
4๊ฐœ์˜ ๊ฐ’์„ ๋ชจ๋‘ ๋ณด๊ณ  ๊ตฌ๋ณ„
(๋ชจ๋“  ๊ฐ’์ด ์ผ์น˜ํ•ด์•ผ ๊ฐ™์€ TCP ์†Œ์ผ“์œผ๋กœ ํŒ๋‹จ)

  • source IP address (์†ก์‹ ์ž IP ์ฃผ์†Œ)
  • source port number (์†ก์‹ ์ž ํฌํŠธ ๋ฒˆํ˜ธ)
  • destination IP address (์ˆ˜์‹ ์ž IP ์ฃผ์†Œ)
  • destination port number (์ˆ˜์‹ ์ž ํฌํŠธ ๋ฒˆํ˜ธ)

Example

์„œ๋ฒ„๋Š” ์ด๊ฑธ ์ „๋ถ€ ๋‹ค๋ฅธ ์—ฐ๊ฒฐ๋กœ ๊ตฌ๋ณ„ํ•ด์„œ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ

  • A์—์„œ ์˜จ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ: (A, 49325, B, 80)
  • A์—์„œ ์˜จ ๋‘ ๋ฒˆ์งธ ์š”์ฒญ: (A, 49326, B, 80)
  • C์—์„œ ์˜จ ์š”์ฒญ: (C, 5775, B, 80)

์†ก์‹  IP/Port๊นŒ์ง€ ๋ณด๋ฉด, ๋ˆ„๊ฐ€ ๋ณด๋ƒˆ๋Š”์ง€๋„ ์™„์ „ํžˆ ๊ตฌ๋ณ„ ๊ฐ€๋Šฅ (TCP์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์—ฌ์คŒ)

profile
์•ˆ๋…•ํ•˜์„ธ์š” :)

0๊ฐœ์˜ ๋Œ“๊ธ€