CS/๋„คํŠธ์›Œํฌ

[๋„คํŠธ์›Œํฌ] UDP, ์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก, TCP

dltjdn 2024. 1. 28. 16:23

UDP

๐™Œ. UDP์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

UDP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ๋กœ 3-way handshake ๋“ฑ์˜ ์„ธ์…˜ ์ˆ˜๋ฆฝ ๊ณผ์ •์ด ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋น„์‹ ๋ขฐ์„ฑ ํ”„๋กœํ† ์ฝœ๋กœ ํ๋ฆ„์ œ์–ด, ์˜ค๋ฅ˜์ œ์–ด, ํ˜ผ์žก ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‹จ์ˆœ์„ฑ ๋•๋ถ„์— ์ ์€ ์–‘์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฐ–๊ณ  ์ˆ˜์‹ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•„์„œ ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค

 

์‹ค์‹œ๊ฐ„์„ฑ์ด ์ค‘์š”ํ•œ ํ†ต์‹ (๋™์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ ๋“ฑ)์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐™Œ. UDP์˜ ์žฅ๋‹จ์ ์„ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค์ด๋ฏ€๋กœ TCP์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋น ๋ฅด๋ฉฐ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค.

1:1, 1:N, N:N ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

๐™Œ. UDP ์ฒดํฌ์„ฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

UCP ์ฒดํฌ์„ฌ์€ UDP ํŒจํ‚ท์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

UDP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ์ด๊ธฐ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ทธ๋žจ์ด ์†์‹ค๋˜๊ฑฐ๋‚˜ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๊ทธ๋žจ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด UDP ์ฒดํฌ์„ฌ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์ฒดํฌ์„ฌ์€ ์†ก์‹ ํ•  ์„ธ๊ทธ๋จผํŠธ๋ฅผ 16๋น„ํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ณ ,์ด์ œ ์ด ์ฒดํฌ์„ฌ์„ ์„ธ๊ทธ๋จผํŠธ์™€ ๊ฐ™์ด ์ „์†ก ํ•ฉ๋‹ˆ๋‹ค.

ํ—ค๋”์˜ ์ฒดํฌ์„ฌ๊ณผ ์ผ์น˜ ํ•˜๋Š”์ง€ ๋น„๊ตํ•จ์œผ๋กœ์จ

์ˆ˜์‹ ๋œ ์„ธ๊ทธ๋จผํŠธ์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์‹ ์ž๋Š” ์ˆ˜์‹ ๋œ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒดํฌ์„ฌ์„ ๋งŒ๋“ค๊ณ 

๋ชจ๋‘ ๋”ํ•œ ๋‹ค์Œ 1์˜ ๋ณด์ˆ˜๋ฅผ ์ทจํ•ด์„œ ๋งŒ๋“ค์–ด ์ง‘๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์ฒดํฌ์„ฌ ๊ฐ’์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์ˆ˜์‹ ์ž๋Š” ํ•ด๋‹น ํŒจํ‚ท์„ ๋ฌด์‹œํ•˜๊ฑฐ๋‚˜ ์žฌ์š”์ฒญํ•˜๋Š” ๋“ฑ์˜ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

UDP ์ฒดํฌ์„ฌ์€ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ,

์‹ ๋ขฐ์„ฑ๊ณผ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.


์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์›๋ฆฌ

๐™Œ. ์ „์†กํ›„ ๋Œ€๊ธฐ ํ”„๋กœํ† ์ฝœ์ด ๋ญ˜๊นŒ์š”?

ํŒจํ‚ท์„ ์ „์†กํ•˜๊ณ  ๊ทธ ํŒจํ‚ท์— ๋Œ€ํ•œ ์ˆ˜์‹  ํ™•์ธ ์‘๋‹ต์„ ๋ฐ›๊ณ ๋‚˜์„œ, ๋‹ค์Œ ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ๋„คํŠธ์›Œํฌ ๋งํฌ ์ด์šฉ๋ฅ ์ด ๋‚ฎ์•„ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐™Œ. ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœํ† ์ฝœ์ด ๋ญ˜๊นŒ์š”?

์ „์†กํ•œ ํŒจํ‚ท์— ๋Œ€ํ•œ ์ˆ˜์‹  ํ™•์ธ ์‘๋‹ต์„ ๋ฐ›์ง€ ์•Š๊ณ ๋„, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒจํ‚ท์„ ์—ฐ์†์œผ๋กœ ์ „์†กํ•˜์—ฌ

๋งํฌ ์ด์šฉ๋ฅ ๊ณผ ์ „์†ก ์†๋„๋ฅผ ๋†’์ด๋Š” ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค.


TCP

๐™Œ. TCP์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

TCP๋Š” ์—ฐ๊ฒฐํ˜•, ์‹ ๋ขฐ์„ฑ ์ „์†ก ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ์ง€ํ–ฅ์  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— 3way handsaking์„ ํ•˜์—ฌ

๋‘ ํ˜ธ์ŠคํŠธ์˜ ์ „์†ก ๊ณ„์ธต ์‚ฌ์ด์— ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ์„ ์„ค๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์˜ค๋ฅ˜์ œ์–ด, ํ๋ฆ„์ œ์–ด, ํ˜ผ์žก์ œ์–ด ๋“ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ header๊ฐ€ ๋” ํฌ๊ณ  ์†๋„๊ฐ€ ๋น„๊ต์  ๋Š๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‹ ๋ขฐ์„ฑ์ด ์ค‘์š”ํ•œ ํ†ต์‹ (HTTP, File ์ „์†ก ๋“ฑ)์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐™Œ. 3 way handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

3-way handshake๋Š” TCP/IP ํ”„๋กœํ† ์ฝœ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ์ „,

์ •ํ™•ํ•œ ์ •๋ณด ์ „์†ก์„ ์œ„ํ•ด ์ƒ๋Œ€๋ฐฉ ์ปดํ“จํ„ฐ์™€ ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š”(์—ฐ๊ฒฐ์„ ํ•˜๋Š”) ๊ณผ์ •์ž…๋‹ˆ๋‹ค. (Connection setup, TCP ์—ฐ๊ฒฐ ์ดˆ๊ธฐํ™”)

 

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์ ‘์†์„ ์š”์ฒญํ•˜๋Š” SYN ํŒจํ‚ท์„ ๋ณด๋‚ด๋ฉด,

์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋Š” ACK๋ฅผ ํฌํ•จํ•˜์—ฌ SYN+ACK ํŒจํ‚ท์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๊ฒƒ์„ ์ˆ˜์‹ ํ•œ ํ›„, ๋‹ค์‹œ ACK๋ฅผ ์„œ๋ฒ„์—๊ฒŒ ๋ฐœ์†กํ•˜๋ฉด ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๊ณ ,

์ด๋กœ์จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

TCP ํ†ต์‹ ์€ ์•„๋ž˜์™€ ๊ฐ™์€ 3๋‹จ๊ณ„์˜ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

1. Connection setup (tcp ์—ฐ๊ฒฐ ์ดˆ๊ธฐํ™”) - 3way handshaking
2. Data transfer (๋ฐ์ดํ„ฐ ์ „์†ก)
3. Connection termination (tcp ์—ฐ๊ฒฐ ์ข…๋ฃŒ) - 4way handshaking

๐™Œ. 4 way handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

3-way handshake๋ฅผ ํ†ตํ•ด Connection setup์„ ํ–ˆ๋‹ค๋ฉด

tcp ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๋Š” Connection termination ๊ณผ์ •์€ 4-way handshaking์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

TCP connection termination์€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ 2๊ฐœ์˜ ์—ฐ๊ฒฐ์ด ๋…๋ฆฝ์ ์œผ๋กœ ๋‹ซํžˆ๊ธฐ ๋•Œ๋ฌธ์— 4-way ๋‹จ๊ณ„๋ฅผ ๋ฐŸ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

FIN -> ACK -> FIN -> ACK

๐™Œ.  Fast Retransmit ( TCP ๋น ๋ฅธ ์žฌ์ „์†ก )์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

ํ˜ผ์žก์ œ์–ด ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ 

ํŒจํ‚ท์„ ๋ฐ›๋Š” ์ชฝ์—์„œ ๋จผ์ € ๋„์ฐฉํ•ด์•ผํ•  ํŒจํ‚ท์ด ๋„์ฐฉํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ํŒจํ‚ท์ด ๋„์ฐฉํ•œ ๊ฒฝ์šฐ์—๋„ ACK ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋‹จ ์ˆœ์„œ๋Œ€๋กœ ์ž˜ ๋„์ฐฉํ•œ ๋งˆ์ง€๋ง‰ ํŒจํ‚ท์˜ ๋‹คํ‹ˆ ํŒจํ‚ท ์ˆœ๋ฒˆ์„ ACK ํŒจํ‚ท์— ์‹ค์–ด ๋ณด๋‚ด๊ฒŒ ๋˜๋ฏ€๋กœ,

์ค‘๊ฐ„์— ํ•˜๋‚˜๊ฐ€ ์†์‹ค๋˜๊ฒŒ ๋˜๋ฉด ์†ก์‹  ์ธก์—์„œ๋Š” ์ˆœ๋ฒˆ์ด ์ค‘๋ณต๋œ ACK ํŒจํ‚ท์„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ค‘๋ณต๋œ ์ˆœ๋ฒˆ์˜ ํŒจํ‚ท์„ 3๊ฐœ ๋ฐ›์œผ๋ฉด ์žฌ์ „์†ก์„ ํ•˜๊ฒŒ ๋˜๋ฉฐ,

์•ฝ๊ฐ„์˜ ํ˜ผ์žกํ•œ ์ƒํ™ฉ์ด ์ผ์–ด๋‚œ ๊ฒƒ์ด๋ฏ€๋กœ ํ˜ผ์žกํ•œ ์ƒํ™ฉ์„ ๊ฐ์ง€ํ•˜๊ณ  Window size๋ฅผ ์ค„์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

๐™Œ. Congestion control ( ํ˜ผ์žก ์ œ์–ด )์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

ํ˜ผ์žก์ œ์–ด๋Š” TCP์˜ ์ „์†ก ์ œ์–ด ๊ธฐ์—… ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์†ก์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์œผ๋กœ,

์†ก์‹ ์ธก์—์„œ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๐™Œ. Flow control ( ํ๋ฆ„ ์ œ์–ด ) ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

ํ๋ฆ„์ œ์–ด๋Š” TCP์˜ ์ „์†ก ์ œ์–ด ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์†๋„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์†๋„์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

 

์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐™Œ. Error control ( ์˜ค๋ฅ˜ ์ œ์–ด) ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

์˜ค๋ฅ˜์ œ์–ด๋Š” ํ†ต์‹  ๋„์ค‘์— ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋Œ€์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.

 

Go Back N ๊ธฐ๋ฒ•๊ณผ Selective Repeat ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉฐ,

์ด๋Š” TCP header์˜ checksum, ํ™•์ธ์‘๋‹ต, ํƒ€์ž„-์•„์›ƒ ๋“ฑ์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

ref

https://inpa.tistory.com/entry/NW-%F0%9F%8C%90-%EC%95%84%EC%A7%81%EB%8F%84-%EB%AA%A8%ED%98%B8%ED%95%9C-TCP-UDP-%EA%B0%9C%EB%85%90-%E2%9D%93-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EC%9E%90#%F0%9F%93%B5_%EC%98%A4%EB%A5%98_%EC%A0%9C%EC%96%B4error_control