ํฌํธ์ ์์ผ
ํฌํธ์ ์์ผ์ ๋ ๋ค ๋คํธ์ํฌ ์์์ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ์ํ ๊ฒ์ด๋ค(์ฐ๋ฆฌ๊ฐ ์๋ TCP์ UDP๊ฐ ํฌํธ ๋ฒํธ๋ฅผ ํตํด์ ํต์ ํ๋ ํ๋กํ ์ฝ์ด๋ค). ํฌํธ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ก ์๋ณํ๊ธฐ ์ํด ํ์ํ๊ณ , ์์ผ์ ํ๋ก์ธ์ค ๊ฐ ์ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํฐ ์ก์์ ์ ๋ด๋นํ๋ค. ์์ผ์ OS๊ฐ ํ๋ก์ธ์ค์ ํต์ ์ ์ํด ์ฌ์ฉํ๋ ๊ฐ์ฒด ๊ฐ์ ๊ฐ๋ ์ด๋ฉฐ ์ค์ ๋ก UNIX์์๋ ์์ผ์ ๊ทธ๋ฅ ํ์ผ์ด๋ค(ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ ์ฝ์ผ๋ฉด์ ํต์ ).
๋ง์ฝ ์ปดํจํฐ๋ฅผ ์ํํธ๋ผ๊ณ ํ๋ค๋ฉด, ํ๋ก์ธ์ค๋ ์ํํธ์ ์๋ ์ง๋ค ์ค ํ๋๊ฐ ๋๊ณ , ์์ผ์ ํด๋น ์ง์ ๋ฌธ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค (์ง์ ๋ฌธ์ ์ฌ๋ฌ๊ฐ๊ฐ ์กด์ฌํ ๊ฒ์ด๋ค)
์์ผ์ ์๋ณ์
ํน์ ํฌํธ๋ก ์ด๋ฆฐ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ผ์ ๊ฐ์ง ์ ์๋ค๋ฉด, ์์ผ์ ์ด๋ป๊ฒ ์๋ณํ ๊น?
TCP์์ ์์ผ์ ํด๋ผ์ด์ธํธIP
ํฌํธ
, ์๋ฒIP
ํฌํธ
์ด 4๊ฐ์ง๋ก ์ ๋ณด๋ก ์๋ณ๋๋ฉฐ, ์๋ณ์๊ฐ ์ค๋ณต๋์ง ์๋๋ค๋ฉด ์์ผ์ ๊ณ์ ๋ง๋ค ์ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ์๋ฒ๋ ์์ฒญํ๋ ํด๋ผ์ด์ธํธ+ํฌํธ ์กฐํฉ๋ง ๋ค๋ฅด๋ค๋ฉด ๊ณ์ ์ฐ๊ฒฐ์ ๋งบ์ ์ ์๊ณ (๋จ ์ฐ๊ฒฐ์ ๋ง์ด ๋งบ์ ์๋ก ์๋ฒ์ ์ฒ๋ฆฌ๋ ๋๋ ค์ง ๊ฒ), ํด๋ผ์ด์ธํธ๊ฐ ํ๋์ ์๋ฒ์ ์ฌ๋ฌ ์ปค๋ฅ์ ์ ๋งบ๊ณ ์ถ๋ค๋ฉด, ํด๋ผ์ด์ธํธ์ ํฌํธ ๋ฒํธ๋ฅผ ๋ค๋ฅด๊ฒ ํด์ ์ฐ๊ฒฐํด์ผ ํ๋ค.
์์ผ ์ฐ๊ฒฐ ํ์ธํด๋ณด๊ธฐ
python -m http.server 8080
์ผ๋ก ํ์ด์ฌ ์น์๋ฒ๋ฅผ 8080ํฌํธ๋ก ๊ฐ๋จํ๊ฒ ๋์๋ณด์.
๊ทธ๋ฆฌ๊ณ netstat
์ผ๋ก ์ฐ๊ฒฐ์ ํ์ธํด๋ณด๋ฉด ์๋์ฒ๋ผ 8080ํฌํธ์์ ์ฐ๊ฒฐ ๋๊ธฐ์ค์์ ๋ณผ ์ ์๋ค.
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp46 0 0 *.8080 *.* LISTEN
๊ทธ๋ฆฌ๊ณ ์น ๋ธ๋ผ์ฐ์ ๋ก ์๋ฒ์ ์ ์ํ๊ณ ๋ค์ ํ์ธํด๋ณด๋ฉด ์๋์ฒ๋ผ ์ฐ๊ฒฐ์ด ๋งบ์ด์ง ๊ฑธ ํ์ธํด๋ณผ ์ ์๋ค. (ํด๋ผ์ด์ธํธ ํฌํธ๋ ๋ธ๋ผ์ฐ์ ๊ฐ OS์ ๊ฐ์ฉ ํฌํธ ๋ฒํธ๋ฅผ ์กฐํํด์ ๋๋ค์ผ๋ก ์ ํ๋ค.)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp6 0 0 ::1.8080 ::1.50565 ESTABLISHED
tcp6 0 0 ::1.50565 ::1.8080 ESTABLISHED