Skip to content

Latest commit

ย 

History

History
964 lines (560 loc) ยท 60.8 KB

5-network.md

File metadata and controls

964 lines (560 loc) ยท 60.8 KB

๐Ÿ“Œ ์งˆ๋ฌธ ์ค‘ ์ผ๋ถ€๋Š” WeareSoft๋‹˜์˜ tech-interview๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Table of Contents


#1

TCP/IP์˜ ๊ฐ ๊ณ„์ธต์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

TCP/IP๋Š” ์ธํ„ฐ๋„ท์—์„œ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ(๊ทœ์น™)์„ ์˜๋ฏธํ•œ๋‹ค. TCP/IP๋Š” IP(Internet Protocol)์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœํ† ์ฝœ์˜ ์ง‘ํ•ฉ์ฒด๋กœ, TCP/IP 5๊ณ„์ธต ํ˜น์€ TCP/IP 4๊ณ„์ธต(๋งํฌ๊ณ„์ธต๊ณผ ๋ฌผ๋ฆฌ๊ณ„์ธต์„ ํ•˜๋‚˜์˜ ๊ณ„์ธต์œผ๋กœ ๋ณด๋Š” ๊ฒฝ์šฐ)์œผ๋กœ ๋ถˆ๋ฆฐ๋‹ค.

TCP/IP๋Š” ํฌ๊ฒŒ 5๊ฐœ์˜ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(Application Layer, L5)

๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด ์žˆ๋Š” ๊ณณ์ด๋‹ค. HTTP, SMTP, FTP์™€ ๊ฐ™์€ ๋งŽ์€ ํ”„๋กœํ† ์ฝœ์„ ํฌํ•จํ•œ๋‹ค. ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ 32๋น„ํŠธ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์œ„ํ•œ DNS(Domain Name Server)๋ฅผ ์ง€์›ํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํŒจํ‚ท์„ ๋ฉ”์‹œ์ง€(message)๋ผ๊ณ  ํ•œ๋‹ค.

ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต(Transport Layer, L4)

๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ๋ณด๋‚ด์˜จ ๋ฐ์ดํ„ฐ ์ •๋ ฌ, ์˜ค๋ฅ˜ ์ •์ • ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹ ์„ ํ™•๋ณดํ•œ๋‹ค. TCP/UDP ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์ด ์ด ๊ณ„์ธต์— ์œ„์น˜ํ•œ๋‹ค. TCP, UDP์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ [#4] TCP์™€ UDP์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์„ ์ฐธ๊ณ ํ•œ๋‹ค. ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต ํŒจํ‚ท์„ ์„ธ๊ทธ๋จผํŠธ(segment)๋ผ๊ณ  ํ•œ๋‹ค.

๋„คํŠธ์›Œํฌ ๊ณ„์ธต(Network Layer/IP Layer, L3)

๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋ชฉ์ ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฆ‰, ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด, ๋ผ์šฐํ„ฐ(router) ์žฅ๋น„์™€ IP ํ”„๋กœํ† ์ฝœ(์˜ค์ง ํ•˜๋‚˜๋งŒ ์กด์žฌ), ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋œ๋‹ค. ๋ผ์šฐํ„ฐ๋Š” ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.(๊ฒฝ๋กœ์„ค์ •) ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ ํŒจํ‚ท์„ ๋ฐ์ดํ„ฐ๊ทธ๋žจ(datagram)์ด๋ผ ํ•œ๋‹ค.

๋งํฌ ๊ณ„์ธต(Data Link Layer, L2)

๋„คํŠธ์›Œํฌ ๊ธฐ๊ธฐ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฃผ๋กœ ๊ฑด๋ฌผ์ด๋‚˜ ํŠน์ • ์ง€์—ญ์„ ๋ฒ”์œ„๋กœ ํ•˜๋Š” ๋„คํŠธ์›Œํฌ์ธ ๋žœ(LAN)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ณ„์ธต์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋”๋„ท(Ethernet) ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์Šค์œ„์น˜(switch) ๊ฐ™์€ ์žฅ์น˜๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ๋งํฌ ๊ณ„์ธต ํŒจํ‚ท์„ ํ”„๋ ˆ์ž„(frame)์ด๋ผ ํ•œ๋‹ค.

๋ฌผ๋ฆฌ ๊ณ„์ธต(Physical Layer, L1)

๋ฌผ๋ฆฌ์ ์ธ ์—ฐ๊ฒฐ๊ณผ ์ „๊ธฐ ์‹ ํ˜ธ ๋ณ€ํ™˜/์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•˜์—ฌ, ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ธฐ ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋˜ํ•œ ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ, ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๋น„ํŠธ๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฌผ๋ฆฌ ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ๋“ค์€ ๋งํฌ(์‹ค์ œ ์ „์†ก๋งค์ฒด ex.๊ด‘์ผ€์ด๋ธ”)์— ์˜์กดํ•œ๋‹ค.

References


#2

OSI 7๊ณ„์ธต์™€ TCP/IP ๊ณ„์ธต์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

(๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต: TCP/IP 5๊ณ„์ธต์—์„œ ๋ฌผ๋ฆฌ๊ณ„์ธต๊ณผ ๋งํฌ๊ณ„์ธต์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๊ฒƒ)

OSI 7๊ณ„์ธต์€ TCP/IP ๊ณ„์ธต์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์„ ๋” ์„ธ๋ถ„ํ™”ํ•œ ๊ฒƒ์ด๋‹ค. TCP/IP ๊ณ„์ธต๊ณผ ๋‹ค๋ฅธ, ์‘์šฉ๊ณ„์ธต, ํ‘œํ˜„๊ณ„์ธต๊ณผ ์„ธ์…˜๊ณ„์ธต์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” [#1] CP/IP์˜ ๊ฐ ๊ณ„์ธต์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.์„ ์ฐธ๊ณ ํ•œ๋‹ค.

์‘์šฉ ๊ณ„์ธต(Application Layer)

์‚ฌ์šฉ์ž ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ณ„์ธต์ด๋‹ค. ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ์œ ์ผํ•œ ๊ณ„์ธต์ด๋‹ค. ๋ฉ”์ผ ์ „์†ก, ์ธํ„ฐ๋„ท ์ ‘์† ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ‘œํ˜„ ๊ณ„์ธต(Presentation Layer)

์‘์šฉ๊ณ„์ธต์œผ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›๊ฑฐ๋‚˜ ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ณ„์ธต์ด๋‹ค. ์‘์šฉ ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก, ์‘์šฉํ”„๋กœ๊ทธ๋žจ์— ๋งž์ถฐ ๋ณ€ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, JPEG, TIFF, GIF, MPEG ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ํฌ๋งท์„ ๊ตฌ๋ถ„ํ•˜๊ฒŒ ๋œ๋‹ค.

์„ธ์…˜ ๊ณ„์ธต(Session Layer)

์‘์šฉํ”„๋กœ์„ธ์Šค๊ฐ€ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค. ๋„คํŠธ์›Œํฌ์ƒ ์–‘์ชฝ์˜ ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌ/์ง€์†์‹œํ‚ค๋Š” ์—ญํ• ๊ณผ ์„ธ์…˜์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—†์• ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ํ†ต์‹ ํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์„ ๋™๊ธฐํ™”ํ•˜๊ณ  ์˜ค๋ฅ˜๋ณต๊ตฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ํ†ต์‹ ์—ฐ๊ฒฐ์€ ํฌํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์—ฐ๊ฒฐ๋˜๋ฉฐ, OS๊ฐ€ ์„ธ์…˜๊ณ„์ธต์— ์†ํ•œ๋‹ค.

References


#3

Frame, Packet, Segment, Datagram์„ ๋น„๊ตํ•ด์ฃผ์„ธ์š”. (TCP/IP 5๊ณ„์ธต ๊ธฐ์ค€)

  • Packet: ์ปดํ“จํ„ฐ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์„ ํŒจํ‚ท์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์†ก์‹  ์ธก(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์€ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ผ์ • ๋‹จ์œ„๋กœ ์ž˜๋ผ์„œ ๋ณด๋‚ธ๋‹ค. ๊ฐ ๊ณ„์ธต์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋Š” ์บก์Šํ™”/์—ญ์บก์Šํ™”๋˜์–ด ์ „๋‹ฌ๋˜๊ณ , ์ˆ˜์‹  ์ธก์€ ๋ฐ›์€ ํŒจํ‚ท์„ ๋‹ค์‹œ ์กฐ๋ฆฝํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  • Segment: Transport ๊ณ„์ธต(L4)์—์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ—ค๋”๋ฅผ ๋ฐ์ดํ„ฐ(L5 ๊ณ„์ธต ๋ฐ์ดํ„ฐ)์— ๋ถ™์ด๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ํŒจํ‚ท์„ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • Datagram: Network ๊ณ„์ธต(L3)์—์„œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํ—ค๋”๋ฅผ ์„ธ๊ทธ๋จผํŠธ(L4 ๊ณ„์ธต ๋ฐ์ดํ„ฐ)์— ๋ถ™์ธ๊ฒƒ์„ ๋ฐ์ดํ„ฐ๊ทธ๋žจ, ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • Frame: ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต(L2)์—์„œ ๋ฌผ๋ฆฌ์ ์ธ ํ†ต์‹  ์ฑ„๋„์„ ์—ด๊ธฐ ์œ„ํ•ด ํŒจํ‚ท์— ํ—ค๋”์™€ ํŠธ๋ ˆ์ผ๋Ÿฌ๋ฅผ ๋ถ™์ธ๋‹ค. ํŠธ๋ ˆ์ผ๋Ÿฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๋ฐ์ดํ„ฐ ๋ ๋ถ€๋ถ„์— ๋ถ™์ด๋Š” ์ •๋ณด๋กœ, ์ฃผ๋กœ ์—๋Ÿฌ ๊ฒ€์ถœ์— ์‚ฌ์šฉ๋œ๋‹ค.

์™œ ํŒจํ‚ท์„ ์ž˜๋ผ์„œ ๋ณด๋‚ผ๊นŒ?

๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๋ณด๋‚ด๊ฒŒ ๋˜๋ฉด, ๋ฐ์ดํ„ฐ ์†์‹ค์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฉฐ, ๋Œ€์—ญํญ(์‹ ํ˜ธ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผํŒŒ์ˆ˜ ๋ฒ”์œ„)์„ ๋„ˆ๋ฌด ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ, ํŒจํ‚ท์˜ ํ๋ฆ„์„ ์›ํ™œํžˆ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

์†Œ์ผ“(Socket), ํฌํŠธ(Port), ํŒจํ‚ท(Packet)

Port๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด, ํ˜ธ์ŠคํŠธ ๋‚ด๋ถ€์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์ด๋‹ค. ๊ฐ™์€ ํ˜ธ์ŠคํŠธ ๋‚ด์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ™์€ ํฌํŠธ ๋„˜๋ฒ„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ, ๋Œ€์‹  ๊ฐ™์€ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค. accept()๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ์†Œ์ผ“์—๋Š” ์ƒˆ๋กœ์šด ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ํ• ๋‹น๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„๊ฐ€ ๊ฐ€์ง€๋Š” ํฌํŠธ(์›น์„œ๋ฒ„ ๊ธฐ์ค€, 80)์™€ ๋™์ผํ•œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋งŒ์•ฝ ์ง€์ •๋œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋‹ค๋ฅธ ์†Œ์ผ“์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, bind() API๋Š” ์—๋Ÿฌ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ํฌํŠธ๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ ‘์†์žฅ์†Œ์ด๋‹ค.

Socket์€ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ถœ์ž…๊ตฌ(์ธํ„ฐํŽ˜์ด์Šค) ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์—์„œ ์†Œ์ผ“์„ ์—ฐ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋ฉฐ, ์ˆ˜์‹  ์ธก ํ˜ธ์ŠคํŠธ์˜ ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์€ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ(์„ธ๊ทธ๋จผํŠธ)๋ฅผ ์ง์ ‘ ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ , ์ค‘๊ฐ„ ๋งค๊ฐœ์ž์ธ ์†Œ์ผ“์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ์—์„œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์†Œ์ผ“์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์†Œ์ผ“์€ ๊ณ ์œ ์˜ ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ™์€ ํฌํŠธ๋ฅผ ๊ฐ€์ง€๊ณ ๋„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†Œ์ผ“์„ ์—ด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์†Œ์ผ“๊ณผ ํฌํŠธ๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค.

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

์บก์Šํ™”/์—ญ์บก์Šํ™”

  • ์บก์Šํ™”(Encapsulation): (๋ฐ์ดํ„ฐ ์†ก์‹  ์‹œ)ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ผ๋•Œ, ํ•˜์œ„๊ณ„์ธต์—์„œ ํ•„์š”๋กœํ•˜๋Š” ์ถ”๊ฐ€์ •๋ณด(๋ฉ”ํƒ€๋ฐ์ดํ„ฐ)๋ฅผ ํ—ค๋”/ํŠธ๋ ˆ์ผ๋Ÿฌ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ณด๋‚ด๊ฒŒ๋œ๋‹ค.
  • ์—ญ์บก์Šํ™”(Decapsulation): ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ์‹œ, ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๊ณ , ์ „๋‹ฌ๋œ ํŒจํ‚ท์˜ ํ—ค๋”๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ œ๊ฑฐํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค.

References


#4

TCP์™€ UDP์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

TCP์™€ UDP๋Š” ๋ชจ๋‘ ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต(4๊ณ„์ธต)์˜ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. TCP์™€ UDP๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ํŠธ๋žœ์ŠคํฌํŠธ ๋‹ค์ค‘ํ™”/์—ญ๋‹ค์ค‘ํ™” ๊ธฐ๋Šฅ(Transport Multiplexing/Demultiplexing): ํ˜ธ์ŠคํŠธ ๋Œ€ ํ˜ธ์ŠคํŠธ ์ „๋‹ฌ์„ ํ”„๋กœ์„ธ์Šค ๋Œ€ ํ”„๋กœ์„ธ์Šค ์ „๋‹ฌ๋กœ ํ™•์žฅ
  2. ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ(์˜ค๋ฅ˜๊ฒ€์ถœ): ํ—ค๋”์— ์˜ค๋ฅ˜ ๊ฒ€์ถœ ํ•„๋“œ๋ฅผ ํฌํ•จ

์ด์ œ TCP์™€ UDP ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

UDP๋Š” ์œ„์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‘๊ฐ€์ง€ ๊ธฐ๋Šฅ๋งŒ์„ ์ œ๊ณตํ•œ๋‹ค. UDP๋Š” ๋น„์‹ ๋ขฐ์ ์ธ ์„œ๋น„์Šค๋กœ์„œ, ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด์„œ ์ „์†ก๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š์€์ฑ„๋กœ ๋ชฉ์ ์ง€์— ๋„์ฐฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค์ด๋ฉฐ, ์˜ค๋ฅ˜๊ฒ€์ถœ์€ ์„ ํƒ์‚ฌํ•ญ์ด๋‹ค.

UDP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค์ด๋ฏ€๋กœ ์—ฐ๊ฒฐ์„ค์ •์ด ๋ถˆํ•„์š”ํ•˜๊ณ  ์—ฐ๊ฒฐ์ƒํƒœ๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ธฐ์œ„ํ•œ ์–ด๋– ํ•œ ์ง€์—ฐ์ด ์—†๊ณ , ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ์ •๋ณด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ UDP์˜ ํŒจํ‚ท ์˜ค๋ฒ„ํ—ค๋“œ(8 byte per segment)๊ฐ€ TCP(20 byte per segment)์— ๋น„ํ•ด ๋” ์ž‘๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜ผ์žก์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„, ๋„คํŠธ์›Œํฌ๊ฐ€ ํญ์ฃผ์ƒํƒœ์— ๋น ์ง€๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ๊ณผ ์‹ ๋ขฐ์ ์ด์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ช‡๋ช‡์˜ ์ •๋ณด๋ฅผ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

TCP๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‘๊ฐ€์ง€ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•˜๋ฉด์„œ, ์‹ ๋ขฐ์ ์ธ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ(Reliable Data Transfer) ๊ธฐ๋Šฅ, ์—ฐ๊ฒฐ์ง€ํ–ฅํ˜• ์„œ๋น„์Šค, ํ˜ผ์žก์ œ์–ด(Congestion control) ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

์‹ ๋ขฐ์ ์ธ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์€ ํ๋ฆ„์ œ์–ด, ์ˆœ์„œ๋ฒˆํ˜ธ, ํ™•์ธ์‘๋‹ต, ํƒ€์ด๋จธ ๋“ฑ์˜ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ •ํ™•ํžˆ ์ „๋‹ฌ๋˜๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ข…๋‹จ ์‹œ์Šคํ…œ ๊ฐ„์— IP์˜ ๋น„์‹ ๋ขฐ์ ์ธ ์„œ๋น„์Šค๋ฅผ ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด์˜ ์‹ ๋ขฐ์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก ์„œ๋น„์Šค๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ์œผ๋ฉฐ, TCP์—์„œ์˜ ์˜ค๋ฅ˜๊ฒ€์ถœ์€ ํ•„์ˆ˜์‚ฌํ•ญ์ด๋‹ค. ํ˜ผ์žก์ œ์–ด๋Š” ๋ณด๋‚ด๋Š” ์ชฝ(์†ก์‹ ์ธก)์˜ ํŠธ๋ž˜ํ”ฝ์„ ์กฐ์ ˆํ•˜์—ฌ ์Šค์œ„์น˜/๋งํฌ์˜ ํ˜ผ์žก์„ ๋ฐฉ์ง€ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋Š” ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” ํŠน์ • ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ, ์ „์ฒด๋ฅผ ์œ„ํ•œ ์„œ๋น„์Šค๋กœ์„œ, ํ˜ผ์žกํ•œ ๋„คํŠธ์›Œํฌ ๋งํฌ์—์„œ ๊ฐ TCP ์—ฐ๊ฒฐ์ด ๋งํฌ์˜ ๋Œ€์—ญํญ์„ ๊ณตํ‰ํ•˜๊ฒŒ ๊ณต์œ ํ•˜์—ฌ ํ†ต๊ณผํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

๋”ฐ๋ผ์„œ, UDP๋Š” ์†๋„์ฆ๊ฐ€์™€ ์ง€์—ฐ ๊ฐ์†Œ๋ฅผ ์œ„ํ•ด์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ , TCP๋Š” ์‹ ๋ขฐ์„ฑ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, UDP๋Š” ๋™์˜์ƒ ์ „์†ก๊ณผ ๊ฐ™์ด, ๋ช‡ ํ”„๋ ˆ์ž„ ์ •๋„ ์†์‹ค๋˜์–ด๋„ ๊ดœ์ฐฎ์€ ๋ฐ์ดํ„ฐ ์ „์†ก์— ์‚ฌ์šฉ๋˜๊ณ , TCP๋Š” ๋ช‡๋ช‡์˜ ์ •๋ณด๋„ ์†์‹ค๋˜์–ด์„œ๋Š” ์•ˆ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ด์šฉ๋œ๋‹ค.

References


#5

TCP์™€ UDP์˜ ํ—ค๋”๋ฅผ ๋น„๊ตํ•ด์ฃผ์„ธ์š”.

UDP segment์˜ ๊ฐ„๋žตํ•œ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋Š” UDP ๋ฐ์ดํ„ฐ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ ํ•„๋“œ์— ์œ„์น˜ํ•œ๋‹ค. UDP ํ—ค๋”๋Š” 2๋ฐ”์ดํŠธ(16๋น„ํŠธ)์”ฉ ๊ตฌ์„ฑ๋œ 4๊ฐœ์˜ ํ•„๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค. UDP ํ—ค๋”๋Š” ์ถœ๋ฐœ์ง€ ํฌํŠธ๋ฒˆํ˜ธ, ๋ชฉ์ ์ง€ ํฌํŠธ๋ฒˆํ˜ธ, ์ฒดํฌ์„ฌ, ๊ธธ์ด๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

  • ํฌํŠธ๋ฒˆํ˜ธ๋Š” (๋ชฉ์ ์ง€) ํ˜ธ์ŠคํŠธ๊ฐ€ (์—ญ๋‹ค์ค‘ํ™” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”) ์ •ํ™•ํ•œ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธฐ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • ์ฒดํฌ์„ฌ(checksum)์€ ์„ธ๊ทธ๋จผํŠธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ฒดํฌ์„ฌ์€ UDP ์„ธ๊ทธ๋จผํŠธ ์ด์™ธ์— IP ํ—ค๋”์˜ ์ผ๋ถ€ ํ•„๋“œ๋„ ๊ณ„์‚ฐํ•œ๋‹ค.(๊ฐ€์ƒํ—ค๋”) UDP ํ—ค๋”์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜์—ฌ ์ฒดํฌํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๊ธธ์ด๋Š” ํ—ค๋”๋ฅผ ํฌํ•จํ•˜๋Š” UDP ์„ธ๊ทธ๋จผํŠธ์˜ ๊ธธ์ด(๋ฐ”์ดํŠธ ๋‹จ์œ„)๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. UDPํ—ค๋”์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์นœ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

TCP segment์˜ ๊ฐ„๋žตํ•œ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

TCP ์†Œ์ผ“์€ 4๊ฐœ์˜ ๋‹ค๋ฅธ ์š”์†Œ๋“ค์˜ ์ง‘ํ•ฉ์— ์˜ํ•ด ์‹๋ณ„๋œ๋‹ค.(์ถœ๋ฐœ์ง€ IP, ์ถœ๋ฐœ์ง€ ํฌํŠธ๋ฒˆํ˜ธ, ๋ชฉ์ ์ง€ IP, ๋ชฉ์ ์ง€ ํฌํŠธ๋ฒˆํ˜ธ) ๋”ฐ๋ผ์„œ IP๋ฅผ ์ œ์™ธํ•œ ์ถœ๋ฐœ์ง€/๋„์ฐฉ์ง€ ํฌํŠธ๋ฒˆํ˜ธ(๊ฐ 16 bit)์™€ sequence number(32 bit), ack number(32 bit)๋ฅผ ํ•ฉ์ณ, ๊ธฐ๋ณธ์ ์œผ๋กœ 20 byte์˜ ํ—ค๋”๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ, ์˜ต์…˜์„ ํฌํ•จํ•˜๋ฉด ์ตœ๋Œ€ 60 byte์˜ ํ—ค๋”๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ์ถœ๋ฐœ์ง€ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋Š” ์„ธ๊ทธ๋จผํŠธ๋Š”, ๋‹ค๋ฅธ ์†Œ์ผ“์„ ํ†ตํ•ด์„œ ํ”„๋กœ์„ธ์Šค์— ์ „๋‹ฌ๋œ๋‹ค. UDP์™€ ๋‹ค๋ฅด๊ฒŒ, TCP ์„ธ๊ทธ๋จผํŠธ๋Š” ์ถœ๋ฐœ์ง€ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๋ฉด, ๋‹ค๋ฅธ ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.

  • ํฌํŠธ๋ฒˆํ˜ธ๋Š” IP ์ •๋ณด์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • Sequence Number๋Š” SYN ํŒจํ‚ท์„ ๋ณด๋‚ผ๋•Œ, ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฒˆํ˜ธ์ด๋‹ค. ์ดˆ๊ธฐ Sequence Number๋ฅผ ISN์ด๋ผ ๋ถ€๋ฅด๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ๋žœ๋คํ•œ ์ˆ˜๊ฐ€ ๋‹ด๊ธด๋‹ค.
  • Ack Number๋Š” ACK ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฒˆํ˜ธ์ด๋‹ค.

References


#6

TCP์˜ 3-way-handshake์™€ 4-way-handshake๋ฅผ ๋น„๊ต ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

ํ•ธ๋“œ์…ฐ์ดํฌ(Handshake)๋ž€, ํ˜ธ์ŠคํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ๋จผ์ € ์ •ํ™•ํ•œ ์ „์†ก์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋Œ€๋ฐฉ ์ปดํ“จํ„ฐ์™€ ์‚ฌ์ „์— ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.

3-way handshake๋Š” TCP์˜ ์—ฐ๊ฒฐ์„ ์ดˆ๊ธฐํ™” ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์–‘์ชฝ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ณ , ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์‹œ์ž‘ํ•˜๊ธฐ์ „์— ํ•œ์ชฝ์ด ๋‹ค๋ฅธ ์ชฝ์ด ์ค€๋น„๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์–‘์ชฝ ๋ชจ๋‘ ์ƒ๋Œ€ํŽธ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ˆœ์ฐจ์ผ๋ จ๋ณ€ํ˜ธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ ˆ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์ „์†กํ•œ๋‹ค.(SYN)
  2. ์ ‘์† ์š”์ฒญ์„ ๋ฐ›์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” ํ™•์ธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. (ACK) ๋™์‹œ์— ์ ‘์† ์š”์ฒญ์„ ๋ฐ›์€ ํ”„๋กœ์„ธ์Šค๋„ ์ ‘์† ์š”์ฒญ์„ ํ•œ ํ”„๋กœ์„ธ์Šค์— ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.(SYN) โ†’ (SYN + ACK)
  3. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜๋ฝ ํ™•์ธ์„ ๋ณด๋‚ด ์—ฐ๊ฒฐ์„ ๋งบ๋Š”๋‹ค.(ACK)

๋‹จ์ˆœํžˆ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›๋Š”๋ฐ 2-way Handshake๋ฉด ์ถฉ๋ถ„ํ•ด๋ณด์ด์ง€ ์•Š๋Š”๊ฐ€? ์™œ 3-way ์ผ๊นŒ? TCP/IP ํ†ต์‹ ์€ ์–‘๋ฐฉํ–ฅ์„ฑ connection์ด๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์˜ 1๋ฒˆ ๊ณผ์ •์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ์„ SYN์œผ๋กœ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ SYN์— ๋Œ€ํ•œ ๋Œ€๋‹ต(ACK)๊ณผ ํ•จ๊ป˜, ์ž์‹ ๋„ ์—ฐ๊ฒฐํ•˜๊ฒ ๋‹ค๋Š” ์š”์ฒญ์˜ ์˜๋ฏธ๋กœ SYN์„ ๋ณด๋‚ด๊ณ , ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์— ๋Œ€ํ•œ ๋Œ€๋‹ต(๊ณผ์ • 3)์„ ๋ฐ›์•„์•ผํ•œ๋‹ค. ์ด ๊ณผ์ •์€ 2-way handshaked์—์„œ๋Š” ์„ฑ๋ฆฝ๋  ์ˆ˜ ์—†๋‹ค.

4-way handshake๋Š” ์„ธ์…˜์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ์ ˆ์ฐจ์ด๋‹ค. ๊ตฌ์ฒด์ ์ธ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ฒ ๋‹ค๋Š” FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ์ผ๋‹จ ํ™•์ธ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ์ž์‹ ์˜ ํ†ต์‹ ์ด ๋๋‚ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š”๋ฐ, ์ด ์ƒํƒœ๊ฐ€ TIME_WAIT ์ƒํƒœ์ด๋‹ค.
  3. ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ์ด ๋๋‚ฌ์œผ๋ฉด ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ํ™•์ธํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.

๐Ÿ’ก CLOSE_WAIT ์™€ TIME_WAIT ์ƒํƒœ๋ž€ ๋ฌด์—‡์ผ๊นŒ?
TIME_WAIT ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๋Š” ์ด์œ ๋Š”, ์„ธ์…˜ ์ข…๋ฃŒํ›„, ํ˜น์‹œ๋‚˜ ๋„คํŠธ์›Œํฌ์— ์•„์ง ๋ผ์ด๋ธŒ ํŒจํ‚ท์ด ์กด์žฌํ• ์ˆ˜๋„ ์žˆ๊ธฐ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ’ก ์šฉ์–ด

  • SYN(Synchronization): ์—ฐ๊ฒฐ์š”์ฒญ, ์„ธ์…˜์„ ์„ค์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์ดˆ๊ธฐ์— ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค.
  • ACK(Acknowledgement): ๋ณด๋‚ธ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์— TCP ๊ณ„์ธต์—์„œ์˜ ๊ธธ์ด ๋˜๋Š” ์–‘์„ ๋”ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ACK์— ํฌํ•จํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.
  • FIN(Finish) : ์„ธ์…˜์„ ์ข…๋ฃŒ์‹œํ‚ค๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ๋” ์ด์ƒ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ํ‘œ์‹œํ•œ๋‹ค.

References


#7

TCP์˜ ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •(3๋‹จ๊ณ„)๊ณผ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •(4๋‹จ๊ณ„)์ด ๋‹จ๊ณ„๊ฐ€ ์ฐจ์ด๋‚˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •๊ณผ ๋‹ค๋ฅด๊ฒŒ, ์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •์—์„œ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด๋Š” ์ „์†ก์ค‘์ธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ฒฝ์šฐ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์•„์ง ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ชป ๋ฐ›์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์„ ๋Œ€๋น„ํ•˜์—ฌ ์ผ์ •์‹œ๊ฐ„๋™์•ˆ ์„ธ์…˜์„ ๋‚จ๊ธด๋‹ค(TIME_WAIT). ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ๋ณด๋‚ด์„œ ๋” ์ด์ƒ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋Š” ์˜๋ฏธ์˜ FIN์„ ๋ฐ›์œผ๋ฉด, ๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.

References


#8

๋งŒ์•ฝ Server์—์„œ FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ์ „์†กํ•œ ํŒจํ‚ท์ด Routing ์ง€์—ฐ์ด๋‚˜ ํŒจํ‚ท ์œ ์‹ค๋กœ ์ธํ•œ ์žฌ์ „์†ก ๋“ฑ์œผ๋กœ ์ธํ•ด FIN ํŒจํ‚ท๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

ํด๋ผ์ด์–ธํŠธ์—์„œ ์„ธ์…˜์„ ์ข…๋ฃŒ์‹œํ‚จ ํ›„ ๋’ค๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋Š” ํŒจํ‚ท์ด ์žˆ๋‹ค๋ฉด ์ด ํŒจํ‚ท์€ Drop๋˜๊ณ  ๋ฐ์ดํ„ฐ๋Š” ์œ ์‹ค๋  ๊ฒƒ์ด๋‹ค.

A ํด๋ผ์ด์–ธํŠธ๋Š” ์ด๋Ÿฌํ•œ ํ˜„์ƒ์— ๋Œ€๋น„ํ•˜์—ฌ Client๋Š” Server๋กœ๋ถ€ํ„ฐ FIN์„ ์ˆ˜์‹ ํ•˜๋”๋ผ๋„ ์ผ์ •์‹œ๊ฐ„๋™์•ˆ ์„ธ์…˜์„ ๋‚จ๊ฒจ๋†“๊ณ  ์ž‰์—ฌ ํŒจํ‚ท์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๊ณผ์ •์„ TIME_WAIT ๋ผ๊ณ  ํ•œ๋‹ค. ์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด, ์„ธ์…˜์„ ๋งŒ๋ฃŒํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ์‹œํ‚ค๋ฉฐ, CLOSE ์ƒํƒœ๋กœ ๋ณ€ํ™”ํ•œ๋‹ค.

References


#9

์ดˆ๊ธฐ Sequence Number์ธ ISN์„ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์„œ ์„ค์ •ํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Connection์„ ๋งบ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ๋Š” ์œ ํ•œ ๋ฒ”์œ„ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์žฌ์‚ฌ์šฉ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๋‘ ํ†ต์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ณผ๊ฑฐ์— ์‚ฌ์šฉ๋œ ํฌํŠธ ๋ฒˆํ˜ธ ์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค.

์„œ๋ฒ„ ์ธก์—์„œ๋Š” ํŒจํ‚ท์˜ SYN์„ ๋ณด๊ณ  ํŒจํ‚ท์„ ๊ตฌ๋ถ„ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ๋‚œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆœ์ฐจ์ ์ธ number๊ฐ€ ์ „์†ก๋œ๋‹ค๋ฉด ์ด์ „์˜ connection์œผ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ํŒจํ‚ท์œผ๋กœ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ๋‚œ์ˆ˜๋กœ ISN์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

References


#10

HTTP์™€ HTTPS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ  ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

HTTP๋ž€ ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ฆ‰, HTTP๋Š” ์ธํ„ฐ๋„ท์—์„œ ํ•˜์ดํผํ…์ŠคํŠธ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ, 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ HTTP ์„œ๋ฒ„๊ฐ€ 80๋ฒˆ ํฌํŠธ์—์„œ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” 80๋ฒˆ ํฌํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค.

HTTP๋Š” 1989๋…„ ํŒ€ ๋ฒ„๋„ˆ์Šค ๋ฆฌ(Tim Berners Lee)์— ์˜ํ•ด ์ฒ˜์Œ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, WWW(World-Wide-Web) ๊ธฐ๋ฐ˜์—์„œ ์„ธ๊ณ„์ ์ธ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š”๋ฐ ํฐ ์—ญํ• ์„ ํ•˜์˜€๋‹ค.

HTTPS๋Š” HTTP์— ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTPS๋Š” HTTP์™€ ๋‹ค๋ฅด๊ฒŒ 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ค‘๊ฐ„์— ์ œ3์ž๊ฐ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

HTTP๋Š” ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ๋ฐ˜๋ฉด, HTTPS๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ HTTPS๋ฅผ ์ด์šฉํ•˜๋ฉด ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”์˜ ๊ณผ์ •์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— HTTP๋ณด๋‹ค ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. ๋˜ํ•œ HTTPS๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋‹ค.

๊ฐœ์ธ ์ •๋ณด์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋ฉด HTTPS๋ฅผ ์ด์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋‹จ์ˆœํ•œ ์ •๋ณด ์กฐํšŒ ๋“ฑ ๋งŒ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค๋ฉด HTTP๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

References


#11

HTTP ์š”์ฒญ/์‘๋‹ต ํ—ค๋”์˜ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

(TODO: ๋‹ต๋ณ€ ์ž‘์„ฑํ•˜๊ธฐ)

References


#12

HTTP์™€ HTTPS ๋™์ž‘ ๊ณผ์ •์„ ๋น„๊ตํ•ด์ฃผ์„ธ์š”.

(TODO: ๋‹ต๋ณ€ ์ถ”๊ฐ€ํ•˜๊ธฐ)

References


#13

CORS๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ (Cross-Origin Resource Sharing, CORS)๋Š” ์ถ”๊ฐ€ HTTP ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ํ•œ ์ถœ์ฒ˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ์„ ํƒํ•œ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋„๋ก ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋ ค์ฃผ๋Š” ์ฒด์ œ์ด๋‹ค.

CORS ์ฒด์ œ๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์•ˆ์ „ํ•œ ๊ต์ฐจ ์ถœ์ฒ˜ ์š”์ฒญ ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ง€์›ํ•œ๋‹ค. ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €๋Š” XMLHttpRequest ๋˜๋Š” Fetch์™€ ๊ฐ™์€ API์—์„œ CORS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ต์ฐจ ์ถœ์ฒ˜ HTTP ์š”์ฒญ์˜ ์œ„ํ—˜์„ ์™„ํ™”ํ•œ๋‹ค.

CORS์˜ ๋™์ž‘ ์›๋ฆฌ

  1. ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น์€ ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•  ๋•Œ๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ํ•˜๋Š”๋ฐ, ์ด๋•Œ ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ ํ—ค๋” (request header)์— Origin ํ•„๋“œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์ถœ์ฒ˜๋ฅผ ๋‹ด์•„ ์ „์†กํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•˜๋Š”๋ฐ, ์‘๋‹ต ํ—ค๋”(response header)์— Access-Control-Allow-Origin์ด๋ผ๋Š” ๊ฐ’์— '์ด ๋ฆฌ์†Œ์Šค๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ์šฉ๋œ ์ถœ์ฒ˜'๋ฅผ ๋‚ด๋ ค์ค€๋‹ค.
  3. ์ดํ›„ ์‘๋‹ต์„ ๋ฐ›์€ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž์‹ ์ด ๋ณด๋ƒˆ๋˜ ์š”์ฒญ์˜ Origin๊ณผ ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด์ค€ ์‘๋‹ต์˜ Access-Control-Allow-Origin์„ ๋น„๊ตํ•ด ๋ณธ ํ›„ ์ด ์‘๋‹ต์ด ์œ ํšจํ•œ ์‘๋‹ต์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

References


#14

HTTP GET๊ณผ POST ๋ฉ”์„œ๋“œ๋ฅผ ๋น„๊ต/์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

GET

GET์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์–ด๋– ํ•œ ๋ฆฌ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. GET์„ ํ†ตํ•œ ์š”์ฒญ์€ URL ์ฃผ์†Œ ๋์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํฌํ•จ๋˜์–ด ์ „์†ก๋˜๋ฉฐ, ์ด ๋ถ€๋ถ„์„ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง(query string)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๋ฐฉ์‹์€ URL ๋์— ?๋ฅผ ๋ถ™์ด๊ณ  ๊ทธ๋‹ค์Œ ๋ณ€์ˆ˜๋ช…1=๊ฐ’1&๋ณ€์ˆ˜๋ช…2=๊ฐ’2... ํ˜•์‹์œผ๋กœ ์ด์–ด ๋ถ™์ด๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด www.example.com/show?name1=value1&name2=value2์ด๋‹ค. ์„œ๋ฒ„์—์„œ๋Š” name1๊ณผ name2๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๋ช…์œผ๋กœ ๊ฐ๊ฐ value1๊ณผ value2์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

POST

POST๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. POST๋Š” ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ HTTP ๋ฉ”์‹œ์ง€ body ๋ถ€๋ถ„์— ๋‹ด์•„์„œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค.(body์˜ ํƒ€์ž…์€ Content-Type ํ—ค๋”์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.)

GET์—์„œ URL์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ณด๋ƒˆ๋˜ name1=value1&name2=value2๊ฐ€ body์— ๋‹ด๊ฒจ ๋ณด๋‚ด์ง„๋‹ค ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. POST๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ๊ธธ์ด ์ œํ•œ์ด ๋”ฐ๋กœ ์—†์–ด ์šฉ๋Ÿ‰์ด ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ GET์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚˜๋Š” ๊ฑด ์•„๋‹ˆ๋ผ์„œ ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. POST๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์€ ๋ณดํ†ต HTML form์„ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.

GET๊ณผ POST์˜ ์ฐจ์ด์ 

  • ์‚ฌ์šฉ๋ชฉ์ : GET์€ ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ, POST๋Š” ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์š”์ฒญ์— body ์œ ๋ฌด: GET์€ URL ํŒŒ๋ผ๋ฏธํ„ฐ์— ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— HTTP ๋ฉ”์‹œ์ง€์— body๊ฐ€ ์—†๋‹ค. POST๋Š” body์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํžˆ HTTP ๋ฉ”์‹œ์ง€์— body๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • ๋ฉฑ๋“ฑ์„ฑ(idempotent): GET ์š”์ฒญ์€ ๋ฉฑ๋“ฑ์ด๋ฉฐ, POST๋Š” ๋ฉฑ๋“ฑ์ด ์•„๋‹ˆ๋‹ค.

๐Ÿ’ก๋ฉฑ๋“ฑ์ด๋ž€?
๋ฉฑ๋“ฑ์˜ ์‚ฌ์ „์  ์ •์˜๋Š” ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ ์šฉํ•˜๋”๋ผ๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€์ง€ ์•Š๋Š” ์„ฑ์งˆ์„ ์˜๋ฏธํ•œ๋‹ค. GET์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒํ•œ๋‹ค๋Š” ์ ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•˜๋”๋ผ๋„ ์‘๋‹ต์ด ๋˜‘๊ฐ™์„ ๊ฒƒ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ POST๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉฑ๋“ฑ์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.(POST ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.)

References


#15

์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

์ฟ ํ‚ค(Cookie)

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €) ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ์ด ์œ ํšจํ•œ ์‹œ๊ฐ„์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ํšจ ์‹œ๊ฐ„์ด ์ •ํ•ด์ง€๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์ธ์ฆ์ด ์œ ์ง€๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋กœ์ปฌ์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ฐธ์กฐํ•˜๋ฉฐ, Response Header์— Set-Cookie ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ฟ ํ‚ค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ Request ์‹œ์— Request Header๋ฅผ ๋„ฃ์–ด์„œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.

์ฟ ํ‚ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค.

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญ
  2. ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑ
  3. HTTP ํ—ค๋”์— ์ฟ ํ‚ค๋ฅผ ํฌํ•จ ์‹œ์ผœ ์‘๋‹ต
  4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์ฟ ํ‚ค ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๊ด€
  5. ๊ฐ™์€ ์š”์ฒญ์„ ํ•  ๊ฒฝ์šฐ HTTP ํ—ค๋”์— ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ๋ณด๋ƒ„
  6. ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ์ฝ์–ด ์ด์ „ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ฟ ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ์ฟ ํ‚ค๋ฅผ HTTP ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ ์‘๋‹ต

์„ธ์…˜(Session)

์„ธ์…˜์€ ์ฟ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ •๋ณด ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๋Š” ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜์€ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค. ์„œ๋ฒ„์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜ ID๋ฅผ ๋ถ€์—ฌํ•˜๋ฉฐ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ธ์ฆ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

์ ‘์† ์‹œ๊ฐ„์— ์ œํ•œ์„ ๋‘์–ด ์ผ์ • ์‹œ๊ฐ„ ์‘๋‹ต์ด ์—†๋‹ค๋ฉด ์ •๋ณด๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๊ฒŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์— ์ข‹์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰ ๋™์ ‘์ž ์ˆ˜๊ฐ€ ๋งŽ์€ ์›น ์‚ฌ์ดํŠธ์ธ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ฒŒ ๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์š”์ธ์ด ๋œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ Request๋ฅผ ๋ณด๋‚ด๋ฉด, ํ•ด๋‹น ์„œ๋ฒ„์˜ ์—”์ง„์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์œ ์ผํ•œ ID๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๋ฐ ์ด๊ฒƒ์ด ์„ธ์…˜ ID๋‹ค.

์„ธ์…˜์˜ ๋™์ž‘ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์† ์‹œ ์„ธ์…˜ ID๋ฅผ ๋ฐœ๊ธ‰
  2. ํด๋ผ์ด์–ธํŠธ๋Š” ์„ธ์…˜ ID์— ๋Œ€ํ•ด ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ €์žฅํ•˜๊ณ  ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ, ์ด ์ฟ ํ‚ค์˜ ์„ธ์…˜ ID๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•ด์„œ ์‚ฌ์šฉ
  4. ์„œ๋ฒ„๋Š” ์„ธ์…˜ ID๋ฅผ ์ „๋‹ฌ๋ฐ›์•„์„œ ๋ณ„๋‹ค๋ฅธ ์ž‘์—… ์—†์ด ์„ธ์…˜ ID๋กœ ์„ธ์…˜์— ์žˆ๋Š” ํด๋ผ์–ธํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ด
  5. ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์„œ๋ฒ„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต

์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด์ 

  • ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ์œ„์น˜: ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์˜ ์ž์›์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์„ธ์…˜์€ ์„œ๋ฒ„์˜ ์ž์›์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ณด์•ˆ: ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์งˆ๋˜๊ฑฐ๋‚˜ request์—์„œ ์Šค๋‹ˆํ•‘ ๋‹นํ•  ์šฐ๋ ค๊ฐ€ ์žˆ์–ด์„œ ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค. ๋ฐ˜๋ฉด ์„ธ์…˜์€ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์„ธ์…˜ ID๋งŒ ์ €์žฅํ•˜๊ณ  ๊ทธ๊ฒƒ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ๋ณด์•ˆ์„ฑ์ด ์ข‹๋‹ค.
  • ๋ผ์ดํ”„ ์‚ฌ์ดํด: ์ฟ ํ‚ค๋Š” ๋งŒ๋ฃŒ์‹œ๊ฐ„์ด ์žˆ์ง€๋งŒ ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ๊ณ„์†ํ•ด์„œ ์ •๋ณด๊ฐ€ ๋‚จ์•„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ๋„‰๋„‰ํ•˜๊ฒŒ ์žก์•„๋‘๋ฉด ์ฟ ํ‚ค ์‚ญ์ œ๋ฅผ ํ•  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋  ์ˆ˜๋„ ์žˆ๋‹ค. ๋ฐ˜๋ฉด์— ์„ธ์…˜๋„ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋งŒ๋ฃŒ์‹œ๊ฐ„์— ์ƒ๊ด€์—†์ด ์‚ญ์ œ๋œ๋‹ค.
  • ์†๋„: ์ฟ ํ‚ค์— ์ •๋ณด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์— ์š”์ฒญ ์‹œ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๋ฐ˜๋ฉด ์„ธ์…˜์€ ์ •๋ณด๊ฐ€ ์„œ๋ฒ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ๊ฐ€ ์š”๊ตฌ๋˜์–ด ๋น„๊ต์  ๋Š๋ฆฐ ์†๋„๋ฅผ ๋‚ธ๋‹ค.

์„ธ์…˜์€ ์„œ๋ฒ„์˜ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์–ด์งˆ ์ˆ˜๊ฐ€ ์žˆ๊ณ  ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.

References


#16

DNS๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๋ชจ๋“  ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์—๋Š” ๊ณ ์œ ์˜ ์ฃผ์†Œ, ์ฆ‰ IP ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์žฅ์น˜๋“ค์„ host๋ผ๊ณ  ํ•œ๋‹ค. IP๋Š” ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ณ  ๊ธฐ์–ตํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์œ„ํ•ด์„œ ๊ฐ ip์— ๋ถ€์—ฌํ•œ ์ด๋ฆ„์ด ๋„๋ฉ”์ธ(Domain)์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 210.89.164.90์˜ ๋„๋ฉ”์ธ์€ naver.com์ด๋‹ค.

DNS(Domain Name Server ๋˜๋Š” Domain Name Service ๋ชจ๋‘๋ฅผ ์˜๋ฏธ)๋Š” ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ IP ์ฃผ์†Œ์™€ ์ผ์ •ํ•œ ํ˜•์‹์„ ๊ฐ€์ง„ ๋„๋ฉ”์ธ์„ ์„œ๋กœ ๋งคํ•‘ ์‹œํ‚ค๊ณ  ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋„ค์ด๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์†Œ์ฐฝ์— ๋„๋ฉ”์ธ(naver.com)์„ ์ž…๋ ฅํ•˜๋ฉด, ์ปดํ“จํ„ฐ๋Š” ํ•ด๋‹น ๋„๋ฉ”์ธ์ด ์—ฐ๊ฒฐ๋œ DNS๋กœ ๊ฐ€์„œ ์„œ๋ฒ„ IP๋ฅผ ์š”์ฒญํ•œ๋‹ค.

์š”์ฒญ๋ฐ›์€ ๋„ค์ž„ ์„œ๋ฒ„๋Š” ํ•ด๋‹น ๋„๋ฉ”์ธ๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์„œ๋ฒ„ IP(210.89.164.90)๋ฅผ ์ฐพ์€ ํ›„, ์ปดํ“จํ„ฐ์—๊ฒŒ ์•Œ๋ ค์ค€๋‹ค.

์ด์ฒ˜๋Ÿผ ๋„๋ฉ”์ธ์— ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ์—ญํ• ์ด DNS์ด๋‹ค.

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” IP๋ฅผ ์ฐพ๋Š” ์ˆœ์„œ

  1. local cache ์•ˆ์— ๊ฒ€์ƒ‰ํ•œ ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ IP๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์ด๋ฏธ ํ•ด๋‹น ๋„๋ฉ”์ธ์„ ๋ฐฉ๋ฌธํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์ปดํ“จํ„ฐ๊ฐ€ ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ IP๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  2. ๋งŒ์•ฝ ์บ์‹œ์— ์—†๋‹ค๋ฉด ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์— ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์กด์žฌํ•˜๋Š” hosts ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ๋Š”๋‹ค. ํ•ด๋‹น hosts ํŒŒ์ผ์— ํŠน์ • ๋„๋ฉ”์ธ๊ณผ IP๋ฅผ ๋งคํ•‘ ์‹œ์ผœ๋†“์œผ๋ฉด ํ•ด๋‹น ๋„๋ฉ”์ธ์€ ์ง€์ •ํ•œ IP๋กœ ์ด๋™ํ•œ๋‹ค.
  3. ๋งŒ์•ฝ ์œ„์˜ ๊ฒฝ์šฐ์—์„œ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ IP๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ์ตœ์ข…์ ์œผ๋กœ DNS๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

References


#17

REST์™€ RESTful์˜ ๊ฐœ๋…์„ ์„ค๋ช…ํ•˜๊ณ  ์ฐจ์ด๋ฅผ ๋งํ•ด์ฃผ์„ธ์š”.

REST๋ž€ Representational State Transfer์˜ ์•ฝ์ž๋กœ, URI๋กœ ์ž์›(Resource)์„ ๋ช…์‹œํ•˜๊ณ  HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD(Create, Read, Update, Delete) ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ์˜ ์ž์›์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •๋ณด๋ฅผ ๋งํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•ด ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์œ„ํ—˜ํ•œ ๋ฐฉ์‹ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด REST API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒยท์ƒ์„ฑยท์‚ญ์ œยท์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ฒ ๋‹ค๊ณ  HTTP ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญ์„ ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋กœ์ง์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

RESTful์€ REST ์•„ํ‚คํ…์ฒ˜๋กœ ๊ตฌํ˜„๋œ ์›น ์„œ๋น„์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ์šฉ์–ด๋กœ, "REST API๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋น„์Šค๋Š” RESTfulํ•˜๋‹ค"์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋œ๋‹ค.

HTTP ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜

์š”์ฒญ์˜ ์ข…๋ฅ˜์— ๋‹ค๋ผ ๋‹ค๋ฅธ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋ฉ”์„œ๋“œ ์—ญํ• 
GET ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
POST ๋ฐ์ดํ„ฐ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. ์ธ์ฆ ์ž‘์—…์„ ๊ฑฐ์น  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
DELETE ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
PUT ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ ์ •๋ณด๋กœ ํ†ต์งธ๋กœ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
PATCH ๋ฐ์ดํ„ฐ์˜ ํŠน์ • ํ•„๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

URI๋ž€?

URI๋Š” Uniform Resource Identifier์˜ ์•ฝ์ž๋กœ, ์ž์›์„ ์‹๋ณ„์ž๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๋Š” ์ฃผ์†Œ๋ฅผ ๋งํ•œ๋‹ค. URI์˜ ์ข…๋ฅ˜๋กœ URL๊ณผ URN์ด ์žˆ๋‹ค. URI๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

References


#18

์†Œ์ผ“(Socket)์ด ๋ฌด์—‡์ธ๊ฐ€์š”? ์ž์‹  ์žˆ๋Š” ์–ธ์–ด๋กœ ๊ฐ„๋‹จํžˆ ์†Œ์ผ“ ์ƒ์„ฑ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ์„ธ์š”.

์†Œ์ผ“(Socket)์ด๋ž€ Application ํ”„๋กœ์„ธ์Šค์™€ end-to-end ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๋Š” Transport ํ”„๋กœํ† ์ฝœ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค์„ ๋งํ•œ๋‹ค. ์ฆ‰, Application์—์„œ Transport ํ”„๋กœํ† ์ฝœ์„ ์“ฐ๊ธฐ ์œ„ํ•œ API๋ฅผ ๋งํ•œ๋‹ค.

์†Œ์ผ“์€ ํฌ๊ฒŒ UDP์™€ TCP ๋‘ ์ข…๋ฅ˜๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ #4. TCP์™€ UDP์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.์„ ์ฐธ๊ณ !

ํŒŒ์ด์ฌ์œผ๋กœ TCP์—์„œ์˜ ์†Œ์ผ“๊ณผ UDP์—์„œ์˜ ์†Œ์ผ“ ์ƒ์„ฑ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์†Œ์ผ“์„ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ๋ฐ”๋กœ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์‹ค์ œ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด๋Š” ๋ฐ”์ธ๋”ฉ, ์—ฐ๊ฒฐ ๋“ฑ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

TCP

  • TCP Client
from socket import *

server_name = "example.com"
server_port = 1234

client_socket = socket(AF_INET, SOCKET_STREAM)  # ์†Œ์ผ“ ์ƒ์„ฑ
client_socket.connect((server_name, server_port)) # ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ
  • TCP Server
from socket import *

server_port = 1234

server_socket = socket(AF_INET, SOCKET_STREAM)  # ์†Œ์ผ“ ์ƒ์„ฑ
server_socket.bind(('', server_port)) # ์†Œ์ผ“์— ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ
server_socket.listen(1) # ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ๋Œ€๊ธฐ

(client_socket, client_address) = server_socket.accept()  # ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์ˆ˜๋ฝ

UDP

  • UDP Client
from socket import *

server_name = "example.com"
server_port = 1234

client_socket = socket(AF_INET, SOCK_DGRAM) # ์†Œ์ผ“ ์ƒ์„ฑ
  • UDP Server
from socket import *

server_port = 1234
server_socket = socket(AF_NET, SOCK_DGRAM)  # ์†Œ์ผ“ ์ƒ์„ฑ
server_socket.bind(('', server_port)) # ์†Œ์ผ“์— ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ

References


#19

Socket.io์™€ WebSocket์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

WebSocket

WebSocket์€ ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•œ ์ƒํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ๋งํ•œ๋‹ค.

์ „ํ˜•์ ์ธ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋ฐฉ์‹์€ HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์„ ๊นจ๋—ํžˆ ์ง€์šฐ๊ณ  ๋ฐ›์€ ๋‚ด์šฉ์„ ์ƒˆ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ, ๋‚ด์šฉ์„ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๊ทธ๋ฆฌ๋ฉด ๋ธŒ๋ผ์šฐ์ €์˜ ๊นœ๋ฐ•์ž„์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๊นœ๋ฐ•์ž„ ์—†์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์˜ ์ˆ˜์š”๊ฐ€ ์ƒ๊ฒผ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Pooling, Long Pooling, Streaming ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ค์› ๋‹ค.

์ด๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„ ์–‘๋ฐฉํ–ฅ ๋ฉ”์‹œ์ง€ ์†ก์ˆ˜์‹  ๊ทœ์น™์ด ํ•„์š”ํ–ˆ๊ณ  ์ด๊ฒƒ์ด WebSocket์ด๋‹ค.

Socket.io

socket.io๋Š” ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ชจ๋“ˆ์„ ๋งํ•œ๋‹ค. WebSocket์˜ ๊ฒฝ์šฐ ์ •๋ง ์ข‹์€ ๊ธฐ์ˆ ์ด์ง€๋งŒ ์˜ค๋ž˜๋œ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฝ์šฐ ์ง€์›์„ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ socket.io๋Š” ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ์ข…๋ฅ˜์™€ ๋ฒ„์ „์„ ํŒŒ์•…ํ•˜์—ฌ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ธฐ์ˆ ์„ ์„ ํƒํ•ด ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค.

References


#20

IPv4์™€ IPv6 ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

IPv4์™€ IPv6๋Š” ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ(IP)์˜ ๋ฒ„์ „์„ ๋งํ•˜๋ฉฐ, IPv4๋Š” IP์˜ 4๋ฒˆ์งธ ๋ฒ„์ „, IPv6๋Š” IP์˜ 6๋ฒˆ์งธ ๋ฒ„์ „์„ ๋งํ•œ๋‹ค. ์ด ๋•Œ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์€ ํ˜ธ์ŠคํŠธ ๊ฐ„ ํŒจํ‚ท ๊ตํ™˜ ๋„คํŠธ์›Œํฌ์—์„œ ํŒจํ‚ท(Packet) ํ˜น์€ ๋ฐ์ดํ„ฐ๊ทธ๋žจ(Datagram)์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ๋งํ•œ๋‹ค.

IPv4๋Š” ํ—ค๋”์— options์ด ์กด์žฌํ•˜๊ณ , fragmentation/reassembly ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด MTU(Maximum Transport Unit)์„ ๋„˜๋Š” ํฐ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ์ชผ๊ฐœ ์ „์†ก์„ ํ•˜๊ณ  ๋„์ฐฉ์ง€์—์„œ ์žฌ์กฐํ•ฉ์„ ํ•œ๋‹ค. ๋˜ํ•œ checksum ๋น„ํŠธ๋„ ์กด์žฌํ•˜์—ฌ ๋งค ๋ผ์šฐํ„ฐ๋งˆ๋‹ค checksum ๋น„ํŠธ๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.

๋ฐ˜๋ฉด IPv6๋Š” ๋น ๋ฅธ ์†๋„๋ฅผ ์œ„ํ•ด fragmentation/reassembly ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๊ทธ๋žจ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” priority ๋น„ํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

References


#21

MAC Address๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

MAC ์ฃผ์†Œ(Media Access Control Address)๋Š” Data Link Layer์—์„œ ํ†ต์‹ ์„ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ํ• ๋‹นํ•œ ์‹๋ณ„์ž๋ฅผ ๋งํ•œ๋‹ค. ์ฆ‰, ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋Š” ์ž์‹ ์˜ MAC ์ฃผ์†Œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ฃผ์†Œ๋Š” ์žฅ๋น„ ์ œ์กฐ์—…์ฒด๊ฐ€ ํ• ๋‹นํ•œ๋‹ค. MAC ์ฃผ์†Œ๋Š” ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ(Physical Address)๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค.

๐Ÿ’ก MAC ์ฃผ์†Œ์™€ IP ์ฃผ์†Œ์˜ ์ฐจ์ด
MAC ์ฃผ์†Œ์™€ IP ์ฃผ์†Œ ๋ชจ๋‘ ํ†ต์‹ ๊ธฐ๊ธฐ์˜ ์‹๋ณ„์ž๋ผ๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. ๋‹ค๋งŒ MAC ์ฃผ์†Œ๋Š” ์ œ์กฐ์—…์ฒด๊ฐ€ ํ†ต์‹ ๊ธฐ๊ธฐ์— ๋ถ€์—ฌํ•˜๋Š” ์‹๋ณ„์ž์ด๋ฉฐ ๊ฐ™์€ ์‹๋ณ„์ž๋ฅผ ๊ฐ™๋Š” ํ†ต์‹ ๊ธฐ๊ธฐ๋Š” ์—†๋‹ค. IP ์ฃผ์†Œ๋Š” Network Layer์—์„œ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ๋กœ ๋ณดํ†ต ํ†ต์‹ ์‚ฌ์—์„œ ๋ถ€์—ฌํ•˜๋ฉฐ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.

References


#22

๋ผ์šฐํ„ฐ์™€ ์Šค์œ„์น˜, ํ—ˆ๋ธŒ์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

(์—ฌ๊ธฐ์„œ์˜ ๋„คํŠธ์›Œํฌ๋Š” LAN(Local Area Network)๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.)

๋ผ์šฐํ„ฐ(Router)๋Š” Network Layer 3๊ณ„์ธต ์žฅ๋น„๋กœ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์žฅ์น˜์ด๋‹ค. ์ตœ์ข… ๋„์ฐฉ์ง€์˜ ๋„คํŠธ์›Œํฌ์— ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ ์ ˆํ•œ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜์—ฌ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.

์Šค์œ„์น˜(Switch)๋Š” Data Link Layer 2๊ณ„์ธต ์žฅ๋น„๋กœ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ์žฅ์น˜๋ฅผ ๋งํ•œ๋‹ค. ์Šค์œ„์น˜๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด IP ์ฃผ์†Œ์— ๋Œ€์‘๋˜๋Š” MAC ์ฃผ์†Œ๋ฅผ ์ฐพ์•„ ํ•ด๋‹น MAC ์ฃผ์†Œ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค. ๋งŒ์•ฝ IP ์ฃผ์†Œ์— ๋Œ€์‘๋˜๋Š” MAC ์ฃผ์†Œ๊ฐ€ ์—†๋‹ค๋ฉด ํ—ˆ๋ธŒ์ฒ˜๋Ÿผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฐฉ์‹์œผ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ณ  IP ์ฃผ์†Œ์™€ MAC ์ฃผ์†Œ๋ฅผ ๋Œ€์‘์‹œํ‚จ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ์‹œํ‚จ๋‹ค.

ํ—ˆ๋ธŒ(Hub)๋Š” Physical Layer 1๊ณ„์ธต ์žฅ๋น„๋กœ ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์žฅ์น˜์ด๋‹ค. ํŒจํ‚ท์„ ๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ธฐ๊ธฐ์— ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.

๐Ÿ’ก ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ(Broadcast)๋ž€?
๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋ž€ LAN์— ์žˆ๋Š” ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋“ค์—๊ฒŒ ๋ณด๋‚ด๋Š” ํ†ต์‹ ์ด๋‹ค.

References


#23

SMTP๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

SMTP(Simple Mail Transfer Protocol)์€ ์ธํ„ฐ๋„ท์—์„œ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” TCP/IP ํ”„๋กœํ† ์ฝœ์„ ๋งํ•œ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” TCP Port ๋ฒˆํ˜ธ๋Š” 25๋ฒˆ์ด๋‹ค.

SMTP๋Š” ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์ผ์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

  • MAIL ๋ช…๋ น: ์ฃผ์†Œ ๋ฐ˜ํ™˜ ํ™•๋ฆฝ
  • RCPT ๋ช…๋ น: ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์ž ํ™•๋ฆฝ
  • DATA ๋ช…๋ น: ๋ฉ”์‹œ์ง€ ํ…์ŠคํŠธ์˜ ์ฒซ ์‹ ํ˜ธ๋ฅผ ์ œ๊ณต

References


#24

๋…ธํŠธ๋ถ์œผ๋กœ www.google.com์— ์ ‘์†์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ›๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

1๋‹จ๊ณ„

์›น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋…ธํŠธ๋ถ์˜ IP์ฃผ์†Œ, 1-hop ๋ผ์šฐํ„ฐ์˜ IP ์ฃผ์†Œ, DNS ์„œ๋ฒ„ ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋ฅผ ์•Œ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด DHCP query๊ฐ€ ๋‹ด๊ธด IP ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ 1-hop ๋ผ์šฐํ„ฐ์—๊ฒŒ ์ „์†กํ•œ๋‹ค. DHCP ์„œ๋ฒ„๊ฐ€ ๋‚ด์žฅ๋œ ๋ผ์šฐํ„ฐ๊ฐ€ ๋…ธํŠธ๋ถ์˜ IP์ฃผ์†Œ, ์ž์‹ ์˜ IP์ฃผ์†Œ, DNS ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ๋‹ด์€ DHCP ACK๋ฅผ ๋‹ค์‹œ ๋…ธํŠธ๋ถ์—๊ฒŒ ์ „์†กํ•œ๋‹ค.

  • DNS๋ž€ Domain Name System์˜ ์•ฝ์ž๋กœ www.google.com๊ณผ ๊ฐ™์€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ IP ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์‹œ์Šคํ…œ์„ ๋งํ•œ๋‹ค.
  • DHCP ์„œ๋ฒ„๋Š” ๋ณดํ†ต์€ ๋ผ์šฐํ„ฐ์— DHCP ์„œ๋ฒ„๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ DHCP ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ž๋™์ ์œผ๋กœ IP์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ #28์„ ์ฐธ๊ณ !

2๋‹จ๊ณ„

DNS ์„œ๋ฒ„์— DNS query๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— 1-hop ๋ผ์šฐํ„ฐ์˜ MAC ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ARP query๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฐฉ์‹์œผ๋กœ ์ „์†กํ•˜์—ฌ router์˜ MAC์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ธ๋‹ค.

  • ARP๋ž€ Address Resolution Protocol์˜ ์•ฝ์ž๋กœ, MAC ์ฃผ์†Œ์™€ IP ์ฃผ์†Œ๋ฅผ 1:1 ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

3๋‹จ๊ณ„

www.google.com์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” www.google.com์˜ IP์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ, DNS query๊ฐ€ ๋‹ด๊ธด IP ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ DNS ์„œ๋ฒ„์— ์ „์†กํ•˜๊ณ  www.google.com์˜ IP ์ฃผ์†Œ๋ฅผ ํด๋ผ์ด์–ธํŠธ์ธ ๋…ธํŠธ๋ถ์—๊ฒŒ ์ „์†กํ•œ๋‹ค.

4๋‹จ๊ณ„

TCP ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๊ณ  3-way handshake๋กœ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•œ๋‹ค. HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ €์— ๋ Œ๋”๋ง์„ ํ•˜๋ฉด Google ์›นํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

References


#25

์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ topology์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•ด์ฃผ์„ธ์š”.

์ปดํ“จํ„ฐ๋ผ๋ฆฌ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ณ  ๊ต๋ฅ˜ํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ํ† ํด๋กœ์ง€๋Š” ์ปดํ“จํ„ฐ๋“ค์˜ ํŠน์ •ํ•œ ๋ง๊ตฌ์„ฑ ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.

ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋ฐฉ์‹์„ ๋ณด๋”๋ผ๋„, ๋…ธ๋“œ์™€ ๋งํฌ์™€ ๊ฐ™์€ ๋ฌผ๋ฆฌ์  ๋ฐฐ์น˜๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฌผ๋ฆฌ์  ํ† ํด๋กœ์ง€์™€ ๋…ธ๋“œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ํ† ํด๋กœ์ง€๋กœ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ๊ฐ๊ฐ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

Star

์ค‘์•™์— ์œ„์น˜ํ•œ ๋ฉ”์ธ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ด๋‹ค.

  • ์žฅ์ : ์žฅ์•  ๋ฐœ๊ฒฌ์ด ์‰ฝ๊ณ  ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•จ
  • ๋‹จ์ : ๋ฉ”์ธ ๋…ธ๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ „์ฒด ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ

Bus

๋ฒ„์Šค๋ผ๋Š” ๊ณตํ†ต ๋ฐฐ์„ ์„ ํ†ตํ•ด ๋…ธ๋“œ๋“ค์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์„œ, ํ•œ ๋…ธ๋“œ์˜ ์‹ ํ˜ธ๊ฐ€ ๋ชจ๋“  ๋…ธ๋“œ์— ์ „๋‹ฌ๋œ๋‹ค. (ํƒ€๊ฒŸ ๋…ธ๋“œ๋งŒ ์‹ ํ˜ธ์— ๋ฐ˜์‘์„ ํ•˜๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ๋Š” ๋ฌด์‹œํ•œ๋‹ค.)

  • ์žฅ์ : ๋…ธ๋“œ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋ฉฐ, ํ•œ ๋…ธ๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ
  • ๋‹จ์ : ๊ณตํ†ต ๋ฐฐ์„ ์˜ ํฌ๊ธฐ(๋Œ€์—ญํญ)๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ฐฐ์„ ์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆด ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ ์ €ํ•˜

Ring

๊ฐ ๋…ธ๋“œ๊ฐ€ ์–‘ ์˜†์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์›ํ˜• ๊ตฌ์กฐ, ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์‹ ํ˜ธ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.

  • ์žฅ์ : ๋‹จ๋ฐฉํ–ฅ ๊ตฌ์กฐ๋กœ ๋‹จ์ˆœํ•˜๊ณ , ์ค‘๊ฐ„์— ์žˆ๋Š” ๋…ธ๋“œ๋“ค์ด ์ฆํญ๊ธฐ์˜ ์—ญํ• ์„ ํ•ด์ค€๋‹ค. (๊ฑฐ๋ฆฌ ์ œ์•ฝ ์ ์–ด์ง„๋‹ค.)
  • ๋‹จ์ : ๋…ธ๋“œ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ๊ฐ€ ์–ด๋ ต๋‹ค.

Mesh

๋‹ค์ˆ˜์˜ ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์ด๋‹ค. (๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜๋ฉด ์™„์ „ ์—ฐ๊ฒฐํ˜•, ์ผ๋ถ€๋งŒ ์—ฐ๊ฒฐ๋˜๋ฉด ๋ถ€๋ถ„ ์—ฐ๊ฒฐํ˜•)

  • ์žฅ์ : ๋…ธ๋“œ์˜ ์žฅ์• ์— ์˜ํ–ฅ๋ฐ›์ง€ ์•Š์œผ๋ฉฐ ์œ ์—ฐํ•œ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ •์ ์ด๋‹ค.
  • ๋‹จ์ : ๊ตฌ์ถ• ๋น„์šฉ์ด ํฌ๊ณ , ๋…ธ๋“œ ์ถ”๊ฐ€์—๋„ ๋น„์šฉ์ด ๋งŽ์ด ๋“ ๋‹ค.

์™„์ „ ์—ฐ๊ฒฐํ˜•

๋ถ€๋ถ„ ์—ฐ๊ฒฐํ˜•

References


#26

subnet mask์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„คํŒ… (subnetting)

IPv4 ์˜ ๊ฒฝ์šฐ $2^{32}$์˜ ์ˆซ์ž๋กœ ์ฃผ์†Œ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , ์ด๋ฅผ ๊ตญ๊ฐ€, ํšŒ์‚ฌ ๋“ฑ ์ž˜๊ฒŒ ๋‚˜๋ˆ  ์–ด๋Š ์˜์—ญ์„ ์“ฐ๊ฒŒํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

ํ•œ์ •๋œ ์ž์›์ด๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์œผ๋กœ ๋…ธ๋“œ์— ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค. ์ด๋ฅผ ์œ„ํ•ด IP ๋ฅผ ์ชผ๊ฐœ๋Š”, ๋„คํŠธ์›Œํฌ ํŒŒํŠธ + ํ˜ธ์ŠคํŠธ ํŒŒํŠธ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋ธŒ๋„คํŒ…์„ ํ™œ์šฉํ•œ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ IP ์ฃผ์†Œ์— ๋”ฐ๋ผ 5 ๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ๊ฐ ํด๋ž˜์Šค์— ๋”ฐ๋ผ ๋„คํŠธ์›Œํฌ ํŒŒํŠธ์™€ ํ˜ธ์ŠคํŠธ ํŒŒํŠธ๊ฐ€ ์ •ํ•ด์ง„๋‹ค.

์œ„์™€ ๊ฐ™์€ ํด๋ž˜์Šค ๊ตฌ์กฐ์™€ ๋”๋ถˆ์–ด ๋”์šฑ ํšจ์œจ์ ์ธ ์„œ๋ธŒ๋„คํŒ…์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ์ด๋‹ค.

์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ (subnet mask)

ํ• ๋‹น๋œ IP ์ฃผ์†Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ํŒŒํŠธ์™€ ํ˜ธ์ŠคํŠธ ํŒŒํŠธ๊ฐ€ ์ •ํ•ด์ ธ์žˆ๋‹ค.

ํšจ์œจ์ ์ธ ์ฃผ์†Œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ํŒŒํŠธ๋ฅผ ์ƒˆ๋กœ์šด ๋„คํŠธ์›Œํฌ ํŒŒํŠธ์™€ ํ˜ธ์ŠคํŠธ ํŒŒํŠธ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ C ํด๋ž˜์Šค์ธ 192.12.16.1 IP, 255.255.255.0 ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ(ํ˜ธ์ŠคํŠธ ํŒŒํŠธ)๊ฐ€ ํ• ๋‹น๋˜์—ˆ์„ ๋•Œ ๊ธฐ์กด์˜ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ์ธ ๋งˆ์ง€๋ง‰ 8 ๋น„ํŠธ๋ฅผ 1111 0000 ์œผ๋กœ ๋ฐ”๊พผ๋‹ค๋ฉด, 4 ๋น„ํŠธ๋งŒํผ์˜ ๋„คํŠธ์›Œํฌ ํŒŒํŠธ (๊ทธ๋ฃน), 4 ๋น„ํŠธ๋งŒํผ์˜ ํ˜ธ์ŠคํŠธ (๋ฉค๋ฒ„) ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ๋™์ผ ๋„คํŠธ์›Œํฌ ๊ฐ„์—๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์ž์œ ๋กญ์ง€๋งŒ, ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๊ฐ„์—๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ๊ฑฐ์ณ์•ผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์–ด๋–ค ๊ธฐ์—…์„ ์ƒ๊ฐํ•ด๋ณด์ž. ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋กœ ์ถ”๊ฐ€์ ์ธ ์„œ๋ธŒ๋„คํŒ…์„ ์•ˆํ•œ๋‹ค๋ฉด ์ธ์‚ฌํŒ€, ์žฌ๋ฌดํŒ€ ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ ํŒ€๋“ค์ด ๋ชจ๋‘ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ํŒŒํŠธ๋ฅผ ์ง€๋‹ˆ๋ฏ€๋กœ ์„œ๋กœ์—๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋ฅผ ํ™œ์šฉํ•œ ์„œ๋ธŒ๋„คํŒ…์œผ๋กœ ํšจ์œจ์ ์œผ๋กœ IP ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

References


#27

data encapsulation์ด ๋ฌด์—‡์ธ๊ฐ€์š”?

data encapsulation ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์†ก์‹ ์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ์ƒ์œ„ ๊ณ„์ธต์—์„œ๋ถ€ํ„ฐ ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ ๋‚ด๋ ค์˜ฌ ๋•Œ๋งˆ๋‹ค ๊ฐ ๊ณ„์ธต์˜ ํ—ค๋”๋ฅผ ๋ถ™์—ฌ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์ˆ˜์‹ ์ธก์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์€ ํ›„์— ๊ณ„์ธต์„ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ํ—ค๋”๋ฅผ ๋–ผ๋‚ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์•…ํ•œ๋‹ค.

References


#28

DHCP๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

DHCP (Dynamic Host Configuration Protocol) ๋Š” ๋™์ ์œผ๋กœ IP ์ฃผ์†Œ๋‚˜ ๊ธฐํƒ€ ์ •๋ณด๋“ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ๋งํ•œ๋‹ค. ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋งŽ๊ณ  ์ด๋“ค์˜ IP ๋ฅผ ๋ชจ๋‘ ์ง์ ‘ ํ• ๋‹นํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ์ƒ๋‹นํžˆ ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ๋งŽ์ด๋“ค์ง€๋งŒ, DHCP ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

DHCP ๋Š” UDP ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๊ตฌ์กฐ๋กœ ํ†ต์‹ ํ•œ๋‹ค. ๊ทธ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. DHCP discover: ์ปดํ“จํ„ฐ๊ฐ€ ๋™์ผ ์„œ๋ธŒ๋„ท์œผ๋กœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…(255.255.255.255)์œผ๋กœ DHCP ์„œ๋ฒ„๋ฅผ ์ฐพ๋Š”๋‹ค.
  2. DHCP offer: DHCP ๊ฐ€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ IP ์ฃผ์†Œ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ปดํ“จํ„ฐ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  3. DHCP request: ์ปดํ“จํ„ฐ๊ฐ€ ๋ฆฌ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜์˜ IP ์ฃผ์†Œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์„œ๋ฒ„์— ์ „๋‹ฌํ•œ๋‹ค.
  4. DHCP ack: DHCP ๊ฐ€ ์ปดํ“จํ„ฐ์—๊ฒŒ ํ•ด๋‹น IP ์ฃผ์†Œ๋ฅผ ํ—ˆ๋ฝ/๊ฑฐ์ ˆํ•˜๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

์žฅ์ 

  • DHCP ์„œ๋ฒ„์—์„œ ์ž๋™์œผ๋กœ IP ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋ฏ€๋กœ ํŽธ๋ฆฌํ•˜๋‹ค. IP ์— ๋ณ€๋™์ด ์žˆ์„ ๋•Œ, DHCP ์—๋งŒ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
  • ์‚ฌ์šฉ์ค‘์ธ ์ปดํ“จํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ํ• ๋‹นํ•˜๋ฏ€๋กœ ํšจ์œจ์ ์ด๋‹ค.

๋‹จ์ 

  • DHCP ์„œ๋ฒ„์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ์ปดํ“จํ„ฐ์—์„œ ์ธํ„ฐ๋„ท์„ ํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ดˆ๊ธฐ DHCP ์„ธํŒ… ์‹œ๊ฐ„ ๋ฐ ํŠธ๋ž˜ํ”ฝ์ด ํฌ๋‹ค.
  • ๋‹จ๋ง ์ปดํ“จํ„ฐ๋ฅผ ๋Œ ๊ฒฝ์šฐ, ์™„์ „ํžˆ ์ฃผ์†Œ๊ฐ€ release ๋  ๋•Œ ๊นŒ์ง€ ํ•ด๋‹น IP ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

References


#29

routing protocol์„ ๋ช‡ ๊ฐ€์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. (ex. link state, distance vector)

ํŒจํ‚ท์„ ์ „๋‹ฌํ•  ๋•Œ ์–ด๋Š ๊ฒฝ๋กœ๋กœ ๊ฐˆ์ง€ ์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ผ์šฐํŒ…์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ผ์šฐํŒ… ๊ฒฝ๋กœ ๊ณ ์ • ์—ฌ๋ถ€

์–ด๋–ค ๊ฒฝ๋กœ๋กœ ๋ผ์šฐํŒ…ํ• ์ง€๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘๋ƒ ๋™์ ์œผ๋กœ ์ •ํ•˜๋ƒ์— ๋”ฐ๋ผ ์ •์  ๋ผ์šฐํŒ…, ๋™์  ๋ผ์šฐํŒ… ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

๋‚ด/์™ธ๋ถ€ ๋ผ์šฐํŒ…

๋™์  ๋ผ์šฐํŒ…์—์„œ AS (Auotonomous System, ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์ง‘๋‹จ) ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ƒ, ์™ธ๋ถ€์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ƒ์— ๋”ฐ๋ผ ๋‚ด๋ถ€ ๋ผ์šฐํŒ… (RIP, IGRP, OSPF, EIGRP) ๊ณผ ์™ธ๋ถ€ ๋ผ์šฐํŒ… (BGP, EGP) ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ

๋™์  ๋ผ์šฐํŒ…์—์„œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ด€๋ฆฌํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ์„œ๋„ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค. ํฌ๊ฒŒ link state, distance vector ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

distance vector ๋ฐฉ๋ฒ•์€ ํ˜„์žฌ ์œ„์น˜ (๋‹จ๋ง ๋˜๋Š” ๋ผ์šฐํ„ฐ) ๊นŒ์ง€์˜ ๋ฐฉํ–ฅ๊ณผ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•œ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ธ์ ‘ํ•œ ๋ผ์šฐํ„ฐ๋“ค์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ๊ฐฑ์‹ ํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ๊ฒŒ ๋“ค๊ณ  ๊ตฌ์„ฑ์ด ์‰ฝ์ง€๋งŒ, ์ „์ฒด ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๊ณ  ๊ฐ™์€ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ๋„๋Š” ๋ฃจํ•‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. (EIGRP ๋Š” ๋ฃจํ•‘์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ) distance vector ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ๋Š” RIP, EIGRP, BGP ๋“ฑ์ด ์žˆ์œผ๋ฉฐ, distance vector ๋Š” ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค.

link state ๋ฐฉ๋ฒ•์€ ์ธ์ ‘ ํ…Œ์ด๋ธ”์— ์ •๋ณด๋ฅผ ์ „๋‹ฌํ–ˆ์œผ๋ฉด ๋˜ ๊ทธ ์ธ์ ‘ ํ…Œ์ด๋ธ”๋“ค์€ ์ด ์ •๋ณด๋ฅผ ๋ฐ”๋กœ ์ธ์ ‘ ํ…Œ์ด๋ธ”๋กœ ๋„˜๊ฒจ, ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ผ์šฐํ„ฐ๋“ค๋„ ํ˜„์žฌ ์ •๋ณด๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •ํ™•ํ•˜๊ณ  ๋ฃจํ•‘ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด ๋Œ€ํ˜• ๋„คํŠธ์›Œํฌ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์†Œ๋ชจ์™€ cpu ๋กœ๋“œ๊ฐ€ ๋งŽ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. link state ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ๋Š” OSPF, IS-IS ๋“ฑ์ด ์žˆ์œผ๋ฉฐ, link state ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค.

References


#30

์ด๋”๋„ท(ethernet)์ด ๋ฌด์—‡์ธ๊ฐ€์š”?

์ด๋”๋„ท์€ ๊ทผ๊ฑฐ๋ฆฌ ์œ ์„  ํ†ต์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํ‚น ๋ฐฉ๋ฒ•์œผ๋กœ CSMA/CDํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค. IEEE 802.3 ์— ํ‘œ์ค€์œผ๋กœ ์ •์˜๋˜์—ˆ๋‹ค.

์žฅ์ 

  • ์ ์€ ์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.
  • ๋น„์šฉ์ด ์ ๊ณ  ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค.
  • ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•˜๋‹ค.

๋‹จ์ 

  • ์บ๋ฆฌ์–ด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ง€์—ฐ์ด ์ƒ๊ธด๋‹ค.

CSMA/CD ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํžˆ ๋งํ•˜์ž๋ฉด ๋ฒ„์Šค ๊ตฌ์กฐ๋กœ ํ†ต์‹ ์„ ํ•˜๋Š”๋ฐ ์บ๋ฆฌ์–ด๋ผ๋Š” ๋„คํŠธ์›Œํ‚น ์ƒ์˜ ์‹ ํ˜ธ๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์บ๋ฆฌ์–ด๊ฐ€ ์—†์œผ๋ฉด ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

References


#31

client์™€ server์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋Œ€์ƒ์„ client, ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ๋Œ€์ƒ์„ server ๋ผ๊ณ  ํ•œ๋‹ค. client ์™€ server ๋Š” ๊ณ ์ •๋˜์ง€ ์•Š๊ณ  ์š”์ฒญ์— ๋”ฐ๋ผ ๋ฐ”๋€๋‹ค. ์ „์—๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” client ์˜€์–ด๋„ ๋‹ค์Œ ๋ฒˆ์—๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด server ๊ฐ€ ๋œ๋‹ค.

References


#32

delay, timing(jitter), throughput ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

์œ„ ์„ธ๊ฐ€์ง€ ๊ฐœ๋…์€ ๋ชจ๋‘ ๋„คํŠธ์›Œํฌ์˜ ์„ฑ๋Šฅ๊ณผ ๊ด€๋ จ๋˜์–ด ์žˆ๋‹ค.

delay

ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์ด ์ถœ๋ฐœ ์ง€์ ์—์„œ ๋„์ฐฉ ์ง€์ ์— ๋„์ฐฉํ•œ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค.

๋”œ๋ ˆ์ด๋Š”

  • Processing Delay (์ฒ˜๋ฆฌ ์ง€์—ฐ): ๋ผ์šฐํ„ฐ๊ฐ€ ๋“ค์–ด์˜จ ํŒจํ‚ท์˜ ํ—ค๋”๋ฅผ ํ™•์ธํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
  • Queueing Delay (ํ ์ง€์—ฐ): ๋ผ์šฐํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๋Š๋ผ ํŒจํ‚ท์ด ๋ผ์šฐํ„ฐ์˜ ํ์—์„œ ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„
  • Transmission Delay (์ „์†ก ์ง€์—ฐ): ๋ผ์šฐํ„ฐ์˜ ์„ฑ๋Šฅ (์ „์†ก ์†๋„) ์— ๋”ฐ๋ผ ํŒจํ‚ท์ด ๋…ผ๋ฆฌํšŒ๋กœ๋ฅผ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
  • Propagation Delay (์ „ํŒŒ ์ง€์—ฐ): ๋ผ์šฐํ„ฐ๊ฐ„ ๊ฑฐ๋ฆฌ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ง€์—ฐ ์‹œ๊ฐ„

์˜ ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.

timing(jitter)

delay ์˜ ๋ณ€๋™์„ (๋ณ€ํ™”๋Ÿ‰ ์ˆ˜์ค€) ์˜๋ฏธํ•œ๋‹ค. ๊ฐ™์€ ์Šค์œ„์น˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ํŒจํ‚ท๋งˆ๋‹ค ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์ง€ํ„ฐ๊ฐ€ ์ƒ๊ธด๋‹ค.

throughput

์ง€์ •๋œ ์‹œ๊ฐ„๋™์•ˆ ์‹ค์ œ๋กœ ์ „์†ก๋œ ์ •๋ณด๋Ÿ‰์„ ์˜๋ฏธํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๊ฐ€ ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ†ต๋กœ์˜ ํฌ๊ธฐ์ธ bandwidth ์™€ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ, bandwidth ๊ฐ€ ํฌ๋”๋ผ๋„ ์‹ค์ œ๋กœ ์ „์†ก๋œ ์ •๋ณด๋Ÿ‰์ด ์ ์œผ๋ฉด throughput ์ด ์ ์€ ๊ฒƒ์ด๋‹ค.

References