[๐ŸŒNetwork] TCP/UDP์™€ ๊ฐ ์žฅ๋น„์˜ ์—ญํ• 

vincaยท2023๋…„ 10์›” 4์ผ
0

๐ŸŒ Network

๋ชฉ๋ก ๋ณด๊ธฐ
15/21
post-thumbnail

ํŒจํ‚ท์˜ ํ†ต์‹ 

7๊ณ„์ธต๊ณผ 7๊ณ„์ธต ์‚ฌ์ด์— ํ†ต์‹ ํ•œ๋‹ค.
์ฒซ ์ถœ๋ฐœ์ง€์—์„œ, ํƒ‘-๋‹ค์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ๋จผ์ € 7๊ณ„์ธต์ธ HTTP ํ”„๋กœํ† ์ฝœ์„ ์˜ˆ์‹œ๋กœ ๋‚ด๋ ค๊ฐ€๋ณด์ž.

7๊ณ„์ธต - HTTP ํ†ต์‹ 

์›น์—์„œ www.naver.com๋กœ ์ ‘์†ํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ์ฃผ์†Œ๋กœ ์ ‘์†ํ•˜๊ฒŒ ๋˜๋ฉด Message๊ฐ€ ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.
Message์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

Request : GET(๋‹ค์šด๋กœ๋“œ) / POST(๋Œ€์ฒด๋กœ ์—…๋กœ๋“œ)
Response : ์‘๋‹ต์„ ๊ฒฐ์ •ํ•œ๋‹ค.

GET

ํŒŒ์ผ์˜ ์ œ๋ชฉ์ด ๋“ค์–ด๊ฐ„๋‹ค. ์ฆ‰, URL(www.naver.com)์ด ๋“ค์–ด๊ฐ„๋‹ค.
RequestParam์„ ๋ถ™์ด๋Š” ๊ฒƒ.

  • 200 : ์„ฑ๊ณต
  • 300 : ์‹คํŒจ
  • 400 : ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜
  • 500 : ์„œ๋ฒ„ ์˜ค๋ฅ˜

http, FTP, Telnet, SNMP ๋“ฑ๊ณผ ๊ฐ™์€ 7๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด ํ•˜๋Š” ์—ญํ• ์€ ๋ญ˜๊นŒ?
1. ์‚ฌ๋žŒ์ด ์ž…๋ ฅํ•œ DATA๋ฅผ ๋ฉ”์„ธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ํ•œ๋‹ค.
2. ๋ฉ”์„ธ์ง€๋ฅผ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…

์ด์ œ 7๊ณ„์ธต์—์„œ ํ•˜๋Š” ์—ญํ• ์ด ๋๋‚ฌ๋‹ค.
๊ทธ๋Ÿผ 4๊ณ„์ธต์„ ์‚ดํŽด๋ณด์ž.


4 ๊ณ„์ธต - TCP / UDP

๋Œ€ํ‘œ์ ์œผ๋กœ TCP์™€ UDP๊ฐ€ ์žˆ๋‹ค.

์ฃผ์š”์ ์ธ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

TCP

TCP๋Š” 7๊ณ„์ธต์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ๋งŒ๋“ค๊ณ , ์ด์ง„์ˆ˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ ๋ฉ”์„ธ์ง€๋ฅผ ์ž๋ฅธ๋‹ค.
์ž˜๋ž์œผ๋ฏ€๋กœ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฆ‰, ์ค‘๊ฐ„์ค‘๊ฐ„์— ์ ‘์†ํ•˜์—ฌ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

TCP๊ฐ€ ์ ์šฉ๋˜๋Š” 7๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • HTTP : HTML ํ˜•์‹์˜ ํŒŒ์ผ
  • FTP : ๋ชจ๋“  ํŒŒ์ผ
  • SMTP : ์ด๋ฉ”์ผ
  • Telnet : ์žฅ์น˜์˜ OS ์ƒ์„ฑํŒŒ์ผ

์ด๋“ค์˜ ๊ณตํ†ต์ ์€ ํŒŒ์ผ์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ด์ฒ˜๋Ÿผ ํŒŒ์ผ์€ ์šฉ๋Ÿ‰์ด ํฌ๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ ์ž˜๋ผ์„œ ๋ณด๋‚ด์•ผํ•œ๋‹ค.
๋งŒ์ผ, ์ž๋ฅด์ง€ ์•Š๊ณ  UDP๋ฅผ ํ†ตํ•ด์„œ ์ „์ฒด ํŒŒ์ผ์„ ๋ณด๋‚ธ๋‹ค๋ฉด 1G ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ๋•Œ, 1G ๋ฐ”์ดํŠธ๋ฅผ ํŒŒ์ผ์„ ์ „๋ถ€ ์ „์†ก์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋…์ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ..TCP๋Š” ๋”œ๋ ˆ์ด๊ฐ€ ๊ธธ๋‹ค.

UDP

์ž๋ฅด์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณต์œ ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
์ฆ‰, ๋…์ ์ ์ด๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค.

  • SYSLOG (System Logging Protocol): ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ.
  • SNMP (Simple Network Management Protocol): ๋„คํŠธ์›Œํฌ ์žฅ์น˜์™€ ์„œ๋ฒ„์—์„œ ๋„คํŠธ์›Œํฌ ์ƒํƒœ ๋ฐ ์„ฑ๋Šฅ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ.
  • DHCP (Dynamic Host Configuration Protocol): ๋„คํŠธ์›Œํฌ์—์„œ ์ž๋™์œผ๋กœ IP ์ฃผ์†Œ์™€ ๊ธฐํƒ€ ๋„คํŠธ์›Œํฌ ์„ค์ • ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ ์žฅ์น˜์— ๋™์ ์œผ๋กœ ํ• ๋‹นํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ.
  • DNS (Domain Name System): ์ธํ„ฐ๋„ท์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ IP ์ฃผ์†Œ๋ฅผ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ ๋ฐ ํ”„๋กœํ† ์ฝœ.

๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ ํด๋ผ์ด์–ธํŠธ๋Š” ๋ผ์šฐํ„ฐ์™€ ์Šค์œ„์น˜์ด๋‹ค.

์˜ˆ์‹œ

์ž ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž.
30๋งŒ ํŒจํ‚ท์„ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ๋ณด๋‚ด๋Š” ๊ณผ์ •์„ ์ƒ๊ฐํ•ด๋ณด์ž.
30๋งŒ..๋„ˆ๋ฌด๋‚˜ ๋งŽ์€ ํŒจํ‚ท์˜ ์–‘์ด๋‹ค.
30๋งŒ ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ, ์˜ˆ์•ฝ์„ ์•ˆํ•˜๊ณ  ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒ ๋Š”๊ฐ€?

์˜ˆ์•ฝ์„ ํ•ด์•ผํ•œ๋‹ค.
์ด๊ฒƒ์ด tcp SYN ํŒจํ‚ท์ด๋‹ค.
์ƒ๋Œ€์—๊ฒŒ HTTP ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋Š”์ง€ ๋ฌป๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๋ฐ˜๋Œ€๋กœ TCP SYN/ACK ํŒจํ‚ท์„ ๋ณด๋‚ด์ค€๋‹ค.

OK ๊ทธ๋Ÿผ ์ง€๊ธˆ๋ถ€ํ„ฐ ์ด์ œ ๋ณด๋‚ผ๊ฒŒ๋ผ๋Š” ์˜๋ฏธ๋กœ
TCP/ACK ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค. + ์ด ๋’ค์—๋Š” ๋ฐ”๋กœ HTTP GET ํŒจํ‚ท์ด ์ „์†ก๋œ๋‹ค.

์ดํ›„ HTTP 200๋ฒˆ์„ ์ „์†กํ•ด์ฃผ๋ฉฐ ํ†ต์‹ ์ด ์™„๋ฃŒ๋˜๊ฒŒ ๋œ๋‹ค.

์ด๋ฅผ 3 WAY-HandShake๋ผ๊ณ ํ•˜๋ฉฐ, ์ด๋Š” Connection-oriented Protocol์ด๋ผ๊ณ  ํ•œ๋‹ค.
๋Œ€ํ‘œ์ ์œผ๋กœ TCP์™€ PPP๊ฐ€ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ 3 WAY-HandShake๋ฅผ ํ•˜๋Š” ์ด์œ ๋Š” ํ•ด๋‹น ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ๋ชฉ์ ์ง€๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋ชฉ์ ์ง€(์„œ๋ฒ„)๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด๋Ÿฌํ•œ 3 WAY-HandShake๋ฅผ ์•ˆํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ Connectionless Protocol์ด๋ผ๊ณ  ํ•˜๋ฉฐ, UDP, IP, ์ด๋”๋„ท์ด ์žˆ๋‹ค.

UPD๋Š” ์งง์€ ํŠน์ง•์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ตณ์ด 3 WAY-HandShake๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
1๋งŒ ํŒจํ‚ท ๋ณด๋‚ด๋Š”๋ฐ, ๊ตณ์ด ์˜ˆ์•ฝํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

UDP์™€ TCP๋Š” ๋‘˜ ๋‹ค ์ „์†ก ๊ณ„์ธต(Transport Layer)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, "UDP๊ฐ€ ์งง๊ณ  TCP๊ฐ€ ๊ธธ๋‹ค"๋Š” ํ‘œํ˜„์€ ์ด๋“ค ๊ฐ„์˜ ์ฃผ์š” ์ฐจ์ด์ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์ด ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค:


์ •๋ฆฌ

์ด๋ฅผ ํ†ตํ•ฉํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด์ž.

ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋“ค๋Ÿฌ์•ผ ํ•˜๋Š” ์„œ๋ฒ„๋Š” ์ด 3๊ฐœ๊ฐ€ ์žˆ๋‹ค.

  1. DHCP(UDP, BroadCast) : DHCP DORA ๊ณผ์ •์„ ๊ฑฐ์นจ โžก๏ธ ์ถœ๋ฐœ์ง€ ์ฃผ์†Œ๋ฅผ ๋ฐ›์Œ
  2. ARP Request / Reply ( ์œ ๋‹ˆ์บ์ŠคํŠธ์ด๋ฏ€๋กœ)
  3. DNS(UDP, UniCast) : DNS Query / Answer ํŒจํ‚ท โžก๏ธ ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋ฅผ ๋ฐ›์Œ
  4. ARP Request / Reply
  5. TCP 3 WAY-HandShake
  6. HTTP(TCP, UniCast) : HTTP GET / 200 โžก๏ธ ํ†ต์‹ ์ด ์ง„ํ–‰๋จ
  7. TCP 3 WAY-HandShake

๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„๋ผ ์ˆ˜ ์žˆ๋‹ค.
ํ†ต์‹ ์„ ํ•˜๊ธฐ์ „ HTTP๋Š” 3 WAY-HandShake๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.
์–ด๋–ค ํŒจํ‚ท์ด๋“  ์œ ๋‹ˆ์บ์ŠคํŠธ๋ผ๋ฉด ๊ฒฐ๊ตญ ARP Requst / Reply๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค.


๊ฐ ์žฅ๋น„์˜ ์—ญํ• 

๋ผ์šฐํ„ฐ(3๊ณ„์ธต ์žฅ๋น„)์˜ ์—ญํ• 

3๊ณ„์ธต ์ดํ•˜์˜ ์ผ์„ ์ „๋ถ€ ์ˆ˜ํ–‰ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • 3 ๊ณ„์ธต์˜ ์ผ : ๋ผ์šฐํŒ…
  • 2 ๊ณ„์ธต์˜ ์ผ : ํ”„๋ ˆ์ž„ ๋ฆฌ๋ผ์ดํŠธ
  • 1 ๊ณ„์ธต์˜ ์ผ : ์ฆํญ

์Šค์œ„์น˜(2๊ณ„์ธต ์žฅ๋น„)์˜ ์—ญํ• 

  • 2๊ณ„์ธต์˜ ์ผ : ์Šค์œ„์นญ / ํ”Œ๋Ÿฌ๋”ฉ
  • 1๊ณ„์ธต์˜ ์ผ : ์ฆํญ

๋‘๊ฐœ๋งŒ ๋” ๋ณด๋„๋ก ํ•˜์ž. L4 ์Šค์œ„์น˜์™€, ๋‹จ๋ง(PC)์˜ ์˜ˆ์ œ์ด๋‹ค.

L4 ์Šค์œ„์น˜(4๊ณ„์ธต ์žฅ๋น„)์˜ ์—ญํ• 

  • 4 ๊ณ„์ธต์˜ ์ผ : ํฌํŠธ์Šค์œ„์นญ
  • 3, 2 ๊ณ„์ธต์˜ ์ผ : ํ”„๋ ˆ์ž„ ๋ฆฌ๋ผ์ดํŠธ
  • 1 ๊ณ„์ธต์˜ ์ผ : ์ฆํญ

๋‹จ๋ง(7๊ณ„์ธต ์žฅ๋น„)์˜ ์—ญํ• 

  • 7,6,5 ๊ณ„์ธต์˜ ์ผ : ๋ฉ”์„ธ์ง€
  • 4,3,2 ๊ณ„์ธต์˜ ์ผ : ํ”„๋ ˆ์ž„ ๋ฆฌ๋ผ์ดํŠธ
  • 1 ๊ณ„์ธต์˜ ์ผ : ์‹œ๊ทธ๋„๋ง

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ๋ถ„์—…ํ™” ํ•˜๋Š” ์ด์œ ๋Š” ๋ญ˜๊นŒ?

๋ถ„์—…ํ™” ๋œ ์—ญํ• ์ด ์กด์žฌํ•˜๋Š” ์ด์œ 

๋ถ„์—…ํ™” -> ์ „๋ฌธํ™”๋ฅผ ํ†ตํ•œ ์ „๋ฌธ๊ฐ€ ํƒ„์ƒ
TCP๋ฅผ ๋ถ„๋ฆฌํ•œ ์ด์œ  ๋˜ํ•œ ๊ฐ™๋‹ค.

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

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