J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

[๋„คํŠธ์›Œํฌ] TCP์˜ 3-way handshake์™€ 4-way handshake
Computer Science/๐Ÿ“ก Network

[๋„คํŠธ์›Œํฌ] TCP์˜ 3-way handshake์™€ 4-way handshake

728x90

3-way handshake

  • TCP ํ†ต์‹ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •
  • ์–‘ ์ธก ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด์žˆ์Œ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ „์— ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•จ
  • ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ˆ˜์‹  ์ธก์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•จ

3-way hanshaking ๊ณผ์ •

* Host A(=ํด๋ผ์ด์–ธํŠธ), Host B(=์„œ๋ฒ„) ํ†ต์‹ 

  1. Host A๋Š” Host B์—๊ฒŒ ์ ‘์†์„ ์š”์ฒญํ•˜๋Š” SYN ํŒจํ‚ท ์ „์†ก
    • ์†ก์‹ ์ž๊ฐ€ ์ตœ์ดˆ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ Sequence Number๋Š” ์ž„์˜์˜ ์ˆซ์ž๋กœ ์ง€์ •ํ•˜๊ณ , SYN ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ ์ „์†ก
    • ํฌํŠธ ์ƒํƒœ Host A: CLOSED / Host B: LISTEN
  2. ์ ‘์† ์š”์ฒญ์„ ๋ฐ›์€ Host B๋Š” Host A์—๊ฒŒ ํ•ด๋‹น ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋ฉฐ ํฌํŠธ๋ฅผ ์—ด์–ด๋‹ฌ๋ผ๋Š” SYN + ACK ์ „์†ก
    • ์ˆ˜์‹ ์ž๋Š” Acknowledgement Number๋ฅผ (Sequence Number + 1)๋กœ ์ง€์ •ํ•˜๊ณ , SYN๊ณผ ACK ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ ์ „์†ก
    • ํฌํŠธ ์ƒํƒœ Host A: SYN_SENT / Host B: SYN_RCV
  3. Host A๊ฐ€ Host B์—๊ฒŒ ์ˆ˜๋ฝ์„ ํ™•์ธํ–ˆ๋‹ค๋Š” ACK ์ „์†ก
    • ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ
    • ํฌํŠธ ์ƒํƒœ Host A: ESTABLISHED / Host B: SYN_RCV โžก Host A: ESTABLISHED / Host B: ESTABLISHED

3-way hanshake ์‹œ ํฌํŠธ ์ƒํƒœ

์ฐธ๊ณ  - ํฌํŠธ ์ƒํƒœ ์ •๋ณด

  • CLOSED: ํฌํŠธ๊ฐ€ ๋‹ซํžŒ ์ƒํƒœ
  • LISTEN: ํฌํŠธ๊ฐ€ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์—ฐ๊ฒฐ ์š”์ฒญ ๋Œ€๊ธฐ ์ƒํƒœ
  • SYN_SENT: SYN ์„ ๋ณด๋‚ด๊ณ  SYN/ACK ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
  • SYN_RCV: SYN ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๊ณ  ์ƒ๋Œ€๋ฐฉ์˜ ์‘๋‹ต ๋Œ€๊ธฐ ์ƒํƒœ
  • ESTABLISHED: ํฌํŠธ ์—ฐ๊ฒฐ ์ƒํƒœ

 

4-way handshake

  • TCP์˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๊ณผ์ •

4-way hanshaking ๊ณผ์ •

* Host A(=ํด๋ผ์ด์–ธํŠธ), Host B(=์„œ๋ฒ„) ํ†ต์‹ 

  1. Host A๊ฐ€ Host B์—๊ฒŒ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ฒ ๋‹ค๋Š” FIN ํ”Œ๋ž˜๊ทธ ์ „์†ก
    • Host B๊ฐ€ FIN ํ”Œ๋ž˜๊ทธ๋กœ ์‘๋‹ตํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์—ฐ๊ฒฐ ์œ ์ง€
  2. Host B๋Š” ์ผ๋‹จ ํ™•์ธํ–ˆ๋‹ค๋Š” ACK ์ „์†ก ํ›„ ์ž์‹ ์˜ ํ†ต์‹ ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ (CLOSE_WAIT ์ƒํƒœ)
    • ์ˆ˜์‹ ์ž๋Š” Acknowledgement Number ํ•„๋“œ๋ฅผ (Sequence Number + 1)๋กœ ์ง€์ •ํ•˜๊ณ , ACK ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ ์ „์†ก
    • ์ž์‹ ์ด ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„์žˆ๋‹ค๋ฉด ๋งˆ์ € ์ „์†ก
  3. ๋”์ด์ƒ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด Host B๋Š” ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ Host A์—๊ฒŒ FIN ํ”Œ๋ž˜๊ทธ ์ „์†ก
  4. Host A๊ฐ€ Host B์—๊ฒŒ ์ˆ˜๋ฝ์„ ํ™•์ธํ–ˆ๋‹ค๋Š” ACK ์ „์†ก
    1. Host A๋Š” CLOSED ์ƒํƒœ ์ด์ „์— TIME-WAIT ์ƒํƒœ๋ฅผ ๊ฑฐ์นจ

4-way handshake ์‹œ ํฌํŠธ ์ƒํƒœ

 

โ€ป TIME-WAIT ์ƒํƒœ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

  • Server ์ธก์—์„œ ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋Š” ์ง€์—ฐ ํŒจํ‚ท์ด๋‚˜ ์œ ์‹ค๋กœ ์ธํ•ด ์žฌ์ „์†ก ๋œ ํŒจํ‚ท ๋“ฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ์œ„ํ•ด
  • Client๊ฐ€ ACK ํŒจํ‚ท์„ ๋ณด๋‚ธ ์งํ›„ ๋ฐ”๋กœ CLOSED ํ•ด๋ฒ„๋ฆฌ๋ฉด Client์˜ ์ƒํƒœ๋Š” CLOSED์ธ๋ฐ Server์˜ ์ƒํƒœ๊ฐ€ LAST-ACK์ธ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒ -> ์ดํ›„ ์žฌ์—ฐ๊ฒฐ ์‹œ Client์™€ Server์˜ ํฌํŠธ ์ƒํƒœ๊ฐ€ ๋ชจ๋‘ CLOSED๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์—ฐ๊ฒฐ ์‹คํŒจ
728x90

'Computer Science > ๐Ÿ“ก Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋„คํŠธ์›Œํฌ] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session) ํŠน์ง•, ์ฐจ์ด  (0) 2022.04.02
[๋„คํŠธ์›Œํฌ] GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ ํŠน์ง•, ์ฐจ์ด  (0) 2022.03.31
[๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS ํ”„๋กœํ† ์ฝœ  (0) 2022.02.09
[๋„คํŠธ์›Œํฌ] TCP์™€ UDP ํŠน์ง•, ํ—ค๋” ๋ถ„์„, ๋น„๊ต  (0) 2022.01.28
[๋„คํŠธ์›Œํฌ] OSI 7๊ณ„์ธต ๋ชจ๋ธ๊ณผ TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ  (0) 2022.01.21
    'Computer Science/๐Ÿ“ก Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์ด๋‹ค
    • [๋„คํŠธ์›Œํฌ] GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ ํŠน์ง•, ์ฐจ์ด
    • [๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS ํ”„๋กœํ† ์ฝœ
    • [๋„คํŠธ์›Œํฌ] TCP์™€ UDP ํŠน์ง•, ํ—ค๋” ๋ถ„์„, ๋น„๊ต
    • [๋„คํŠธ์›Œํฌ] OSI 7๊ณ„์ธต ๋ชจ๋ธ๊ณผ TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”