์ฐ๊ฒฐ์งํฅํ ํธ๋์คํฌํธ(TCP) - ์ธ๊ทธ๋จผํธ ๊ตฌ์กฐ
TCP ์ธ๊ทธ๋จผํธ : ํค๋ ํ๋ + ๋ฐ์ดํฐ ํ๋
๋ฐ์ดํฐ : ํ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ, MSS๊ฐ ํฌ๊ธฐ ์ ํ
TCP๊ฐ ์น ๋ฌธ์์ ์ด๋ฏธ์ง์ ๊ฐ์ ํฐ ํ์ผ์ ์ ์ก ์, ์ผ๋ฐ์ ์ผ๋ก MSS ํฌ๊ธฐ๋ก ํ์ผ์ ์ชผ๊ฐฌ(๋ง์ง๋ง ๋ฌถ์์ MSS๋ณด๋ค ์์ ์ ์์).
๊ทธ๋ฌ๋ ๋ง์ ๋ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ MSS๋ณด๋ค ์์ ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ๋ฅผ ์ ์กํ๊ธฐ๋ ํจ(ex ํ ๋ท(์๊ฒฉ ๋ก๊ทธ์ธ) ํค๋(20)+๋ฐ์ดํฐ(1) = 21byte)
TCP ํค๋๋ UDP์ฒ๋ผ ์์ ๊ณ์ธต ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก๋ถํฐ ๋ค์คํ์ ์ญ๋ค์คํ๋ฅผ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ๋ฅผ ํฌํจ
๋ํ UDP์ฒ๋ผ ์ฒดํฌ์ฌ ํ๋๋ฅผ ํฌํจ.
- 32bit ์์๋ฒํธ(sequence number), 32bit ํ์ธ์๋ต๋ฒํธ(acknowledgement number) : ์ ๋ขฐ์ ์ธ ๋ฐ์ดํฐ ์ ์ก ์๋น์ค ์ง์
- 16bit ์์ ์๋์ฐ(receive window) : ํ๋ฆ ์ ์ด, ์์ ์๊ฐ ๋ฐ์๋ค์ด๋ ค๋ ๋ฐ์ดํธ์ ํฌ๊ธฐ
- 4bit ํค๋๊ธธ์ด(header length) : 32bit word ๋จ์๋ก TCP ํค๋ ๊ธธ์ด ๋ํ๋, (TCP ํค๋ ๊ธธ์ด๋ ์ต์ (option) ํ๋ ๋๋ฌธ์ ๊ฐ๋ณ์ )
- nbit ์ต์ (option) : ์ก์์ ์ ๊ฐ MSS(์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ)๋ฅผ ํ์, ๊ณ ์ ๋คํธ์ํฌ์ ์ฌ์ฉํ๊ธฐ ์ํ ์๋์ฐ ํ์ฅ ์์, ํ์์คํฌํ etc
- 6bit ํ๋๊ทธ(flag)
- CWR, ECE : ๋ช ์์ ํผ์ก ํ์์ ์ฌ์ฉ
- URG : ํด๋น ์ธ๊ทธ๋จผํธ์์ ์ก์ ์ธก ์์ ๊ณ์ธต ๊ฐ์ฒด(entity)๊ฐ "๊ธด๊ธ"์ผ๋ก ํ์ํ๋ ๋ฐ์ดํฐ์ ๋ปํจ. ๊ธด๊ธ ๋ฐ์ดํฐ์ ๋ง์ง๋ง ๋ฐ์ดํธ ์์น๋ 16bit ๊ธด๊ธ ๋ฐ์ดํฐ ํฌ์ธํฐ(urgent data pointer)์ ์ํด ํฌ์ธํ ๋จ. TCP๋ ๊ธด๊ธ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ๋ ์์ ์ธก ์์ ๊ณ์ธต ๊ฐ์ฒด์๊ฒ ํต์งํ๊ณ ๊ธด๊ธ ๋ฐ์ดํฐ์ ๋์ ๋ํ ํฌ์ธํฐ๋ฅผ ์ ๋ฌํจ.
- ACK : ํ์ธ ์๋ต ํ๋์ ์๋ ๊ฐ์ด ์ ์ฉํจ์ ๊ฐ๋ฆฌํด. ์ฑ๊ณต์ ์ผ๋ก ์์ ๋ ์ธ๊ทธ๋จผํธ์ ๋ํ ํ์ธ์๋ต.
- PSH : ์์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ ๊ณ์ธต์ ์ฆ์ ์ ๋ฌํด์ผํจ์ ๊ฐ๋ฆฌํด
- RST, SYN, FIN : ์ฐ๊ฒฐ ์ค์ ๊ณผ ํด์
(PSH, URG ๋ฐ ๊ธด๊ธ ๋ฐ์ดํฐ ํฌ์ธํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ์ง ์์)
์์ ๋ฒํธ์ ํ์ธ์๋ต ๋ฒํธ
TCP ์ธ๊ทธ๋จผํธ ํค๋์์ ๊ฐ์ฅ ์ค์ํ ๋ ๊ฐ์ง ํ๋๋ก TCP์ ์ ๋ขฐ์ ์ธ ๋ฐ์ดํฐ ์ ์ก ์๋น์ค์ ์ค๋ํ ๋ถ๋ถ์ ๊ธฐ์ฌ.
์์ ๋ฒํธ
TCP๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํ๋์ด ์์ง ์๊ณ , ๋จ์ง ์์๋๋ก ์ ๋ ฌ๋ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ์ทจ๊ธ
๋ฐ๋ผ์ ์์๋ฒํธ๋ ์ผ๋ จ์ ์ ์ก๋ ์ธ๊ทธ๋จผํธ์ ๋ํด์๊ฐ ์๋, ์ ์ก๋ ๋ฐ์ดํธ์ ์คํธ๋ฆผ๊ณผ ๊ด๋ จ
์ธ๊ทธ๋จผํธ์ ๋ํ ์์๋ฒํธ : ์ธ๊ทธ๋จผํธ์ ์๋ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ-์คํธ๋ฆผ ๋ฒํธ
์ด๊ธฐ ์์ ๋ฒํธ(ISN,initial sequence number)๋ ์์๋ก ์ ํ
์ด์ : ๋ ํธ์คํธ ์ฌ์ด์ ์ด๋ฏธ ์ข ๋ฃ๋ ์ฐ๊ฒฐ๋ก๋ถํฐ ์์ง ๋คํธ์ํฌ์ ๋จ์ ์๋ ์ธ๊ทธ๋จผํธ๊ฐ ๋์ผ ๋ ํธ์คํธ ๊ฐ์ ๋์ค ์ฐ๊ฒฐ(๋ํ ์ด์ ์ ์ฐ๊ฒฐ๊ณผ ๊ฐ์ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํด์ ๋ฐ์)์์ ์ ํจํ ์ธ๊ทธ๋จผํธ๋ก ์ค์ธ๋ ํ๋ฅ ์ ์ต์ํ
. ์ด๊ธฐ TCP ์ฐ๊ฒฐ์ค์ ์ ์ํจ
. ๋์ ๋ฐ์๊ธฐ๋ก ์ด๊ธฐ ์์๋ฒํธ(ISN)๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ ์์๋ฒํธ ํ๋์ ๋ฃ์ด ๋ณด๋
.. ๋์ ๋ฐ์๊ธฐ : ๋งค 4 ใฒ ๋ง๋ค 1์ฉ ์ฆ๊ฐํ๋ 12 ๋นํธ ์นด์ดํฐ์ ์ํด ๊ตฌํ๋จ
. TCP๋ ์๋ฐฉํฅ์ด๋ฏ๋ก ๊ฐ ๋ฐฉํฅ ๋ง๋ค ๋ค๋ฅธ ISN ๋ฒํธ๊ฐ ์ฌ์ฉ๋จ
์์์ ISN ์ฌ์ฉ์ ์ด์
์ธ๊ทธ๋จผํธ ๊ตฌ๋ถ: ์์์ ISN์ ์ฌ์ฉํจ์ผ๋ก์จ, ์ ์ฐ๊ฒฐ์ ์ด์ ์ฐ๊ฒฐ์ ์ธ๊ทธ๋จผํธ์ ์ฝ๊ฒ ๊ตฌ๋ถ๋ ์ ์์
๋ณด์ ๊ฐํ: ์์ธก ๊ฐ๋ฅํ ์์ ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ฉด TCP ์ํ์ค ๋ฒํธ ์์ธก ๊ณต๊ฒฉ(TCP Sequence Prediction Attack)์ ์ทจ์ฝํด์ง ์ ์์.
์์์ ISN์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ณต๊ฒฉ์ ๋ฐฉ์ง
์ฐ๊ฒฐ์ ๊ณ ์ ์ฑ ๋ณด์ฅ: ๊ฐ ์ฐ๊ฒฐ๋ง๋ค ๋ค๋ฅธ ISN์ ์ฌ์ฉํจ์ผ๋ก์จ, ์ฐ๊ฒฐ์ ๊ณ ์ ์ฑ์ ๋ณด์ฅํ๊ณ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์ง
ex)
ํ์ผ : ๋ฐ์ดํฐ ์คํธ๋ฆผ 500,000๋ฐ์ดํธ
๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ 0์ผ๋ก ์ค์
MSS : 1000๋ฐ์ดํธ
์์ ์กฐ๊ฑด์ ๊ฐ์ ํ๋ฉด TCP๋ MSS๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ผ๋ก๋ถํฐ 500๊ฐ์ ์ธ๊ทธ๋จผํธ๋ค์ ๊ตฌ์ฑ
์ฒซ ๋ฒ์งธ ์ธ๊ทธ๋จผํธ ์์๋ฒํธ = 0, ๋ ๋ฒ์งธ ์ธ๊ทธ๋จผํธ ์์๋ฒํธ = 1,000, ์ธ ๋ฒ์งธ ์ธ๊ทธ๋จผํธ ์์๋ฒํธ 2,000๊ณผ ๊ฐ์ด ํ ๋น
๊ฐ ๊ฐ์ ์์๋ฒํธ๋ ์ ์ ํ TCP ์ธ๊ทธ๋จผํธ์ ํค๋ ๋ด๋ถ์ ์์๋ฒํธ ํ๋์ ์ฝ์
ํ์ธ์๋ต ๋ฒํธ
TCP๋ ํธ์คํธ A๊ฐ B๋ก ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ ๋์ ํธ์คํธ B๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์๋ ์ ์ด์ค ๋ฐฉ์
ํธ์คํธ A๊ฐ ์์ ์ ์ธ๊ทธ๋จผํธ์ ์ฝ์ ํ๋ ํ์ธ์๋ต ๋ฒํธ : ํธ์คํธ A๊ฐ ํธ์คํธ B๋ก๋ถํฐ ๊ธฐ๋ํ๋ ๋ค์ ๋ฐ์ดํธ์ ์์๋ฒํธ
ex)
์1 : ํธ์คํธ A๊ฐ B๋ก๋ถํฐ 0 ~ 535๊น์ง ๋ฒํธ๊ฐ ๋ถ์ ๋ชจ๋ ๋ฐ์ดํธ๋ฅผ ์์ ํ ํธ์คํธ B๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ์ก์ ํ๋ ค ํจ
ํธ์คํธ A๋ ํธ์คํธ B์ ๋ฐ์ดํฐ ์คํธ๋ฆผ์์ 536๋ฒ์งธ ๋ฐ์ดํธ์ ๊ทธ๋ค์ ์ค๋ ๋ชจ๋ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ธฐ ๋๋ฌธ์
์ธ๊ทธ๋จผํธ ํ์ธ์๋ต ๋ฒํธ ํ๋์ 536์ ์ฝ์ ํ๊ณ B์ ์ก์ ํจ
์ 2 : ํธ์คํธ A๊ฐ B๋ก๋ถํฐ 0 ~ 535 ๋ฐ์ดํธ ํฌํจํ๋ ์ธ๊ทธ๋จผํธ์ 900 ~1,000 ๋ฐ์ดํธ๋ฅผ ํฌํจํ๋ ๋ ๋ค๋ฅธ ์ธ๊ทธ๋จผํธ๋ฅผ ์์
๋ฌธ์ => ํธ์คํธ A๋ 536 ~ 899์ ๋ฐ์ดํธ๋ฅผ ์์ง ์์ ํ์ง ์์๊ธฐ ๋๋ฌธ์,
ํธ์คํธ A๋ ํธ์คํธ B์ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ฌ์ฑ์ฑํ๊ธฐ ์ํด 536๋ฒ์งธ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ค๋ฆผ. ๋ฐ๋ผ์ B์ ๋ํ A์ ๋ค์ ์ธ๊ทธ๋จผํธ ํ์ธ์๋ต ๋ฒํธ๋ 536์ ๊ฐ์ง.
์ฆ, TCP๋ ์คํธ๋ฆผ์์ ์ฒซ ๋ฒ์งธ ์์ด๋ฒ๋ฆฐ ๋ฐ์ดํธ๊น์ง์ ๋ฐ์ดํธ๋ค๊น์ง๋ง ํ์ธ ์๋ตํ๋ ๋์ ํ์ธ์๋ต(cumulative acknowledgment)์ ์ ๊ณต
์์๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ ๋ ํธ์คํธ์ ๋์ ๋ฐฉ์
TCP RFC๋ ์ด์ ๋ํด ์ด๋ค ๊ท์น๋ ๋ถ์ฌํ์ง ์๊ณ , TCP ๊ตฌํ ๊ฐ๋ฐ์์ ์ฑ ์์ด ๋จ.
๋ฐฉ์ 1) ์์๊ฐ ํ๋ฆฐ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฆ์ ๋ฒ๋ฆผ
์ฅ์ : ์์ ์ ์ค๊ณ์ ๋จ์ํ
๋ฐฉ์ 2) ์์๊ฐ ํ๋ฆฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ๊ณ , ๋น ๊ณต๊ฐ์ ์์ด๋ฒ๋ฆฐ ๋ฐ์ดํฐ๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ๊ธฐ๋ค๋ฆผ
์ฅ์ : ๋คํธ์ํฌ ๋ฐด๋ํญ ๊ด์ ์์ ํจ์จ์ (์ค์ ๋ง์ด ์ฌ์ฉ)
์ฐธ๊ณ ๋์ ๋ฐ ์๋ฃ :
์ปดํจํฐ ๋คํธ์ํน ํํฅ์ ์ ๊ทผ - ์ 7ํ
https://ko.wikipedia.org/wiki/%ED%8E%98%EC%9D%B4%EB%A1%9C%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)
ํ์ด๋ก๋ (์ปดํจํ ) - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ํ์ด๋ก๋(์์ด: payload)๋ ์ ์ก๋๋ '์์ํ ๋ฐ์ดํฐ'๋ฅผ ๋ปํ๋ค. ํ์ด๋ก๋๋ ์ ์ก์ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์ด ๋๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ถ์ผ๋ก ๊ทธ ๋ฐ์ดํฐ์ ํจ๊ป ์ ์ก๋๋ ํค๋,
ko.wikipedia.org
http://www.ktword.co.kr/test/view/view.php?m_temp1=1889&id=1103
TCP Header
TCP Header Transmission Control Protocol Header TCP ํค๋(2023-04-30)์ด๊ธฐ ์์๋ฒํธ, ISN, Window Size , ์๋์ฐ ํฌ๊ธฐ , Windowsize, Acknowledgement Number, ํ์ธ์๋ต ๋ฒํธ 1. TCP ์ธ๊ทธ๋จผํธ ๋ด ํค๋ ๊ตฌ์ฑ โป [์ฐธ๊ณ ] TCP ํค๋ ํฌ
www.ktword.co.kr