์ฒดํฌ์„ฌ (checksum)

์ฒดํฌ์„ฌ์€ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ€๋“œ๋ ˆ์ผ์ด๋‹ค.
๋„คํŠธ์›Œํฌ ์ „์†ก์ด๋‚˜ ๋””์Šคํฌ ์ „์†ก ๋“ฑ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์†์‹ค์„ ๊ฐ์ง€ํ•˜๊ณ  ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.




์†์‹ค ๋ฌธ์ œ

๋ฐ์ดํ„ฐ ์†์‹ค๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋Š” ๋Œ€๊ฐœ ํ•˜๋“œ์›จ์–ด์˜ ๋ณธ์งˆ์ ์ธ ํ•œ๊ณ„์—์„œ ๋น„๋กฏ๋œ๋‹ค.
๋ชจ๋“  I/O์€ ์ „์†ก ๊ณผ์ •์—์„œ ์†์‹ค์ด๋‚˜ ์™œ๊ณก์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ฆฌ์ ์ธ ํ•œ๊ณ„๋กœ ์ธํ•œ ๋ช‡๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋‹น์žฅ ๋„คํŠธ์›Œํฌ์— ๋ฐ”์ดํŠธ๋ฅผ ์ „์†กํ•˜๋”๋ผ๋„, ์‚ฌ์‹ค ์ด๊ฒŒ ์ œ๋Œ€๋กœ ์ „์†ก๋œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†๋‹ค.
๋‹น์žฅ ๋น„ํŠธ 4๊ฐœ๋ฅผ ๋ณด๋‚ด๋”๋ผ๋„

์˜๋„์น˜ ์•Š๊ฒŒ ์ด๋ ‡๊ฒŒ ๊ฐ’์ด ์™œ๊ณก๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์š”์ธ์€ ๋‹ค์–‘ํ•˜๋‹ค.
๋„คํŠธ์›Œํฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ์ผ€์ด๋ธ”๋ผ๋ฆฌ ์ „๊ธฐ์  ๊ฐ„์„ญ์„ ํ•ด์„œ ๊ผฌ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์žฅ๊ฑฐ๋ฆฌ ์ „์†ก์‹œ์— ์‹ ํ˜ธ๊ฐ€ ์•ฝํ•ด์ ธ์„œ ํ•ด์„์„ ์ž˜๋ชป ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋ผ์šฐํ„ฐ ๋ฌธ์ œ๋กœ ํŒจํ‚ท์ด ๋’ค์„ž์ผ ์ˆ˜๋„ ์žˆ๋‹ค.
๋””์Šคํฌ์˜ ๊ฒฝ์šฐ์—๋Š” ๋””์Šคํฌ์˜ ๋ฌผ๋ฆฌ์  ์†์ƒ์ด๋‚˜ ์ž๊ธฐ๋ ฅ ๊ฐ์†Œ(HDD), ๋†’์€ ์˜จ๋„, ์ „์› ์ฐจ๋‹จ ๋“ฑ์—์„œ ๊ฐ’์˜ ์™œ๊ณก์ด ๋ฐœ์ƒํ•˜๊ณค ํ•œ๋‹ค. ์ด ๋˜ํ•œ ๋“œ๋ฌผ์ง€ ์•Š๋‹ค.

์ด๊ฑด ๋ณธ์งˆ์ ์œผ๋กœ ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์—์„œ๋Š” ์™„์ „ํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋‹ค. ์ €๋Ÿฐ๊ฑธ ์–ด๋–ป๊ฒŒ ๋ง‰๊ฒ ๋Š”๊ฐ€..?
์–ด์ฐŒ๋˜์—ˆ๋“  ๋ชจ๋“  ์ปดํ“จํ„ฐ ์žฅ๋น„๋“ค์€ ๋ฌผ๋ฆฌ์ ์ธ ํ˜„์‹ค ์†์— ์กด์žฌํ•œ๋‹ค.

์ด๋Ÿฐ ์†์‹ค์€ ๋Œ€๊ฐœ ๋ฐœ์ƒ ํ™•๋ฅ ์ด ์—„์ฒญ ๋†’์ง„ ์•Š์ง€๋งŒ, ์—†์ง€๋„ ์•Š๋‹ค.
๋„คํŠธ์›Œํฌ ์ „์†ก์˜ ์†์‹ค๋ฅ ์ด ๋Œ€๊ฐœ 0.0001% ~ 0.0000001% ์ •๋„๋กœ ๊ฐ€์žฅ ๋ฐœ์ƒ๋ฅ ์ด ๋†’์œผ๋ฉฐ, ๊ทธ ๋‹ค์Œ์œผ๋กœ HDD, SSD, RAM ์ˆœ์œผ๋กœ ์•ˆ์ •์ ์ด๋‹ค.
๊ทธ๋ž˜์„œ ์‚ฌ์‹ค 1GB ๋‹จ์œ„์˜ ๋„คํŠธ์›Œํฌ ์ „์†ก๋งŒ ํ•˜๋”๋ผ๋„, ํ™•๋ฅ ์ ์œผ๋กœ ๋น„ํŠธ ์ด์ƒ์ด ๋ช‡๊ฐœ์ฏค์€ ๋ฐ˜๋“œ์‹œ ์ƒ๊ธด๋‹ค. ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์ด ์ฉ ์ข‹์ง€ ์•Š๋‹ค๋ฉด ์†์‹ค ํ™•๋ฅ ์€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ƒ์Šนํ•œ๋‹ค.




์ฒดํฌ์„ฌ์˜ ์›๋ฆฌ

์ฒดํฌ์„ฌ์€ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋‹ค.
ํ˜ผ๋™ํ•ด์„œ๋Š” ์•ˆ๋˜๋Š”๋ฐ, ์ด๊ฑด ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด์ง€, ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด ์•„๋‹ˆ๋‹ค. ์ฒดํฌ์„ฌ์—์„œ ๋ฌธ์ œ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ๋ณ„๋„์˜ ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

๋Œ€๋žต์ ์ธ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ์‚ฐ์„ ํ•ด์„œ "์ฒดํฌ์„ฌ"์ด๋ผ๋Š” ๊ฐ’์„ ๋งŒ๋“ ๋‹ค.

  2. ๋ฐ์ดํ„ฐ์™€ ์ฒดํฌ์„ฌ์„ ๋™์‹œ์— ์ „์†กํ•œ๋‹ค.

  3. ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ์—ฐ์‚ฐ์„ ํ•ด์„œ "์ฒดํฌ์„ฌ(new)"์„ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ , ๊ธฐ์กด์˜ "์ฒดํฌ์„ฌ(old)"๊ณผ ๋น„๊ตํ•œ๋‹ค.

  4. ์ฒดํฌ์„ฌ์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ญ”๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋œ ๊ฒƒ์ด๋‹ค.



๊ทผ๋ฐ ์‚ฌ์šฉ์— ์•ž์„œ์„œ ์ˆ™์ง€ํ•ด์•ผํ•  ๊ฒƒ์€, ์ฒดํฌ์„ฌ ์ž์ฒด๊ฐ€ 100% ์ •ํ™•ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๊ฐ€ ๋ง‰ํžˆ๊ฒŒ ๊ผฌ์ด๋ฉด, ๋งค์šฐ ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ์ฒดํฌ์„ฌ ๊ฒ€์ฆ์— ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜์—ˆ๋Š”๋ฐ๋„ ์†์‹ค ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ด ํ˜„์ƒ์„ ์ถฉ๋Œ(collision)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด๋Ÿฐ ๋ถˆ์•ˆ์ •ํ•œ ๋ถ€๋ถ„์€ Hash์™€ ๋น„์Šทํ•˜๋‹ค.

๊ทธ๋ž˜์„œ ์ฒดํฌ์„ฌ๋งŒ์„ ์™„์ „ํ•˜๊ฒŒ ๋งน์‹ ํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ, ์‹ค์šฉ์ ์ธ ๊ตฌํ˜„๋“ค์—์„œ๋Š” ์‹คํŒจ์œจ์ด ๋งค์šฐ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ๋ฌด์‹œํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค.
์‹ค์ œ๋กœ TCP, Ethernet ๋“ฑ์˜ ๋„คํŠธ์›Œํฌ ๋ ˆ์ด์–ด๋Š” ์ฒดํฌ์„ฌ ์ฒดํฌ๋ฅผ ํ•˜์ง€๋งŒ, ์ฒดํฌ์„ฌ ์ถฉ๋Œ์€ ๋ฌด์‹œํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋งค์šฐ ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ์†์‹ค๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ†ต๊ณผ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋А๋ผ๊ธฐ๋Š” ์–ด๋ ต๋‹ค.




์ฒดํฌ์„ฌ์˜ ๊ตฌํ˜„ ๋ฐฉ์‹๋“ค

๊ทธ๋ฆฌ๊ณ  ์ฒดํฌ์„ฌ์˜ ๊ตฌํ˜„ ๋ฐฉ์‹์€ ํ•œ๊ฐ€์ง€๊ฐ€ ์•„๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ตฌํ˜„ ๋ฐฉ์‹์ด ์žˆ๊ณ , ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ด์„œ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.
์ฒดํฌ์„ฌ์˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ํฌ๊ฒŒ ์žก์„์ง€, ์ฒดํฌ์„ฌ์˜ ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์–ด๋–ป๊ฒŒ ํ• ์ง€๋ถ€ํ„ฐ ์ „๋ถ€ ์ •ํ•ด์ง„ ๊ฒƒ์ด ์—†๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„ ๋ฐฉ์‹ ๋ช‡๊ฐ€์ง€๋งŒ ๊ฐ„๋‹จํžˆ ๋‹ค๋ค„๋ณธ๋‹ค.




๋‹จ์ˆœ ํ•ฉ์‚ฐ ๊ณ„์—ด

๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๊ตฌํ˜„ ๋ฐฉ์‹์€, ๊ทธ๋ƒฅ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ๋ฐ”์ดํŠธ๋ฅผ ๋”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ๋ฐ”์ดํŠธ๋ฅผ ๋ฐ”์ดํŠธ๋กœ ๋”ํ•ด์„œ ๊ทธ ์•„๋žซ๋‹จ์œ„๊ฐ€ ์ž˜๋ฆฌ๋„๋ก ํ–ˆ๋‹ค.
๋งค์šฐ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด์ง€๋งŒ, ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์ด ๋งค์šฐ ๋‚ฎ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด์ฒ˜๋Ÿผ 1๋ฐ”์ดํŠธ์ธ ๊ฒฝ์šฐ์—๋Š” ๋‚ฎ์ง€ ์•Š์€ ํ™•๋ฅ ๋กœ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒดํฌ์„ฌ์˜ ๋ฐ”์ดํŠธ ํฌ๊ธฐ๋ฅผ ํ‚ค์šธ์ˆ˜๋ก ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์ด ๋Š˜๊ธด ํ•˜๊ฒ ์ง€๋งŒ, ์™„์ „ํ•˜์ง„ ์•Š๋‹ค.
์‹ค๋ฌด์—์„œ๋Š” ๊ฑฐ์˜ ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค.


๊ผญ ๋ง์…ˆ์ด ์•„๋‹ˆ์–ด๋„ ๋œ๋‹ค. XOR ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๋‹จ์ˆœ ๋ง์…ˆ๊ณผ ๋น„๊ตํ•ด์„œ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง„ ๊ฒƒ์€ ์—†์ง€๋งŒ, ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์ด ์•„์ฃผ ์•ฝ๊ฐ„ ๋” ๋‚ซ๊ธด ํ•˜๋‹ค.
๊ทธ๋ž˜๋„ ์‹ค๋ฌด์—์„œ๋Š” ๊ฑฐ์˜ ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค.


ํ˜น์€, ๋ง์…ˆ ๊ธฐ๋ฐ˜์— ๋‚˜๋จธ์ง€์…ˆ์„ ์‚ฌ์šฉํ•ด์„œ ์ฒดํฌ์„ฌ์„ ๋งŒ๋“ค๊ธฐ๋„ ํ•œ๋‹ค.
์ด ๋ฐฉ๋ฒ•์€ ์‹ค์ œ๋กœ UDP, IP ํ—ค๋” ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฒดํฌ์„ฌ ๊ธฐ๋ฒ•์ด๋‹ค. ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์ด ๋†’์ง„ ์•Š์ง€๋งŒ, ๊ฐ€๋ณ๊ณ  ์„ฑ๋Šฅ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ์“ด๋‹ค.




CRC (Cyclic Redundancy Check)

CRC๋Š” ๋”ฑ ์ฒดํฌ์„ฌ ์šฉ๋„๋กœ ๊ณ ์•ˆ๋œ, ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ์ฒดํฌ์„ฌ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
์ฒดํฌ์„ฌ์˜ ์ตœ์ข… ๋น„ํŠธ ํฌ๊ธฐ๋ณ„๋กœ CRC-8, CRC-16, CRC-32, CRC-64 ๋“ฑ์˜ ๊ตฌํ˜„์ฒด๊ฐ€ ์กด์žฌํ•œ๋‹ค.

๋‹น์—ฐํ•˜์ง€๋งŒ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์ด ์ปค์ง„๋‹ค.
๋Œ€์ฒด๋กœ๋Š” ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์˜ ๊ท ํ˜•์ด ๊ดœ์ฐฎ์€ 32๋น„ํŠธ๋ฅผ ๊ถŒ์žฅํ•œ๋‹ค.

๋งค์šฐ ๋งŽ์€ I/O ๊ด€๋ จ ๊ตฌํ˜„์ฒด์—์„œ CRC ๊ธฐ๋ฐ˜์˜ ์ฒดํฌ์„ฌ์„ ํ™œ์šฉํ•œ๋‹ค. ๊ผฝ์ž๋ฉด ๋๋„ ์—†์ง€๋งŒ ๋Œ€๋ณด์ž๋ฉด






๋ฒ”์šฉ ํ•ด์‹œ ํ•จ์ˆ˜ ์‚ฌ์šฉ

์ •๋ง ๊ฐ•๋ ฅํ•œ ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ๋งค์šฐ ํฐ ํฌ๊ธฐ์˜ ํ•ด์‹œ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๋ฒ”์šฉ ํ•ด์‹œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค.
MD5, SHA256 ๊ฐ™์€ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ ๊ธด ๊ธธ์ด์˜ ์ฒดํฌ์„ฌ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

๋งค์šฐ ํฌ๊ณ  ์ƒ์„ฑ๋„ ๋А๋ฆฌ์ง€๋งŒ, ํฌ๊ธฐ๊ฐ€ ํฐ๋งŒํผ ์ถฉ๋Œ ํ™•๋ฅ ์ด ๋งค์šฐ ๋‚ฎ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
์‹ค์ œ๋กœ๋„, ์„ฑ๋Šฅ๋ณด๋‹ค ๋ฌด๊ฒฐ์„ฑ์ด ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ๋Š” SHA-256 ํ•ด์‹œ๋กœ ์ตœ์ข… ๊ฒ€์ฆ์„ ํ•˜๊ณค ํ•œ๋‹ค.

์ด๊ฑฐ ๋ง๊ณ ๋„ ๋ช‡๊ฐ€์ง€ ๋ณ€์ข…/๋ณ€ํ˜• ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์ด ์žˆ์ง€๋งŒ, ๋™์ž‘ ๋ฐฉ์‹์ด๋‚˜ ๊ฐœ๋…์ด ํฌ๊ฒŒ ๋‹ค๋ฅด์ง„ ์•Š๋‹ค.