๊ด€๋ฆฌ ๋ฉ”๋‰ด

Unfazedโ—๏ธ๐ŸŽฏ

TCP ํ”„๋กœํ† ์ฝœ - TCP ํ—ค๋” ๊ตฌ์กฐ ๋ณธ๋ฌธ

Network (๋„คํŠธ์›Œํฌ)/Mobile Network (๋ชจ๋ฐ”์ผ๋„คํŠธ์›Œํฌ)

TCP ํ”„๋กœํ† ์ฝœ - TCP ํ—ค๋” ๊ตฌ์กฐ

9taetae9 2024. 12. 9. 10:30
728x90

TCP(Transport Control Protocol)๋Š” IP ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

 

์ฃผ์š” ๊ธฐ๋Šฅ
• ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ์ œ๊ณต
 ์ „์ด์ค‘ (full-duplex) ๋ฐฉ์‹์˜ ์–‘๋ฐฉํ–ฅ ๊ฐ€์ƒ ํšŒ์„  ์ œ๊ณต
• ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณด์žฅ

TCP/IP ๊ตฌ์กฐ

์ผ๋ฐ˜์ ์œผ๋กœ ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์€ ์šด์˜์ฒด์ œ ๋‚ด๋ถ€ ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„ (์ƒ์œ„ ๊ณ„์ธต์—์„œ ์‹œ์Šคํ…œ ์ฝœ๋กœ ํ”„๋กœ๊ทธ๋žจ ํ˜ธ์ถœํ•˜์—ฌ ์ด์šฉ)
TCP์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๊ทธ๋จผํŠธ (segment)๋ผ๋Š” ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์ „์†ก
• ์ „์†ก๋˜๋Š” ๋ธ”๋ก ํฌ๊ธฐ๋Š” ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ ์ •๋„, ์œˆ๋„์šฐ ํฌ๊ธฐ ๋“ฑ์— ์˜ํ–ฅ์„ ๋ฐ›์Œ
• ๊ฐ€๋ณ€ ํฌ๊ธฐ
• ์„ธ๊ทธ๋จผํŠธ๋‹น ์ˆœ์„œ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜์ง€ ์•Š๊ณ , ์„ธ๊ทธ๋จผํŠธ์— ์‹ค์–ด ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ์ˆœ์„œ ๋ฒˆํ˜ธ์— ๋ฐ˜์˜
• ์„ธ๊ทธ๋จผํŠธ ์ „์†ก ์˜ˆ์‹œ
• ์„ธ๊ทธ๋จผํŠธ 1
• ๋ฐ์ดํ„ฐ: "Hello, World!" (13๋ฐ”์ดํŠธ)
• ์‹œ์ž‘ ๋ฐ”์ดํŠธ: 1
• ๋ฐ์ดํ„ฐ ๋ฐ”์ดํŠธ ์ˆ˜: 13
• ์„ธ๊ทธ๋จผํŠธ 2
• ๋ฐ์ดํ„ฐ: "This is a test." (15๋ฐ”์ดํŠธ)
• ์‹œ์ž‘ ๋ฐ”์ดํŠธ: 14
• ๋ฐ์ดํ„ฐ ๋ฐ”์ดํŠธ ์ˆ˜: 15

 

TCP ํ—ค๋” ๊ตฌ์กฐ

TCP ํ—ค๋” ๊ตฌ์กฐ

TCP์˜ ์„ธ๊ทธ๋จผํŠธ๋Š” ์œ„์™€ ๊ฐ™์€ ํ—ค๋” ๊ตฌ์กฐ๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์ „์†ก ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์–ด์ง„๋‹ค. (๊ทธ๋ฆผ ์ƒ๋‹จ์˜ ์ˆซ์ž๋Š” ๋น„ํŠธ ์ˆ˜)

๋งˆ์ง€๋ง‰ ์ค„์˜ ์˜ต์…˜๊ณผ ํŒจ๋”ฉ์€ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ TCP ํ—ค๋”์˜ ์ตœ์†Œ ํฌ๊ธฐ๋Š” 20 ๋ฐ”์ดํŠธ์ด๋‹ค.

Options ํ•„๋“œ๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ฉฐ ์ตœ๋Œ€ 40 ๋ฐ”์ดํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์›ํ•œ๋‹ค.

Padding์€ ํ—ค๋”์˜ ํฌ๊ธฐ๋ฅผ 4๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋งž์ถ”๋ ค๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.

 

TCP ํ—ค๋” ํ•„๋“œ

Source Port/Destination Port(์†ก์‹  ํฌํŠธ/ ์ˆ˜์‹  ํฌํŠธ) : 

TCP๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฐ€์ƒ ํšŒ์„  ์–‘๋‹จ์˜ ์†ก์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ๋„คํŠธ์›Œํฌ ํฌํŠธ ์ฃผ์†Œ

ํฌํŠธ : ์†ก์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋˜๋Š” ๋„คํŠธ์›Œํฌ ์ž์›

IP ์ฃผ์†Œ => ํ˜ธ์ŠคํŠธ ๊ตฌ๋ถ„, ํฌํŠธ ์ฃผ์†Œ => ํ˜ธ์ŠคํŠธ ๋‚ด ํ”„๋กœ์„ธ์Šค ๊ตฌ๋ถ„

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” TCP์™€ UDP๊ฐ€ ๋ณ„๋„์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๋ฒˆํ˜ธ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์†ก์ˆ˜์‹  ํฌํŠธ ๋ฒˆํ˜ธ ๋ฒ”์œ„ : 0 ~ 2^16 -1

 

Sequence Number(์ˆœ์„œ ๋ฒˆํ˜ธ) : 

์†ก์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง€์ •ํ•˜๋Š” ์ˆœ์„œ ๋ฒˆํ˜ธ

์„ธ๊ทธ๋จผํŠธ ์ „์†ก๊ณผ์ •์—์„œ ์ „์†ก๋˜๋Š” ๋ฐ”์ดํŠธ์˜ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฆ๊ฐ€

๋ฒ”์œ„ : 0 ~ 2^32 -1

์ตœ์ดˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก ์‹œ์—๋Š” ์ž„์˜์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•ด ์ „์†ก =>. ์ „์†ก ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์„ ๋–„ ์ˆœ์„œ ๋ฒˆํ˜ธ๊ฐ€ ํ˜ผ์„œ๋˜๋Š” ๊ฒƒ ๋ฐฉ์ง€

 

Acknowledgement Nubmer(์‘๋‹ต ๋ฒˆํ˜ธ) :

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ˆ˜์‹ ํ•œ ๋ฐ”์ดํŠธ์˜ ์ˆ˜๋ฅผ ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

ACK ํ”„๋ž˜๊ทธ ๋น„ํŠธ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ์— ์œ ํšจ : ๋‹ค์Œ์— ์ˆ˜์‹ ์„ ๊ธฐ๋Œ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ

ACK ์‘๋‹ต์„ ๋ฐ›์€ ์†ก์‹  ํ”„๋กœ์„ธ์Šค๋Š” Acknowledgement Number - 1 ๊นŒ์ง€์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ฌ๋ฐ”๋กœ ์ „์†ก๋˜์—ˆ์Œ์„ ํ™•์ธํ•จ

์—ฐ๊ฒฐ ์„ค์ •์ด๋‚˜ ์—ฐ๊ฒฐ ํ•ด์ œ ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ˆœ์„œ ๋ฒˆํ˜ธ๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ํ•จ

 

Data Offset(๋ฐ์ดํ„ฐ ์˜ต์…‹) :

TCP ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ TCP ํ—ค๋”์˜ ํฌ๊ธฐ๊ฐ€ ๋จ

32๋น„ํŠธ ์›Œ๋“œ ๋‹จ์œ„๋กœ ํ‘œ์‹œ

 

Reserved(์˜ˆ์•ฝ) : ์˜ˆ์•ฝ ํ•„๋“œ

 

ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ 8๊ฐœ : ์•„๋ž˜์—์„œ ์„ธ๋ถ€์ ์œผ๋กœ ๋‹ค๋ฃธ

 

Window(์œˆ๋„์šฐ) :

์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ํ”„๋กœํ† ์ฝœ์˜ ์ˆ˜์‹  ์œˆ๋„์šฐ์˜ ๋ฒ„ํผ ํฌ๊ธฐ

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜์‹  ๊ฐ€๋Šฅํ•œ ๋ฐ”์ดํŠธ์˜ ์ˆ˜๋ฅผ ํ‘œ์‹œ

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์˜ ๋ฒ„ํผ ์šฉ๋Ÿ‰ ์ดˆ๊ณผ ๋“ฑ์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์ด์ƒ ์ˆ˜์‹ ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด Window ํ•„๋“œ ๊ฐ’์„ 0์œผ๋กœ ์ง€์ •

=> 0์ธ ๊ฒฝ์šฐ ์†ก์‹  ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ์ „์†กํ•˜๋ฉด ์•ˆ๋จ

 

Checksum(์ฒดํฌ์„ฌ) : 

TCP ์„ธ๊ทธ๋จผํŠธ์— ํฌํ•จํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ํ—ค๋”์™€ ๋ฐ์ดํ„ฐ ๋ชจ๋‘์— ๋Œ€ํ•œ ๋ณ€ํ˜• ์˜ค๋ฅ˜ ๊ฒ€์ถœ

IP ํ”„๋กœํ† ์ฝœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ฅ˜ ๊ฒ€์ถœ ๋ฐฉ์‹ ์ด์šฉ

 

Urgent Pointer(๊ธด๊ธ‰ ํฌ์ธํ„ฐ) :

URG ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ์— ์œ ํšจ

์†ก์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ธด๊ธ‰ํžˆ ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Œ

ex) Sequence Number = 2000, Urgent Pointer = 100 ์œผ๋กœ ์ง€์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ ์ „์†ก์‹œ

  - ์ˆœ์„œ ๋ฒˆํ˜ธ 2000~2099๋ฒˆ ๋ฐ์ดํ„ฐ ๊ธด๊ธ‰ ๋ฐ์ดํ„ฐ๋กœ ์ „์†ก, 2100๋ฒˆ ์ดํ›„๋Š” ๋‹ค์‹œ ์ •์ƒ ๋ฐ์ดํ„ฐ๋กœ ์ „์†ก

RFC 6093์—์„œ ๋น„์‚ฌ์šฉ ๊ถŒ์žฅ

 

TCP ํ—ค๋” ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ

TCP ํ—ค๋”์—๋Š” ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ 8๊ฐœ๊ฐ€ ์ง€์ •๋˜์–ด ์žˆ๊ณ , ์ฒ˜์Œ 2๊ฐœ ๋น„ํŠธ๋Š” ํ˜ผ์žก ์ œ์–ด ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๊ณ  ๋‚˜๋จธ์ง€ 6๊ฐœ ํ•„๋“œ์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.

TCP ํ—ค๋”์˜ ์ œ์–ด ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ(๋…ธ๋ž€ ์ƒ‰ ๋ถ€๋ถ„)

URG :

Urgent Pointer ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ์ง€ ๋‚˜ํƒ€๋ƒ„

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์˜ ์‘์šฉ ๊ณ„์ธต์— ๊ธด๊ธ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ–ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ, ๋ฐ์ดํ„ฐ๊ฐ€ ์‘์šฉ ๊ณ„์ธต์— ์ „๋‹ฌ๋˜์ง€ ์ „์— ๊ธด๊ธ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์™”์Œ์„ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ฃผ์–ด ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ. ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋Š” Urgent Pointer ๊ฐ’์„ ์ฝ์–ด๋ณด๊ณ  ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ธด๊ธ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ.

 

ACK : 

Acknowledgement Number ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ์ง€ ๋‚˜ํƒ€๋ƒ„

์ •์ƒ์ ์ธ ํ”ผ๊ธฐ๋ฐฐํ‚น ๋ฐฉ์‹์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹  ํ™˜๊ฒฝ์—์„œ, ์–‘๋‹จ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‰ฌ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์ตœ์ดˆ ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •์—์„œ ์ „์†ก๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ(Conn_Req(SYN ํŒจํ‚ท))๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์„ธ๊ทธ๋จผํŠธ์˜ ACK ๋น„ํŠธ๊ฐ€ 1๋กœ ์ง€์ •๋จ.

 

PSH :

ํ˜„์ œ ์„ธ๊ทธ๋จผํŠธ์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์œ„ ๊ณ„์ธต์— ์ฆ‰์‹œ ์ „๋‹ฌํ•˜๋„๋ก ์ง€์‹œํ•  ๋•Œ ์‚ฌ์šฉ

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ PSH ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ์‘๋‹ต ํ”„๋ ˆ์ž„์ด ๋„์ฐฉํ•˜๋ฉด, ํ”„๋ ˆ์ž„์˜ Acknowledgement Number ํ•„๋“œ์— ํ‘œ์‹œํ•œ ์ˆซ์ž๊นŒ์ง€์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ๋Œ€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์œ„ ๊ณ„์ธต์— ์ „๋‹ฌ๋˜์—ˆ์Œ์„ ์˜๋ฏธ

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์˜ TCP ๊ณ„์ธต์— ๋ฒ„ํผ๋ง๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰์‹œ ์ƒ์œ„ ๊ณ„์ธต์— ์ „์†กํ•จ์œผ๋กœ์จ ์ „์†ก ์ง€์—ฐ๋„ ๊ฐ์†Œํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Œ

 

RST :

์—ฐ๊ฒฐ์˜ ๋ฆฌ์…‹์ด๋‚˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ์‘๋‹ต

์†ก์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ „์†ก์„ ๋งˆ์ณค์œผ๋‚˜ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์— ์•„์ง ๋„์ฐฉํ•˜์ง€ ๋ชปํ•œ ์„ธ๊ทธ๋จผํŠธ ํ˜น์€ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„์ง ๊ธ์ • ์‘๋‹ตํ•˜์ง€ ์•Š์€ ์„ธ๊ทธ๋จผํŠธ๋Š” ์—ฐ๊ฒฐ์ด ์žฌ์„ค์ •๋˜์—ˆ์„ ๋•Œ ์žฌ์ „์†ก ๋˜์–ด์•ผํ•จ

 

SYN :

์—ฐ๊ฒฐ ์„ค์ • ์š”๊ตฌ๋ฅผ ์˜๋ฏธํ•˜๋Š” ํ”„๋ž˜๊ทธ ๋น„ํŠธ๋กœ ๊ฐ€์ƒ ํšŒ์„  ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์—์„œ ์‚ฌ์šฉ

 

FIN :

์ ์ง„์  ๋ฐฉ์‹์˜ ์—ฐ๊ฒฐ ํ•ด์ œ ์š”์ฒญ (์ „์†ก ๊ณผ์ •์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ณ„์† ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ , ์ƒ๋Œ€ํŽธ ํ”„๋กœ์„ธ์Šค ๋ฐ์ดํ„ฐ ์ „์†ก์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ)

์ƒ๋Œ€์—๊ฒŒ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ์˜์‚ฌ๋ฅผ ์•Œ๋ฆผ

์–‘์ชฝ ํ”„๋กœ์„ธ์Šค ๋ชจ๋‘ FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ์ „์†กํ•ด์•ผ ์—ฐ๊ฒฐ์ด ํ•ด์ œ๋จ

 

์ ์ง„์  ์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •
TCP ์—ฐ๊ฒฐ ์ข…๋ฃŒ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 4-way handshake ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง
1. FIN ํŒจํ‚ท ์ „์†ก
์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๋ ค๋Š” ์ชฝ (์˜ˆ: ํด๋ผ์ด์–ธํŠธ)์ด FIN ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋œ TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†ก
"๋‚˜๋Š” ๋” ์ด์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š์„ ๊ฒƒ"์ด๋ผ๋Š” ์˜๋ฏธ
2. ACK ํŒจํ‚ท ์ˆ˜์‹ 
์ƒ๋Œ€๋ฐฉ (์˜ˆ: ์„œ๋ฒ„)์€ ํด๋ผ์ด์–ธํŠธ์˜ FIN ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•˜๊ณ , ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ACK ํŒจํ‚ท์„ ์ „์†ก
ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ FIN ํŒจํ‚ท์„ ์ˆ˜์‹ ํ–ˆ์Œ์„ ์•Œ๊ฒŒ ๋จ
3. ์„œ๋ฒ„์˜ FIN ํŒจํ‚ท ์ „์†ก
์„œ๋ฒ„๊ฐ€ ๋” ์ด์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ๊ฒฐ์ •ํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ FIN ํŒจํ‚ท์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก
"๋‚˜๋„ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ฒ ๋‹ค"๋Š” ์˜๋ฏธ
4. ํด๋ผ์ด์–ธํŠธ์˜ ACK ์ˆ˜์‹ 
ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ FIN ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•˜๊ณ , ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ACK ํŒจํ‚ท์„ ์ „์†ก
์–‘์ชฝ ๋ชจ๋‘ ์—ฐ๊ฒฐ์ด ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์Œ์„ ํ™•์ธ

 

ํ˜ผ์žก ์ œ์–ด

TCP ํ”„๋กœํ† ์ฝœ์— ์ถ”๊ฐ€๋œ ECN(Explicit Congestion Notification) ๊ธฐ๋Šฅ์€

๋ผ์šฐํ„ฐ๊ฐ€ ์†ก์‹  ํ”„๋กœ์„ธ์Šค์— ๋ช…์‹œ์ ์œผ๋กœ ํ˜ผ์žก ๋ฐœ์ƒ์„ ์•Œ๋ ค์ฃผ์–ด ์†ก์‹  ํ”„๋กœ์„ธ์Šค ์Šค์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์™„ํ™”ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

TCP๋Š” ECN ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์œ„ํ•ด CWR ํ•„๋“œ์™€ ECE ํ•„๋“œ๋ฅผ ์ •์˜ํ•œ๋‹ค.

CWR(Congestion Window Reduced) :

ECE ๋น„ํŠธ๋ฅผ ์ˆ˜์‹ ํ•œ ์†ก์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์†ก์‹  ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ค„์˜€์Œ์„ ํ†ต์ง€ํ•˜๊ณ  ๋”์ด์ƒ ECE๋ฅผ ์ „์†กํ•˜์ง€ ๋ง๋ผ๋Š” ์˜๋ฏธ 

ECE(Explicit Congestion Notification Echo, ECN-Echo) :

๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์งˆ ๋•Œ ๋ผ์šฐํ„ฐ๊ฐ€ ์†ก์‹  ํ”„๋กœ์„ธ์Šค์— ๋ช…์‹œ์ ์œผ๋กœ ํ˜ผ์žก์„ ์•Œ๋ฆผ

**์†ก์‹  ํ”„๋กœ์„ธ์Šค์— ์ง์ ‘ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ , IP ํ—ค๋”์˜ ECN ํ•„๋“œ์— CE ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ๊ฐ„์ ‘์ ์œผ๋กœ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์— ์•Œ๋ ค์ค€ ํ›„,

์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์˜ ์ค‘๊ฐœ Echo๋ฅผ ๊ฑฐ์ณ ์†ก์‹  ํ”„๋กœ์„ธ์Šค์— ํ†ต์ง€๋จ

ECN ๋™์ž‘ ์›๋ฆฌ

๋ผ์šฐํ„ฐ๊ฐ€ IP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค์˜ ์ค‘๊ฐœ๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ํ†ต์ง€ํ•˜๋Š” ์ด์œ  : ๋ผ์šฐํ„ฐ๊ฐ€ TCP ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ

 

๊ด€๋ จ IP ํ—ค๋” ํ”Œ๋ ˆ๊ทธ

ECN(2๋น„ํŠธ)

ํ•„๋“œ ๊ฐ’ ์˜๋ฏธ
00 IP ํŒจํ‚ท์ด ECN ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
01(ECT 1) ๋˜๋Š” 10(ECT 0) TCP ํ”„๋กœํ† ์ฝœ๋„ ECN ๊ธฐ๋Šฅ์„ ์ง€์›ํ•จ
11(CE : Congestion Experienced) ๋ผ์šฐํ„ฐ๊ฐ€ ์†ก์‹  ํ˜ธ์ŠคํŠธ์— ํ˜ผ์žก์„ ํ†ต์ง€

 

ECN ๊ธฐ๋Šฅ ์ง€์› ์—ฌ๋ถ€ ํ™•์ธ

์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •์—์„œ SYN, CWR, ECE ์„ค์ •ํ•˜์—ฌ ์ „์†ก ์‘๋‹ต

ECN ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

(a) ์™€ ๊ฐ™์ด SYN, ACK, ECE ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‘๋‹ต

 

ECN ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

(b) ์ฒ˜๋Ÿผ SYN, ACK ํ”Œ๋ž˜๊ทธ๋งŒ ์ง€์ •ํ•˜์—ฌ ์‘๋‹ต

 

 

TCP ์„ธ๊ทธ๋จผํŠธ์˜ ์บก์Аํ™”

์ƒ์œ„ ๊ณ„์ธต์—์„œ ๋‚ด๋ ค์˜จ ์ „์†ก ๋ฐ์ดํ„ฐ๋Š” TCP ํ—ค๋” ๋’ค์— ์ถ”๊ฐ€๋˜์–ด TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ ,

TCP ์„ธ๊ทธ๋จผํŠธ๋Š” ๋‹ค์‹œ IP ํ”„๋กœํ† ์ฝœ๋กœ ๋ณด๋‚ด์ ธ, IP ํ—ค๋”๋’ค์— ์บก์Аํ™”๋˜์–ด ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์œผ๋กœ ๋ณด๋‚ด์ง„๋‹ค.  

TCP ์„ธ๊ทธ๋จผํŠธ์˜ ์บก์Аํ™”

 

ํฌํŠธ ๋ฒˆํ˜ธ

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” TCP, UDP๊ฐ€ ์ƒ์œ„ ๊ณ„์ธต์— ์ œ๊ณตํ•˜๋Š” ์ฃผ์†Œ ํ‘œํ˜„ ๋ฐฉ์‹์ด๋‹ค.

Unix ํ™˜๊ฒฝ์—์„œ๋Š” ์†Œ์ผ“์œผ๋กœ ํฌํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ, TCP/UDP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์†Œ์ผ“ ์‹œ์Šคํ…œ ์ฝœ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.

์†Œ์ผ“ ์‹œ์Šคํ…œ ์ฝœ์„ ์ด์šฉํ•ด TCP ์—ฐ๊ฒฐ ์„ค์ •์ด ๋˜๋ฉด ํ†ต์‹  ์–‘๋‹จ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ  ์ฃผ์†Œ๋Š”

ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ์™€ ํ˜ธ์ŠคํŠธ ๋‚ด๋ถ€์˜ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์กฐํ•ฉ๋œ ํ˜•ํƒœ์ด๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ฐฉ์‹์—์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„์•ผ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•จ

(์„œ๋ฒ„๊ฐ€ ๋จผ์ € ์‹คํ–‰๋˜๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์„ ์‹œ๋„)

 

Well-known ํฌํŠธ : ์ธํ„ฐ๋„ท ํ™˜๊ฒฝ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์‘์šฉ ์„œ๋น„์Šค์˜ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ํฌํŠธ ๋ฒˆํ˜ธ

FTP, ์ „์ž๋ฉ”์ผ(SMTP), DNS ์ฒ˜๋Ÿผ ์ธํ„ฐ๋„ท์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ์„œ๋น„์Šค๋Š” ๋ชจ๋‘ ๊ณ ์ •๋œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Well-known ํฌํŠธ

 

TCP์™€ UDP๋Š” ๋ณ„๋„์˜ ํฌํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ๋™์ผํ•œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ๋‘ ํ”„๋กœํ† ์ฝœ์—์„œ ๋™์ผํ•œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํ•ด๋„ ์„œ๋กœ ๋‹ค๋ฅธ ํฌํŠธ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.

 

 

 

 

์ฐธ๊ณ  ์ž๋ฃŒ :

์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ ํ†ต์‹ ๊ณผ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ 3ํŒ - ๋ฐ•๊ธฐํ˜„ ์ง€์Œ

728x90