2.1 ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฆฌ
Creating a network app
- software ๊ฐ๋ฐ์ ๊ด์ ์์๋ ๋คํธ์ํฌ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ๋์ด ์๋ค. ํ์ง๋ง, application ๊ตฌ์กฐ๋ ๊ฐ๋ฐ์๊ฐ ์ค๊ณํ๋ฉฐ, ์ฌ๋ฌ ์ข ๋จ ์์คํ ์์ ์ด๋ป๊ฒ ์กฐ์ง๋์ด์ผ ํ๋์ง๋ฅผ ์๋ ค์ค๋ค.
- ์ด๋ฌํ application ๊ตฌ์กฐ๋ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋๋ค.
- Client - server ๊ตฌ์กฐ
- P2P ๊ตฌ์กฐ
Client-server paradigm
- Server
- ํญ์ ๋์ํ๊ณ ์๋ ์๋ฒ๊ฐ ์กด์ฌํ๊ณ , Client๋ผ๋ ๋ค๋ฅธ ํธ์คํธ๋ค๋ก๋ถํฐ ์๋น์ค ์์ฒญ์ ๋ฐ๋๋ค.
- ์๋ฒ๋ ์ ์๋ ค์ง ๊ณ ์ IP ์ฃผ์๋ฅผ ๊ฐ๋๋ค. (permanent IP address - not change)
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ค๋ ๋ชจ๋ ์์ฒญ์ ๋ ์๋ตํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๋
- ๋ง์ ์์ ํธ์คํธ๋ฅผ ๊ฐ์ถ data center๊ฐ ๊ฐ๋ ฅํ ๊ฐ์์ ์๋ฒ๋ฅผ ์์ฑํ๋ ์ญํ ๋ก ์ฌ์ฉ๋๋ค.
- ๋ณดํต 10๋ง๊ฐ ์ ๋์ ์๋ฒ๋ฅผ ๊ฐ์ถ๊ณ ์๋ค.
- Clients
- ํ์ํ ๋ connect ํ๋ค.
- may be intermittently connected (๊ฐ์ ์ ์ผ๋ก, ๊ฐ๋์ ์ฐ๊ฒฐ๋๋ค)
- dynamic IP address๋ฅผ ๊ฐ๋๋ค.
- Client๋ผ๋ฆฌ๋ ์ง์ ํต์ ํ์ง ์๋๋ค.
P2P ๊ตฌ์กฐ
- Client์ server ๋ ๋ค์ responsibility๋ฅผ ๊ฐ๋๋ค.
- ํญ์ ์ผ์ ธ์๋ ์๋ฒ์ ์์กดํ์ง ์๋๋ค.
- ์์์(arbitrary) end system๋ค์ ์ง์ ์ํตํ๋ค.
- ์ฆ, peer๋ผ๋ ๊ฐํ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ํธ์คํธ ์์ด ์๋ก ์ง์ ํต์ ํ๊ฒ ํ๋ค.
- peer๋ ์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ Client(laptop ๊ฐ์ ๊ฒ๋ค)
- **Self scalability(์๊ฐํ์ฅ์ฑ)**๋ฅผ ๊ฐ๋๋ค.
- ์ฆ, ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ๋คํธ์ํฌ์ ๋ถ๋ด์ด ์ปค์ง๋ ๊ฒ์ด ์๋๋ผ, ์คํ๋ ค ์๋ก ๋์์ ๋คํธ์ํฌ์ ํจ์จ์ฑ์ด ๋์์ง๋ค.
- ์๋ฅผ ๋ค์ด, ํ์ผ ๊ณต์ application์์๋ ๊ฐ peer๋ค์ด ํ์ผ์ ์๊ตฌํ์ฌ ์์ ๋ถํ๊ฐ ์๊ธฐ์ง๋ง, ๊ฐ Peer๋ค์ ํ์ผ์ ๋ค๋ฅธ Peer๋ค์๊ฒ ๋ถ๋ฐฐํ์ฌ ์์คํ ์ ์๋น์ค ๋ฅ๋ ฅ์ ๊ฐ์ถ๋ค.
- data center ๋ฑ์ด ํ์ ์์ผ๋ฏ๋ก ๋น์ฉ์ด ํจ์จ์ ์ด๋ค.
๐ฉ๐ป๐ป 2.1.2 ํ๋ก์ธ์ค ๊ฐ ํต์
์ค์ ํต์ ํ๋ ๊ฒ์ ํ๋ก๊ทธ๋จ์ด ์๋๋ผ, ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ธ process์ด๋ค.
- ๊ฐ์ host ๋ฒ์ ๋ด์์, ๋๊ฐ์ process๋ค์ IPC๋ฅผ ์ฌ์ฉํด communication ํ๋ค.
- Inter-process-communication : ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ๋ฒ
- ๋ค๋ฅธ host ๋ฒ์ ๋ด์์๋ exchanging messages๋ฅผ ํตํด ์ํตํ๋ค.
- 2๊ฐ์ ์ข ๋จ ์์คํ ์์ ํ๋ก์ธ์ค๋ ์ปดํจํฐ ๋คํธ์ํฌ๋ฅผ ํตํ ๋ฉ์์ง ๊ตํ์ผ๋ก ์๋ก ํต์ ํ๋ค.
- P2P ๊ตฌ์กฐ์์์ฒ๋ผ Client๋ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ๋ ์ ์๊ณ , ์๋ฒ๋ client process๊ฐ ๋ ์ ์๋ค.
- ์ก์ ํ๋ก์ธ์ค : ๋ฉ์์ง๋ฅผ ๋ง๋ค์ด์ ๋ณด๋
- ์์ ํ๋ก์ธ์ค : ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์ญ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋์ผ๋ก์จ ์๋ต
Client, Server process
- client process : process that initiates communication
- ์์ฒญ์ ๋ณด๋ด๋ ์ชฝ์ ํ๋ก์ธ์ค
- server process : process that waits to be contacted
- ์์ฒญ์ ๋ฐ๋ ์ชฝ์ ํ๋ก์ธ์ค
Socket
process๋ socket์ ํตํด ๋คํธ์ํฌ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๋๋ค. (๋ฌธ ๊ฐ์ ๊ฐ๋ )
- ํธ์คํธ์ application ๊ณ์ธต๊ณผ transport ๊ณ์ธต๊ฐ์ ์ธํฐํ์ด์ค์ด๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์๋ ์์ผ์ application ๊ณ์ธต์ ๋ํ ๋ชจ๋ ํต์ ๊ถ์ ๊ฐ์ง๋ง, ์์ผ์ transport ๊ณ์ธต์ ๋ํ ํต์ ๊ถ์ ๊ฑฐ์ ๊ฐ์ง ๋ชปํ๋ค.
- transport protocol์ ์ ํ
- ์ต๋ ๋ฒํผ์ ์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ ๊ฐ์ ์ฝ๊ฐ์ ๋งค๊ฐ๋ณ์ ์ค์
- sending process shoves message out door - ์ ์ก ํ๋ก์ธ์ค๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ก ๋ฐ์ด๋ธ๋ค.
- Application๊ณผ network ์ฌ์ด์ API๋ผ๊ณ ๋ ํ๋ค.
Addressing processes
ํ๋ก์ธ์ค๊ฐ ์ํ๋๊ณ ์๋ ๋ค๋ฅธ ํจํท์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ๋ณด๋ด๊ธฐ ์ํด์๋ ์์ ํ๋ก์ธ์ค๊ฐ ์ฃผ์๋ฅผ ๊ฐ๊ณ ์์ด์ผ ํ๋ค. ์์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๊ธฐ ์ํด์๋ ๋ ๊ฐ์ง ์ ๋ณด๊ฐ ํ์ํ๋ค.
Identifier๋ IP์ฃผ์์ port number๋ฅผ ๊ฐ๋๋ค.
- ํธ์คํธ์ ์ฃผ์ ์ฆ, IP ์ฃผ์๊ฐ ํ์ํ๋ค.
- IP ์ฃผ์๊ฐ identifier๊ฐ ๋๋ค.
- ํธ์คํธ ๋ด์ ์์ ํ๋ก์ธ์ค๋ฅผ ๋ช
์ํ๋ ์๋ณ์. ์ฆ port ๋ฒํธ๊ฐ ํ์ํ๋ค.
- ์ด port ๋ฒํธ๋ก ๋ด process๋ฅผ ํน์ ํ ์ ์๋ค.
- ๊ฐ์ IP ์ฃผ์๋ฅผ ๊ฐ์ง ์ฌ๋ฌ application์ด๋ process๊ฐ ๋์์ ์ํ๋ ์ ์๊ธฐ ๋๋ฌธ์ port ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ค.
- IP๋ฅผ ํตํด ์ ์ ํ computer๋ฅผ ์ฐพ๋๋ค.
๐ฉ๐ป๐ป 2.1.3 An Application-layer protocol defines
application ๊ฐ๋ฐ์๋ ์์ผ์ application ๊ณ์ธต์ ๋ํ ๋ชจ๋ ํต์ ๊ถ์ ๊ฐ์ง๋ง, ์์ผ์ transport ๊ณ์ธต์ ๋ํ ํต์ ๊ถ์ ๊ฑฐ์ ๊ฐ์ง ๋ชปํ๋ค. ์ฆ, ์ฌ๊ธฐ์์๋ ๊ทธ ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ค transport service๋ฅผ ์ด์ฉํ ์ ์๋์ง์ ๋ํ ๋ด์ฉ์ด๋ค.
- Data integrity
- ์์ค๋์ง ์๋ data๋ฅผ ์ ์ก
- throughput
- ๋ค๋ฅธ session๋ค์ด network ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋์ญํญ์ ๊ณต์ ํ๊ณ , ์ด ์ธ์ ๋ค์ด ์๊ฒผ๋ค ์์ด์ก๋ค ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ์ฒ๋ฆฌ์จ์ ์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ค. ์ด๋ ์ด๋ ๋ช ์๋ ์๋์์ ๋ณด์ฅ๋ ๊ฐ์ฉ ์ฒ๋ฆฌ์จ์ ์ ๊ณตํ๋ค.
- ์ด๋ฌํ ์ฒ๋ฆฌ์จ ์๊ตฌ์ฌํญ ์ฌ๋ถ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ๊ฐ์ง๋ก ๋๋๋ค.
- effective app : ์ฒ๋ฆฌ์จ ์๊ตฌ์ฌํญ์ด ์๋ ๋ฏผ๊ฐ application
- elastic app : ํ๋ ฅ์ application. ์ฒ๋ฆฌ์จ ์๊ตฌ์ฌํญ์ด ์๋ค.
- timing
- ์๋ฅผ ๋ค์ด, ์ก์ ๊ธฐ๊ฐ socket์ผ๋ก ๋ด๋ณด๋ด๋ ๋ชจ๋ bit๊ฐ ์์ ์์ socket์ 100ms ๋ด์ ๋์ฐฉํ๊ฒ ํ ์ ์๋ค. ์ฃผ๋ก ์ค์๊ฐ application์์ ์ฌ์ฉํ๋ค.
- security
- data๋ฅผ ์ํธํ ํ ์ ์๋ค.
Internet transport protocols services
์ธํฐ๋ท ์ ์ก ํ๋กํ ์ฝ์ด ์ ๊ณตํ๋ ์๋น์ค
- TCP ์๋น์ค
- UDP ์๋น์ค
TCP service
- reliable transport
- ์๋ก ์ ์ก ์ ์ด ์ ๋ณด๋ฅผ ๊ตํํ๊ฒ ํ๋ค.
UDP service
- unreliable data transefer
- hand shaking ๊ณผ์ ์ด ์๊ณ , ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋๋ ๊ฒ์ ๋ณด์ฅํ์ง ์๋๋ค.
TCP vs. UDP
- TCP๊ฐ UDP๋ณด๋ค ๋ ์ ์ฉํ์ง๋ง, UDP๋ ๋ ๋น ๋ฅด๋ค.
- ๋ ๋ค ์ฒ๋ฆฌ์จ ํน์ ์๊ฐ ๋ณด์ฅ ์๋น์ค๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.
- ๊ทธ๋์ ์๊ฐ ๋ฏผ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๊ฒฝ์ฐ, ์ด๋ฌํ ์ฒ๋ฆฌ์จ ๋ฐ ์๊ฐ ์ง์ฐ์ ์ ๋์ฒํ ์ ์๋๋ก ์ค๊ณ๋์ด ์๋ค.
๐ฉ๐ป๐ป 2.1.5 Application layer: Protocol
๋ค๋ฅธ ์ข ๋จ ์์คํ ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์ธ์ค๊ฐ ์๋ก ๋ฉ์์ง ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.
- ๊ตํ ๋ฉ์์ง์ ํ์
- ์ฌ๋ฌ ๋ฉ์์ง ํ์ ์ ๋ฌธ๋ฒ(syntax)
- ํ๋์ ์๋ฏธ, ์ฆ ํ๋์ ์๋ ์ ๋ณด์ ์๋ฏธ(semantics)
- ์ธ์ , ์ด๋ป๊ฒ ํ๋ก์ธ์ค๊ฐ ๋ฉ์์ง๋ฅผ ์ ์กํ๊ณ ๋ฉ์์ง์ ์๋ต ํ๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ท์น
'๐ ์ปดํจํฐ ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปด๋ค] Ch1.6 : Protocol layers, service models (0) | 2024.11.12 |
---|---|
[์ปด๋ค] Ch1.5 Performance: loss, delay, throughput (0) | 2024.11.12 |
[์ปด๋ค] Ch1.3 Network core (0) | 2024.11.12 |
[์ปด๋ค] Ch1.2 Network edge (4) | 2024.11.12 |
[์ปด๋ค] Ch1.1 ์ธํฐ๋ท์ด๋? ํ๋กํ ์ฝ์ด๋? (0) | 2024.11.11 |