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

[Network] ARP(Address Resolution Protocol)

jjingle 2023. 10. 11. 11:40

ARP(Address Resolution Protocol)

  1. ์ฃผ์†Œ ๋ณ€ํ™˜
  2. ARP ํ”„๋กœํ† ์ฝœ
  3. ARP Package

1.  ์ฃผ์†Œ ๋ณ€ํ™˜(Address Mapping)

 : ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ๋‹ค์Œ-ํ™‰์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด์–ด๋„, ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต์„ ํ†ตํ•ด์„œ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ด์•ผํ•จ

  • ๋…ผ๋ฆฌ ์ฃผ์†Œ
    • ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ๋ ˆ๋ฒจ์˜ ์ฃผ์†Œ
    • ์ „์„ธ๊ณ„์ ์œผ๋กœ ์œ ์ผํ•œ ์ฃผ์†Œ๊ฐ’, 32๋น„ํŠธ ๊ธธ์ด(IP์ฃผ์†Œ)
  • ๋ฌผ๋ฆฌ ์ฃผ์†Œ
    • ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ์œ ํšจํ•˜๊ณ  ์œ ์ผํ•œ ์ฃผ์†Œ
    • ํ˜ธ์ŠคํŠธ /  ๋ผ์šฐํ„ฐ์— ์„ค์น˜๋œ NIC์— ์‹ค์žฅ๋˜์–ด ์žˆ์Œ
    • ์ด๋”๋„ท์˜ ๊ฒฝ์šฐ 48๋น„ํŠธ ๊ธธ์ด(MAC ์ฃผ์†Œ)

 

* ์ •์  ๋ณ€ํ™˜(Static Mapping)

  • ๋…ผ๋ฆฌ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ„์˜ ์—ฐ๊ด€ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉ
  • ํ•„์š” ์‹œ์— ์—ฐ๊ด€ ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰
  • ๋ฌด๋ฆด์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ, ์ •์  ํ…Œ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•ด์•ผํ•จ (NIC ๋ณ€๊ฒฝ, ์ปดํ“จํ„ฐ์˜ ์ด๋™ ๋“ฑ)

* ๋™์  ๋ณ€ํ™˜(Dynamic Mapping)

  • ๋ฌผ๋ฆฌ์ฃผ์†Œ์™€ ๋…ผ๋ฆฌ์ฃผ์†Œ ์ค‘์—์„œ ํ•˜๋‚˜๋งŒ ์•Œ๋ฉด ๋ณ„๋„์˜ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ์•Œ์•„๋ƒ„
  • ARP =  ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜
  • RARP(Reverse ARP) = ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๋…ผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜

 

2. ARP ํ”„๋กœํ† ์ฝœ

: IP ํ”„๋กœํ† ์ฝœ๋กœ๋ถ€ํ„ฐ ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์„œ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ ์ดํ›„์— ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต์— ์ „๋‹ฌ

 

* ARP ๊ธฐ๋ณธ ๋™์ž‘

  • ์†ก์‹ ์ž๋Š” ์ˆ˜์‹ ์ž์˜ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์งˆ์˜ํ•˜๋Š” ARP Request ํŒจํ‚ท์„ ์ „์†กํ•จ (๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํ•˜์—ฌ ๋™์ผ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ / ๋ผ์šฐํ„ฐ๊ฐ€ ์ˆ˜์‹ ํ•จ)
  • ์งˆ์˜์— ํฌํ•จ๋œ ์ˆ˜์‹ ์ž๊ฐ€ ์•„๋‹Œ ํ˜ธ์ŠคํŠธ / ๋ผ์šฐํ„ฐ๋Š” ์ž์‹ ์ด ์ˆ˜์‹ ํ•œ ARP Request ํŒจํ‚ท์„ ์‚ญ์ œ
  • ์ˆ˜์‹ ์ž๋Š” ์ž์‹ ์˜ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•œ ARP Reply ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์งˆ์˜ ํŒจํ‚ท์˜ ์†ก์‹ ์ž์—๊ฒŒ ์œ ๋‹ˆ์บ์ŠคํŠธ ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌ

 

* ARP ์ƒ์„ธ๋™์ž‘

  1. ์†ก์‹ ์ž๋Š” ํƒ€๊ฒŸ IP์ฃผ์†Œ๋ฅผ ์•Œ๊ณ  ์žˆ์Œ (ํŒจํ‚ท ํฌ์›Œ๋”ฉ์„ ํ†ตํ•ด)
  2. IP ๊ฐ€ ARP์—๊ฒŒ ARP Request ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ์š”์ฒญ -> '์†ก์‹ ์ž ๋ฌผ๋ฆฌ์ฃผ์†Œ, ์†ก์‹ ์ž IP์ฃผ์†Œ, ํƒ€๊ฒŸ IP์ฃผ์†Œ' ๋Š” ์ฑ„์šฐ์ง€๋งŒ ํƒ€๊ฒŸ ๋ฌผ๋ฆฌ์ฃผ์†Œ X
  3. ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต์— ARP ํŒจํ‚ท์ด ์ „๋‹ฌ๋˜๋ฉด ๋ฐœ์‹ ์ง€ ์ฃผ์†Œ๋Š” ์†ก์‹ ์ž์˜ ๋ฌผ๋ฆฌ์ฃผ์†Œ, ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋Š” ๋ฌผ๋ฆฌ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ํ•˜์—ฌ ํ”„๋ ˆ์ž„์œผ๋กœ ์บก์Šํ™” ์ˆ˜ํ–‰
  4. ๋™์ผ ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์™€ ๋ผ์šฐํ„ฐ๊ฐ€ ํ”„๋ ˆ์ž„์„ ์ˆ˜์‹ ํ•˜์—ฌ ์ž์‹ ์˜ ARP์—๊ฒŒ ์ „๋‹ฌ
  5. ํƒ€๊ฒŸ ์‹œ์Šคํ…œ์€ ์ž์‹ ์˜ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•œ ARP Reply ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก (์œ ๋‹ˆ์บ์ŠคํŠธ)
  6. ์†ก์‹ ์ž๋Š” ARP Reply ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ํƒ€๊ฒŸ ์‹œ์Šคํ…œ์˜ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํš๋“ํ•จ
  7. ์†ก์‹ ์ž๋Š” ํƒ€๊ฒŸ์—๊ฒŒ ๋ณด๋‚ด๋Š” IPํŒจํ‚ท์œผ๋กœ ํ”„๋ ˆ์ž„์„ ๊ตฌ์„ฑํ•  ๋•Œ, ARP์—์„œ ํš๋“ํ•œ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•จ

 

* ARP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” 4๊ฐ€์ง€ ๊ฒฝ์šฐ

  1. ์†ก์‹ ์ž๊ฐ€ ํ˜ธ์ŠคํŠธ๋กœ์„œ ๋™์ผ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—๊ฒŒ ํŒจํ‚ท์„ ์ „์†ก -> ํƒ€๊ฒŸ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ
  2. ์†ก์‹ ์ž๊ฐ€ ํ˜ธ์ŠคํŠธ์ด๊ณ , ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—๊ฒŒ ํŒจํ‚ท ์ „์†ก -> ํƒ€๊ฒŸ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋‹ค์Œ-ํ™‰ ๋ผ์šฐํ„ฐ์˜ IP ์ฃผ์†Œ
  3. ์†ก์‹ ์ž๊ฐ€ ๋ผ์šฐํ„ฐ์ด๊ณ , ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ƒ์— ์žˆ๋Š” ํ˜ธ์ŠคํŠธ๋กœ ๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ์ „๋‹ฌ -> ํƒ€๊ฒŸ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋‹ค์Œ-ํ™‰ ๋ผ์šฐํ„ฐ์˜ IP ์ฃผ์†Œ
  4. ์†ก์‹ ์ž๊ฐ€ ๋ผ์šฐํ„ฐ์ด๊ณ , ๋™์ผ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ํ˜ธ์ŠคํŠธ์—๊ฒŒ ํŒจํ‚ท์„ ์ „์†ก -> ํƒ€๊ฒŸ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ

 

* ์บ์‰ฌ ํ…Œ์ด๋ธ”(Cache Table)

  • ์†ก์‹ ์ž๊ฐ€ ๊ฐ™์€ ๋ชฉ์ ์ง€์— ์—ฌ๋Ÿฌ IP ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ๋ณด๋‚ผ ๋•Œ, ๋งค๋ฒˆ ARP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ 
  • ๋…ผ๋ฆฌ์ฃผ์†Œ์™€ ๋งคํ•‘๋˜๋Š” ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํš๋“ํ•˜๋ฉด ์บ์‰ฌ ํ…Œ์ด๋ธ”์— ์ €์žฅ
  • ์ดํ›„ ๋™์ผํ•œ ์ˆ˜์‹ ์ž์—๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ์— ๋Œ€ํ•ด์„œ๋Š” ์บ์‰ฌํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ’์„ ์‚ฌ์šฉ
  • ํ…Œ์ด๋ธ”์˜ ์šฉ๋Ÿ‰์€ ํ•œ์ •๋˜์–ด ๋ฌดํ•œ์ • ์œ ์ง€๋  ์ˆ˜ ์—†์Œ

 

* ํ(Queue)

 : ARP ๋™์ž‘์œผ๋กœ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํš๋“ํ•˜๋ ค๋Š” ๋™์•ˆ์— IPํŒจํ‚ท์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„

 

 

*  ์ถœ๋ ฅ ๋ชจ๋“ˆ(Output Module)

  • ์ „์†กํ•  IPํŒจํ‚ท์ด ์žˆ์œผ๋ฉด ๋ชฉ์ ์ง€ IP์ฃผ์†Œ์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์ด ์บ์‰ฌํ…Œ์ด๋ธ”์— ์žˆ๋Š”์ง€ ํ™•์ธ
  • ์บ์‰ฌ ํ…Œ์ด๋ธ”์— ์žˆ๊ณ  ์ด๋ฏธ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํš๋“ํ•œ ์ƒํƒœ(Resolved)๋ผ๋ฉด ๋งคํ•‘๋˜๋Š” ๋ฌผ๋ฆฌ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ
  • ์บ์‰ฌ ํ…Œ์ด๋ธ”์— ํ•ญ๋ชฉ์ด ์žˆ์ง€๋งŒ ์•„์ง ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ํš๋“ํ•˜๊ธฐ ์ด์ „ ์ƒํƒœ(Pending)๋ผ๋ฉด ํ์— ์ €์žฅํ•˜๊ณ  ๋Œ€๊ธฐ
  • ์บ์‰ฌ ํ…Œ์ด๋ธ”์— ํ•ญ๋ชฉ์ด ์—†๋‹ค๋ฉด ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์„ ์ƒ์„ฑํ•˜๊ณ  ARP ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ IP ํŒจํ‚ท์€ ํ์— ์ €์žฅํ•˜๊ณ  ๋Œ€๊ธฐ

 

* ์ž…๋ ฅ ๋ชจ๋“ˆ(Input Module)

  • ์ˆ˜์‹ ํ•œ ARP ํŒจํ‚ท์ด ARP Reply ํŒจํ‚ท์ด๊ณ , ํƒ€๊ฒŸ ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์บ์‰ฌํ…Œ์ด๋ธ”์— ์žˆ์œผ๋ฉด ARP Reply ํŒจํ‚ท์— ์žˆ๋Š” ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์บ์‰ฌํ…Œ์ด๋ธ”์— ๋ณต์‚ฌ
  • ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ’๊ณผ ํ•จ๊ป˜  ํ์— ์ €์žฅ๋œ ํŒจํ‚ท์„ ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต์— ์ „๋‹ฌ

* ์ˆ˜์‹ ํ•œ ARP ํŒจํ‚ท์ด ARP Reply ํŒจํ‚ท์ด๋ผ๋ฉด

  : ํƒ€๊ฒŸ IP ์ฃผ์†Œ๊ฐ’์ด ์ž์‹ ์ด๋ผ๋ฉด ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ARP Reply ํŒจํ‚ท์„ ๋งŒ๋“ค์–ด์„œ ์ „์†ก

 

* ์บ์‰ฌ ์ œ์–ด ๋ชจ๋“ˆ(Cache-Control Module)

  • ์บ์‰ฌ ํ…Œ์ด๋ธ”์„ ์œ ์ง€/ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ
  • ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ’์„ ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ํš๋“ํ•˜์ง€ ๋ชปํ•œ ํ•ญ๋ชฉ(Pending)์˜ ๊ฒฝ์šฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ์žฌ์‹œ๋„ -> ์ตœ๋Œ€ ํšŸ์ˆ˜ ์ดํ•˜๋กœ ์žฌ์‹œ๋„
  • ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ’์„ ์ด๋ฏธ ํš๋“ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ•ญ๋ชฉ(Resolved)์˜ ๊ฒฝ์šฐ์—๋„ ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์บ์‰ฌ ํ…Œ์ด๋ธ”์—์„œ ์‚ญ์ œ