Socket
- ์์ผ์ ๋คํธ์ํฌ ํต์ ์ ์ํ ์ํํธ์จ์ด ์ธํฐํ์ด์ค๋ก, ๋คํธ์ํฌ ํต์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ ํต๋ก ์ญํ ์ ํ๋ค.
- ์์ผ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ก ๊ตฌ์ฑ๋์ด, ์ด๋ค์ ํตํด ๋คํธ์ํฌ์์ ๋ค๋ฅธ ์ฅ์น์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
- ๋๋ถ๋ถ์ ๋คํธ์ํฌ ํต์ ์ ์์ผ์ ์ฌ์ฉํด ์ด๋ฃจ์ด์ง๋ค. ์๋ฅผ ๋ค์ด, TCP์ UDP ํต์ ์ ๋ชจ๋ ์์ผ์ ํตํด ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
Stream
- ์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ์ ๋ฌํ๋ ๋ฐฉ์
- TCP์์๋ ๋ฐ์ดํฐ๋ฅผ packet ๋จ์๋ก ๋๋์ด ๋ณด๋ด์ง๋ง, ์ฐ์์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ(stream) ํํ๋ก ์ฒ๋ฆฌ๋๋ค. ์ฆ, ์ฌ๋ฌ ํจํท์ด ์์ฐจ์ ์ผ๋ก ์ ๋ฌ๋๋ฉด์, ์์ ์ธก์์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ํ๋์ ์ฐ์์ ์ธ ํ๋ฆ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ค.
- ์คํธ๋ฆผ์ TCP์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋๋ฉฐ, ์ฐ์์ ์ด๊ณ ์์ ์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ(stream)์ ์ ๊ณต
Packet
- packet์ ๋คํธ์ํฌ ๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ ๊ธฐ๋ณธ ๋จ์ ๋คํธ์ํฌ ํต์ ์์ ๋ฐ์ดํฐ๋ packet์ด๋ผ๋ ๋จ์๋ก ๋๋์ด์ ธ ์ ์ก์ด ์ด๋ฃจ์ด์ง๋ค.
- packet์ segment๋ datagram๊ณผ ๊ฐ์ ์ ์ก ๊ณ์ธต์ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ ๊ณ์ธต์์ ์ ์กํ ์ ์๋๋ก ํฌ์ฅํ๋ ์ญํ (์บก์ํ)์ ํฉ๋๋ค. (TCP, UDP)
- packet์ ์ก์์ ์ ๋ณด, ์ค๋ฅ ๊ฒ์ถ ์ ๋ณด, ์์ ์ ๋ณด ๋ฑ์ ํฌํจํ์ฌ ๋ฐ์ดํฐ ์ ์ก์ ๋จ์ํ, ๋คํธ์ํฌ ๊ณ์ธต ๊ฐ์ ํธํ์ฑ ์ ์ง, ํจ์จ์ ์ด๊ณ ์์ ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ์ ๋ณด์ฅ
Segment
- segment๋ TCP ํ๋กํ ์ฝ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์
- TCP segment๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ณด๋ธ byte๋ฅผ ๋ด๊ณ ์์ผ๋ฉฐ, ํฌํธ ๋ฒํธ, IP ์ฃผ์, ์์ ์ ๋ณด, ๊ฒ์ฆ ์ ๋ณด ๋ฑ TCP ํ๋กํ ์ฝ์์ ์๊ตฌํ๋ ์ฌ๋ฌ ์ ์ด ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๋ค.
- segment๋ ์ฐ๊ฒฐ ์งํฅ์ ์ธ TCP์ ํน์ง์ ๋ง๊ฒ, ๋ฐ์ดํฐ์ ์์ ๋ณด์ฅ ๋ฐ ์ ์ก ์ ๋ขฐ์ฑ ํ๋ณด๋ฅผ ์ํด ํ์์ ์ธ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
Datagram
- datagram์ UDP ํ๋กํ ์ฝ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์
- UDP datagram์ ํฌํธ ๋ฒํธ, IP ์ฃผ์, ๊ธธ์ด ์ ๋ณด, ๊ฒ์ฆ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ง๋ง, segment๋ณด๋ค ๋ ๋ณต์กํ๋ฉฐ ์ฐ๊ฒฐ์ ํ์๋ก ํ์ง ์๋ค.
- UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ๋ก, ๊ฐ datagram์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก ๋ฐ์ดํฐ์ ์์๋ ์ ์ก ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์๋๋ค.
Byte
- ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๊ฐ์ฅ ์์ ๋จ์
- TCP๋ UDP์์ ์ก์์ ํ๋ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํธ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ด ๋ฐ์ดํธ๋ค์ ์ฌ๋ฌ segment๋ datagram์ ๋ด์ ์ ์กํ๋ค.
TCP์ UDP ํต์ ๋ฐฉ์์ ์ฐจ์ด
TCP (stream ๊ธฐ๋ฐ ํต์ )
- TCP๋ ์ฐ๊ฒฐ ์งํฅ์ ์ด๊ณ , ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ๋ค.
- ๋ฐ์ดํฐ๋ packet ๋จ์๋ก ์ ์ก๋์ง๋ง, ์ฐ์์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ(stream)์ผ๋ก ์ ์ก๋๊ธฐ ๋๋ฌธ์, stream์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
- ํจํท๋ค์ด ์์ฐจ์ ์ผ๋ก ์ ์ก๋๊ณ , ์ด๋ฅผ ์์ ํ ํ ๋ค์ ์ฐ์์ ์ธ ๋ฐ์ดํฐ ํ๋ฆ(stream)์ผ๋ก ๋ณต๊ตฌ๋๋ค.
- TCP๋ ์ ์ก๋ segment๋ค์ด ์์๋๋ก ๋์ฐฉํ๊ณ , ์์ค๋์์ ๊ฒฝ์ฐ ์ฌ์ ์ก์ด ์ด๋ฃจ์ด์ง๋ ๋ฐฉ์
- Byte(Frame(Packet(Segment(Message))))
UDP (packet ๊ธฐ๋ฐ ํต์ )
- UDP๋ ๋น์ฐ๊ฒฐํ์ด๊ณ , ์์๋ ์ ๋ขฐ์ฑ์ด ๋ณด์ฅ๋์ง ์๋๋ค.
- datagram์ด๋ผ๋ packet ๋จ์๋ก ์ ์ก๋๋ฉฐ, ๊ฐ ํจํท์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
- UDP๋ packet ๊ธฐ๋ฐ ํต์ ์ผ๋ก, ๋ฐ์ดํฐ๊ฐ ์ฐ์์ ์ด์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ stream ๊ธฐ๋ฐ์ด๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋ค.
- Byte(Frame(Packet(Datagram(Message))))
์ ๋ฆฌ
- ์์ผ(Socket)์ ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๊ธฐ ์ํ ํต๋ก์ด๋ฉฐ, IP์ ํฌํธ ๋ฒํธ๋ฅผ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๋ค.
- ์คํธ๋ฆผ(Stream)์ TCP์์ ์ฌ๋ฌ packet์ด ์ฐ์์ ์ผ๋ก ์ ์ก๋์ด ํ๋์ ๋ฐ์ดํฐ ํ๋ฆ์ ํ์ฑํ๋ ๋ฐฉ์
- ํจํท(Packet)์ ๋คํธ์ํฌ ๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ ๊ธฐ๋ณธ ๋จ์๋ก, segment๋ datagram์ ๋ด์์ ์ ์กํฉ๋๋ค.
- ์ธ๊ทธ๋จผํธ(Segment)๋ TCP์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์์ด๋ฉฐ, ๋ฐ์ดํฐ์ ์์์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ๊ทธ๋จ(Datagram)์ UDP์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์๋ก, ์์๋ ์ ๋ขฐ์ฑ์ด ๋ณด์ฅ๋์ง ์์ต๋๋ค.
- TCP๋ stream ๊ธฐ๋ฐ ํต์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ์ ์กํ๋ ๋ฐฉ์์ด๋ฉฐ, UDP๋ packet ๊ธฐ๋ฐ ํต์ ์ผ๋ก ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ ์ ์ก์ ์ํํฉ๋๋ค.
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
process, thread (0) | 2024.12.14 |
---|---|
ํด๋์ค ์ธ์คํด์ค ๊ฐ์ฒด (1) | 2024.12.14 |
docker-compose์ cmake (0) | 2024.11.09 |
[์๋ฃ๊ตฌ์กฐ] ํ (Heap) (0) | 2024.11.08 |
[์๋ฃ๊ตฌ์กฐ] ํด์ ํ ์ด๋ธ (Hash Table) (2) | 2024.11.08 |