TCP/IP๋ž€?

์ „์†กํ”„๋กœํ† ์ฝœ TCP(Tansmission Control Protocol)์™€ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ(Internet Protocol)์„ ํ•ฉ์นœ ๋ง. ์ธํ„ฐ๋„ท & ์ด์™€ ์œ ์‚ฌํ•œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด์—์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋ฐ ์ด์šฉ๋˜๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์˜ ๋ชจ์Œ์œผ๋กœ, ์˜จ๋ผ์ธ์ƒ์˜ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ํ‘œ์ค€ํ™”๋œ ์š”๊ฑด์ด๋‹ค.

TCP๋Š” ํ•œ ๊ธฐ๊ธฐ์—์„œ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ํ•„์š”ํ•œ ํ‘œ์ค€ ์š”๊ฑด์ด๋ผ๋ฉด, IP๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋Œ€์ƒ IP ์ฃผ์†Œ๋กœ ๋ณด๋‚ด๋Š” ์—ญํ• ์„ ์œ„ํ•œ ํ‘œ์ค€ ์š”๊ฑด์ด๋‹ค. ์ด๋Ÿฌํ•œ TCP/IP๋Š” ๊ณตํ†ต์ ์œผ๋กœ ์˜จ๋ผ์ธ์ƒ์˜ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค๋Š” ๊ณตํ†ต์  ๊ฒฐ๊ณผ๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ฉ์ณ์ ธ ์‚ฌ์šฉ๋œ๋‹ค.

TCP/IP์˜ 4๊ณ„์ธต

์ด๋Ÿฌํ•œ TCP/IP๊ฐ€ ๊ทœ์น™์ด๋‚˜ ํ”„๋กœํ† ์ฝœ์ด ์ ์šฉ๋˜๋Š” ์กฐ๊ฑด ํ•˜์—์„œ ์„ธ์›Œ์ง„ ํ†ต์‹ ๊ณผ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ๋ฐฉ์‹์ด 4๊ฐ€์ง€์˜ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.

์‘์šฉ ๊ณ„์ธต

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ๊ฐ€์žฅ ์‰ฌ์šด ๊ณ„์ธต
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
  • ์ข…๋ฅ˜
    • ๋ฉ”์ผ โ†’ SMPT(Simple Mail Transfter Protocol)
    • ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ € โ†’ HTTP(Hypertext Transfer Protocol)
    • ํŒŒ์ผ ์ „์†ก โ†’ FTP(File Transfer Protocol)
    • ๋™์  ํ˜ธ์ŠคํŠธ ์„ค์ • ํ†ต์‹  โ†’ DHCP(Dynamic host Configuration protocol)
    • ๊ฐ„์ด ๋ง ๊ด€๋ฆฌ โ†’ SNMP(Simple Network Management Protocol)
    • ๋„๋ฉ”์ธ โ†’ DNS(Domain Name System)

์ „์†ก ๊ณ„์ธต

  • ๋ฐ์ดํ„ฐ์˜ ์ „์†ก์„ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต์œผ๋กœ,TCP ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ†ต์‹  ๊ทœ์•ฝ(User Datagram Protocol: UDP)๋„ ์žˆ์Œ
  • TCP๋Š” ๋‘ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด์— ์—ฐ๊ฒฐ์„ ํ˜•์„ฑํ•˜๊ณ  ํšจ์œจ์  ์ž‘์—…์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์€ ํŒจํ‚ท์œผ๋กœ ๋‚˜๋ˆ ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก
  • ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์„ ๋ณด์ฆํ•˜๊ณ  ๋ณด๋‚ธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ›๊ฒŒํ•ด์คŒ
    • ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š๊ฑฐ๋‚˜ ์ค‘๊ฐ„์— ๋ญ๊ฐ€ ๋น ์กŒ์œผ๋ฉด ์ ๊ฒ€ ์š”์ฒญ \

์ธํ„ฐ๋„ท ๊ณ„์ธต

  • IP๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
    • ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ทœ์•ฝ(Address Resolution Protocol: ARP)
    • ์ธํ„ฐ๋„ท ๊ทธ๋ฃน ๊ด€๋ฆฌ ํ”„๋กœํ† ์ฝœ(Internet Group Management Protocol: IGMP)\
    • ์ธํ„ฐ๋„ท ์ œ์–ด ๋ฉ”์„ธ์ง€ ํ”„๋กœํ† ์ฝœ(Internet Control Message Protocol: ICMP)๋„ ์žˆ์Œ
  • ๋ฐ์ดํ„ฐ์˜ ์›์ฒœ์ง€(origin)์™€ ๋ชฉ์ ์ง€์— ๊ด€ํ•œ ์ •๋ณด ์ฒจ๋ถ€
  • ํŒจํ‚ท ์ „๋‹ฌ ์—ฌ๋ถ€๋ฅผ ๋ณด์ฆํ•˜์ง€ ์•Š๊ณ , ์–ด๋–ป๊ฒŒ๋“  ๋นจ๋ฆฌ ๋ณด๋‚ด์•ผ ํ•จ

๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต

  • ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์ตœํ•˜์œ„ ๊ณ„์ธต
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์›ํ•˜๋Š” IP ์ฃผ์†Œ์— ๋„๋‹ฌํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
  • ์›ํ•˜๋Š” ๊ธฐ๊ธฐ์˜ MAC ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ด๋”๋„ท ์ผ€์ด๋ธ” ๋ฐ ์™€์ดํŒŒ์ด๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ด€๋ฆฌ ๋“ฑ์˜ ์ž‘์—… ๋‹ด๋‹น

TCP/IP 4๊ณ„์ธต ๋™์ž‘ ์ˆœ์„œ

  1. ์†ก์‹ ์ธก ํด๋ผ์ด์–ธํŠธ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์–ด๋А ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ผ๋Š” HTTP ์š”์ฒญ์„ ์ง€์‹œ
  2. ๊ทธ ๋‹ค์Œ์— ์žˆ๋Š” ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ(HTTP ๋ฉ”์‹œ์ง€)๋ฅผ ํ†ต์‹ ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์กฐ๊ฐ๋‚ด์–ด ์•ˆ๋‚ด ๋ฒˆํ˜ธ์™€ ํฌํŠธ ๋ฒˆํ˜ธ(TCP ํŒจํ‚ท)๋ฅผ ๋ถ™์—ฌ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์— ์ „๋‹ฌ
  3. ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ์— IP ํŒจํ‚ท์„ ์ถ”๊ฐ€ํ•ด์„œ ๋งํฌ ๊ณ„์ธต์— ์ „๋‹ฌ
  4. ๋งํฌ ๊ณ„์ธต์—์„œ๋Š” ์ˆ˜์‹ ์ง€ MAC ์ฃผ์†Œ์™€ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ์ถ”๊ฐ€
  5. ์ด๋กœ์จ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์†ก์‹ ํ•  ์ค€๋น„๊ฐ€ ๋จ
  6. ์ˆ˜์‹ ์ธก ์„œ๋ฒ„๋Š” ๋งํฌ ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„๋“ค์—ฌ ์ˆœ์„œ๋Œ€๋กœ ์œ„์˜ ๊ณ„์ธต์— ์ „๋‹ฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊นŒ์ง€ ๋„๋‹ฌ
  7. ์ˆ˜์‹ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์— ๋„๋‹ฌํ•˜๊ฒŒ ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐœ์‹ ํ–ˆ๋˜ HTTP ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

TCP IP ๊ธฐ๋Šฅ

  • ์‹œ์Šคํ…œ ์‚ฌ์ด์—์„œ ํŒŒ์ผ ์ „์†ก
  • ์›๊ฒฉ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ์ธ
  • ์›๊ฒฉ ์‹œ์Šคํ…œ์—์„œ ๋ช…๋ น ์‹คํ–‰
  • ์›๊ฒฉ ์‹œ์Šคํ…œ์— ํŒŒ์ผ ์ธ์‡„
  • ์›๊ฒฉ ์‚ฌ์šฉ์ž์— ์ด๋ฉ”์ผ ์ „์†ก
  • ์›๊ฒฉ ์‚ฌ์šฉ์ž์™€ ๋Œ€ํ™”์‹ ํ†ต์‹ 
  • ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ

TCP ์˜ ์ „์†ก ์ œ์–ด ๋ฐฉ์‹

  • ํŒจํ‚ท ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์„ ๋ณด์ฆํ•˜๊ณ  ๋ณด๋‚ธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ›๊ฒŒ ํ•ด์ค€๋‹ค
  • ๋„์ฐฉํ•œ ์กฐ๊ฐ์„ ์ ๊ฒ€ํ•˜์—ฌ ์ค„์„ ์„ธ์šฐ๊ณ  ๋ง๊ฐ€์กŒ๊ฑฐ๋‚˜ ๋น ์ง„ ์กฐ๊ฐ์„ ๋‹ค์‹œ ์š”์ฒญํ•˜๋Š” ์‹์œผ๋กœ ์ˆœ์„œ๋ฅผ ๋ณด์ฆ.
  • TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ํ™•์‹คํ•˜๊ฒŒ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œย 3 way ํ•ธ๋“œ์‰์ดํ‚น์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ  ์ž˜ ๋ณด๋‚ด์กŒ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ƒ๋Œ€์—๊ฒŒ ํ™•์ธํ•˜๋Ÿฌ ๊ฐ„๋‹ค.
  • ์—ฌ๊ธฐ์—์„œ ๊ณ ์œ ์˜ โ€˜SYNโ€™์™€ โ€˜ACKโ€™๋ผ๋Š” TCP ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (์ผ์ข…์˜ ํ™•์ธ ๋งˆํฌ ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค)
  • ํ•œ๋งˆ๋””๋กœ TCP๋Š” IP์˜ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•ด์ฃผ๋Š” ๋…€์„์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

TCP 3 way handshake

์ƒ๋Œ€ ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๊ฒฐ๋˜๊ธฐ ์ „์— ๊ฐ€์ƒ ์—ฐ๊ฒฐ์„ ํ•˜์—ฌ ํŒจํ‚ท์œผ๋กœ ๋ณด๋‚ด ํ™•์ธํ•˜๋Š” ๋™์ž‘

  • ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„
    • SYN : ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•  ๋•Œ ํด๋ผ์ด์—๋А๊ฐ€ ์„œ๋ฒ„์— ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋ƒ„
  • ์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ
    • SYN-ACK : ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๊ฐ€ ACK ๊ฐ’์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต
  • ๋‹ค์‹œ ํด๋ผ์ธ์–ธํŠธ โ†’ ์„œ๋ฒ„
    • ACK : ACK ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์‘๋‹ตํ•˜๋Š” ํŒจํ‚ท
    • ๋ฐ์ดํ„ฐ ํŒจํ‚ท
  • ์ดํ›„: ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„
    • ๋ฐ์ดํ„ฐ ํŒจํ‚ท ์ „์†ก

4-Way-handShake

3 way shake์—์„œ ํ†ต์‹ ์„ ๋งˆ์น  ๋•Œ ๊ฑฐ์น˜๋Š” ๊ณผ์ •์ด ์ถ”๊ฐ€๋œ ๋ฒ„์ „์ด๋‹ค.

4-Way-Handshake์—์„œ ์‚ฌ์šฉ๋˜๋Š” TCP ํ—ค๋” ํ•„๋“œ

Sequence Number

  • Segment์— ์žˆ๋Š”ย ์ฒซ ๋ฒˆ์งธ ๋ฐ”์ดํŠธ์˜ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ๋ฒˆํ˜ธ
    • TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณธ๋‹ค.
    • ex) 0999, 10001999์˜ Segment๋ฅผ ๋ณด๋‚ผ ๋•Œ seq# = ๊ฐ๊ฐ 0, 1000
  • TCP ์—ฐ๊ฒฐ, ์ข…๋ฃŒ ์‹œ์—๋Š”ย Sequence Number๋ฅผ ์ž„์˜์˜ ๋žœ๋ค ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
    • Sequence Number๊ฐ€ ๋…ธ์ถœ๋˜๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์œ„์กฐ ํŒจํ‚ท์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ์„ ์œ„ํ•ด ๋žœ๋ค ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

Acknowledgement Number

  • ๋ฐ›๊ณ  ์‹ถ์€ ๋‹ค์Œ ๋ฐ”์ดํŠธ ๋ฒˆํ˜ธ
    • ex) 0999, 10001999์˜ Segment๋ฅผ ๋ฐ›์•˜์„ ๋•Œ ack# = ๊ฐ๊ฐ 1000, 2000

Control bits

  • ACK(Acknowledgement)
    • ํŒจํ‚ท์„ ๋ฐ›์•˜๋‹ค๋Š” ์‘๋‹ต์„ ํ•  ๋•Œ ์‚ฌ์šฉ
    • Acknowledgement Number์˜ ์œ ํšจ์„ฑ
    • ์ตœ์ดˆ ์—ฐ๊ฒฐ์˜ ์ฒซ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  Segment์˜ ACK ๋น„ํŠธ๋Š” 1๋กœ ์„ค์ •
  • FIN(Finish)
    • TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ๋•Œ ์‚ฌ์šฉ
    • ๋” ์ด์ƒ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ์˜๋ฏธ
  • RST(Reset)
    • TCP ์—ฐ๊ฒฐ์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•  ๋•Œ ์‚ฌ์šฉ
    • ๋น„ ์ •์ƒ์ ์ธ ์„ธ์…˜ ์—ฐ๊ฒฐ ๋Š๊ธฐ์— ํ•ด๋‹น
    • ์—ฐ๊ฒฐ์„ ์ฆ‰์‹œ ๋Š๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ