๐Ÿ›ฐ๏ธ TCP ํ†ต์‹  ๊ณผ์ • 1

migskingยท2020๋…„ 5์›” 23์ผ
0

TCP

๋ชฉ๋ก ๋ณด๊ธฐ
1/1

๐Ÿค” ์šฐ๋ฆฌ๊ฐ€ ์„œ๋ฒ„๋ž‘ ํ†ต์‹ ํ•  ๋•Œ ์ € ๋จผ ๊ณณ์—์„œ๋Š” ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?

๐Ÿ˜ก ์•„๋‹ˆ .. TCP๋Š” UDP๋ž‘ ๋‹ค๋ฅด๊ฒŒ.. ์‹ ๋ขฐ ๋ญ์‹œ๊ธฐ ํ•œ๊ฑฐ ๊ฐ™๊ณ ... ๊ทธ๋ž˜์„œ ๊ทธ๊ฒŒ ๋ญ”๋ฐ ์”น๋•์•„

๐Ÿ“ข ์„œ๋ก 

์šฐ๋ฆฌ๋Š” ๋ณดํ†ต TCP๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ ๋Š” ํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์›น ๊ฐ™์€๊ฒฝ์šฐ TCP์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” HTTP๋ฅผ ์ด์šฉํ•˜๊ณค ํ•˜์ฃ .
TCP๊ฐ™์€ ๊ฒฝ์šฐ๋Š” UDP์™€ ๋‹ค๋ฅด๊ฒŒ ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๊ณผ์—ฐ TCP์—์„œ ์„œ๋กœ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋ ๊นŒ์š”?

๐Ÿ›ฐ๏ธ ํ†ต์‹  ๊ณผ์ •

๐Ÿ”Œ Socket ์ƒ์„ฑ

ํด๋ผ์ด์–ธํŠธ๋Š” ์šฐ์„  ์šด์˜์ฒด์ œ์— socket() SystemCall์„ ํ†ตํ•˜์—ฌ ์†Œ์ผ“์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์šด์˜์ฒด์ œ๋Š” ์†Œ์ผ“์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ• ๋‹นํ•˜๊ณ  ์†Œ์ผ“ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿค 3 Way Handshake

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์™€ ์—ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ 3 Way Handshake๋ฅผ ํ†ตํ•˜์—ฌ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
3 Way Handshake๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • (1) ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„ํ•œํ…Œ SYN(a)๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
    ์ด ๋•Œ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋Š” SYN์„ ๋ณด๋ƒˆ๋‹ค๋Š” SYN-SENT๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • (2) ์„œ๋ฒ„์—์„œ๋Š” SYN์„ ๋ฐ›์•˜๋‹ค๋Š” SYN-RECVED ์ƒํƒœ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    ๋‹ค์Œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ž˜ ๋ฐ›์•˜๋‹ค๋Š” ์‘๋‹ต์˜ ACK(a+1)๊ณผ SYN(b)๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • (3) ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ์ƒํ˜ธ ์—ฐ๊ฒฐ์ด ๋œ ์ƒํƒœ์˜ ESTABLISHED๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    ๋‹ค์Œ ์„œ๋ฒ„์ธก์œผ๋กœ ACK(b+1)์„ ๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    ์„œ๋ฒ„์—์„œ๋Š” ACK๋ฅผ ๋ฐ›์€ ํ›„ ESTABLISHED ์ƒํƒœ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ a๋Š” sequence number, b๋Š” acknowledgment number ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ TCP๋Š” ์„œ๋กœ ์—ฐ๊ฒฐํ•  ๋•Œ 3๊ฐ€์ง€ ์ˆœ์„œ๋ฅผ ํ†ตํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿฆˆ ํŒจํ‚ท์œผ๋กœ ๋ณธ 3 Way Handshake

๋‹ค์Œ ์‚ฌ์ง„์€ WireShark์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” 3 Way Handshake ์žฅ๋ฉด์ž…๋‹ˆ๋‹ค.

Sequence Number : 0
๋‹ค์Œ ์‚ฌ์ง„์€ ๊ทธ๋ฆผ์œผ๋กœ ์„ค๋ช…ํ•œ 3 Way์ค‘ (1)์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ํ•œํ…Œ ์š”์ฒญํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. SeqNum์€ 0์ด๋ฉฐ Flag๋Š” SYN์ž…๋‹ˆ๋‹ค.

Sequence Number : 0
Acknowledgment Number: 1 (0 + 1)
(1)์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค.
์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์‘๋‹ตํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. SeqNum์€ 0, AckNum์€ 1(0+1)์ด๋ฉฐ Flag๋Š” SYN, ACK์ž…๋‹ˆ๋‹ค.

Acknowledgment Number: 1 (0 + 1)
(2)์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ํ•œํ…Œ ์‘๋‹ตํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. AckNum์€ 1(0+1)์ด๋ฉฐ Flag๋Š” ACK์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ ํ†ต์‹ ๋ฐฉ๋ฒ•๊ณผ 4 Way handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

profile
๊ผฐ๋Œ€

0๊ฐœ์˜ ๋Œ“๊ธ€