[๋„คํŠธ์›Œํฌ] UDP์™€ TCP

UDP(User Datagram Protocol) ๊ฐœ์š”

UDP๋ž€? 

  1. ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค : ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ํ• ๋‹น๋˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ฒฝ๋กœ๊ฐ€ ์—†์–ด ๊ฐ๊ฐ์˜ ํŒจํ‚ท์ด ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ „์†ก๋จ
  2. ๋…๋ฆฝ์ ์ธ ํŒจํ‚ท : ๊ฐ๊ฐ์˜ ํŒจํ‚ท์€ ๋…๋ฆฝ์ ์ธ ๊ด€๊ณ„๋ฅผ ์ง€๋‹ˆ๊ฒŒ ๋จ
  3. ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์Œ : ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š”๋‹ค๋Š” ์‹ ํ˜ธ์ ˆ์ฐจ๊ฐ€ ์—†์–ด ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ
  4. ์ฒดํฌ์„ฌ : UDPํ—ค๋”์˜ CheckSum ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜๋งŒ ๊ฒ€์ถœํ•จ
  5. ์†๋„๊ฐ€ ๋น ๋ฆ„ : TCP์™€ ๋‹ค๋ฅด๊ฒŒ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•œ ์ ˆ์ฐจ๊ฐ€ ์—†๋‹ค๋ณด๋‹ˆ ์†๋„๊ฐ€ ๋น ๋ฆ„
  6. ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค : ์‹ ๋ขฐ์„ฑ๋ณด๋‹ค๋Š” ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค์— ์ฃผ๋กœ ์‚ฌ์šฉ๋จ

 

UDP Flow

์ „์†ก ํ˜ธ์ŠคํŠธ์˜ ํ๋ฆ„

  1. ์ „์†ก ํ˜ธ์ŠคํŠธ์—์„œ ์ „์†กํ•˜๊ธฐ ์ „์— ํŒจํ‚ท์— ๋ชฉ์ ์ง€ ์ฃผ์†Œ์™€ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ์†Œ์ผ“์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จ์‹œํ‚ด 
  2. ์ „์†ก ํ˜ธ์ŠคํŠธ์—์„œ ์†ก์‹  ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์ผ“์œผ๋กœ๋ถ€ํ„ฐ ํŒจํ‚ท์„ ์ „์†กํ•จ 

์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ํ๋ฆ„

  1. ์ „์†ก ํ˜ธ์ŠคํŠธ์—์„œ ํŒจํ‚ท์ด ์˜ค๊ธฐ์ „๋ถ€ํ„ฐ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•จ 
  2. ์„œ๋ฒ„ ์†Œ์ผ“์œผ๋กœ ์˜จ UDP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ฝ์–ด ์•Œ๋งž์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ 

UDP ์ฒดํฌ์„ฌ์ด๋ž€?

  1. ์˜ค๋ฅ˜ ๊ฒ€์ถœ์„ ์ œ๊ณต
  2. ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์ถœ๋ฐœ์ง€๋กœ๋ถ€ํ„ฐ ๋ชฉ์ ์ง€๋กœ ์ด๋™ ํ–ˆ์„ ๋•Œ, UDP ์„ธ๊ทธ๋จผํŠธ ์•ˆ์˜ ๋น„ํŠธ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•จ
  3. ๋ชจ๋“  ๋งํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์—์„œ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•จ

 

๋งŒ์•ฝ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 16๋น„ํŠธ ์›Œ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž.   

0110011001100000
0101010101010101
1000111100001100 

์—ฌ๊ธฐ์„œ ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ 16๋น„ํŠธ ์›Œ๋“œ๋ฅผ ๋”ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1011101110110101 

์œ„์˜ ๊ณ„์‚ฐ์˜ ํ•ฉ์— ๋งˆ์ง€๋ง‰ 16๋น„ํŠธ ์›Œ๋“œ๋ฅผ ๋”ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (์œคํšŒ์‹ ์ž๋ฆฌ์˜ฌ๋ฆผ์„ ๋”ฐ๋ฅธ๋‹ค.) 

0100101011000010 

๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ๋ฅผ 1์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

1011010100111101 

 

์œ„์˜ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ ์ฒดํฌ์„ฌ์ด ๋œ๋‹ค.  ์ˆ˜์‹ ์ž์—์„œ๋Š” ์ฒดํฌ์„ฌ์„ ํฌํ•จํ•œ 4๊ฐœ์˜ ๋ชจ๋“  16๋น„ํŠธ ์›Œ๋“œ๋“ค์„ ๋”ํ•˜๋Š”๋ฐ ์ด ๋•Œ 1111111111111111์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด ํŒจํ‚ท์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ๋‹ค.

 

TCP(Transmission Control Protocol) ๊ฐœ์š” 

TCP๋ž€?

  1. ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค : UDP์™€ ๋‹ค๋ฅด๊ฒŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— TCP ์—ฐ๊ฒฐ์ด ๋จผ์ € ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
  2. 3-way handshaking : ๋ชฉ์ ์ง€์™€ ์ˆ˜์‹ ์ง€๋ฅผ ํ™•์‹คํžˆ ํ•˜์—ฌ ์ •ํ™•ํ•œ ์ „์†ก์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ณผ์ •
  3. ํ๋ฆ„ ์ œ์–ด : ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•
  4. ํ˜ผ์žก ์ œ์–ด : ์†ก์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ๋„คํŠธ์›Œํฌ์˜ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•
  5. ๋†’์€ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ : UDP์™€ ๋‹ค๋ฅด๊ฒŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์†Œ์ผ“์œผ๋กœ ๋ณด๋‚ธ ์ž„์˜์˜ ๋ฐ”์ดํŠธ ์ˆœ์„œ๋Œ€๋กœ ์„œ๋ฒ„๊ฐ€ ์†Œ์ผ“์„ ํ†ตํ•ด ์ˆ˜์‹ ํ•˜๋„๋ก ๋ณด์žฅํ•จ  
  6. ์ „์ด์ค‘, ์ ๋Œ€์  ๋ฐฉ์‹ : 1:1๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ํ๋ฆ„ ๋ฐฉํ–ฅ์ด ์–‘ ๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์ „์†ก์ด ๊ฐ€๋Šฅํ•จ
  7. TCP/IP : ๋ฐ์ดํ„ฐ๋ฅผ ํŒจํ‚ท๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด IP๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•˜๋ฉด IP๊ณ„์ธต์ด ํŒจํ‚ท ๋ฐฐ๋‹ฌ์„ ๋‹ด๋‹น, TCP ๋Š” ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•จ
  8. ์‹ ๋ขฐ์„ฑ์„ ์ค‘์‹œ : 3-way handshaking ๊ณผ์ •์ด๋‚˜ ํ๋ฆ„์ œ์–ด ๋ฐ ํ˜ผ์žก์ œ์–ด ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋Š๋ฆด ์ˆ˜ ๋ฐ–์— ์—†์Œ 

 

TCP Flow

์ „์†ก ํ˜ธ์ŠคํŠธ์˜ ํ๋ฆ„

  1. ํด๋ผ์ด์–ธํŠธ๋Š” TCP ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๋ฉฐ, TCP ์†Œ์ผ“์„ ์ƒ์„ฑํ•  ๋•Œ ์—ฐ๊ฒฐ๋  ์„œ๋ฒ„ ์†Œ์ผ“์˜ ํฌํŠธ ๋ฒˆํ˜ธ์™€ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ๋ช…์‹œํ•ด์•ผํ•จ
  2. ํด๋ผ์ด์–ธํŠธ๋Š” TCP ์†Œ์ผ“์„ ์ƒ์„ฑํ•œ ํ›„, 3-way handshake๋ฅผ ํ•˜๊ณ  ์„œ๋ฒ„์™€ TCP ์—ฐ๊ฒฐ์„ ์„ค์ • 

์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ํ๋ฆ„ 

  1. ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์—ฐ๊ฒฐ ์š”์ฒญ์ด ์˜ค๊ธฐ์ „์—, ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ดˆ๊ธฐ ์ ‘์†์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํŠน๋ณ„ํ•œ ์†Œ์ผ“์„ ์ƒ์„ฑ ํ•ด์•ผํ•จ(Welcome Socket) 
  2. 3-way handshake ๋™์•ˆ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ง€์ •๋˜๋Š” ์—ฐ๊ฒฐ ์†Œ์ผ“์„ ์ƒ์„ฑํ•ด์•ผ ํ•จ(Connection Socket) 

TCP์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด?

https://ybdeveloper.tistory.com/66

 

[๋„คํŠธ์›Œํฌ] TCP ํ˜ผ์žก์ œ์–ด,ํ๋ฆ„์ œ์–ด

TCP์— ๋Œ€ํ•˜์—ฌ TCP๋ž€? ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๋ฐฉ์‹ ์ค‘ ์‹ ๋ขฐ์ ์ธ ์—ฐ๊ฒฐ๋ฐฉ์‹ TCP๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋„คํŠธ์›Œํฌ์—์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ TCP๋Š” ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•จ

ybdeveloper.tistory.com