์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์์๋ฒํธ
- ์ค๋ฅ์ ์ด
- tcp ์ธ๊ทธ๋จผํธ
- ์ฃผ๊ธฐ์ ํธ
- ํ ํฐ ๋ฒ์ค
- xv6
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- well known ํฌํธ
- ์ฝ๋ฉํ ์คํธ์ค๋น
- mariadb
- ์ค๋ฅ๊ฒ์ถ
- ์ค๋ธ์
- ํญํด99
- ์ค๋ ๋
- ํ๋ก์ด๋์์
- 99ํด๋ฝ
- IEEE 802
- til
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- git merge
- ๋ฐ์ดํฐ ์ ์ก
- leetcode
- ๋น์ฃผ๊ธฐ์ ํธ
- i-type
- ์ฐ๋ถํฌdb
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- tcp ํ๋กํ ์ฝ
- ๊ฐ๋ฐ์์ทจ์
- reducible
- ํ๋ ์ ๊ตฌ์กฐ
- Today
- Total
Unfazedโ๏ธ๐ฏ
์ฐ๊ฒฐ์งํฅํ ํธ๋์คํฌํธ(TCP) - TCP ์ฐ๊ฒฐ (full-duplex, point-to-point, MSS) ๋ณธ๋ฌธ
์ฐ๊ฒฐ์งํฅํ ํธ๋์คํฌํธ(TCP) - TCP ์ฐ๊ฒฐ (full-duplex, point-to-point, MSS)
9taetae9 2024. 12. 11. 13:10TCP ์ฐ๊ฒฐ
์ฐ๊ฒฐ์งํฅํ(connection-oriented)
TCP๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ณด๋ด๊ธฐ ์ ์, ๋ ํ๋ก์ธ์ค๊ฐ ์๋ก "ํธ๋์ ฐ์ดํฌ"๋ฅผ ๋จผ์ ํด์ผ ํจ.
TCP "์ฐ๊ฒฐ"์ ๊ตํ ๋คํธ์ํฌ์์์ ๊ฐ์ ์ข ๋จ๊ฐ TDM, FDM๋ ์๋๊ณ , ๊ฐ์ ํ์ ๋คํธ์ํฌ๋ ์๋๋ค.
TCP ํ๋กํ ์ฝ์ ์ค์ง ์ข ๋จ ์์คํ ์์๋ง ๋์, ์ค๊ฐ์ ๋คํธ์ํฌ ์์(๋ผ์ฐํฐ or ๋ธ๋ฆฌ์ง)์์๋ ๋์ํ์ง ์์ผ๋ฏ๋ก,
์ค๊ฐ์ ๋คํธ์ํฌ ์์๋ค์ TCP ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์งํ์ง ์์. (์ค๊ฐ ๋ผ์ฐํฐ๋ค์ ์ ํ TCP ์ฐ๊ฒฐ์ ๊ฐ์งํ์ง ๋ชปํ๊ณ , ๋ฐ์ดํฐ๊ทธ๋จ๋ง์ ๋ด)
์ ์ด์ค(full-duplex) ์๋น์ค
ํธ์คํธ A์ ํ๋ก์ธ์ค์ ๋ค๋ฅธ ํธ์คํธ B์ ํ๋ก์ธ์ค ์ฌ์ด์ TCP ์ฐ๊ฒฐ์ด ์๋ค๋ฉด,
์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ๋ฐ์ดํฐ๋ A <=> B ์ ๋ฐฉํฅ์ผ๋ก ๋์์ ํ๋ฅผ ์ ์์.
์ ๋์ (point-to-point)
๋จ์ผ ์ก์ ์์ ๋จ์ผ ์์ ์ ์ฌ์ด์ ์ฐ๊ฒฐ๋ง ๊ฐ๋ฅ. (๋ฉํฐ์บ์คํ ๋ฐฉ์์ TCP์์ ๋ถ๊ฐ๋ฅ)
์ฐ๊ฒฐ ์ค์ ๊ณผ์
ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค : ์ฐ๊ฒฐ์ ์ด๊ธฐํํ๋ ํ๋ก์ธ์ค
์๋ฒ ํ๋ก์ธ์ค : ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ๋ ํ๋ก์ธ์ค
1. ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๋ ์๋ฒ์ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ ์ค์ ์ ์ํจ์ TCP ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฆผ
Socket clientSocket = new Socket(serverName, serverPort);
2. ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ ํน๋ณํ TCP ์ธ๊ทธ๋จผํธ๋ฅผ ์๋ฒ๋ก ๋ณด๋
3. ์๋ฒ๋ ๋ ๋ฒ์งธ ํน๋ณํ TCP ์ธ๊ทธ๋จผํธ๋ก ์๋ต
4. ํด๋ผ์ด์ธํธ๊ฐ ์ธ ๋ฒ์งธ ํน๋ณํ ์ธ๊ทธ๋จผํธ๋ก ๋ค์ ์๋ต
์ฒ์ 2๊ฐ(2,3 ๊ณผ์ )์ ์ธ๊ทธ๋จผํธ์๋ "ํ์ด๋ก๋"๊ฐ ์์.
์ธ ๋ฒ์งธ(4 ๊ณผ์ ) ์ธ๊ทธ๋จผํธ๋ ํ์ด๋ก๋๋ฅผ ํฌํจํ ์ ์์.
ํ์ด๋ก๋(payload)๋ ์ ์ก๋๋ '์์ํ ๋ฐ์ดํฐ'๋ฅผ ๋ปํ๋ค. ํ์ด๋ก๋๋ ์ ์ก์ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์ด ๋๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ถ์ผ๋ก ๊ทธ ๋ฐ์ดํฐ์ ํจ๊ป ์ ์ก๋๋ ํค๋, ๋ฉํ๋ฐ์ดํฐ์ ๊ฐ์ ๋ถ๋ถ์ ์ ์ธํ๋ค. ์ฌ๊ธฐ์ ์ฒ์ 2๊ฐ ์ธ๊ทธ๋จผํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ง ์์์ ๋ปํจ.
์์ ๊ฐ์ด TCP ์ฐ๊ฒฐ ์ค์ ๊ณผ์ ์์ ๋ ํธ์คํธ ์ฌ์ด์ 3๊ฐ์ ์ธ๊ทธ๋จผํธ๊ฐ ๋ณด๋ด์ง๋ฏ๋ก, Three-way handshake ๋ผ ๋ถ๋ฆ.
๋ฐ์ดํฐ ์ก์ ๊ณผ์
1. ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค๊ฐ ์์ผ(ํ๋ก์ธ์ค์ ๊ด๋ฌธ)์ ํตํด์ ๋ฐ์ดํฐ์ ์คํธ๋ฆผ์ ์ ๋ฌ
2. ๋ฐ์ดํฐ๊ฐ ์์ผ์ ํตํด ์ ๋ฌ๋๋ฉด, ์ด์ ๋ฐ์ดํฐ๋ ํด๋ผ์ด์ธํธ์์ ๋์ํ๋ TCP์ ๋งก๊ฒจ์ง
3. TCP๋ ์ด๊ธฐ three-way handshake ๋์ ์ค๋น๋ ๋ฒํผ์ ํ๋์ธ ์ก์ ๋ฒํผ(send buffer)๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋
(๋๋๋ก TCP๋ ์ก์ ๋ฒํผ์์ ๋ฐ์ดํฐ ๋ฌถ์์ "๋ง๋ค์ด" ๋คํธ์ํฌ๋ก ๋ณด๋)
[RFC 793]์์ TCP๋ "์์ ์ด ํธํ ๋๋ก ์ธ๊ทธ๋จผํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ก", ์ฆ, TCP๊ฐ ์ธ์ ๋ฒํผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผ ํ๋์ง ์ค๋ช ํ์ง ์์.
์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ MSS(maximum segment size, ์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ)๋ก ์ ํํ๋๋ฐ, MSS๋ ์ผ๋ฐ์ ์ผ๋ก ๋ก์ปฌ ์ก์ ํธ์คํธ์ ์ํด ์ ์ก๋ ์ ์๋ ๊ฐ์ฅ ํฐ ๋งํฌ ๊ณ์ธต ํ๋ ์์ ๊ธธ์ด[MTU(maximum transmissionn unit),์ต๋ ์ ์ก ๋จ์]์ ์ํด ์ผ๋จ ๊ฒฐ์ ๋๊ณ , TCP ์ธ๊ทธ๋จผํธ(IP ๋ฐ์ดํฐ๊ทธ๋จ ์์ ์บก์ํ๋์์ ๋)์ TCP/IP ํค๋ ๊ธธ์ด(ํต์ฐ 40byte)๊ฐ ๋จ์ผ ๋งํฌ ๊ณ์ธต ํ๋ ์์ ์ผ์นํ๋๋ก ํ์ฌ ์ ํด์ง.
[RFC 1191] ์ถ๋ฐ์ง์์ ๋ชฉ์ ์ง๊น์ง ๋ชจ๋ ๋งํฌ์์ ์ ์ก๋ ์ ์๋ ๊ฐ์ฅ ํฐ ๋งํฌ ๊ณ์ธต ํ๋ ์์ธ ๊ฒฝ๋ก MTU๋ฅผ ์ฐพ๊ณ ์ด ๊ฒฝ๋ก MTU ๊ฐ์ ๊ทผ์ฒํ์ฌ MSS ์ค์ ์ ์ํ ๋ฐฉ์๋ค๋ ์ ์๋จ.
MSS๋ ํค๋๋ฅผ ํฌํจํ TCP ์ธ๊ทธ๋จผํธ์ ์ต๋ ํฌ๊ธฐ๊ฐ ์๋, ์ธ๊ทธ๋จผํธ์์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ๋ฐ์ดํฐ์ ๋ํ ์ต๋ ํฌ๊ธฐ์ด๋ค.
TCP๋ TCP ํค๋์ ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ง๋ค์ด TCP ์ธ๊ทธ๋จผํธ๋ฅผ ํ์ฑํ๊ณ ,
์ธ๊ทธ๋จผํธ๋ ๋คํธ์ํฌ ๊ณ์ธต์ ์ ๋ฌ๋๋ฉฐ, ๋คํธ์ํฌ ๊ณ์ธต IP ๋ฐ์ดํฐ๊ทธ๋จ ์์ ๊ฐ๊ฐ ์บก์ํ ๋จ.
TCP๊ฐ ์๋์๊ฒ์ ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ์ ๋, ์ธ๊ทธ๋จผํธ์ ๋ฐ์ดํฐ๋ TCP ์ฐ๊ฒฐ์ ์์ ๋ฒํผ์ ์์นํ๊ณ ,
์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋น ์์ ๋ฒํผ์์ ๋ฐ์ดํฐ์ ์คํธ๋ฆผ์ ์ฝ์.
TCP ์ฐ๊ฒฐ์ ํ์ชฝ ํธ์คํธ์์ ๋ฒํผ, ๋ณ์, ํ๋ก์ธ์ค์ ๋ํ ์์ผ ์ฐ๊ฒฐ๊ณผ ๋ค๋ฅธ ์ชฝ ํธ์คํธ์์์ ๋ฒํผ, ๋ณ์, ํ๋ก์ธ์ค์ ๋ํ ์์ผ ์ฐ๊ฒฐ์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ง. (๋ฒํผ์ ๋ณ์๋ ํธ์คํธ ๊ฐ ๋คํธ์ํฌ ์์(๋ผ์ฐํฐ, ์ค์์น, ๋ฆฌํผํฐ)์ ์ฐ๊ฒฐ์ ๋ํด์๋ ํ ๋น๋์ง ์์)
์ฐธ๊ณ ๋์ :
์ปดํจํฐ ๋คํธ์ํน ํํฅ์ ์ ๊ทผ - ์ 7ํ