[ ๊ธฐ๋ก ]
๊ฐ์ธ์ ์ผ๋ก ํ์ตํ๋ฉด์ ๊ธฐ๋กํ ๊ฒ์ด๋ผ ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค.
โช๏ธ Hash table ๋ณต์ต
- ํด์ ํ ์ด๋ธ, ๋ฒํท, ์ฌ๋กฏ, ํด์ ํจ์, ํด์ฑ, ํด์ ์ถฉ๋, ํด์ ์ถฉ๋ ํด๊ฒฐ
โช๏ธ ๋นํธ์ ๋ฐ์ดํธ
- ๋นํธ๋ ์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฐ์ดํฐ์ ์ต์ ๋จ์
- ์ปดํจํฐ๋ 2์ง์(0๊ณผ 1)๋ก ๋์
- ๋ฐ์ดํธ(byte)๋ ๋นํธ(bit)๊ฐ 8๊ฐ ๋ชจ์ฌ์ ๊ตฌ์ฑ, ์ผ๋ฐ์ ์ผ๋ก ํ ๋ฌธ์๋ฅผ ํํํ ์ ์๋ ์ต์ ๋จ์
โช๏ธ ๋ฐ์ดํธ ์ ์ฅ ์์
์ปดํจํฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋ ๋ฐ์ดํธ(byte) ๋จ์๋ก ๋๋์ด ์ ์ฅํ๋ค. ์ปดํจํฐ๊ฐ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ ๋๊ฐ 32bit, 64bit๋ก ๊ตฌ์ฑ๋๋ค. ์ฐ์๋๋ ๋ฐ์ดํธ๋ฅผ ์์๋๋ก ์ ์ฅํด์ผ ํ๋๋ฐ, ์ด๊ฒ์ ๋ฐ์ดํธ ์ ์ฅ ์์๋ผ๊ณ ํ๋ค. ๋ฐ์ดํธ๊ฐ ์ ์ฅ๋๋ ์์์ ๋ฐ๋ผ ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋๋๋ค.
1. ๋น ์๋์(Big Endian)
2. ๋ฆฌํ ์๋์(Little Endian)
- Mac OS X on x86, x64๋ ๋ฆฌํ ์๋์
โช๏ธ ๋น ์๋์(big endian)
๋น ์๋์ ๋ฐฉ์์ ๋ฎ์ ์ฃผ์์ ๋ฐ์ดํฐ์ ๋์ ๋ฐ์ดํธ(MSB, Most Significant Bit)๋ถํฐ ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์์ ๊ทธ๋๋ก ์ฝ์ ์ ์๊ณ , ์ดํดํ๊ธฐ ์ฝ๋ค. (๋๋ถ๋ถ์ RISC CPU ๊ณ์ด์์ ํด๋น ๋ฐฉ์ ์ฌ์ฉ)
- ๋ฎ์ ์ฃผ์์ ๋์ ๋นํธ(MSB)๋ถํฐ ์ ์ฅ
- MSB๋ ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋นํธ๋ฅผ ์๋ฏธํ๋ค.
- ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋์๋ ๋น ์๋์ ๋ฐฉ์์ด ์ฌ์ฉ๋๋ค.
โช๏ธ ๋ฆฌํ ์๋์(little endian)
- ๋ฎ์ ์ฃผ์์ ๋ฐ์ดํฐ์ ๋ฎ์ ๋นํธ(LSB)๋ถํฐ ์ ์ฅ
- LSB(์ตํ์ ๋นํธ)๋ผ๊ณ ํจ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์๋ ๋นํธ๋ฅผ ์๋ฏธํ๋ค.
- LSB๋ ํญ์ 0๋ฒ ๋นํธ์ด๋ค.
- ์ธํ ๊ธฐ๋ฐ์ ์๋์ฐ๋ ๋ฆฌํ ์๋์ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
โช๏ธ x86, x64
- x86 : 32๋นํธ → ๋ฉ๋ชจ๋ฆฌ๋ฅผ 4GB๊น์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- x64 : 64๋นํธ → ์ด์์ฒด์ ๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋จ์๊ฐ 64๋นํธ(8๋ฐ์ดํธ)
- ๋ช ์นญ์ ์๋ฏธ๋ ์นฉ์ ์ ๊ตฌ๋ถ๊ธฐํธ๋ฅผ ๋ปํ๋ค.
- ์ค์ง์ ์ธ ์ฐจ์ด๋ ๋จ(RAM)์ ์ธ์ ์ฐจ์ด์ด๋ค.
โช๏ธ์ด์์ฒด์ ์ ํฌ์ธํฐ์ ๊ด๊ณ
- ํฌ์ธํฐ๋ ๋ณ์์ ์ฃผ์๋ฅผ ๋ด๋ ๋ณ์์ด๋ค.
- ํฌ์ธํฐ ๋ณ์์ ํฌ๊ธฐ๋ ์ด์์ฒด์ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ์ํฅ์ ๋ฐ๋๋ค.
- 32๋นํธ ์ด์์ฒด์ → 32๋นํธ(4๋ฐ์ดํธ) → 2^32์ ๋ฐ์ดํฐ ํํ ๋ฒ์๋ฅผ ๊ฐ๋๋ค. (4096MB → ์ฝ 4GB์ ํด๋น → 4GB์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.)
- 64๋นํธ ์ด์์ฒด์ → 64๋นํธ(8๋ฐ์ดํธ) → 32๋นํธ ์ด์์ฒด์ ๋ณด๋ค 2^32๋ฐฐ ๋ฐ์ดํฐ์ ํํ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ํ ์นธ์ 1๋ฐ์ดํธ(8๋นํธ)์ ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ค.
- 32๋นํธ ์ด์์ฒด์ ์์๋ 4๋ฐ์ดํธ ๊ธธ์ด์ ์ฃผ์๋ฅผ ๊ฐ๋๋ค.
- ์ง ํ์๋ 1ํ, ์ด ์ง์ ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ฅผ 32์๋ฆฌ๋ก ํํํ๋ค.
- ์ฆ 32๋นํธ ์ด์์ฒด์ ๋ 2^32(์ฝ 43์ต)๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๋ค.
- ์ด ๋ง์ ๋ค์ ๋ฐ๊ฟ์ 1๋ฐ์ดํธ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 43์ต ๊ฐ๊น์ง ์ธ์ํ ์ ์๋ค๋ ๋ง๊ณผ ๋์ผํ๋ค. (์ฝ 43์ต Byte = ์ฝ 4GB์ด๋ค.)
- ์ฃผ์์ ๋ฒ์๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ฌ๋ผ์ง๋ค. == ์ด์์ฒด์ ๋นํธ์ ๋ฐ๋ผ ํฌ์ธํฐ์ ํฌ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋ค
- 32bit์์๋ 0x00000000 ~ 0xFFFFFFFF
- 64bit์์๋ 0x0000000000000000 ~ 0xFFFFFFFFFFFFFFFF
โช๏ธ TCP/IP ์ก์์ ์๋ฆฌ
- ์์ผ ์ญ์ ํ์ผ์ด๋ค.
- Process(์ฌ์ฉ์ ํ๋ก๊ทธ๋จ)๊ณผ TCP/IP ํ๋กํ ์ฝ์ด ํต์ ํ๋ ์ฐฝ๊ตฌ๋ฅผ ์์ผ ์ธํฐํ์ด์ค๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์์ผ๊ณผ TCP๋ ๊ฐ๊ฐ buffer๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ์ก์ ์ธก์์ ํฐ ํฌ๊ธฐ์ ํ์ผ์ ์ ์ก(send)ํ ๋์๋ ์์ ํฌ๊ธฐ(ex. 64KB)๋ก ๋๋์ด ์ ์กํ๋ค.
- TCP๋ก ์ ๋ฌ๋ ๋์๋ buffer์ ๋๊ฐ์ด copy๋ฅผ ํ๊ฒ ๋๋ค.
- ์์ฐจ์ ์ผ๋ก Segment → Packet → Frame์ผ๋ก Wrapping ๋๋ค.
- ๊ทธ๋ฌ๊ณ ๋์ ์ ์ก์ด ์ด๋ฃจ์ด์ง๋๋ฐ ์์ ์ธก์์๋ ์ญ์์ผ๋ก ํ๋ฆ์ด ์งํ๋๋ค.
- ์์ ์ธก์ tcp๋ฒํผ์ segment๊ฐ ์์ด๊ณ ๋ ๋ค์๋ ์ก์ ์ธก์๊ฒ ACK๋ฅผ ์ ๋ฌํ๊ฒ ๋๋ค.
- ACK์๋ ๋ค์ ๋ฐ์ดํฐ์ ์์ฒญ๊ณผ ํจ๊ป window size๋ฅผ ํจ๊ป ๋ด๋๋ค.
- window size๋ ์์ ์ธก์ tcp buffer size๋ฅผ ์๋ฏธํ๋ค.
- ๋จ์ tcp buffer size๋ณด๋ค ๋ค์ segment size(or Maximum Segment Size) ๋ณด๋ค ์ปค์ผ ๋ฐ์ดํฐ ์ ์ก์ด ์ํํ ๊ฒ์ด๋ค.
- ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ ์ด์ ๋ณด๋ผ ์ ์๋ ๊ณต๊ฐ์ด ์์ผ๋ Wait๊ฐ ์ผ์ด๋๊ณ ์ฒ๋ฆฌ์ง์ฐ์ด ๋ฐ์ํ๋ค.
- ์์ ์ธก์ Read(Receive) ์๋๊ฐ ๋คํธ์ํฌ ์๋๋ณด๋ค ๋นจ๋ผ์ผ ์ฒ๋ฆฌ์ง์ฐ ๋ฌธ์ ๋ฅผ ํด์ํ ์ ์๋ค.
[ ์๊ฐ ]
- ๊ธฐ๋ก์ ์ ํ๋ค ๋ณด๋๊น ์ด๊ณณ์ ๊ณณ์ ์ง์, ์๊ฐ์ด ํฉ์ด์ ธ๋ฒ๋ฆฌ๋ ๋๋์ด ๋ ๋ค. ์๊ณ ์๋ ๋ด์ฉ๋ ๋ง์ ๋งํ๋ ค๊ณ ํ๊ณ , ์ ์ผ๋ ค๊ณ ํ๋ฉด ์ฝ๊ฒ ๋์ง ์๋๋ผ. ๊ทธ๋์ ๋ค์ ์ฐพ์ ๋ฐฉ๋ฒ์ด ๊ธฐ๋ก์ด๋ค. ๊ฐ๋ณ๊ฒ ํ๋ฃจํ๋ฃจ ๊ธฐ๋กํ๋ฉด์ ๋ค์ ์์ํ์. ์์ง ๊ธ์ ์์์ ์๊ฐํด๋ณด์ง๋, ์ด๋ค ๋ด์ฉ์ ๊ธฐ๋กํ ์ง๋ ์ ํ ์ ํด์ง๊ณ ๋ค๋ฌ์ด์ง์ง ์์์ง๋ง ๊ทธ๋ฅ ์ผ๋จ ์์ํด๋ณด๋๊ฑฐ๋ค.
- ๊ฐ๋ณ๊ฒ ์ด๋ฐ์ ๋ฐ cs ๊ณต๋ถํจ → ์ต๊ทผ์ ๊ณต๋ถํ๋ฉด์ ๋๋ ๊ฑฐ์ง๋ง ์ง์ง ํํธํ๋ ์ง์์ด ๋๋ฌด ๋ง๊ณ , ์ค๋์ ์ ๊ณต๋ถํ๋ ๋ด์ฉ๋ค์ด๋ผ ํ๋๋ ๊ธฐ์ต์ด ์๋๋ค. (์ฐจ๊ทผ์ฐจ๊ทผ ๋ณต์ตํ์)
- ๋ถ์คํธ์บ ํ 1์ฐจ ํ ์คํธ ๋ด → ์ฌํด ๋ช ๋ฒ์ ์ฝ๋ฉํ ์คํธ๋ฅผ ๋ณด๋ฉด์ ํญ์ ๋ ์๊ฐ์ ๊ตฌํ ์ฐ์ต์ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด๋ค. ๊ทผ๋ฐ ๊ทธ๊ฒ ๋ง์ฒ๋ผ ์ฝ์ง ์๋ค. ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํธ๋๊ฒ ํ๋์์ ์ฌ๋ฏธ์๋ค๊ฐ ์์ ๋๋ฌด ํ๊ธฐ ์ซ๋ค! ... ๋ง์์ ์ข ๋ค์ก์ ํ์๊ฐ ์๋ค. ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค๋ฉด์๋ ๋ง์์ด ์ฑ์ญ์์ญํ๋ ์๊ธฐ๋ค.
- ์ด์จ๋ ๋ค์ ์ด์ฌํ ์ด๊ณ ๊ณต๋ถํ๊ธฐ๋ก ๋ง์ ๋จน์์ผ๋ ๋ญ๊ฐ ๋๋ ํ ๋ฒ ํด๋ณด๋ จ๋ค.