๐ก OSI 7๊ณ์ธต๊ณผ ํญ์ ๊ฐ์ด ์ธ๊ธ๋๋ TCP/IP ?!
๋ ธ์ ์์ ๋ณด๊ธฐ
๐ ์ธํฐ๋ท
- ์ ์๊ณ์ ๊ฑธ์ณ ํ์ผ ์ ์ก ๋ฑ์ ๋ฐ์ดํฐ ํต์ ์๋น์ค๋ฅผ ๋ฐ์ ์ ์๋ ์ปดํจํฐ ๋คํธ์ํฌ ์์คํ
- ํ๋กํ ์ฝ : ๋คํธ์ํฌ ํต์ ์ ์ํด ๋ฏธ๋ฆฌ ์ ํด ๋์ ๊ณตํต๋ ๋ฉ๋ด์ผ
๐ญ TCP/IP ๋?
- ์ธํฐ๋ท์์ ์ปดํจํฐ๋ค์ด ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์ฐ์ด๋ ํ๋กํ ์ฝ์ ์งํฉ
- Transmission Control Protocol/Internet Protocol
Application Layer ๋,
- ํน์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ๋ผ๋ฆฌ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์
- FTP, HTTP, SSH, Telnet, DNS, SMTP ์ ๊ฐ์ ํ๋กํ ์ฝ์ด ์ฌ์ฉ
- HTTP ์์ฒญ, ์๋ต์ ํตํด ํต์ ํ๋ ๊ฒ
Transport Layer ๋,
- ์ก์ ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์คํ ์ ๋ฌํ๊ฒ ํจ
- TCP, UDP, RTP, RTCP
- ๋คํธ์ํฌ ํต์ ์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํ๊ณ → Transport Layer ๋ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฐพ์์ฃผ๋ ์ญํ ์ํ
Internet Layer ๋,
- ์์ ์ธก๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฌ์ฉ
- IP, ARP, ICMP, RARP, OSPF
- IP ์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๋ชฉ์ ์ง๋ก ์ฐพ์๊ฐ ์ ์๋๋ก ํด์ค
Link Layer ๋
- ๋คํธ์ํฌ์ ์ง์ ์ฐ๊ฒฐ๊ดธ ๊ธฐ๊ธฐ ๊ฐ ์ ์ก์ ํ ์ ์๋๋ก ํด์ค
- Ethernet, PPP, Token Ring
- ๋ฌผ๋ฆฌ์ ์ฃผ์์ธ MAC ์ฃผ์๋ฅผ ์ฌ์ฉ
โก๏ธ TCP/IP ํ๋ฆ
๐ก “www.google.com” ์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅํ๋ฉด ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊น?
- “www.google.com” ์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅ
- → www.google.com 80๋ฒ ํฌํธ๋ก HTTP ๋ก ์์ฑ๋ ํด๋น ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ๋ถํํ๋ค. (Request Message ์ ์ก)
- ์ด ์์ฒญ์ ๊ตฌ๊ธ ์๋ฒ๋ก ์ ๋ฌํ๊ธฐ ์ํด ํจํท์ ๋ง๋ค์ด์ผ ํจ
- ํจํท์๋ ๊ฐ ๊ณ์ธต์ ํ์ํ ์ ๋ณด๋ค์ด ๋ด๊ฒจ์์ด์ผ ํจ
- HTTP ํค๋
- TCP ํค๋
2๏ธโฃ Internet Layer
- IP ํค๋๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด, ๋ชฉ์ ์ง IP ์ฃผ์๋ ์ด๋ป๊ฒ ์์๋ผ๊น?
- ๋๋ฉ์ธ ์ ๋ณด(www.google.com) ์ผ๋ก IP ์ฃผ์๋ฅผ ์์๋ผ ์ ์๋ค.
- ๋ธ๋ผ์ฐ์ ๋ OS ์๊ฒ domain ์ ๋ํ IP ์ฃผ์๋ฅผ ์์ฒญํจ
- OS์์ → DNS ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋
- OS๊ฐ DNS ์๋ฒ ์ฃผ์๋ฅผ ์ด๋ป๊ฒ ์๊ณ ์์๊น?
- ์ปดํจํฐ์ ์ด๋ฏธ ๋ฑ๋ก์ด ๋์ด ์๋ค!
- ๋งฅ๋ถ์ ๊ฒฝ์ฐ, ์์คํ ํ๊ฒฝ์ค์ > ๋คํธ์ํฌ์ ๋ค์ด๊ฐ๋ฉด : ๋ด๊ฐ ์๊ณ ์๋ DNS ์๋ฒ ์ฃผ์ ํ์ธ ๊ฐ๋ฅ
- DNS ๋ Application Layer ์ ํ๋กํ ์ฝ์ด๊ณ , 53๋ฒ ํฌํธ ์ฌ์ฉ
- DNS ๋ HTTP Request ์ ๋์ผํ๊ฒ, ๋๋ฉ์ธ์ด ๋ด๊ธด ์ฟผ๋ฆฌ๋ฅผ ๋๋ฉ์ธ ์๋ฒ๋ก ๋ณด๋
- ๊ทธ๋ฌ๋ฉด, ๋๋ฉ์ธ ์๋ฒ๊ฐ IP ์ฃผ์๋ฅผ ์๋ตํด์ค
- DNS ๋ Transport Layer ์์ UDP ๋ผ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํจ
- UDP ๋ ํค๋์ ํฌํธ๋ฒํธ๋ง ์กด์ฌ! (TCP ๋ ๋ณต์กํ๋ฐ,,) → UDP ๋ ๋น์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ (TCP ๋ ์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ)
1๏ธโฃ Network Access Layer
- ์ด๋๋ท(๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฐฉ์) ํ๋กํ ์ฝ์ ๋ํ ํค๋
- MAC(Media Access Control Address) ์ฃผ์๋, 48 ๋นํธ๋ก ํฌํ๋ ์๋ณ์๋ฅผ ์ด์ฉํ์ฌ ์ปดํจํฐ๋ฅผ ๊ตฌ๋ถํ๋ ์ฃผ์๋ก
- IP ์ฃผ์๋, ISP ์ ์ํด ํ ๋น๋๊ณ , ์ฅ์น๊ฐ ์ฐ๊ฒฐ ๋ฐ ํด์ ๋ ๋ ๋ค์ ํ ๋น ๊ฐ๋ฅ
- MAC ์ฃผ์๋ ๋ฌผ๋ฆฌ์ ์ด๋ํฐ์ ์ฐ๊ฒฐ๋๊ณ , ์ ์กฐ์ ์ฒด์์ ํ ๋น
- ์ฅ์น์์ ๊ณ ์ ํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์๋ณํ๋ค.
- ๊ทธ๋ ๋ค๋ฉด, ๋ชฉ์ ์ง์ธ Google ์น ์๋ฒ์ MAC ์ฃผ์๊ฐ ํ์ํ ๊น?
- ์ด๋์ MAC ์ฃผ์๋, ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ฐ๋ฆฌ์ง ๊ณต์ ๊ธฐ์ MAC ์ฃผ์๊ฐ ํ์
- ์ด ๊ณต์ ๊ธฐ๋ฅผ ํตํด ๋ค๋ฅธ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ ๊ฒ์ดํธ์จ์ด ๋ผ๊ณ ๋ ํจ
- gateway ์ IP ๋ netstate -rn ์ ํตํด ์ ์ ์์
- ๊ทธ๋ ๋ค๋ฉด, ์ด๋ป๊ฒ IP ์ฃผ์๋ก MAC ์ฃผ์๋ฅผ ์ ์ ์์๊น?
- IP ์ฃผ์๋ก MAC ์ฃผ์๋ฅผ ์์๋ด๊ธฐ ์ํด, **IP ์ฃผ์๋ฅผ MAC ์ฃผ์๋ก ๋ฐ๊พธ์ด์ฃผ๋ ์ฃผ์ํด์ ํ๋กํ ์ฝ**์ธ ARP ํ๋กํ ์ฝ ์ฌ์ฉ
- MAC(Media Access Control Address) ์ฃผ์๋, 48 ๋นํธ๋ก ํฌํ๋ ์๋ณ์๋ฅผ ์ด์ฉํ์ฌ ์ปดํจํฐ๋ฅผ ๊ตฌ๋ถํ๋ ์ฃผ์๋ก
3๏ธโฃ Transport Layer
- ๊ทธ๋ ๋ค๋ฉด ์ด์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋๊ฐ?
- TCP ๊ฐ ์ฐ๊ฒฐ์งํฅํ ํ๋กํ ์ฝ์ธ ๊ฒ์ ๊ณ ๋ คํด์ผ ํจ
- ๋ฐ๋ผ์, TCP ํ๋กํ ์ฝ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ก์ ์ธก๊ณผ ์์ ์ธก์ด ์๋ก ์ฐ๊ฒฐ๋๋ ์์ ํ์
- → 3-Way Handshaking
- 3 Way Handwhaking ์ ์ํด **TCP ํค๋์ ํ์ํ ํ๋๊ทธ**๋ค์ด ์ฌ์ฉ๋จ
- ์ด๋ฌํ ํ๋๊ทธ๋ค์ด **์ปจํธ๋กค ๋นํธ**๋ผ๊ณ ํจ
- 3 Way Handwhaking ์์๋ SYN ๊ณผ ACK ํ๋๊ทธ๊ฐ ์ฌ์ฉ๋จ
- ํด๋ผ์ด์ธํธ๋ → ์๋ฒ์๊ฒ ์ ์์ ์์ฒญํ๋ SYN ํจํท์ ๋ณด๋ด๊ณ
- ์๋ฒ๋ SYN ์์ฒญ์ ๋ฐ๊ณ → ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ์๋ฝํ๋ค๋ ACK ๊ณผ SYN ํ๋๊ทธ๊ฐ ์ค์ ๋ ํจํท์ ๋ณด๋
- ์ฌ์ง์์ 2๋ฒ์งธ hanshaking ์ SYN ๋ถ๋ถ์ 1 ์ด ํ์๋์ด์ผ ํจ (์ฌ์ง ์์ ํ์)
- ํด๋ผ์ด์ธํธ๋ → ์๋ฒ์๊ฒ ๋ค์ ACK ํจํท์ ๋ณด๋ !
- ์ด์ , Handshaking ์ ํตํด ์ฐ๊ฒฐ๋์์ผ๋, ๋ฐ์ดํฐ๊ฐ ๋ณด๋ด์ง ์ฐจ๋ก!
4๏ธโฃ Application Layer
- Application Layer ๊น์ง ์ค๋ฉด, ์น ์๋ฒ๊ฐ ์ฌ์ฉ๋ HTTP Request ๋ฐ์ดํฐ๋ฅผ ์ป์ด์ฌ ์ ์์
- ์ด์ , ์๋ฒ์์ ์ ์์ ์ผ๋ก HTTP Request ๋ฅผ ๋ฐ๊ณ → ์๋ต์ ๋๋ ค๋ณด๋
- “ / “ ์ ๋งคํ๋ GET ์์ฒญ์ ์ฒ๋ฆฌํด์ ์ ์ ํ HTML ์ ์๋ต
- HTTP ์์ฒญ๊ณผ ์๋ต๊ณผ์ ์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ ์ข ๋ฃํด์ผ ํจ → 4-Way Handshaking
- ์ด๋, TCP ์ปจํธ๋กค ๋นํธ๊ฐ ์ฌ์ฉ๋จ
- ์ฌ๊ธฐ์, ์ปจํธ๋กค ๋นํธ๋ก๋ ACK ๊ณผ FIN ํ๋๊ทธ๊ฐ ์ฌ์ฉ๋จ
- ํด๋ผ์ด์ธํธ๊ฐ → ์๋ฒ๋ก ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ฒ ๋ค๋ FIN ํ๋๊ทธ ์ ์ก
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ACK ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ → ์์ ์ ํต์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆผ
- ์๋ฒ๊ฐ ํต์ ์ด ๋๋๋ฉด → ํด๋ผ์ด์ธํธ๋ก FIN ์ ๋ณด๋
- ์ด๋, ์๋ฒ๊ฐ FIN ์ ๋ณด๋ด๊ธฐ ์ ์ ๋ณด๋๋ ๋ฐ์ดํฐ๊ฐ FIN ๋ณด๋ค ๋ฆ๊ฒ ๋์ฐฉํ ๊ฒฝ์ฐ?
- ์๋ฒ๋ก๋ถํฐ FIN ์ ์์ ํ๋ค๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ก ์ฐ๊ฒฐ๋ ์์ผ์ ๋ซ์๋ฒ๋ฆฌ๋ฉด ?
- FIN ์ ๋ณด๋ด๊ธฐ ์ ์ ๋ณด๋ธ ํจํท์ ํด๋ผ์ด์ธํธ๊ฐ ์์ ๋ฐ์ ์ ์๊ฒ ๋จ
- ๋ฐ๋ผ์, ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ FIN ์์ฒญ์ ๋ฐ๋๋ผ๋ ์ผ์ ์๊ฐ ์์ผ์ ๋ซ์ง ์๊ณ , ํน์๋, ์์ง ๋์ฐฉํ์ง ์์ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆผ ⇒ Time Wait โฑ๏ธ
- ํด๋ผ์ด์ธํธ๋ ํ์ธ์ ์๋ฏธ๋ก → ์๋ฒ์๊ฒ ACK ์ ๋ณด๋
๐๐ป์ ๋ขฐํ ์ ์๋ TCP
- ์์ฆ ์ธ์์๋ ์์ฒญ๋๊ฒ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์
- ๋ฐ๋ผ์, ํ ๊ฐ์ ํจํท์ผ๋ก๋ง ์ฃผ๊ณ ๋ฐ๊ธฐ์๋ ์๋นํ ๋ฌด๋ฆฌ๊ฐ ์๋ค.
- ๋ ๋ฆฌ์ฌ ๋ฐ์ดํฐ๋ฅผ ์๊ฒ ์ชผ๊ฐ๊ณ , ๋ง์ ํจํท์ ๋ณด๋ด๊ฒ ๋๊ณ ,
- ์์ฒญ ๋ณต์กํ ์ธํฐ๋ท์ ํตํด ์ ๋ฌํจ
- ์ด ๋ณต์กํ ํ๊ฒฝ์์, ๊ทธ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์์๋์ง ์๊ณ ์ ๋ฌ๋ ์ ์์๊น?
- ํ๋ฆ์ ์ด
- ์ค๋ฅ์ ์ด
- ํผ์ก์ ์ด
- → ์ด ์ด๋ ค์ด ๊ฒ์ ! TCP๊ฐ ๊ฐ๋ฅํ๊ฒ ํด์ค!
๐คท๐ป UDP(User Datagram Protocol)
- ์ ๋ขฐ์ฑ์๋ ํ๋กํ ์ฝ์ธ TCP ์ ๋นํด, ์ ๋ขฐ์ฑ์ด ๋ฎ์ ๋น์ฐ๊ฒฐํ ์๋น์ค
- TCP Vs UDP ๋น๊ต
๐ค 3-Way Handshake & 4-Way Handshake
3-Way Handshake
- TCP/IP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ํต์ ์ ์งํํ ๋, ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ข ๋จ ๊ฐ ์ ํํ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด “์ฐ๊ฒฐ์ ์ค์ ”
- ํด๋ผ์ด์ธํธ → ์๋ฒ : ์๋ฒ ์ ์ ์์ฒญ **SYN ํจํท**์ ์ ์ก
- ์๋ฒ → ํด๋ผ์ด์ธํธ : ์์ฒญ ์๋ฝ ์๋ต **ACK ํจํท**๊ณผ + ํฌํธ๋ฅผ ์ด์ด๋ฌ๋ผ๋ **SYN ํจํท**์ ์ ์ก
- ํด๋ผ์ด์ธํธ → ์๋ฒ : ํ์ธ ์๋ต์ผ๋ก ACK ํจํท ์ ์ก
- SYN(Synchronize Sequence Number)
- ACK(Acknowlegement)
4-Way Handshake
- “์ด๊ฒฐ ์ค์ ํด์ ”
- ํด๋ผ์ด์ธํธ → ์๋ฒ : ์ฐ๊ฒฐ์ ํด์ ํ๊ฒ ๋ค๋ FIN ํจํท ์ ์ก
- ์๋ฒ → ํด๋ผ์ด์ธํธ : ์๋ต์ผ๋ก ACK ํจํท ์ ์ก
- ์๋ฒ → ํด๋ผ์ด์ธํธ : ์ฒ๋ฆฌํด์ผ ํ ๋ชจ๋ ํต์ ์ ๋๋ด๊ณ → ์ฐ๊ฒฐ์ ์ข
๋ฃํ๊ฒ ๋ค๋ FIN ํจํท ์ ์ก
- ์ด๋, ์๋ฒ๊ฐ FIN ์ ๋ณด๋ด๊ธฐ ์ ์ ๋ณด๋๋ ๋ฐ์ดํฐ๊ฐ FIN ๋ณด๋ค ๋ฆ๊ฒ ๋์ฐฉํ ๊ฒฝ์ฐ?
- ์๋ฒ๋ก๋ถํฐ FIN ์ ์์ ํ๋ค๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ก ์ฐ๊ฒฐ๋ ์์ผ์ ๋ซ์๋ฒ๋ฆฌ๋ฉด ?
- FIN ์ ๋ณด๋ด๊ธฐ ์ ์ ๋ณด๋ธ ํจํท์ ํด๋ผ์ด์ธํธ๊ฐ ์์ ๋ฐ์ ์ ์๊ฒ ๋จ
- ๋ฐ๋ผ์, ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ FIN ์์ฒญ์ ๋ฐ๋๋ผ๋ ์ผ์ ์๊ฐ ์์ผ์ ๋ซ์ง ์๊ณ , ํน์๋, ์์ง ๋์ฐฉํ์ง ์์ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆผ ⇒ Time Wait โฑ๏ธ
- ํด๋ผ์ด์ธํธ → ์๋ฒ : ํ์ธ ์๋ต์ผ๋ก ACK ํจํท ์ ์ก
์ฐธ๊ณ ์๋ฃ
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] HTTP ๋ ? (0) | 2022.07.09 |
---|---|
[Network] TCP ์ UDP ์ ์ฐจ์ด ? (0) | 2022.07.09 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค(Index) (0) | 2022.07.09 |
[Network] OSI 7๊ณ์ธต(feat.TCP/IP Updated) (0) | 2022.06.21 |
[OS] Process / Thread (0) | 2022.01.12 |