๐Ÿ’ป CS/๋„คํŠธ์›Œํฌ

OSI 7๊ณ„์ธต๊ตฌ์กฐ

JerryiOS 2023. 3. 23. 18:31

OSI 7 Layer?

์˜ค๋Š˜๋„ ์–ด๊น€์—†์ด ํ•˜๋‚˜๋„ ๋ชจ๋ฅด๋Š” ์šฉ์–ด๊ฐ€ ๋‚˜์™”๋‹ค.

์ข‹์€ ์˜์ƒ์ด ์žˆ์–ด ํ•œ๋ฒˆ ๊ณต๋ถ€ํ•ด๋ณด๋ คํ•œ๋‹ค.

https://www.youtube.com/watch?v=1pfTxp25MA8

1. Physical Layer

  • 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๋กœ ๋ฐ”๊พธ์–ด ์ „์„ ์œผ๋กœ ํ˜๋ ค๋ณด๋‚ด๊ณ , (encoding)
  • ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 0๊ณผ 1์˜ ๋‚˜์—ด๋กœ ํ•ด์„ํ•˜์—ฌ (decoding)
  • ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ 0๊ณผ 1์˜ ๋‚˜์—ด์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ (module ํ•จ์ˆ˜)

์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ

data = 01010101

// ์ธ์ฝ”๋”ฉ (Input : data, Output : signal)
Signal encode(data) -> ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ {
    ....
}

// ๋””์ฝ”๋”ฉ (Input : signal, Output : data)
Data decode(์•„๋‚ ๋กœ๊ทธ์‹ ํ˜ธ) -> ์›๋ณธ ๋ฐ์ดํ„ฐ {
    ....
}

์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • PHY ์นฉ
  • ์‚ฌ์‹ค 1๊ณ„์ธต ๋ชจ๋“ˆ์€ ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

2. Data-Link Layer

๋ฐฐ๊ฒฝ์ง€์‹ : ์—ฌ๋Ÿฌ ๋Œ€ ์ปดํ“จํ„ฐ ๊ฐ„์˜ ํ†ต์‹ 

  • ์ฒซ๋ฒˆ์งธ ์ƒํ™ฉ : ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

์˜ˆ๋ฆผ์ด๊ฐ€ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์ž๊ฐ€ ๋ฉ”์‹œ์ง€์˜ ๋ชฉ์ ์ง€๋ฅผ ํ™•์ธํ•ด์„œ ํ˜œ๋ฆผ์ด์—๊ฒŒ ์ „ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ๋Œ€ ๊ฐ„์˜ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.

→ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ํ•˜๋„๋ก ๋งŒ๋“  ๊ฒƒ์„ ์Šค์œ„์น˜๋ผ๊ณ  ํ•œ๋‹ค.

์Šค์œ„์น˜๋Š” ์ผ์ข…์˜ ์ปดํ“จํ„ฐ๋กœ์„œ ์ด๋Ÿฐ ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • ๋‘๋ฒˆ์งธ ์ƒํ™ฉ : ์„œ๋กœ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ์ปดํ“จํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ์„๋•Œ

์˜ˆ๋ฆผ๊ณผ ํ˜œ๋ฆผ์˜ ์ปดํ“จํ„ฐ๋Š” ์ „์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•„ ํ†ต์‹ ์ด ์–ด๋ ต๋‹ค.

์„œ๋กœ๋‹ค๋ฅธ ์Šค์œ„์น˜์™€ ์Šค์œ„์น˜๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์†ํ•œ ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ํ†ต์‹ ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์žฅ๋น„๋ฅผ ๋ผ์šฐํ„ฐ ๋ผ๊ณ ํ•œ๋‹ค.

์ € ์ดˆ๋ก์ƒ‰ ์ƒ์ž๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์•Œ๊ณ ์žˆ๋Š” ๊ณต์œ ๊ธฐ์— ํ•ด๋‹น๋œ๋‹ค.

  • ์„ธ๋ฒˆ์งธ ์ƒํ™ฉ : ๋” ๋งŽ์€ ๋„คํŠธ์›Œํฌ๋“ค์„ ์—ฐ๊ฒฐํ•ด๋ณด์ž.

์ด๋Ÿฐ์‹์œผ๋กœ ์ „ ์„ธ๊ณ„์˜ ์ปดํ“จํ„ฐ๋“ค์„ ์—ฐ๊ฒฐํ•œ ๊ฒƒ์„ ์ธํ„ฐ๋„ท ์ด๋ผ๊ณ  ํ•œ๋‹ค.

Data-Link Layer

์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ƒˆ์„๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ œ๋Œ€๋กœ ๋Š์–ด ์ฝ์„ ์ˆ˜ ์žˆ์„๊นŒ?

  • ์ด๋ฅผ ์œ„ํ•ด ์†ก์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ์˜ ์•ž ๋’ค์— ํŠน์ •ํ•œ ๋น„ํŠธ์—ด์„ ๋ถ™์ธ๋‹ค.
    • ์˜ˆ๋ฅผ๋“ค์–ด, ์†ก์‹ ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ๋•Œ ์•ž์—๋Š” 1111, ๋’ค์—๋Š” 0000์„ ๋ถ™์ธ๋‹ค๊ณ  ํ•ด๋ณด์ž.
    • ๊ทธ๋Ÿฌ๋ฉด ์ˆ˜์‹ ์ž๋Š” 0000 1111์ด ๋‚˜์˜ค๋Š” ๋ถ€๋ถ„์„ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ฒฐ๊ตญ Data-link Layer๋ž€?

  • ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ
  • Framing์€ Data-link Layer์— ์†ํ•˜๋Š” ์ž‘์—…๋“ค ์ค‘ ํ•˜๋‚˜๋‹ค.

Data-link Layer ๋™์ž‘๋ฐฉ์‹

์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • ๋žœ์นด๋“œ
  • 2๊ณ„์ธต๋„ ํ•˜๋“œ์›จ์–ด๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ๋‹ค.

3. Network Layer

A๋Š” B์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ๋‹ค.

A๋Š” ๋ฐ์ดํ„ฐ ์•ž์— ๋ชฉ์ ์ง€ ์ฃผ์†Œ, ์ฆ‰ B์˜ ์ฃผ์†Œ๋ฅผ ๋ถ™์ธ๋‹ค.

์—ฌ๊ธฐ์„œ 55.10.54.75์™€ ๊ฐ™์ด, ๊ฐ ์ปดํ“จํ„ฐ๋“ค์ด ๊ฐ–๋Š” ๊ณ ์œ ํ•œ ์ฃผ์†Œ๋ฅผ IP์ฃผ์†Œ๋ผ๊ณ  ํ•œ๋‹ค.

A๋Š” B์˜ IP์ฃผ์†Œ๋ฅผ ์–ด๋–ป๊ฒŒ ์•„๋Š”๊ฑธ๊นŒ?

B๊ฐ€ ๋„ค์ด๋ฒ„์— ์žˆ๋Š” ํ•œ ์ปดํ“จํ„ฐ๋ผ๊ณ  ํ•ด๋ณด์ž.

์šฐ๋ฆฌ๊ฐ€ ์ฃผ์†Œ์ฐฝ์— www.naver.com์„ ์ž…๋ ฅํ•˜๋ฉด ์ด ์ฃผ์†Œ๋Š” IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‚ฌ์šฉ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” naver์˜ ์ฃผ์†Œ๋ฅผ ์•Œ๊ณ ์žˆ๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, ์ƒ๋Œ€๋ฐฉ์˜ IP์ฃผ์†Œ๋ฅผ ์•Œ๊ณ ์žˆ์–ด์•ผ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ฌดํŠผ, ์•ž์œผ๋กœ 55.10.54.75[data] ์ด๊ฒƒ์„ ํŒจํ‚ท์ด๋ผ๊ณ  ๋ถ€๋ฅผ ๊ฒƒ์ด๋‹ค.

๊ฐ€์žฅ ๋จผ์ € A๊ฐ€ ๋ผ์šฐํ„ฐ์—๊ฒŒ ํŒจํ‚ท์„ ์ „๋‹ฌํ•œ๋‹ค.

๊ฐ€๋Š” ํŒจํ‚ท์„ ์—ด์–ด๋ณด๊ณ , ๋ชฉ์ ์ง€ IP์ฃผ์†Œ๋ฅผ ํ™•์ธํ•œ๋‹ค.

๊ฐ€๋Š” ๋ณธ์ธ์ด ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ ์ค‘์—๋Š” 55.10.54.75์ธ ์ปดํ“จํ„ฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฑˆ๋‹ค.

๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ํฌ์žฅํ•œ ๋‹ค์Œ ์ž์‹ ๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์œ ์ผํ•œ ๋ผ์šฐํ„ฐ์ธ ๋งˆ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

ํŒจํ‚ท์„ ๋ฐ›์€ ๋ผ์šฐํ„ฐ ๋งˆ ๋Š” ๊ฐ€ ๊ฐ€ ๊ทธ๋žฌ๋˜ ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํŒจํ‚ท์„ ๊นŒ์„œ ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋ฅผ ์ฝ๋Š”๋‹ค.

๋ชฉ์ ์ง€๊ฐ€ B๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋œ ๋งˆ ๋Š” ํŒจํ‚ท์ด B์— ๋„์ฐฉํ•˜๋ ค๋ฉด ์–ด๋Š ์ „์„ ์œผ๋กœ ๋ณด๋‚ด์•ผํ•˜๋Š” ์ง€ ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค.

๋งˆ๋Š” ๊ฐ€ ๋‚˜ ๋ฐ” ์ค‘ ๋ผ์šฐํŒ…์„ ํ†ตํ•ด ๋ฐ”์—๊ฒŒ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค.

๋ฐ” ๋˜ํ•œ ๋งˆ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ผ์—๊ฒŒ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค.

๋ผ๋Š” ์ž์‹ ๊ณผ ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ ์ค‘ 55.10.54.75์ธ ์ปดํ“จํ„ฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•ˆ๋‹ค.

๊ทธ๋ž˜์„œ B๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ A์—์„œ ์ถœ๋ฐœํ•œ ํŒจํ‚ท์ด B๋กœ ์ž˜ ์ „๋‹ฌ๋˜์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ Network Layer๋ž€?

  • ์ˆ˜๋งŽ์€ ๋„คํŠธ์›Œํฌ๋“ค์˜ ์—ฐ๊ฒฐ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” inter-network ์†์—์„œ
  • ์–ด๋”˜๊ฐ€์— ์ž‡๋Š” ๋ชฉ์ ์ง€ ์ปดํ“จํ„ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด,
  • IP ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด์„œ ๊ธธ์„ ์ฐพ๊ณ  (routing)
  • ์ž์‹  ๋‹ค์Œ์˜ ๋ผ์šฐํ„ฐ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ (forwarding)

์ฐธ๊ณ  : ํŒจํ‚ท ๋งŒ๋“œ๋Š”๋ฒ•

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

Network Layer ๊ธฐ์ˆ ์€ ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • ์šด์˜์ฒด์ œ์˜ ์ปค๋„์— ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

4. Transport Layer

์•ž์—์„œ 3๊ณ„์ธต ๊นŒ์ง€ ์ง„ํ–‰ํ•˜๋ฉฐ, ์ด์ œ ์ธํ„ฐ๋„ท ์ƒ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์ˆ˜์‹ ์ž๋Š” ์ „ ์„ธ๊ณ„์˜ ์ปดํ“จํ„ฐ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ปดํ“จํ„ฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์—ˆ๋‹ค.

์ปดํ“จํ„ฐ๋Š” ์ € 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ๋‚˜๋ˆ ์ฃผ๋ ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌด์Šจ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ค˜์•ผํ• ์ง€ ์ปดํ“จํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์•Œ๊นŒ?

๋จผ์ €, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ ์žํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์€ ํฌํŠธ๋ฒˆํ˜ธ(Port Number)๋ผ๋Š” ๊ฒƒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

์ „์†ก์ž๋Š” ๋ฐ์ดํ„ฐ ๋ฐ›์„ ์ˆ˜์‹ ์ž ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค.

๋„ค์ด๋ฒ„๋„ 80ํฌํŠธ ์™ธ์—๋Š” ์•ˆ๋œ๋‹ค.

)

ํฌํŠธ๋ฒˆํ˜ธ์— ๋งž์ถฐ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด๋‚ด์ค€๋‹ค.

๊ฒฐ๊ตญ Transport Layer๋ž€?

  • Port ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
  • ๋„์ฐฉ์ง€ ์ปดํ“จํ„ฐ์˜ ์ตœ์ข… ๋„์ฐฉ์ง€์ธ ํ”„๋กœ์„ธ์Šค์— ๊นŒ์ง€
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋„๋‹ฌํ•˜๊ฒŒ ํ•˜๋Š” ๋ชจ๋“ˆ

Transport Layer ๊ธฐ์ˆ ์„ ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ์„๊นŒ?

  • ์šด์˜์ฒด์ œ์˜ ์ปค๋„์— ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

5. Application Layer

TCP/IP ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ์šด์˜์ฒด์ œ์˜ Transport layer์—์„œ ์ œ๊ณตํ•˜๋Š” API๋ฅผ ํ™œ์šฉํ•ด์„œ
  • ํ†ต์‹  ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„
  • TCP/IP ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋˜๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋งŒ์œผ๋กœ๋„
  • ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์„ ๋”ฐ๋กœ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, TCP/IP ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด์„œ
  • ๋ˆ„๊ตฌ๋‚˜ ์ž์‹ ๋งŒ์˜ ์–ดํ”Œ๋ ˆ์ผ€์ด์…˜ Layer ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ๋ˆ„๊ตฌ๋“  ์ž์‹ ๋งŒ์˜ Application Layer ํ”„๋กœํ† ์ฝœ์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Base64

์ธ์ฝ”๋”ฉ

// String์„ Data๋กœ ๋ณ€๊ฒฝ
let string = "hello world"
let strData = string.data(using: .utf8)!

// Base64 ์ธ์ฝ”๋”ฉ ( Data -> Base64 encoded String )
let base64EncString = strData.base64EncodedString()

๋””์ฝ”๋”ฉ

// Base64 ๋””์ฝ”๋”ฉ
let decodedData = Data(base64Endcoded: baseEncString)!
let base64DecString = String(data: decodedData, encoding: .utf8)!

TCP 3-way HandShake

  • SYN์— ํฌํ•จ๋œ ๋ฐœ์‹ ์ž ์—ฐ์† ๋ฒˆํ˜ธ๋ณด๋‹ค SYN+ACK ๋ฐ›์„ ๋•Œ Ack ๋ฒˆํ˜ธ๋Š” +1 ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • SYN+ACK ์ดํ›„ ACK๋ฅผ ๋ณด๋‚ผ ๋•Œ ์—ฐ์† ๋ฒˆํ˜ธ๋Š” ์•ž์„œ ๋ฐ›์€ SYN+ACK์˜ Ack ๋ฒˆํ˜ธ์™€ ๋™์ผํ•˜๊ณ , Ack ๋ฒˆํ˜ธ๋Š” SYN+ACK์˜ ์—ฐ์†๋ฒˆํ˜ธ๋ณด๋‹ค +1 ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•