[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 2์žฅ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (2)

2022. 1. 21. 20:34ยท๐Ÿ“ Book/โœ Game Server

2์žฅ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ

 

6. ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ์™€ ๋ฐ›๊ธฐ

UDP ๋„คํŠธ์›Œํ‚น

UDP๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ(ํ”„๋กœํ† ์ฝœ)์ด๋‹ค. ์ด๋•Œ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์€ 64ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ์ดํ•˜์˜ ์ด์ง„ ๋ฐ์ดํ„ฐ๋กœ ๋ฉ”์‹œ์ง€ ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ์ผ๋ถ€๊ฐ€ ๋ญ‰์น˜๊ฑฐ๋‚˜ ์ชผ๊ฐœ์ง€์ง€ ์•Š๋Š”๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ ค๋ฉด ์†Œ์ผ“์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์†Œ์ผ“์€ ๋‹จ๋ง๊ธฐ ์‚ฌ์ด์— ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์šด์˜์ฒด์ œ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž์›์ด๋‹ค.

์•„๋ž˜๋Š” ์†Œ์ผ“์„ ์ด์šฉํ•ด UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

C socket() ์†ก์‹  ์‚ฌ์šฉ ์˜ˆ

  • socket() ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ UDP๋ฅผ ์“ฐ๊ฒ ๋‹ค๊ณ  ์„ ์–ธํ•˜๋ฉด ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๊ณ  ์†Œ์ผ“ ํ•ธ๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ ค๋ฉด ๊ทธ์ „์— ํฌํŠธ๋ฅผ ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š”๋ฐ, bind() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ• ๋‹นํ•œ๋‹ค. any_port๋ฅผ ํฌํŠธ ๊ฐ’์œผ๋กœ ๋„ฃ์œผ๋ฉด ์šด์˜์ฒด์ œ๊ฐ€ ์•Œ์•„์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฌํŠธ๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค.
  • sendTo() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ƒ๋Œ€๋ฐฉ์˜ ๋์ (endpoint, IP์ฃผ์†Œ์™€ ํฌํŠธ)๊ณผ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ๋„ฃ์–ด ๋ณด๋‚ธ๋‹ค.
  • close() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์†Œ์ผ“ ํ•ธ๋“ค์ด ๋‹ซํžˆ๊ณ  ํ• ๋‹น๋ฐ›์•˜๋˜ ํฌํŠธ๋„ ๋‹ค์‹œ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

C socket() ์ˆ˜์‹  ์‚ฌ์šฉ ์˜ˆ

  • ์†Œ์ผ“ ํ•ธ๋“ค์„ ๋งŒ๋“ค๊ณ  ํฌํŠธ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€๋Š” ์†ก์‹ ๊ณผ ๊ฐ™๋‹ค. ๋‹ค๋งŒ ์†ก์‹  ์ธก์—์„œ ํฌํŠธ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ณด๋ƒˆ๊ธฐ์— bind() ํ•จ์ˆ˜ ๋‚ด ํฌํŠธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋ƒˆ๋‹ค.
  • recvfrom() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š”๋‹ค. ์ด๋•Œ ์•„์ง ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ํ•จ์ˆ˜๋Š” ๋ฆฌํ„ดํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ๋น„๋กœ์†Œ ํ•จ์ˆ˜๋Š” ๋ฆฌํ„ดํ•˜๊ณ  ๋ฐ›์€ ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ ์†ก์‹ ์ž ์ฃผ์†Œ๊ฐ€ ๋ณ€์ˆ˜ r์— ์ฑ„์›Œ์ง„๋‹ค.

 

UDP๋Š” ํ•˜๋‚˜์˜ UDP ์†Œ์ผ“์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ์ˆ˜์‹ ์šฉ ์†ก์‹ ์šฉ ์†Œ์ผ“์„ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋Œ€๋‹ค ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ƒ๋Œ€๋ฐฉ์˜ ๋์ ๋งŒ ์•Œ๋ฉด ๊ณ„์† ๋ณด๋‚ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

 

๋‹ค๋Œ€๋‹ค ํ†ต์‹ 

 

UDP์˜ ๋ฌธ์ œ์ ์€ ํŒจํ‚ท ์œ ์‹ค ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ๋ฐ์ดํ„ฐ๊ทธ๋žจ ์ผ๋ถ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๋‘ ๋ฒˆ ์ด์ƒ ๋ฐ›์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์‹ฌ์ง€์–ด ๋ณด๋‚ธ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ํŒจํ‚ท ์œ ์‹ค ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ด๋„ ๋ฌธ์ œ์—†์„ ๋•Œ๋งŒ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์บ๋ฆญํ„ฐ ์ด๋™์ด๋‚˜ ์Œ์„ฑ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ํŒจํ‚ท ์œ ์‹ค์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋’ค์— ์˜ค๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋ณด์—ฌ์ฃผ๋ฉด ์œ ์ €๋Š” ํฌ๊ฒŒ ๋ถˆํŽธํ•จ์„ ๋А๋ผ์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

 

TCP ๋„คํŠธ์›Œํ‚น

UDP์˜ ๋ฌธ์ œ์ ์ธ ํŒจํ‚ท ์œ ์‹ค ํ˜„์ƒ์€ TCP๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. TCP๋Š” ๋ณด๋‚ด๋Š” ์ชฝ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ›๋Š” ์ชฝ์—์„œ ์™„์ „ํžˆ ๋™์ผํ•จ์„ ๋ณด์žฅํ•ด ์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ญ‰์น˜๊ฑฐ๋‚˜ ์ชผ๊ฐค ์ˆ˜ ์žˆ๋‹ค.

 

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์ „์— ์—ฐ๊ฒฐ ๊ณผ์ •์„ ๋จผ์ € ํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ ์—ฐ๊ฒฐ ์ง€ํ–ฅํ˜•์ด๋ผ ํ•œ๋‹ค. ์ด๋•Œ ์—ฐ๊ฒฐ์€ ์ผ๋Œ€์ผ ํ†ต์‹ ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ผ๋Œ€์ผ ํ†ต์‹ 

 

UDP์™€ TCP ๋ชจ๋‘ ๊ณ„์ธต 4์— ์œ„์น˜ํ•˜๋ฉฐ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ(IP, ๊ณ„์ธต 3) ์œ„์—์„œ ์ž‘๋™ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ UDP๋Š” IP ํŒจํ‚ท ์œ ์‹ค์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ UDP ๋ฐ์ดํ„ฐ๊ทธ๋žจ๋„ ๋ฉ๋‹ฌ์•„ ๋“œ๋กญ๋œ๋‹ค. ํ•˜์ง€๋งŒ TCP๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์ •ํ™•ํžˆ ์ „์†ก๋œ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” TCP์˜ ํ๋ฆ„ ์ œ์–ด ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์ด๋‹ค.

 

TCP์—์„œ ๋ณด๋‚ผ ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ผ๋Š” IP ํŒจํ‚ท์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์˜ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  IP ํŒจํ‚ท ์•ˆ์— ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋„ฃ์–ด ์ˆ˜์‹ ์ž์—๊ฒŒ ์ „์†ก๋œ๋‹ค. ์ˆ˜์‹ ์ž๋Š” IP ํŒจํ‚ท์„ ๋ฐ›์•„ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊บผ๋‚ด๊ณ  ๋ฐ›์€ ์„ธ๊ทธ๋จผํŠธ ์‘๋‹ต(ack)์„ ์†ก์‹ ์ž์—๊ฒŒ ๋ฐ˜์†กํ•œ๋‹ค. ๋ณด๋‚ธ ์ชฝ์—์„œ๋Š” ์ผ์ • ์‹œ๊ฐ„ ์•ˆ์— ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ack๊ฐ€ ํšŒ์‹ ๋˜์ง€ ์•Š์œผ๋ฉด ์‘๋‹ต์ด ์˜ฌ ๋•Œ๊นŒ์ง€ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค.

 

ack ์‘๋‹ต

 

์•„๋ž˜๋Š” ์†Œ์ผ“์„ ์ด์šฉํ•ด TCP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. UDP์™€ ๋งŽ์€ ๋ถ€๋ถ„์ด ๋น„์Šทํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

 

C socket() ์†ก์‹  ์‚ฌ์šฉ ์˜ˆ

  • socket() ํ•จ์ˆ˜๋กœ ์†Œ์ผ“์„ ์ƒ์„ฑํ•  ๋•Œ TCP๋ฅผ ์“ฐ๊ฒ ๋‹ค๊ณ  ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „ ์ƒ๋Œ€๋ฐฉ๊ณผ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•˜๋‹ค. connect(addr) ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๋ฉฐ ์„ฑ๊ณตํ•  ๋•Œ๊นŒ์ง€ ๋ธ”๋กœํ‚น๋œ๋‹ค.
  • send() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ด๋ฏธ connect()์œผ๋กœ ๋์ ์„ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋์  ์ธ์ž๋Š” ํ•„์š” ์—†๋‹ค.

 

C socket() ์ˆ˜์‹  ์‚ฌ์šฉ ์˜ˆ

  • ๋จผ์ € ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์ด ์†Œ์ผ“์€ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋ฐ›์ง€ ์•Š๊ณ  listen socket ์—ญํ• ์„ ํ•œ๋‹ค. listen socket์€ TCP ์—ฐ๊ฒฐ์„ ๋ฐ›์•„๋“ค์ด๋Š” ์—ญํ• ๋งŒ ํ•˜์—ฌ ๊ณ ์ •๋œ ๋์ ์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ listen() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋์ ์„ ํ™•๋ณดํ•œ๋‹ค.
  • accept() ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฉด TCP ์—ฐ๊ฒฐ์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๋ธ”๋กœํ‚น๋œ๋‹ค. ์—ฐ๊ฒฐ์— ์„ฑ๊ณตํ•˜๋ฉด ์ƒˆ๋กœ์šด ์†Œ์ผ“ ์ƒ์„ฑ๊ณผ ํ•จ๊ป˜ ํ†ต์‹ ์„ ์œ„ํ•œ ์†Œ์ผ“ ํ•ธ๋“ค์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ์ด๋•Œ ์ƒˆ๋กœ์šด ์†Œ์ผ“์€ ๊ธฐ์กด ์†Œ์ผ“๊ณผ ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • recv() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š”๋‹ค.
  • close() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค. ์ด ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ํ˜ธ์ถœํ•œ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์žˆ๋Š” recv() ํ•จ์ˆ˜๋Š” 0์„ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋œ๋‹ค.

 

TCP๋Š” ์ŠคํŠธ๋ฆผ ํ˜•์‹์ด๋ผ ๋ณด๋‹ˆ recv() ํ˜ธ์ถœ ํ•œ ๋ฒˆ์œผ๋กœ ๋‹ค ๋ฐ›์ง€ ๋ชปํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์›ํ•˜๋Š” ๋งŒํผ ๊ณ„์†ํ•ด์„œ ๋ฐ›์•„์˜ค๊ฑฐ๋‚˜ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๋ผ๋„ ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  TCP๋„ UDP์™€ ๋™์ผํ•˜๊ฒŒ ์†Œ์ผ“ ํ•˜๋‚˜๋กœ ์†ก์ˆ˜์‹ ์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

7. ํŒจํ‚ท ์œ ์‹ค ์‹œ UDP์™€ TCP์—์„œ ํ˜„์ƒ

OSI ๋ชจ๋ธ์˜ ๊ณ„์ธต 1~3์—์„œ๋Š” ํŒจํ‚ท ์œ ์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ UDP์™€ TCP์—์„œ ์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

 

UDP์—์„œ๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ ์ž์ฒด๊ฐ€ ์œ ์‹ค๋œ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํฌ๊ธฐ๊ฐ€ ํด์ˆ˜๋ก ์œ ์‹ค๋  ํ™•๋ฅ ์ด ๋†’์•„์ง„๋‹ค. ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ IP ํŒจํ‚ท ํฌ๊ธฐ์— ๋งž๊ฒŒ ๋‚˜๋ˆ  ๋ณด๋‚ด๋Š”๋ฐ, ์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์œ ์‹ค๋˜๋ฉด ์ˆ˜์‹ ์ž๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ ๋ฐ›์ง€ ๋ชปํ•˜๊ฒŒ ๋œ๋‹ค.

 

TCP์—์„œ๋Š” ์œ ์‹ค๋œ ํŒจํ‚ท์— ๋Œ€ํ•œ ack๊ฐ€ ๋„์ฐฉํ•˜์ง€ ๋ชปํ•ด์„œ ์žฌ์†ก์‹ ์„ ์‹œ๋„ํ•œ๋‹ค. ์ˆ˜์‹  ์ธก์—์„œ๋Š” ๋„์ฐฉํ•˜์ง€ ์•Š๋Š” ํŒจํ‚ท์ด ์žˆ์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์กฐ๋ฆฝํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ฒฐ๊ตญ ์žฌ์ „์†ก ์‹œ๊ฐ„๋งŒํผ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ด์™€ ๊ฐ™์€ ์ฐจ์ด๋กœ UDP๋Š” ํŒจํ‚ท ์œ ์‹ค์ด ์žˆ์–ด๋„ ๊ดœ์ฐฎ์€ ๊ณณ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ ์™ธ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์—๋Š” ๋Œ€๋ถ€๋ถ„ TCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

8. ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์ง€ ํ˜•์‹

๊ฒŒ์ž„์˜ ๋ฉ”์‹œ์ง€๋Š” ํฌ๊ฒŒ ํ…์ŠคํŠธ๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ ์ •์˜ํ•œ๋‹ค.

  • ํ…์ŠคํŠธ ํ˜•์‹์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ์ชฝ์—์„œ ํŠน์ • ๊ธ€์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธ€์ž ๊ฒ€์ƒ‰์„ ํ•˜๊ฑฐ๋‚˜ ํŒŒ์‹ฑ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. ์š”์ฆ˜์—” HTPP๋‚˜ JSON ๊ฐ™์€ ํ‘œ์ค€ํ™”๋œ ํ˜•์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ด์ง„, ์ฆ‰ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์€ ๊ฐ ๋ฐ”์ดํŠธ ํ˜น์€ ๋น„ํŠธ ํ•„๋“œ๋Š” ํŠน์ •ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๊ฐ€ ํ•„์š” ์—†๋‹ค. 

 

๋ฉ”์‹œ์ง€ ์•ˆ์— ๋‚ด์šฉ์„ ๋‹ด๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ์ด ์–ด๋–ค ๊ฒƒ์„ ๋‹ด๊ณ  ์žˆ๋Š”์ง€์˜ ์ •๋ณด๋ฅผ ๊ฐ™์ด ํฌํ•จ์‹œํ‚ค๋Š” ํ˜•์‹๋„ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ํ”ํžˆ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ผ ํ•œ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋ฉด ๋ฐ์ดํ„ฐ ํ†ต์‹ ๋Ÿ‰์ด ๋งŽ์•„์ง€์ง€๋งŒ ์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ตฌ ํด๋ผ์ด์–ธํŠธ์™€ ์ตœ์‹  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•œ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ฃผ๋ฉด ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

9. ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๋ณ€ํ™˜

๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๋ณ€ํ™˜(Network Address Translation)์ด๋ž€ ๋‹ค๋ฅธ ๋‹จ๋ง๊ธฐ๋กœ ์ „์†ก๋˜๋˜ ํŒจํ‚ท์˜ ์†ก์‹ ์ž ์ฃผ์†Œ๋‚˜ ์ˆ˜์‹ ์ž ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. NAT ๋ณ€ํ™˜์„ ํ•˜๋Š” ๊ธฐ๊ธฐ๋ฅผ NAT ๋ผ์šฐํ„ฐ(๊ณต์œ ๊ธฐ)๋ผ ํ•œ๋‹ค.

 

55.66.77.88 ๊ณต์šฉ ์‚ฌ์šฉ ์˜ˆ

 

NAT ๋ผ์šฐํ„ฐ๊ฐ€ ํ•˜๋Š” ์ผ์€ IP ์ฃผ์†Œ 1๊ฐœ๋ฅผ ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ๊ฐ€ ๊ณต์šฉํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Book/โœ Game Server' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 3์žฅ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (2)
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 3์žฅ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (1)
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 2์žฅ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
  • [Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 1์žฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ (3)
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[Book] ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต๊ณผ์„œ - 2์žฅ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (2)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”