yeon's blog

[HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹] ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ - TCP, UDP ๋ณธ๋ฌธ

HTTP

[HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹] ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ - TCP, UDP

yeonii 2023. 11. 30. 23:00

๐ŸŒฑ TCP, UDP

ํ”„๋กœํ† ์ฝœ 4๊ณ„์ธต

IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„์ ์„ TCP ํ”„๋กœํ† ์ฝœ์ด ํ•ด๊ฒฐํ•ด์คŒ

1) ํ”„๋กœ๊ทธ๋žจ์ด ‘Hello, World!’ ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.

2) SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด OS ๊ณ„์ธต์—์„œ TCP ์ •๋ณด๋ฅผ ๊ฐ์‹ผ๋‹ค.

3) ๊ทธ ๋ฐ‘์— IP ํŒจํ‚ท์ด ์ƒ์„ฑ๋˜์„œ IP์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋„ ์žˆ๊ณ , ๊ทธ ์•ˆ์— TCP์™€ ๊ด€๋ จ๋œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค.

4) ์ด ๋ฉ”์‹œ์ง€๊ฐ€ LAN ์นด๋“œ๋ฅผ ํ†ตํ•ด์„œ ์„œ๋ฒ„๋กœ ๋‚˜๊ฐˆ ๋•Œ Ethernet frame์„ ํฌํ•จํ•ด์„œ ๋‚˜๊ฐ€๊ฒŒ ๋œ๋‹ค.

     → Ethernet frame: LAN ์นด๋“œ์— ๋“ฑ๋ก๋œ ๋งฅ ์ฃผ์†Œ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ •๋ณด

 

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

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

→ IP ํ”„๋กœํ† ์ฝœ์—์„œ ํ•ด๊ฒฐ์ด ์•ˆ๋œ ์ˆœ์„œ ์ œ์–ด ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ!โœจ โœจ โœจ

 

TCP(Transmission Control Protocol: ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ)์˜ ํŠน์ง•

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

  • SYN(Synchronize): ์ ‘์† ์š”์ฒญ
  • ACK(Acknowledge): ์š”์ฒญ ์ˆ˜๋ฝ

1) ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„๋กœ `SYN`์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์„œ ์ ‘์†์„ ์š”์ฒญํ•œ๋‹ค.

2) ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ๋กœ `ACK`๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ†ตํ•ด ์ ‘์† ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•ด์ฃผ๊ณ  ๋‹ค์‹œ ์„œ๋ฒ„์ชฝ์—์„œ ์š”์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•ด `SYN`์„ ๋ณด๋‚ธ๋‹ค. ์ฆ‰, ์ด๋•Œ๋Š” `SYN+ACK` ์ด๋ ‡๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

3) ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„๋กœ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์‘๋‹ตํ•ด์ฃผ๊ธฐ ์œ„ํ•œ `ACK` ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

 

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

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก
  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ฐ›์•˜๋‹ค๊ณ  ์ „์†ก

→ ์œ„ ๊ณผ์ •์ด ์ด๋ฃจ์–ด์ ธ์•ผ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ–ˆ๋Š”๋ฐ ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์—†์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ์„ ๋œปํ•œ๋‹ค.

 

 

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

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ํŒจํ‚ท1, ํŒจํ‚ท2, ํŒจํ‚ท3, … ์ˆœ์„œ๋กœ ์ „์†ก
  • ๋งŒ์•ฝ ์„œ๋ฒ„์—์„œ ํŒจํ‚ท1, ํŒจํ‚ท3, ํŒจํ‚ท2 ์ˆœ์„œ๋กœ ๋ฐ›์•˜๋‹ค๋ฉด, ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š์œผ๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ํŒจํ‚ท2๋ถ€ํ„ฐ ๋ณด๋‚ด๋ผ๊ณ  ์š”์ฒญ

 

→ TCP๋Š” ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค!!โœจ โœจ โœจ


 

UDP(User Datagram Protocol: ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ)์˜ ํŠน์ง•

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

→ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฆ„!