์ ์ก๊ณ์ธต์ ์ก์ ์์ ์์ ์๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ณ์ธต์ผ๋ก, ๋ฐ์ดํฐ์ ์ ๋ฌ์ ๋ด๋นํ๋ค.
TCP, UDP๋ ์ ์ก๊ณ์ธต์์ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ด๋ค.
- ํ๋กํ ์ฝ(protocol) : ์ปดํจํฐ ์ํธ๊ฐ ํน์ ์ปดํจํฐ์ ๋จ๋ง๊ฐ์์ ํต์ ์ ํ ๋์ ํ์ํ ํต์ ๊ท์ฝ
- ํต์ ๊ท์ฝ : ์ํธ๊ฐ์ ์ ์์ด๋ ์ ๋ฌ ๋ฐฉ์, ํต์ ๋ฐฉ์, ์ฃผ๊ณ ๋ฐ์ ์๋ฃ์ ํ์, ์ค๋ฅ ๊ฒ์ถ ๋ฐฉ์, ์ฝ๋ ๋ณํ ๋ฐฉ์, ์ ์ก ์๋ ๋ฑ์ ๋ํ์ฌ ์ ํ๋ ๊ฒ.
TCP( Transmission Control Protocol )
์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์ง ํํ๋ก ๋ณด๋ด๊ธฐ ์ํด IP์ ํจ๊ป ์ฌ์ฉํ๋ ํ๋กํ ์ฝ
์ฐ๊ฒฐํ ์๋น์ค๋ฅผ ์ง์ํ๋ ํ๋กํ ์ฝ๋ก ์ธํฐ๋ท ํ๊ฒฝ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค.
์ผ๋ฐ์ ์ผ๋ก TCP์ IP๋ฅผ ํจ๊ป ์ฌ์ฉํ๋๋ฐ, IP๊ฐ ๋ฐ์ดํฐ์ ๋ฐฐ๋ฌ์ ์ฒ๋ฆฌํ๋ค๋ฉด, TCP๋ ํจํท์ ์ถ์ ๋ฐ ๊ด๋ฆฌํ๊ฒ ๋๋ค.
- ํจํท(Packet) : ์ธํฐ๋ท ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํ ๊ฒฝ๋ก๋ฐฐ์ (๋ผ์ฐํ )์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํด์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฐ๋ค๋ก ๋๋์ด ์ ์ก์ ํ๋๋ฐ ์ด๋, ์ด ์กฐ๊ฐ์ ํจํท์ด๋ผ๊ณ ํ๋ค.
- TCP๊ฐ ํจํท์ ์ถ์ฒ ๋ฐ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ : ๋ฐ์ดํฐ๋ ํจํท ๋จ์๋ก ๋๋์ด ๊ฐ์ ๋ชฉ์ ์ง(IP๊ณ์ธต)์ผ๋ก ์ ์ก๋๋ค. ์ด ๋ ํจํท์ ๋ฒํธ๋ฅผ ๋ถ์ฌํ์ฌ ์ ์กํ๊ธฐ ๋๋ฌธ์ ๋ชฉ์ ์ง์์ ํจํท์ ๋ถ์ค ํ์ธ๊ณผ ๊ฐ์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ณ ์ฌ์กฐ๋ฆฝ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก TCP๋ ํจํท์ ์ถ์ ํ์ฌ ๋๋์ด ๋ณด๋ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ์กฐ๋ฆฝํ ์ ์๋ค.
ํน์ง
- ์ฐ๊ฒฐํ ์๋น์ค๋ก ๊ฐ์ ํ์ ๋ฐฉ์์ ์ ๊ณตํ๋ค.
- ๋ฐ์ ์ง์ ์์ ์ง๋ฅผ ์ฐ๊ฒฐํ์ฌ ํจํท ์ ์ก์ ์ํ ๋ ผ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐฐ์ ํ๋ค.
- 3-way handshaking๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ 4-way handshaking์ ํตํด ํด์ ํ๋ค.
- ๋ชฉ์ ์ง์ ์์ ์ง๋ฅผ ํ์คํ ํ์ฌ ์ ํํ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด ์ธ์ ์ ์๋ฆฝํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
- ๋ฐ๋ผ์ TCP๋ ์ฐ๊ฒฐํ ์๋น์ค๋ก ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ ์ ์๊ฒ ๋๋ฉฐ, ์๋๊ฐ UDP๋ณด๋ค ๋๋ฆฌ๊ฒ ๋๋ค.
- ํ๋ฆ ์ ์ด ๋ฐ ํผ์ก ์ ์ด.
- ํ๋ฆ์ ์ด(Flow Control)๋ ์ก์ ์ธก๊ณผ ์์ ์ธก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก ์์ ์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐฉ์งํ๋ค.
- ์์ ์๊ฐ ์๋์ฐํฌ๊ธฐ(Window Size) ๊ฐ์ ํตํด ์์ ๋์ ์ ํ ์ ์๋ค.
- ๊ธฐ๋ณธ ๊ฐ๋ ์ receiver๊ฐ sender์๊ฒ ํ์ฌ ์์ ์ ์ํ๋ฅผ feedback ํ๋ค.
- ํผ์ก์ ์ด(Congestion Control)๋ ์ก์ ์ธก์ ๋ฐ์ดํฐ ์ ๋ฌ๊ณผ ๋คํธ์ํฌ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก ๋คํธ์ํฌ ๋ด์ ํจํท ์๊ฐ ๋์น๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
- ํ๋ฆ์ ์ด(Flow Control)๋ ์ก์ ์ธก๊ณผ ์์ ์ธก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก ์์ ์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐฉ์งํ๋ค.
- ๋์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค.
- Dupack-based retransmission
- ์ ์์ ์ธ ์ํฉ์์๋ ACK ๊ฐ์ด ์ฐ์์ ์ผ๋ก ์ ์ก๋์ด์ผ ํ๋ค.
- ๊ทธ๋ฌ๋ ACK๊ฐ์ด ์ค๋ณต์ผ๋ก ์ฌ ๊ฒฝ์ฐ ํจํท ์ด์์ ๊ฐ์งํ๊ณ ์ฌ์ ์ก์ ์์ฒญํ๋ค.
- Timeout-based retransmission
- ์ผ์ ์๊ฐ๋์ ACK ๊ฐ์ด ์์ ์ ๋ชปํ ๊ฒฝ์ฐ ์ฌ์ ์ก์ ์์ฒญํ๋ค.
- Dupack-based retransmission
- UDP๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค.
- ์ ์ด์ค(Full-Duplex), ์ ๋์ (Point to Point) ๋ฐฉ์
- ์ ์ด์ค(Full-Duplex) : ์ ์ก์ด ์๋ฐฉํฅ์ผ๋ก ๋์์ ์ผ์ด๋ ์ ์๋ค.
- ์ ๋์ (Point to Point) : ๊ฐ ์ฐ๊ฒฐ์ด ์ ํํ 2๊ฐ์ ์ข ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค.
- → ๋ฐ๋ผ์ ๋ฉํฐ์บ์คํ ์ด๋ ๋ธ๋ก๋์บ์คํ ์ ์ง์ํ์ง ์๋๋ค.
๋ฐ๋ผ์ TCP๋ ์ฐ์์ฑ๋ณด๋ค ์ ๋ขฐ์ฑ์๋ ์ ์ก์ด ์ค์ํ ๋ ์ฌ์ฉ๋๋ค. ex) HTTP, Email, File transfer
TCP ์๋ฒ ํน์ง
- ์๋ฒ์์ผ์ ์ฐ๊ฒฐ๋ง์ ๋ด๋นํ๋ค.
- ์ฐ๊ฒฐ๊ณผ์ ์์ ๋ฐํ๋ ํด๋ผ์ด์ธํธ ์์ผ์ ๋ฐ์ดํฐ์ ์ก์์ ์ ์ฌ์ฉ๋๋ค.
- ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ 1๋1๋ก ์ฐ๊ฒฐ๋๋ค.
- ์คํธ๋ฆผ ์ ์ก์ผ๋ก ์ ์ก ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋ฌด์ ํ์ด๋ค.
- ํจํท์ ๋ํ ์๋ต์ ํด์ผํ๊ธฐ ๋๋ฌธ์(์๊ฐ ์ง์ฐ, CPU ์๋ชจ) ์ฑ๋ฅ์ด ๋ฎ๋ค.
- Streaming ์๋น์ค์ ๋ถ๋ฆฌํ๋ค.(์์ค๋ ๊ฒฝ์ฐ ์ฌ์ ์ก ์์ฒญ์ ํ๋ฏ๋ก)
UDP( User Datagram Protocol )
๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๊ทธ๋จ ๋จ์๋ก ์ฒ๋ฆฌํ๋ ํ๋กํ ์ฝ
UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ๋ก ์ฐ๊ฒฐ์ ์ํด ํ ๋น๋๋ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฝ๋ก๊ฐ ์๋ค. ๋ฐ๋ผ์ ๊ฐ๊ฐ์ ํจํท์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ ์ก๋๊ณ , ๋ ๋ฆฝ์ ์ธ ๊ด๊ณ๋ฅผ ์ง๋๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ ํ๋กํ ์ฝ์ UDP๋ผ๊ณ ํ๋ค.
- ๋ฐ์ดํฐ๊ทธ๋จ(Datagram) : ๋
๋ฆฝ์ ์ธ ๊ด๊ณ๋ฅผ ์ง๋ ํจํท
๋ฐ์ ์ง์ ์์ ์ง ์ปดํจํฐ ๊ทธ๋ฆฌ๊ณ ์ ์ก ๋คํธ์ํฌ ์ฌ์ด์์ ์ด์ ์ ๋ฐ์ดํฐ ๊ตํ๊ณผ ๊ด๊ณ์์ด ๋ฐ์ ์ง๋ก๋ถํฐ ์์ ์ง ์ปดํจํฐ๋ก ๋ฐฐ๋ฌ๋์ด์ง๋ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ๊ฐ๋ ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ ์ค์ฒด. ์ด๋ ์ธํฐ๋ท์ด ์ด๋ฐํด์ผ ํ ๋ฉ์ธ์ง ๋จ์์ธ ํจํท์ด๋ผ ๋ด๋ ๋ฌด๋ฐฉํ๋ค.
ํน์ง
- ๋น์ฐ๊ฒฐํ ์๋น์ค๋ก ๋ฐ์ดํฐ๊ทธ๋จ ๋ฐฉ์์ ์ ๊ณตํ๋ค.
- ๋น์ฐ๊ฒฐํ ์๋น์ค์ด๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ํด์ ํ๋ ๊ณผ์ ์ด ์กด์ฌํ์ง ์๋๋ค.
- ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ ๋ณด๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๋ฐ๋๋ค๋ ์ ํธ์ ์ฐจ๋ฅผ ๊ฑฐ์น์ง ์๋๋ค.
- UDPํค๋์ CheckSum ํ๋๋ฅผ ํตํด ์ต์ํ์ ์ค๋ฅ๋ง ๊ฒ์ถํ๋ค.
- ํจํท์ ์์๋ฅผ ๋ถ์ฌํ์ฌ ์ฌ์กฐ๋ฆฝํ๊ฑฐ๋ ํ๋ฆ ์ ์ด ๋๋ ํผ์ก ์ ์ด์ ๊ฐ์ ๊ธฐ๋ฅ๋ ์ฒ๋ฆฌํ์ง ์๊ธฐ์ TCP๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ฉฐ ๋คํธ์ํฌ ๋ถํ๊ฐ ์ ๋ค.
- ๋ฐ๋ผ์ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ์ง๋ ๋ชปํ๋ค.
- ์ ๋ขฐ์ฑ์ด ๋ฎ๋ค.
- TCP๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ค.
UDP๋ ์ ๋ขฐ์ฑ๋ณด๋ค ์ฐ์์ฑ์ด ์ค์ํ ์๋น์ค์ ์ฌ์ฉ๋๋ค. ex) DNS, Broadcasting, ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ
UDP ์๋ฒ ํน์ง
- UDP์๋ ์ฐ๊ฒฐ ์์ฒด๊ฐ ์์ด์(connect ํจ์ ๋ถํ์) ์๋ฒ ์์ผ๊ณผ ํด๋ผ์ด์ธํธ ์์ผ์ ๊ตฌ๋ถ์ด ์๋ค.
- ์์ผ ๋์ IP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
- ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ 1๋1, 1๋N, N๋M ๋ฑ์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์๋ค.
- ๋ฐ์ดํฐ๊ทธ๋จ(๋ฉ์ธ์ง) ๋จ์๋ก ์ ์ก๋๋ฉฐ ๊ทธ ํฌ๊ธฐ๋ 65535๋ฐ์ดํธ๋ก, ํฌ๊ธฐ๊ฐ ์ด๊ณผํ๋ฉด ์๋ผ์ ๋ณด๋ธ๋ค.
- ํ๋ฆ์ ์ด(flow control)๊ฐ ์์ด์ ํจํท์ด ์ ๋๋ก ์ ์ก๋์๋์ง, ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ ์ ์๋ค.
- ํ์ผ ์ ์ก๊ณผ ๊ฐ์ ์ ๋ขฐ์ฑ์ด ํ์ํ ์๋น์ค๋ณด๋ค ์ฑ๋ฅ์ด ์ค์์ ๋๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
์ฐจ์ด์ ์์ฝ
ํ๋กํ ์ฝ ์ข ๋ฅ | TCP | UDP |
์ฐ๊ฒฐ ๋ฐฉ์ | ์ฐ๊ฒฐํ ์๋น์ค | ๋น์ฐ๊ฒฐํ ์๋น์ค |
ํจํท ๊ตํ ๋ฐฉ์ | ๊ฐ์ ํ์ ๋ฐฉ์ | ๋ฐ์ดํฐ๊ทธ๋จ ๋ฐฉ์ |
์ ์ก ์์ | ์ ์ก ์์ ๋ณด์ฅ | ์ ์ก ์์๊ฐ ๋ฐ๋ ์ ์์ |
์์ ์ฌ๋ถ ํ์ธ | ์์ ์ฌ๋ถ ํ์ธ | ์์ ์ฌ๋ถ ํ์ธํ์ง ์์ |
ํต์ ๋ฐฉ์ | 1:1 ํต์ | 1:1 or 1:N or N:M ํต์ |
์ ๋ขฐ์ฑ | ๋๋ค | ๋ฎ๋ค |
์๋ | ๋๋ฆฌ๋ค | ๋น ๋ฅด๋ค |
์ฐธ๊ณ
- https://mangkyu.tistory.com/15
- https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4
- https://6kkki.tistory.com/18
- https://6kkki.tistory.com/19?category=549650
- https://gyoogle.dev/blog/computer-science/network/%ED%9D%90%EB%A6%84%EC%A0%9C%EC%96%B4%20&%20%ED%98%BC%EC%9E%A1%EC%A0%9C%EC%96%B4.html
- http://www.ktword.co.kr/test/view/view.php?m_temp1=537&id=864
- http://www.ktword.co.kr/test/view/view.php?m_temp1=633&id=864
'๐CS > Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] OSI 7๊ณ์ธต (0) | 2021.09.09 |
---|---|
[Network] ์น ํต์ ์ ํฐ ํ๋ฆ (0) | 2021.08.31 |
[Network] DNS round robin (0) | 2021.08.25 |
๋๊ธ