[Network] TCP/IP ๋™์ž‘์ˆœ์„œ

soheeยท2022๋…„ 9์›” 17์ผ
0

๐Ÿ“Œ ์›น ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ํ•„์ˆ˜๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฐœ๋…์ธ TCP/IP์™€ HTTP์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ธฐ์ˆ ํ•˜๊ณ , ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ

์ธํ„ฐ๋„ท ํ†ต์‹ 

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

IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„

ํ•˜์ง€๋งŒ IP์ฃผ์†Œ ๋งŒ์œผ๋กœ๋Š” ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

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

์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด TCP, UDPํ”„๋กœํ† ์ฝœ์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

TCP Protocol

๋จผ์ €, ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต์„ ๋จผ์ € ์‚ดํŽด๋ณธ๋‹ค.

์•ž์„œ ๋งํ•œ IP๋Š” ์ธํ„ฐ๋„ท ๊ณ„์ธต์— ํ•ด๋‹นํ•˜๋ฉฐ, TCP์™€ UDP๋Š” ์ „์†ก๊ณ„์ธต์— ํ•ด๋‹นํ•œ๋‹ค.


๋™์ž‘ ์ˆœ์„œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ํด๋ผ์ด์–ธํŠธ์˜ ํ”„๋กœ๊ทธ๋žจ์ด Hello world๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋ฉด SOCKET LIBRARY๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌ์ด ๋˜๊ณ  OS์—์„  TCP์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฉ”์‹œ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋‹ค์Œ TCP์ •๋ณด๊ฐ€ ํฌํ•จ๋œ IPํŒจํ‚ท์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๊ณ  LAN์„ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค.
์ตœ์ข…์ ์œผ๋กœ TCP/IP ํŒจํ‚ท์— ๋“ค์–ด์žˆ๋Š” ์ •๋ณด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

TCP Protocol์˜ ํŠน์ง•

TCP๋Š” ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(Transmission Control Protocol)์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์† ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์ˆ˜๋ฝ๊ณผ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋Š” ์ž˜ ๋ฐ›์•˜๋‹ค๊ณ  ๋‹ค์‹œ ์š”์ฒญ์ˆ˜๋ฝ ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ๊ณผ์ •

  2. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ฐ›์•˜๋‹ค๊ณ  ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ณผ์ •์„ ์ง„ํ–‰

  3. ์ˆœ์„œ ๋ณด์žฅ

    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ํŒจํ‚ท์ด ์„œ๋ฒ„์— ์ˆœ์„œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์ •์ƒ์ ์œผ๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š์€ ํŒจํ‚ท๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ค์‹œ ๋ณด๋‚ด๋ผ๊ณ  ์‘๋‹ตํ•˜๊ฒŒ ๋œ๋‹ค.
    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋ฉด MTU ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ชผ๊ฐœ๋Š”๋ฐ ์ด ์ชผ๊ฐ  ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ  ํ•˜๊ฒŒ ๋œ๋‹ค. ์„ธ๊ทธ๋ฉ˜ํŠธ๋ฅผ ์†ก์‹ ํ•  ๋•Œ๋งˆ๋‹ค ์ชผ๊ฐœ์ง„ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก sequence ๋ฒˆํ˜ธ๊ฐ€ tcpํ—ค๋”์— ๊ธฐ๋ก์ด ๋˜๋Š”๋ฐ, ์ด ํ—ค๋”๋ฅผ ํ†ตํ•ด ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

ํฌํŠธ(port)

ํฌํŠธ๋ž€ ๊ฐ™์€ IP๋‚ด์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฒˆํ˜ธ์ด๋‹ค.

  • FTP: 20, 21
  • TELNET: 23
  • HTTP: 80
  • HTTPS: 443

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

(์ฐธ๊ณ )์ธํ”„๋Ÿฐ์˜ ๊น€์˜ํ•œ๋‹˜ HTTP๊ฐ•์˜
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

profile
๊ธฐ์–ตํ•˜๋ ค๊ณ  ์ ๋Š” ๊ฐœ๋ฐœ ๋กœ๊ทธ๐ŸŒž

0๊ฐœ์˜ ๋Œ“๊ธ€