Skip to content

๐ŸŸข HTTP ๊ฐœ๋… ์•Œ์•„๊ฐ€๊ธฐ : IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„ย #82

@leemember

Description

@leemember

๐Ÿ“Œ IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„

  • ๋น„์—ฐ๊ฒฐ์„ฑ : ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜ ์„œ๋น„์Šค ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ํŒจํ‚ท ์ „์†ก
  • ๋น„์‹ ๋ขฐ์„ฑ : ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์‚ฌ๋ผ์งˆ์‹œ, ํŒจํ‚ท์ด ์ˆœ์„œ๋Œ€๋กœ ์•ˆ์˜ฌ์‹œ
  • ํ”„๋กœ๊ทธ๋žจ ๊ตฌ๋ถ„ : ๊ฐ™์€ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„์—์„œ ํ†ต์‹ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‘˜ ์ด์ƒ์ด๋ผ๋ฉด ? ๋Œ€์ƒ ์„œ๋ฒ„๊ฐ€ ํŒจํ‚ท์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ๋ชจ๋ฅธ๋‹ค.

๐Ÿ“Œ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต - HTTP, FTP
  2. ์ „์†ก ๊ณ„์ธต - TCP, UDP
  • TCP๋Š” IP ํ”„๋กœํ† ์ฝœ์—์„œ ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์‚ฌ๋ผ์ง€๊ณ  ์ˆœ์„œ๊ฐ€ ๊ผฌ์ด๊ณ  ๊ทธ๋Ÿฐ ๊ฒƒ๋“ค์„ ํ•ด๊ฒฐ์„ ํ•ด์ค€๋‹ค.
  1. ์ธํ„ฐ๋„ท ๊ณ„์ธต IP
  2. ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต

IP ํŒจํ‚ท ์ •๋ณด (์ถœ๋ฐœ์ง€ IP / ๋ชฉ์ ์ง€ IP / ๊ธฐํƒ€)

ํŒจํ‚ท = ์ˆ˜ํ™”๋ฌผ, ๊ทธ๋ฆฌ๊ณ  ๋ฉ์–ด๋ฆฌ๋ฅผ ๋œปํ•จ ํƒ๋ฐฐ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค.

[์• ํ”Œ๋ฆฌ์ผ€์ด์…˜] ๋„คํŠธ์›Œํฌ ๊ฒŒ์ž„ ์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ (Hello ์ž…๋ ฅ) --> socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (์ž…๋ ฅํ•œ Hello ์šด๋ฐ˜์ค‘) --> [OS] TCP (์ž…๋ ฅํ•œ Hello TCP ์”Œ์›Œ์„œ ์šด๋ฐ˜์ค‘) --> [OS] IP(Internet Protocol) ์ž…๋ ฅํ•œ Hello IP ์”Œ์›Œ์„œ ์šด๋ฐ˜์ค‘ --> [๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค] LAN ๋“œ๋ผ์ด๋ฒ„ LAN ์žฅ๋น„ --> Ethernet Frame์— ์”Œ์›Œ์ ธ์„œ ๋‚˜๊ฐ€๊ฒŒ๋œ๋‹ค.


TCP/IP ํŒจํ‚ท ์ •๋ณด

์ถœ๋ฐœ์ง€ PORT, ๋ชฉ์ ์ง€ PORT, ์ „์†ก์ œ์–ด, ์ˆœ์„œ, ๊ฒ€์ฆ ์ •๋ณด

๐Ÿ“Œ TCP ํŠน์ง•

์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(Transmission Control Protocol)

  • ์—ฐ๊ฒฐ์ง€ํ–ฅ TCP 3 way handshake(๊ฐ€์ƒ์—ฐ๊ฒฐ) : ์—ฐ๊ฒฐ์ด ๋˜์–ด์•ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•œ๋‹ค.
    ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ syn๋ฅผ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋Ÿผ ์„œ๋ฒ„๊ฐ€ ์•Œ์•„๋จน๊ณ  SYN + ACK๋ฅผ ๋ณด๋‚ด๊ณ  ํด๋ผ์ด์–ธํŠธ๋„ ์•Œ๊ฒ ๋‹ค๊ณ  ACK๋ฅผ ๋ณด๋‚ธ๋‹ค.
    ์ด 3๋ฒˆ ์ฃผ๊ณ ๋ฐ›์•„์„œ ์“ฐ๋ฆฌ ์›จ์ด ํ•ธ๋“œ์‰์ดํฌ๋ผ๊ณ  ํ•จ.

  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ (๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๋ฉด ํŒจํ‚ท์ด ์ค‘๊ฐ„์— ๋ˆ„๋ฝ๋˜๋ฉด ๋ฐ˜๋Œ€ํŽธ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ชป๋ฐ›์•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค)

  • ์ˆœ์„œ ๋ณด์žฅ : ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ํŒจํ‚ท1, ํŒจํ‚ท2, ํŒจํ‚ท3 ์ˆœ์„œ๋กœ ์ „์†กํ–ˆ๋‹ค. ๊ทธ๋Ÿผ ์˜ˆ๋ฅผ๋“ค์–ด ์„œ๋ฒ„์— ๋„์ฐฉํ•œ ๊ฒƒ์€ 1,3,2 ์ˆœ์„œ๋กœ ๋„์ฐฉ. ๊ทธ๋Ÿผ ์„œ๋ฒ„์—์„œ ํŒจํ‚ท 2๋ถ€ํ„ฐ ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋Œ๋ ค๋ณด๋‚ธ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ 2๋ฒˆ๋ถ€ํ„ฐ ์ž˜๋ชป๋๊ตฌ๋‚˜ ์ธ์‹ํ•˜๊ณ  ๋‹ค์‹œ ์ „์†กํ•œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์ด ๋˜๊ณ  ๋‚˜๋ฉด ๋งˆ์ง€๋ง‰์— ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋„์™€์ค€๋‹ค.

๐Ÿ“Œ UDP ํŠน์ง•

์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ

  • ํ•˜์–€ ๋„ํ™”์ง€์— ๋น„์œ ํ•œ๋‹ค.(๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Œ)
  • ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3WAY handshake (x)
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ณด์ฆ (x)
  • ์ˆœ์„œ๋ณด์žฅ (x)
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฅด๋‹ค.

๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌํ•˜์ž๋ฉด IP์™€ ๊ฑฐ์˜ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. PORT ์ฒดํฌ์„ฌ ์ •๋„๋งŒ ์ถ”๊ฐ€(์ด ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด์„œ ์ œ๋Œ€๋กœ ๋งž๋Š”์ง€ ๊ฒ€์ฆํ•ด์ฃผ๋Š” ๊ฒƒ) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

๐Ÿ“Œ ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ์ตœ์ ํ™” ์‹œ์ผœ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด TCP๋Š” ๊ทธ๋Œ€๋กœ ์“ฐ๊ณ  UDP๋งŒ ๋” ๊ฐœ์„ ์‹œํ‚ค๋ฉด ๋œ๋‹ค.
๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์„ ๋” ๋ ˆ๋ฒจ์—… ์‹œ์ผœ์„œ ๋งŒ๋“ค์–ด ๋‚ด์„œ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทผ๋ฐ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ TCP ํ”„๋กœํ† ์ฝœ์ด 90ํ”„๋กœ ์ ์œ ์œจ ํ–ˆ๋‹ค๊ณ  ํ•จ. ์‹œ๋Œ€๊ฐ€ ๋ณ€ํ•˜๋ฉด์„œ ์ตœ๊ทผ์—๋Š” UDP๊ฐ€ ๋œจ๊ณ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ HTTP ํ†ต์‹ ํ•  ๋•Œ ์ตœ๊ทผ์— 3์ŠคํŽ™(3WAY ํ•ธ๋“œ์‰ํ‚น)์ด ๋‚˜์™”๋Š”๋ฐ ์—ฌ๊ธฐ์„œ TCP 3ํ•ธ๋“œ์‰ํ‚น ํ•  ๋•Œ (์”ฝ ๋ณด๋‚ด๊ณ  ์—ํฌ๋ณด๋‚ด๊ณ  ์”ฝ์—ํฌ์”ฝ์—จ) ์ด๋ ‡๊ฒŒ ํ•ด์•ผ๋˜๋Š”๋ฐ ์ด๋Ÿฐ๊ฑฐ๋ฅผ ๋‹ค ์ค„์—ฌ๋ณด์ž! ํ•ด์„œ ๋” ์ตœ์ ํ™” ํ•˜๋ฉด์„œ UDP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์š”์ฆ˜๋“ค์–ด ๊ต‰์žฅํžˆ ๋œจ๊ณ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค~

ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” TCP ํ”„๋กœํ† ์ฝœ๋งŒ ์ดํ•ดํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions