๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ธฐํƒ€

[1%์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ] Ch01. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค

by applemango2021 2022. 4. 19.

1. HTTP ๋ฆฌํ€˜์ŠคํŠธ ๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค

์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๊ธ€ ํฌ๋กฌ์ด๋‚˜ ํŒŒ์ด์–ดํญ์Šค์™€ ๊ฐ™์€ ์›น ๋ธŒ๋ผ์šฐ์ €์— URL(ex. http://www.naver.com)์„ ์ž…๋ ฅํ•˜๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด URL์„ ํ•ด๋…ํ•œ๋‹ค. URL์˜ ๋ชจ์–‘์ƒˆ์™€ ๊ด€๋ จํ•ด์„œ๋Š” ์ „์„ธ๊ณ„์ ์œผ๋กœ ๋ชจ๋‘๊ฐ€ ํ•ฉ์˜๋œ ๊ทœ์น™์ด ์ •ํ•ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ์ผ. 

 

URL์—๋Š” ์–ด๋– ํ•œ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ํ‘œ๊ธฐ๋˜์–ด ์žˆ๋Š”๋ฐ(ex. HTTP, FTP) ๋Œ€๊ฐœ์˜ ๊ฒฝ์šฐ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” HTTP ํ†ต์‹ ์„ ๋‹ค๋ฃฌ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•œ ํ†ต์‹ ์„ ์ง€์›ํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” HTTP์— ํ•œ์ •์ง€์–ด ์ƒ๊ฐํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

์—ฌํŠผ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  URL์„ ํ•ด๋…ํ•ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” HTTP Request Message๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. ์ด ์—ญ์‹œ๋„ ๋ชจ์–‘์ƒˆ์— ๋Œ€ํ•œ ๊ทœ์น™์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋– ํ•œ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋งŒ๋“ค์–ด์ง€๋Š” HTTP Request Message์˜ ํฐ ํ‹€์€ ๋™์ผํ•˜๋‹ค. (๋ฌผ๋ก  ์„ธ๋ถ€ ๋‚ด์šฉ์€ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.) 

 

2. ์›น ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ DNS ์„œ๋ฒ„์— ์กฐํšŒํ•œ๋‹ค

1๋ฒˆ ๋‹จ๊ณ„์—์„œ HTTP Request Message๋ฅผ ๋งŒ๋“  ๋‹ค์Œ์—๋Š” ์ด ๋ฉ”์„ธ์ง€๋ฅผ ์„œ๋ฒ„์— ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์šฐ๋ฆฌ๋“ค์€ ๋ณ„ ์ƒ๊ฐ์—†์ด ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— http://www.naver.com์„ ์ž…๋ ฅํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด URL์„ ํ•ด๋…ํ•ด์„œ HTTP Request Message๋ฅผ ๋งŒ๋“ค๊ณ , ์ด ๋ฉ”์„ธ์ง€๋ฅผ ๋„ค์ด๋ฒ„ ์„œ๋ฒ„์— ์ „์†กํ•˜์—ฌ ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์‘๋‹ต์„ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค์‹œ ํ•ด๋…ํ•ด์„œ ์šฐ๋ฆฌ ๋ˆˆ์— ๋ณด์ด๋Š” ํ™”๋ฉด์„ ๋ฟŒ๋ ค์ค€๋‹ค. 

 

์—ฌํŠผ ์ด๋•Œ ๋„ค์ด๋ฒ„ ์„œ๋ฒ„์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์„ธ์ƒ์—์„œ๋Š” ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. http://www.naver.com์€ ๋„๋ฉ”์ธ ์ฃผ์†Œ์ง€ IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ๋žŒ๋“ค ๋Œ€์‹ ์— ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์–ด๋–ป๊ฒŒ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ผ๊นŒ?

์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ชจ๋“  ๋„๋ฉ”์ธ๊ณผ IP ์ฃผ์†Œ์˜ ๋งคํ•‘๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜๋Š” ์—†๋‹ค. ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ๋Œ€์‹  ํ•ด์ฃผ๋Š” ๊ฒƒ์ด DNS ์„œ๋ฒ„์ด๋‹ค.

์ •๋ง ๋‹จ์ˆœํ•˜๊ฒŒ ์ถ”์ƒํ™”ํ•ด์„œ ์ด์•ผ๊ธฐํ•˜์ž๋ฉด DNS ์„œ๋ฒ„์— ์ด ์„ธ์ƒ์˜ ๋ชจ๋“  ๋„๋ฉ”์ธ๊ณผ IP ์ฃผ์†Œ์˜ ๋งคํ•‘๊ด€๊ณ„๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ DNS ์„œ๋ฒ„ํ•œํ…Œ 'http://www.naver.com์˜ IP์ฃผ์†Œ๊ฐ€ ๋ญ์•ผ?'๋ผ๊ณ  ๋ฌผ์–ด๋ณด๋ฉด DNS ์„œ๋ฒ„๋Š” ๊ทธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ฃผ๊ณ , ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ทธ IP ์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์„œ HTTP Request Message๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. 

ํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๋” ์ •ํ™•ํžˆ ์ด์•ผ๊ธฐํ•˜์ž๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ DNS ์„œ๋ฒ„ํ•œํ…Œ ๋‹ค์ด๋ ‰ํŠธ๋กœ ์งˆ๋ฌธ์„ ๋˜์ง€์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ฐ OS๋งˆ๋‹ค DNS ์„œ๋ฒ„ํ•œํ…Œ ์งˆ๋ฌธ์„ ๋˜์ง€๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ฆฌ์กธ๋ฒ„(Resolver)๊ฐ€ ์žˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด ๋ฆฌ์กธ๋ฒ„์—๊ฒŒ ๋„๋ฉ”์ธ ์ฃผ์†Œ์˜ IP๋ฅผ ์•Œ์•„๋ด๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒํ•˜๋ฉด, ๋ฆฌ์กธ๋ฒ„๋Š” DNS ์„œ๋ฒ„ํ•œํ…Œ ๋ฌผ์–ด๋ด์„œ ๋‹ต์„ ์ „๋‹ฌํ•ด์ค€๋‹ค.

 

3. ์ „ ์„ธ๊ณ„์˜ DNS ์„œ๋ฒ„๊ฐ€ ์—ฐ๋Œ€ํ•œ๋‹ค

์ถ”์ƒํ™”ํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๋ฉด DNS ์„œ๋ฒ„์— ์ด ์„ธ์ƒ์˜ ๋ชจ๋“  ๋„๋ฉ”์ธ๊ณผ IP ์ฃผ์†Œ๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ, DNS ์„œ๋ฒ„ ํ•˜๋‚˜์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋นต์œผ๋กœ ๋“ค์–ด๊ฐ€์žˆ์ง€๋Š” ์•Š๋‹ค. ๋„๋ฉ”์ธ์„ ๋ณด๋ฉด http://www.naver.com๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ .com  ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” DNS ์„œ๋ฒ„๊ฐ€ ์žˆ๊ณ , .kr ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” DNS ์„œ๋ฒ„๊ฐ€ ๋ณ„๋„๋กœ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฃจํŠธ ๋„๋ฉ”์ธ ์„œ๋ฒ„๋ผ๊ณ  ํ•ด์„œ ์ด ๋ชจ๋“  ๋„๋ฉ”์ธ ์„œ๋ฒ„๋“ค๊ณผ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ์ตœ์ƒ์œ„ ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค. 

 

์—ฌํŠผ ๋ฆฌ์กธ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ DNS ์„œ๋ฒ„ ์ค‘์—์„œ ์ž์‹ ๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด ์žˆ๋Š” DNS ์„œ๋ฒ„์— ๋ฆฌ์กธ๋ธŒ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ์ด ์„ธ์ƒ์— ์žˆ๋Š” ๋ชจ๋“  DNS ์„œ๋ฒ„์—๋Š” ๋ฃจํŠธ DNS ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜์œ„ DNS ์„œ๋ฒ„๋Š” ์ž๊ธฐ๊ฐ€ ๋ฐ›์€ ์š”์ฒญ์„ ๋ฃจํŠธ ๋„๋ฉ”์ธ ์„œ๋ฒ„์— ๋‹ค์‹œ ๋‚ ๋ฆฐ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฃจํŠธ ๋„๋ฉ”์ธ ์„œ๋ฒ„๋Š” URL์„ ๋ณด๊ณ ์„œ๋Š” '์•„ ์–˜๋Š” .com์„ ๊ด€์žฅํ•˜๋Š” ๋„๋ฉ”์ธ ์„œ๋ฒ„๊ฐ€ ์•Œ๊ณ  ์žˆ์„๊ฑฐ์•ผ. ๊ทธ ๋„๋ฉ”์ธ ์„œ๋ฒ„ IP์ฃผ์†Œ๊ฐ€ xxx.xxx.xxx.xxx๋‹ˆ๊นŒ ์—ฌ๊ธฐ๋กœ ๋‹ค์‹œ ์š”์ฒญ ๋‚ ๋ ค๋ด'๋ผ๊ณ  ๋‹ต์„ ์ค€๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ทธ ํ•˜์œ„ DNS ์„œ๋ฒ„๋Š” ๋‹ค์‹œ  xxx.xxx.xxx.xxx๋กœ ์š”์ฒญ์„ ๋‚ ๋ ค์„œ ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์ ์€ URL์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์•„๊ฐ„๋‹ค. 

 

4. ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— ๋ฉ”์‹œ์ง€ ์†ก์‹ ์„ ์˜๋ขฐํ•œ๋‹ค

3๋ฒˆ๊นŒ์ง€ ํ•ด์„œ ์ƒ๋Œ€ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋ƒˆ์œผ๋ฉด ์ด์ œ ์ง„์งœ๋กœ HTTP Request Message๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ผ ์ž์ฒด๋„ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. OS์˜ ๋‚ด๋ถ€์— ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ์Šคํƒ(OS์— ์ด๋ฏธ ๊ฐœ๋ฐœ๋˜์–ด ์žˆ๋Š” TCP/IP ์†Œํ”„ํŠธ์›จ์–ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค)์—๊ฒŒ ๊ทธ ์ผ์„ ์˜๋ขฐํ•œ๋‹ค. 

 

์ผ๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ๊ณผ ๋ฐ›๋Š” ์ชฝ ์‚ฌ์ด์— ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ตฌ์ถ•๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค.

1. ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ”„๋กœํ† ์ฝœ ์Šคํƒํ•œํ…Œ ์†Œ์ผ“ ์ƒ์„ฑ์„ ์š”์ฒญํ•œ๋‹ค.

2. ์†Œ์ผ“์ด ์ƒ์„ฑ๋˜๋ฉด ๋””์Šคํฌ๋ฆฝํ„ฐ(Descriptor)๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜ํ™˜๋˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค๊ณ  ์žˆ๋Š”๋‹ค.

3. 1์—์„œ ๋ฐ›์€ ๋””์Šคํฌ๋ฆฝํ„ฐ, ์ด์ „ ๋‹จ๊ณ„์—์„œ ์–ป์€ ์ƒ๋Œ€ IP ์ฃผ์†Œ, (๋Œ€์ฒด๋กœ ๋ชจ๋‘๊ฐ€ ๊ณต๊ณต์—ฐํ•˜๊ฒŒ ์•Œ๊ณ  ์žˆ๋Š”) ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ๋ธŒ๋ผ์šฐ์ €๋Š” ํ”„๋กœํ† ์ฝœ ์Šคํƒ์—๊ฒŒ connect ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ตฌ์„ฑ์ด ์™„๋ฃŒ๋œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. 

 

์ด์ œ ์—ฐ๊ฒฐ๋œ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„์— ๋„˜์–ด๊ฐ„๋‹ค.