ํฌํŠธ(Port)์™€ ์†Œ์ผ“(Socket)

December 15, 2022์— ์ž‘์„ฑ ยท January 1, 1970์— ๋ณ€๊ฒฝ๋จ

ํฌํŠธ์™€ ์†Œ์ผ“

ํฌํŠธ์™€ ์†Œ์ผ“์€ ๋‘˜ ๋‹ค ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค(์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” 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

์ฐธ๊ณ 

https://softwareengineering.stackexchange.com/questions/171734/difference-between-a-socket-and-a-port