TCP Sequence Number์™€ ACK Number
Network

TCP Sequence Number์™€ ACK Number

1. TCP ํŒจํ‚ท

TCP ํŒจํ‚ท์€ UDP ํŒจํ‚ท๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ ์–‘์„ ์กฐ์ ˆํ•˜๋Š” ํ๋ฆ„ ์ œ์–ด, ๋ฐ์ดํ„ฐ ์œ ์‹ค์— ๋Œ€์ฒ˜ํ•˜๋Š” ์˜ค๋ฅ˜ ์ œ์–ด, ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ์— ๋”ฐ๋ผ ํ˜ผ์žก ์ œ์–ด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์œ„ํ•˜์—ฌ TCP๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 3 way Handshaking์„ ํ†ตํ•˜์—ฌ ์„ธ์…˜์„ ๋งบ๊ณ  ํ†ต์‹ ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ†ต์‹  ๊ณผ์ •์—์„œ "์„ธ์…˜ ๋งบ์ž!" SYN ํŒจํ‚ท(์„ธ์…˜ ๋งบ์€ ํ›„์—๋Š” ๋ฐ์ดํ„ฐ ํŒจํ‚ท)์„ ์ „์†กํ•˜๊ณ "์˜ค์ผ€์ด, ํŒจํ‚ท ๋ฐ›์•˜์–ด! ๋‹ค์Œ ํŒจํ‚ท ๋ณด๋‚ด์ค˜!" ACK ํŒจํ‚ท์„ ํ†ตํ•ด "๋‚ด๊ฐ€ ๋ณด๋‚ธ ํŒจํ‚ท์„ ์ƒ๋Œ€๋ฐฉ์ด ์ง„์งœ ๋ฐ›์•˜๊ตฌ๋‚˜?" ํ™•์ธ ํ›„ ๋‹ค์Œ ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ACK ํŒจํ‚ท์„ ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด "์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์œ ์‹ค๋˜์—ˆ๋‚˜? ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ณด๋‚ด์•ผ๊ฒ ๋‹ค!" ํŒจํ‚ท์„ ์žฌ์ „์†กํ•˜๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‹ค์ œ ํ†ต์‹ ์„ ์‹œ์ž‘ํ•˜๊ณ  ๊ต‰์žฅํžˆ ๋งŽ์€ ํŒจํ‚ท๋“ค์ด ์™”๋‹ค ๊ฐ”๋‹ค ํ• ํ…๋ฐ ๊ทธ๋Ÿผ ๊ทธ๋•Œ "๋ฐฉ๊ธˆ ๋ฐ›์€ ACK ํŒจํ‚ท์ด ์–ด๋–ค ํŒจํ‚ท์— ๋Œ€ํ•œ ACK ํŒจํ‚ท์ธ์ง€ ์–ด๋–ป๊ฒŒ ์•Œ์ง€,,,?" ํ™•์ธ์ด ํ•„์š”ํ–ˆ๊ณ  ์ด๋ฅผ ์œ„ํ•ด Sequence Number์™€ ACK Number๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ฐ ๊ณ„์ธต์—์„œ๋Š” ๊ฐ ๊ณ„์ธต ํ†ต์‹ ์„ ์œ„ํ•œ ํ—ค๋”๊ฐ€ ๋ถ™๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ „์†ก ๊ณ„์ธต(Layer 4)์—์„œ๋Š” TCP ํ†ต์‹ ์„ ์œ„ํ•œ ํ—ค๋”๊ฐ€ ๋ถ™๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๊ฐ€ ์žˆ๊ณ  ์˜ต์…˜ ํ•„๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ ํ•„์ˆ˜ ํ•„๋“œ๋กœ๋Š” 20bytes, ์˜ต์…˜ ํ•„๋“œ๋Š” 32bytes๋กœ ํ—ค๋” ํฌ๊ธฐ๋Š” ์ตœ์†Œ 20bytes ~ ์ตœ๋Œ€ 60bytes์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์ค‘์š”ํ•˜๊ฒŒ ํ™•์ธํ•  ํ•„๋“œ๋Š” Sqeunce Number, ACK Number ํ•„๋“œ์ž…๋‹ˆ๋‹ค.

 

 

Squence Number๋Š” TCP ์„ธ๊ทธ๋จผํŠธ์˜ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. Sequence Number ํ•„๋“œ์—๋Š” ์ „์†ก๋˜๋Š” ์„ธ๊ทธ๋จผํŠธ์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ํ‘œ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท์„ ์บก์ณํ•ด์„œ ํ™•์ธํ•ด๋ณด๋ฉด ํ•ด๋‹น ํŒจํ‚ท์€ 1129๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 1181๊นŒ์ง€์˜ TCP ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ์žˆ์–ด Sequence Number๋Š” 1129๋กœ ํ‘œ๊ธฐ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

- Sequence Number : 1129

- Next Sequence Number : 1182

 

ACK Number๋Š” ์ƒ๋Œ€๋ฐฉ์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ›์•„์•ผํ•˜๋Š” ๋‹ค์Œ TCP ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฒˆํ˜ธ ์•ž๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ ์™„๋ฃŒํ•˜์—ฌ ํ•ด๋‹น ๋ฒˆํ˜ธ TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•ด๋‹ฌ๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ท์„ ์บก์ณํ•ด์„œ ํ™•์ธํ•ด๋ณด๋ฉด ํ•ด๋‹น ํŒจํ‚ท์€ 4472๊นŒ์ง€ ์ฒ˜๋ฆฌํ–ˆ๊ณ  ๋‹ค์Œ์ธ 4473 TCP ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์žˆ์–ด ACK Number๋Š” 4473์œผ๋กœ ํ‘œ๊ธฐ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

- Acknowledgment Number : 4473

 

 

2. ํ†ต์‹  ๊ณผ์ •

TCP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” HTTPS์˜ ์‹ค์ œ ํ†ต์‹  ๊ณผ์ •์ž…๋‹ˆ๋‹ค. TCP 3 way Handshaking, TLS 4 way Handshaking ํ›„ ์•”ํ˜ธํ™”๋œ Data๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒจํ‚ท์—์„œ๋Š” ์•„๋ž˜ ๋ณด์ด๋Š”๊ฒƒ์ฒ˜๋Ÿผ Sequence Number์™€ ACK Number๋ฅผ ๊ฐ€์ง€๊ณ  ํ†ต์‹ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

TCP 3 way Handshaking

(Client์™€ Server ๋ชจ๋‘ Sqeunce Number๋Š” 0์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘)

TLS 4 way Handshaking

Data ์ „์†ก

 

3. Sequence Number(raw)?

ํ•„๋“œ๋ฅผ ๋ณด๊ฒŒ ๋˜๋ฉด raw๊ฐ€ ๋ถ™์€ ํ•„๋“œ์™€ ๋ถ™์ง€ ์•Š์€ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Squence Number(raw)๊ฐ€ ์‹ค์ œ TCP ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ ๋ฒˆํ˜ธ์ด๋ฉฐ Squence Number๋Š” ๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ ๊ฐ€๊ณต๋œ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ํ†ต์‹ ์ด ์‹œ์ž‘ํ•˜๋ฉฐ ๋‚œ์ˆ˜์ธ ISN(Initial Sequence Number)๊ฐ€ ๊ฒฐ์ •๋˜๊ณ  ํ•ด๋‹น ๋ฒˆํ˜ธ๋ถ€ํ„ฐ ์ˆœ์„œ๊ฐ€ ์‹œ์ž‘๋˜์–ด Sequence Number(raw)๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๊ตณ์ด ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์„œ ์นด์šดํŒ…ํ•˜๋Š” ์ ˆ์ฐจ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์ด์œ ๋Š”,,,? ๋งŒ์•ฝ ๋ชจ๋“  TCP ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ ๋ฒˆํ˜ธ๊ฐ€ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ Sequence Number๋ฅผ ์ด์šฉํ•œ ํ•ดํ‚น(TCP Seq Prediction Attack)์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ณ  Port๊ฐ€ ์žฌํ™œ์šฉ๋˜๋ฉฐ Sequence Number๊ฐ€ ์ค‘๋ณต๋˜์–ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.