๐Ÿ”– SOCK_STREAM VS SOCK_DGAM

 

 

๐Ÿ“–๋‹จ์–ด ์‚ฌ์ „

ํŒจํ‚ท: ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋‚˜๋ˆˆ ๋ธ”๋ก
์˜ค๋ฅ˜ ์ œ์–ด: ์ „์†กํ•  ๋•Œ ๋‚˜๋Š” ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜ ์ฐพ๊ธฐ & ํ•ด๊ฒฐ
ํ˜ธ๋ฆ„ ์ œ์–ด: ์ˆ˜์‹  ์ธก์ด ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์ „๋‹ฌ ๋˜๋„๋ก ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์†๋„ ์กฐ์ ˆ

 

SOCK_STREAM

 

- TCP์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ = ์—ฐ๊ฒฐ์ง€ํ–ฅํ˜• ์†Œ์ผ“
- Segment ์ „์†ก ๋ฐฉ์‹ = ๋ฐ์ดํ„ฐ ๋ถ„ํ•ด ํ›„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „๋‹ฌ / ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ์กฐ๋ฆฝ

 

100๋ช… ์‚ฌ์šฉ  โžก๏ธ 100๊ฐ€๋‹ฅ ์ „์„  ์„ค์น˜ X
                    โžก๏ธ 1,2๊ฐœ ์„ ๋งŒ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๊ฐ๋‚ด์„œ ์ „๋‹ฌ O

ํŠน์ง•

1) ์†ก์‹ ์ธก์—์„œ ์ „์†กํ•˜๋Š” ํŒจํ‚ท์€ ์ˆœ์„œ๋Œ€๋กœ ์ˆ˜์‹ ์ธก์— ์ „๋‹ฌ๋œ๋‹ค.

2) ๋งŒ์ผ์— ์ „๋‹ฌ๋œ ํŒจํ‚ท์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์žฌ์ „์†ก์„ ํ†ตํ•ด์„œ ๋‹ค์‹œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

3) ์˜ค๋ฅ˜์ œ์–ด ๋ฐ ํ๋ฆ„์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

4) ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.

5) 1: 1 ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

6) ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฒฝ๊ณ„๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.(ํ•œ๋ฒˆ์— ๋ช‡๊ฐœ์”ฉ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๋‚ผ์ง€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š๋‹ค.)

 

10๊ฐœ  - 10๊ฐœ  ์ „์†ก        โžก๏ธ  ๊ฑฐ์ ˆ โžก๏ธ ๋‚˜๋จธ์ง€ ์žฌ์ „์†ก โ‹ฏ โžก๏ธ Get

          - 5๊ฐœ์”ฉ 2๋ฒˆ ์ „์†ก โžก๏ธ  ๊ฑฐ์ ˆ โžก๏ธ ๋‚˜๋จธ์ง€ ์žฌ์ „์†ก โ‹ฏ โžก๏ธ Get

          - 2๊ฐœ์”ฉ 5๋ฒˆ ์ „์†ก โžก๏ธ  Get

          

=> ์†๋„๋Š” ๋Š๋ ค๋„ ๊ดœ์ฐฎ์ง€๋งŒ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ
ex) ๋ฌธ์„œ, ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผ(1๋น„ํŠธ ๊นจ์ง€๋ฉด ์•ˆ ์ฝํžˆ๊ณ  ์„ค์น˜ X)

 


SOCK_DGAM

 

- UDP์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ = ๋น„ ์—ฐ๊ฒฐ์ง€ํ–ฅํ˜• ์†Œ์ผ“
Datagram  ์ „์†ก ๋ฐฉ์‹ = ์ˆ˜์‹  ์ธก์ด ๋ฐ›์„์ˆ˜ ์žˆ๋Š” ์‚ฌ์ด์ฆˆ ๋งŒํผ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

 

ํƒ๋ฐฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์˜คํ† ๋ฐ”์ด๋กœ ๋ณด๋ƒ„ โžก๏ธ ์ˆœ์„œ๋Œ€๋กœ ํƒ๋ฐฐ ์ „๋‹ฌ X
                                                 โžก๏ธ ๊ธฐ์‚ฌ๋‹˜๋“ค์ด ์›ํ•˜๋Š” ๊ธธ๋กœ ๊ฐ์ž ์ด๋™ํ•ด ์ „๋‹ฌ
                                                 โžก๏ธ ํƒ๋ฐฐ ํŒŒ์† ๊ฐ€๋Šฅ์„ฑ OK

ํŠน์ง•

1) ์†ก์‹ ์ธก์—์„œ ์ „์†กํ•˜๋Š” ํŒจํ‚ท์€ ์ˆœ์„œ๋Œ€๋กœ ์ˆ˜์‹์ธก์— ์ „๋‹ฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

2) ๋ฐ์ดํ„ฐ ๋ถ„ํ•ด๋ฅผ ์•ˆ ํ•˜๊ณ  ์ „์ฒด๋ฅผ ๋ณด๋‚ธ๋‹ค.

โžก๏ธ ๋ฉ”์„ธ์ง€ ๋งŒ๋“ค ๋•Œ ์ˆ˜์‹  ์ธก ์‚ฌ์ด์ฆˆ๋งŒํผ ๋งŒ๋“ค์–ด์„œ ์ „๋‹ฌ(์ˆ˜์‹  ์ธก ์กฐ๋ฆฝ๋Šฅ๋ ฅ X)

3) ์˜ค๋ฅ˜์ œ์–ด ๋ฐ ํ๋ฆ„์ œ์–ด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

4) ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

5) 1:1 ํ†ต์‹  ๋ฐ 1:N ํ†ต์‹ ์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

6) ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฒฝ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.(๋ช‡๊ฐœ์”ฉ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๋‚ผ์ง€ ์ •ํ•ด์ ธ ์žˆ๋‹ค.)

 

10๊ฐœ  - 2๊ฐœ์”ฉ 5๋ฒˆ ์ „๋‹ฌ โžก๏ธ 2๊ฐœ์”ฉ 5๋ฒˆ Get

 

write๊ฐ€ 5๋ฒˆ ํ˜ธ์ถœ = read๋„ 5๋ฒˆ ํ˜ธ์ถœ
โžก๏ธ write() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ํšŸ์ˆ˜๋งŒํผ read()ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

 

=> ์—๋Ÿฌ๊ฐ€ ๋‚˜๋„ ๊ดœ์ฐฎ์ง€๋งŒ ์†๋„๊ฐ€ ๋นจ๋ผ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ / ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
ex) ๋™์˜์ƒ, ์Œ์„ฑ, ์‚ฌ์ง„, ๊ทธ๋ฆผ

'Network > Socket' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๐Ÿ”–IP ์ฃผ์†Œ ๋ณ€ํ™˜ ํ•จ์ˆ˜  (0) 2023.05.09
๐Ÿ”–SOCKADDR VS SOCKADDR_IN  (0) 2023.05.09
[Linux Socket] Server - bind() ํ•จ์ˆ˜[2]  (0) 2023.05.04
[Linux Socket] Server - socket() ํ•จ์ˆ˜[1]  (0) 2023.05.03
์†Œ์ผ“(SOCKET)์ด๋ž€?  (0) 2023.05.03