๐Ÿ’ญ ๋ผ-์ดํ”„/๐Ÿ“” ํ‹ฐ-์•„์ด-์—˜

์˜ค๋Š˜์˜ ๋ฐฐ์›€ #107 ๐ŸŒ…

๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด 2022. 1. 1. 03:36

2021.12.31 2021๋…„์˜ ๋งˆ์ง€๋ง‰ ์˜ค๋Š˜์˜ ๋ฐฐ์›€

์˜ค๋Š˜ ํ•œ ์ผ.

  • ์œ ์ง„๋‹˜, ์ •์›๋‹˜์ด๋ž‘ ํ”„๋กœ์ ํŠธ ์ •๋ฆฌํ•˜๊ธฐ.
  • ๋„คํŠธ์›Œํฌ ๊ณต๋ถ€
  • ๊ณผ์ œ์ „ํ˜• ์ง„ํ–‰

์˜ค๋Š˜ ์ƒˆ๋กœ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ.

  • Sequence Number๋Š” TCP ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด๊ฑธ๋กœ ์ˆ˜์‹ ์ž๋Š” ํŒจํ‚ท์„ ์ˆœ์„œ๋Œ€๋กœ ๋ชจ์•„์„œ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค.
  • Acknowledgement Number๋Š” ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ฐ›์•„์•ผํ•˜๋Š” ๋‹ค์Œ ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ผ์šฐํ„ฐ์— ํ• ๋‹น๋œ ip์ฃผ์†Œ.
  • ๋ผ์šฐํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜๋ˆ„๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์Šค์œ„์น˜๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•จ.
  • ๊ณต์ธ ip๋ฅผ ๋ผ์šฐํ„ฐ์— ๋ถ€์—ฌํ•˜๊ณ  ๋ผ์šฐํ„ฐ์— ์—ฐ๊ฒฐ๋œ ํ˜ธ์ŠคํŠธ๋“ค์—๊ฒŒ ์‚ฌ์„คip๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด ip์ฃผ์†Œ๋ฅผ ์•„๋‚„ ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ์‚ฌ์„ค๋ง์— ์žˆ๋Š” ์‚ฌ์„ค ip๋ผ๋ฆฌ๋Š” ip์ฃผ์†Œ๊ฐ€ ๊ฒน์ณ๋„ ์ƒ๊ด€์—†๊ธฐ ๋•Œ๋ฌธ์—. 
  • ์‚ฌ์„ค ip๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ip์ฃผ์†Œ๋ฅผ ํด๋ž˜์Šค๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ „์ฒด ip์ฃผ์†Œ์˜ ๋น„ํŠธ๊ธธ์ด M์— ๋Œ€ํ•ด์„œ ์ƒ์œ„ N ๋น„ํŠธ๋ฅผ ๋„คํŠธ์›Œํฌ ์•„์ด๋””๋กœ ์žก๊ณ , ํ•˜์œ„ M - N ๋น„ํŠธ๋ฅผ ํ˜ธ์ŠคํŠธ ์•„์ด๋””๋กœ ์žก์„ ์ˆ˜ ์žˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์•„์ด๋””์— ํ• ๋‹นํ•˜๋Š” ๋น„ํŠธ์ˆ˜๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ํ•ด๋‹น ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ๋ง์ด ๋งŽ์•„์ง€๊ณ , ๋Œ€์‹  ํ˜ธ์ŠคํŠธ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
  • class A๋Š” ๋„คํŠธ์›Œํฌ ์•„์ด๋””๋ฅผ 8๋น„ํŠธ, class B๋Š” 16๋น„ํŠธ, class C๋Š” 24๋น„ํŠธ๋กœ ์žก๋Š”๋‹ค. class D๋Š” ๋ฉ€ํ‹ฐ์บ์ŠคํŒ… ์šฉ์ด๊ณ , classE๋Š” ์—ฐ๊ตฌ์šฉ์ด๋‹ค. ๊ฒฐ๊ตญ A๊ฐ€ ๋„คํŠธ์›Œํฌ ์ˆ˜๋Š” ์ž‘์€ ๋Œ€์‹  ํ˜ธ์ŠคํŠธ๋ฅผ ๋งŽ์ด ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ณ  ์•ŒํŒŒ๋ฒณ์ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜ธ์ŠคํŠธ์˜ ์ˆซ์ž๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
  • 3-way handshake : SYN(C) -> SYN-ACK(S) -> ACK(C) / state : SYN-SENT(C) -> SYN-RECIEVED(S) -> ESTABLISHED(C) -> ESTABLISHED(S)
  • 4-way handshake : FIN(C) -> ACK(S) -> FIN(S) -> ACK(C) / state : FIN-WAIT1(C) -> CLOSE-WAIT(S) -> FIN-WAIT2(C) -> LAST-ACK(S) -> TIME-WAIT(C) -> CLOSED(S) -> CLOSED(C)
  • TIME-WAIT์—์„œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์€ double maximum segment lifetime(MSL). ๋ณดํ†ต 1~4๋ถ„. ์ฃผ๋กœ MSL์ด 2๋ถ„์ž„.
  • CSMA/CD๋Š” ์œ ์„ ๋žœ์—์„œ. ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜๋ฉด ๋žœ๋คํ•˜๊ฒŒ ๋Œ€๊ธฐํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค. ์ด๋”๋„ท์ด ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•จ
  • CSMA/CA๋Š” ๋ฌด์„ ๋„คํŠธ์›Œํฌ. ์ฑ„๋„์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋‹ค๊ฐ€ ์ฑ„๋„์ด ๋น„๋ฉด ๋žœ๋คํ•œ ์‹œ๊ฐ„๋™์•ˆ ์ผ๋‹จ ๊ธฐ๋‹ค๋ฆผ. ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ฑ„๋„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋Š”๊ฒŒ ๋ฐœ๊ฒฌ๋˜๋ฉด ์ด์ง„ ์ง€์ˆ˜๋กœ ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ๊ณ„์† ๋Š˜๋ฆฐ๋‹ค.
  • MAC์ฃผ์†Œ๋Š” 48๋น„ํŠธ ์ง„์งœ ์ฐ์œผ๋กœ ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ. ์–˜๋ฅผ ์•Œ์•„์•ผ ์‹ค์ œ๋กœ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋„คํŠธ์›Œํฌ ๋ ˆ์ด์–ด์—์„œ ARP๋กœ ip์ฃผ์†Œ๋ฅผ MAC์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•จ
  • ๋ณ€ํ™˜๊ณผ์ •์€ ์ž์‹ ์˜ MAC์ฃผ์†Œ, ip์ฃผ์†Œ ๋ชฉ์ ์ง€ ip์ฃผ์†Œ๋ฅผ ๋‹ด์•„์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ. ๋„คํŠธ์›Œํฌ ๋‚ด์— ์žˆ๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ์ž๊ธฐ ip์ฃผ์†Œ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ํŒจํ‚ท์„ ๋ฐ›์œผ๋ฉด ์ถœ๋ฐœ์ง€์— ๋‹ด๊ฒจ์žˆ๋˜ MAC, ip์ฃผ์†Œ๋ฅผ ๋ชฉ์ ์ง€๋กœ ๋ฐ”๊พธ๊ณ  ์ถœ๋ฐœ์ง€์— ์ž๊ธฐ ip๋ž‘ ์ž๊ธฐ MAC์ฃผ์†Œ๋ฅผ ๋‹ด์•„์„œ ์œ ๋‹ˆ์บ์ŠคํŠธ. ์ด ํŒจํ‚ท์„ ๋ฐ›์€ ARP๋ฅผ ์ฒ˜์Œ ์ˆ˜ํ–‰ํ•œ ํ˜ธ์ŠคํŠธ๋Š” ์ด์ œ ์ƒ๋Œ€๋ฐฉ์˜ MAC์ฃผ์†Œ๋ฅผ ์•Œ๊ฒŒ๋จ.
  • ์ •๋ฆฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋งํฌ์—์„œ๋Š” MAC์ฃผ์†Œ๋กœ, ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ip์ฃผ์†Œ, ์ „์†ก์—์„œ๋Š” ํฌํŠธ๊นŒ์ง€.

์˜ค๋Š˜ ๋Š๋‚€ ๊ฒƒ.

  • ๋„ค๋˜‘ ์ง„์งœ ๋‹ค ๊นŒ๋จน์–ด์„œ ํฐ์ผ๋‚ฌ๋‹ค..๊ทธ๋ž˜๋„ ๋‹ค์‹œ ๋ณด๋‹ˆ๊นŒ ์ข€ ์ •๋ฆฌ๋Š” ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
  • ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๊ณ ๋ฏผ์„ ์ •๋ง ๋งŽ์ด ํ•œ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
  • ๊ณผ์ œ๋Š” ์•„์Šฌ์•„์Šฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ .. ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค ์•„์ง.
  • ์ƒˆํ•ด๊ฐ€ ๋ฐ์•˜๋‹ค. ํ•ด๋‚ด์ž ๋ฌด์กฐ๊ฑด!

๋‚ด์ผ์˜ ๊ณ„ํš.

  • ํ˜ผ์žก์ œ์–ด, ํ๋ฆ„์ œ์–ด ์ •๋ฆฌ
  • HTTP ์ •๋ฆฌ
  • RxSwift ์ •๋ฆฌ
  • iOS ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ
  • ๊ณผ์ œ์ „ํ˜• ์ง„ํ–‰

์˜ค๋Š˜์˜ ๊ฐ์‚ฌ.

  • ์ƒˆํ•ด๋ฅผ ์ž˜ ๋งž์ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ด์š”.