Post

[CS] Computer Networking - Network layer(1)

[CS] Computer Networking - Network layer(1)

๐Ÿ“š์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์ „๊ณต ์ˆ˜์—… ์ •๋ฆฌ

Network Layer


alt text

๐Ÿ“šNewworkLayer: ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๋กœ ์„ค์ •๊ณผ ์ „๋‹ฌ์„ ๋‹ด๋‹น

  • ํ•ต์‹ฌ๊ธฐ๋Šฅ:
    1. sending host์—์„œ receiving host๋กœ trasport segment ์ „๋‹ฌ
    2. sending ์ธก์—์„œ segment๋ฅผ datagram์œผ๋กœ ์บก์Аํ™”
    3. receiving ์ธก์—์„œ segment๋ฅผ transport layer๋กœ ์ „๋‹ฌ
    4. ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์™€ router์—์„œ network layer protocol ์‹คํ–‰
    5. router๊ฐ€ ๋ชจ๋“  IP datagram์˜ ํ—ค๋” ํ•„๋“œ ๊ฒ€์‚ฌ

Netwrok์˜ two key functions


1. Routing

๐Ÿ“š**Routing: ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€์˜ **๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •

  • ์—ฌํ–‰์„ ๊ณ„ํšํ•  ๋•Œ ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๊ณ„ํšํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ

2. Forwarding

๐Ÿ“šForwarding: ๋ผ์šฐํ„ฐ๊ฐ€ ์ž…๋ ฅ ํฌํŠธ์—์„œ ์ ์ ˆํ•œ ์ถœ๋ ฅ ํฌํŠธ๋กœ ํŒจํ‚ท์„ ์ด๋™์‹œํ‚ค๋Š” ๊ณผ์ •

  • ์—ฌํ–‰ ์ค‘ ๊ฐ ๊ต์ฐจ๋กœ์—์„œ ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ

alt text

  • Routing algorithm์„ ํ†ตํ•ด ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ forwarding table์„ ๋งŒ๋“ฆ
  • forwarding table์„ ํ†ตํ•ด output link๋กœ ํŒจํ‚ท ์ „์†ก
    • ํ•˜์ง€๋งŒ ์œ ์‹ค ๊ฐ€๋Šฅ์„ฑ์€ ์กด์žฌ!

์‹ค์ œ ์ธํ„ฐ๋„ท์—๋Š” ์•ฝ 40์–ต ๊ฐœ์˜ IP ์ฃผ์†Œ๊ฐ€ ์กด์žฌ โ†’ ๋งŒ์•ฝ ๊ฐ๊ฐ์˜ ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋งˆ๋‹ค ๊ฐœ๋ณ„ ์—”ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ํฌ์›Œ๋”ฉ ํ…Œ์ด๋ธ”์ด ๋„ˆ๋ฌด ์ปค์ ธ์„œ ๋น„ํšจ์œจ์ !

  • ๊ทธ๋ž˜์„œ ๊ฐ ์—”ํŠธ๋ฆฌ์— ์ „์ฒด ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ Address range๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

Address Range Aggregation


alt text

  • ๊ฐœ๋ณ„ ์ฃผ์†Œ ๋Œ€์‹  ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉ
  • ์—ฌ๋Ÿฌ ๋ชฉ์ ์ง€๋ฅผ ํ•˜๋‚˜์˜ entry๋กœ ํ†ตํ•ฉ โ†’ table size๋ฅผ ๋Œ€ํญ ๊ฐ์†Œ

์œ„์˜ table ์˜ˆ์‹œ์—์„œ ์—ฌ๋Ÿฌ ์—”ํŠธ๋ฆฌ์— ๋ชฉ์ ์ง€ ์ฃผ์†Œ๊ฐ€ ๋งค์นญ๋  ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•จ

โœ…๊ฐ€์žฅ ๊ธธ๊ฒŒ ๋งค์นญ๋˜๋Š” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์„ ํƒ!

  • Longest Prefix Matching
    • ๋ชฉ์ ์ง€ ์ฃผ์†Œ์™€ ๊ฐ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ์˜ prefix๋ฅผ ๋น„๊ต
    • ์—ฌ๋Ÿฌ ๋งค์นญ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด longest prefix matching์„ ์„ ํƒ
    • ํ•ด๋‹นํ•˜๋Š” ์ถœ๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํŒจํ‚ท ์ „์†ก
  • ์˜ˆ์‹œ:
  • DA: 11001000 00010111 00010110 10100001
  • ๋งค์นญ ๊ฐ€๋Šฅํ•œ entrys:
    • 11001000 00010111 00010*** ******** (21bits ๋งค์นญ)
    • 11001000 00010111 00011*** ******** (20bits ๋งค์นญ)
  • 21bits๊ฐ€ ๋” ๊ธธ๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ์—”ํŠธ๋ฆฌ ์„ ํƒ โ†’ interface 0

โญIP(Internet Protocol)


IP datagram format

alt text

IP datagram format

  1. ๊ธฐ๋ณธ ์ •๋ณด ํ•„๋“œ
    • ver: IP protocol version (IPv4 = 4 / IPv6 = 6)
    • header length: ํ—ค๋”์˜ ๊ธธ์ด(4bytes)
      • ๋ฐ์ดํ„ฐ ํ•œ ์ค„์ด 32bits(4bytes)์ด๋ฏ€๋กœ 5์ค„ * 4bytes = 20bytes๊ฐ€ ๊ธฐ๋ณธ IP header ๊ธธ์ด
    • type of service: IP data type์„ ํ‘œ์‹œ.
    • length: ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด(bytes) = header + data
  2. ๋ถ„ํ• /์žฌ์กฐ๋ฆฝ ํ•„๋“œ
    • 16-bit identifier: ๋ถ„ํ• ๋œ ํŒจํ‚ท๋“ค์˜ ์›๋ณธ ์‹๋ณ„์ž
    • flags : ๋ถ„ํ•  ์ œ์–ด
    • fragment offset: ๋ถ„ํ• ๋œ ๋ฐ์ดํ„ฐ์˜ ์›๋ณธ ์œ„์น˜
  3. ๋„คํŠธ์›Œํฌ ์ œ์–ด ํ•„๋“œ
    • time to live(TTL): ํŒจํ‚ท ์ƒ์กด ์‹œ๊ฐ„(hop ์ˆ˜). data๊ฐ€ ๋ผ์šฐํ„ฐ์—์„œ ๋ฌดํ•œํžˆ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€
      • hop: ๋ผ์šฐํ„ฐ๋ฅผ ํ•˜๋‚˜ ๊ฑด๋„ˆ๊ฐ€๋Š” ํ–‰์œ„
      • ex: ์ฒ˜์Œ์— 200๊ฐœ์˜ hop์„ ํ• ๋‹น โ†’ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ผ์šฐํ„ฐ๋ฅผ ๊ฑด๋„๋•Œ ๋งˆ๋‹ค TTLํ•„๋“œ ๊ฐ’์ด ์ค„์–ด๋“ฆ โ†’ TTL=0์ด ๋˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ช…์ด ๋‹คํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ โ†’ ๋ผ์šฐํ„ฐ์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐ โ†’ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ฐœํ•œ ๊ณณ์— ์–ด๋–ค ๋ผ์šฐํ„ฐ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ๋‹ค๊ณ  ์•Œ๋ ค์คŒ
    • upper layer: upper layer(=Transport layer) protocol(TCP/UDP) ์‹๋ณ„
    • header checksum: transport layer์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ์˜ header ์˜ค๋ฅ˜ ๊ฒ€์ถœ
  4. ์ฃผ์†Œ ํ•„๋“œ
    • ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•„๋“œ
    • 32 bit source IP address: ์ถœ๋ฐœ์ง€ IP ์ฃผ์†Œ
    • 32 bit destination IP address: ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ
  • option: ์ถ”๊ฐ€์ ์ธ ์ •๋ณด ์ €์žฅ(์—†์„ ์ˆ˜๋„ ์žˆ์Œ)

๊ฐ ํ•„๋“œ๋ณ„ ์ž์„ธํ•œ๊ฑด ์ฐจ์ฐจ ์•Œ์•„๋ณด์ž

IP data์—๋Š” TCP or UDP๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ segment๊ฐ€ ์žˆ๊ณ  ๊ฑฐ๊ธฐ์— ๋„คํŠธ์›Œํฌ layer header๊ฐ€ ๋ง๋ถ™์—ฌ์ง„๋‹ค ๊ทธ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์—๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์กด์žฌ alt text

  • Total overhead: 40bytes(IP 20bytes + TCP 20bytes) + app msg

์œ„์—์„œ ๋ณธ IP datagram format์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ source/destination IP address์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

IPv4 addressing


๐Ÿ“šIP address: 32-bit unique number๋กœ, ํ˜ธ์ŠคํŠธ๋‚˜ ๋ผ์šฐํ„ฐ์˜ interface๋ฅผ ์‹๋ณ„

  • dotted-quad notation์œผ๋กœ ํ‘œํ˜„๋จ alt text

    12.34.158.5

๊ทธ๋Ÿผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ ๋ฐฐ์ •ํ• ๊นŒ??


alt text

์ธํ„ฐ๋„ท์€ ๊ฐœ๋ณ„ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋„คํŠธ์›Œํฌ๋“ค์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ์Šต์ด๋‹ค

โŒํ˜ธ์ŠคํŠธ๋งˆ๋‹ค ์ž„์˜์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•œ ๊ฒฝ์šฐ alt text

  • ๋ผ์šฐํ„ฐ๊ฐ€ ๋ชจ๋“  ๊ฐœ๋ณ„ ํ˜ธ์ŠคํŠธ ์ •๋ณด ์ €์žฅ ํ•„์š”
  • forwarding table์˜ ํฌ๊ธฐ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์ปค์ง!(์ „ ์„ธ๊ณ„ ํ˜ธ์ŠคํŠธ์˜ ์ˆ˜)

์ฃผ์†Œ๋ฅผ ๊ณ„์ธต๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์ž!!

alt text

  • IP address๋ฅผ ๋„คํŠธ์›Œํฌ ๋ถ€๋ถ„ + ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ• 
  • ๊ฐ™์€ subnet์˜ ํ˜ธ์ŠคํŠธ๋“ค์„ ๊ทธ๋ฃนํ™”
  • ๋ผ์šฐํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ ๋‹จ์œ„๋กœ๋งŒ ๊ฒฝ๋กœ๋ฅผ ๊ด€๋ฆฌ
Subnet Mask

alt text

๐Ÿ“šSubnet mask: IP ์ฃผ์†Œ์—์„œ ๋„คํŠธ์›Œํฌ ๋ถ€๋ถ„๊ณผ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ 32bit ๊ฐ’

  • IP ์ฃผ์†Œ์™€ Subnet mask๋ฅผ ์ค€๋น„ํ•˜๊ณ  AND ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์„œ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋ฅผ ์–ป์–ด๋ƒ„

Scalability Improved


์ด์ œ ๊ฐœ๋ณ„ ํ˜ธ์ŠคํŠธ๋งˆ๋‹ค IP์ฃผ์†Œ๋ฅผ ์ฃผ๊ณ  ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด ๋„คํŠธ์›Œํฌ ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค!

alt text

๋งŒ์•ฝ 5.6.7.213 ํ˜ธ์ŠคํŠธ ์ถ”๊ฐ€ ์‹œ ๊ธฐ์กด 5.6.7.0/24 ๊ฒฝ๋กœ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋จ
์ฆ‰, forwading table ์—”ํŠธ๋ฆฌ ์ถ”๊ฐ€(๋ผ์šฐํ„ฐ ์—…๋ฐ์ดํŠธ) ๋ถˆํ•„์š”

This post is licensed under CC BY 4.0 by the author.