TCP / UDP
Reference: [์ฑ ] IT ์์ง๋์ด๋ฅผ ์ํ ๋คํธ์ํฌ ์ ๋ฌธ
2๊ณ์ธต๊ณผ 3๊ณ์ธต์ ๋ชฉ์ ์ง๋ฅผ ์ ํํ ์ฐพ์๊ฐ๊ธฐ ์ํ ์ฃผ์ ์ ๊ณต์ด ๋ชฉ์ ์ด์์ง๋ง, 4๊ณ์ธต์์ ๋์ํ๋ protocol์ ๋ง๋ค์ด์ง ๋ชฉ์ ์ด 2, 3 ๊ณ์ธต๊ณผ ์กฐ๊ธ ๋ค๋ฅด๋ค
๋ชฉ์ ์ง ๋จ๋ง ์์์ ๋์ํ๋ ์ฌ๋ฌ application process ์ค ํต์ ํด์ผ ํ ๋ชฉ์ ์ง process๋ฅผ ์ ํํ ์ฐพ์๊ฐ๊ณ ,
packet ์์๊ฐ ๋ฐ๋์ง ์๋๋ก ์ ์กฐํฉํด
์๋ data๋ฅผ ์ ๋ง๋ค์ด๋ด๊ธฐ ์ํ ์ญํ ์ ํ๋ค
1. Layer 4 Protocol (TCP, UDP) and Service Port
Data๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๋ Encapsulation, Decapsulation ๊ณผ์ ์ ๊ฐ ๊ณ์ธต์์ ์ ์ํ๋ header๊ฐ ์ถ๊ฐ๋๊ณ , ์ฌ๋ฌ๊ฐ์ง ์ ๋ณด๊ฐ ๋ค์ด๊ฐ๋ค
๋ค์ํ ์ ๋ณด ์ค ๊ฐ์ฅ ์ค์ํ ๋ ๊ฐ์ง ์ ๋ณด๋ ์๋์ ๊ฐ๋ค
๊ฐ ๊ณ์ธต์์ ์ ์ํ๋ ์ ๋ณด
์์ ์ธก์ ๋์ผ ๊ณ์ธต์์ ์ฌ์ฉํ๊ธฐ ์ํ ์ ๋ณด
์์ protocol ์ง์์ ์ ๋ณด
Decapsulation ๊ณผ์ ์์ ์์ ๊ณ์ธต์ protocol์ด๋ process๋ฅผ ์ ํํ ์ฐพ์๊ฐ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
TCP/IP Protocol Stack
์์ 4๊ณ์ธต์ TCP์ UDP๊ฐ ๋ด๋นํ๋ค4๊ณ์ธต์ ๋ชฉ์ ์ application์์ ์ฌ์ฉํ๋ process๋ฅผ ์ ํํ ์ฐพ์๊ฐ๊ณ , data๋ฅผ ๋ถํ ํ
packet
์ ์ ์ชผ๊ฐ ๋ณด๋ด๊ณ ์ ์กฐ๋ฆฝํ๋ ๊ฒ์ด๋คpacket์ ๋ถํ ํ๊ณ ์กฐ๋ฆฝํ๊ธฐ ์ํด Sequence Number์ ACK Number๋ฅผ ์ฌ์ฉํ๋ค
TCP/IP Protocol Stack
์์ ์์ protocol ์ง์์๋ port๋ฒํธ์ด๋ค4๊ณ์ธต protocol ์ง์์์ธ port ๋ฒํธ๋ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง๋ฅผ ๊ตฌ๋ถํด ์ฒ๋ฆฌํด์ผ ํ๋ค
Well Known Port
HTTP TCP 80, HTTPS TCP 443, SMTP TCP 25์ ๊ฐ์ด ์ ์๋ ค์ง Port๋ฅผ Well known port ๋ผ๊ณ ํ๋ค
์ด port๋ค์ ์ด๋ฏธ ์ธํฐ๋ท ์ฃผ์ ํ ๋น ๊ธฐ๊ตฌ์ธ **IANA (Internet Assgined Numbers Authority)**์ ๋ฑ๋ก๋๊ณ 1023๋ฒ ์ดํ์ port ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ค
๋ค์ํ application์ port ๋ฒํธ๋ฅผ ํ ๋นํ๊ธฐ ์ํด Registered Port ๋ฒ์๋ฅผ ์ฌ์ฉํ๋ค
1024 ~ 49151
์ ๋ฒ์์ด๋ฉฐ,port ๋ฒํธ๋ฅผ ํ ๋น๋ฐ๊ธฐ ์ํด ์ ์ฒญํ๋ฉด IANA์ ๋ฑ๋ก๋์ด ๊ด๋ฆฌ๋๋คbut, ๊ณต์ ๋ฒํธ์ ๋น๊ณต์ ๋ฒํธ๊ฐ ํผ์ฌ๋์ด ์๊ณ , ์ฌ์ค port ๋ฒํธ๋ก ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค
๋์ , ์ฌ์ค, ์์ port ์ ๋ฒ์๋
49152 ~ 65535
์ด๋ค์ด ๋ฒ์์ port ๋ฒํธ๋ IANA์ ๋ฑ๋ก๋์ด ์ฌ์ฉ๋์ง ์๋๋ค
์ด port ๋ฒํธ๋ ์๋์ผ๋ก ํ ๋น๋๊ฑฐ๋, ์ฌ์ค ์ฉ๋๋ก ํ ๋น๋๊ณ , client์ ์์ port ๋ฒํธ๋ก ์ฌ์ฉ๋๋ค!
2. TCP
TCP๋ Layer 4์ ํน์ง์ ๋๋ถ๋ถ ํฌํจํ๊ณ ์๋ค
TCP protocol์ ์ ๋ขฐํ ์ ์๋ ๊ณต์ฉ๋ง์์๋ ์ ๋ณด์ ์ค ์๋ ํต์ ์ ๋ณด์ฅํ๊ธฐ ์ํด
session์ ์์ ํ๊ฒ ์ฐ๊ฒฐํ๊ณ
data๋ฅผ ๋ถํ ํ๊ณ
๋ถํ ๋ packet์ด ์ ์ ์ก๋์๋์ง ํ์ธํ๋ ๊ธฐ๋ฅ์ด ์๋ค
Packet ์ ๋ฒํธ(
Sequence Number
)๋ฅผ ๋ถ์ฌํ๊ณ ์ ์ ์ก๋์๋์ง์ ๋ํด ์๋ต(Acknowledge Number
) ํ๋ค๋ํ, ํ๊บผ๋ฒ์ ์ผ๋ง๋ ๋ณด๋ด์ผ ์์ ์๊ฐ ์ ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๋์ง ์ ์กํฌ๊ธฐ (
Window Size
)๊น์ง ๊ณ ๋ คํด ํต์ ํ๋ค์ด๋ฌํ TCP์ ์ญํ ๋๋ถ์ network ์ํ๋ฅผ ์ฌ๊ฐํ๊ฒ ๊ณ ๋ คํ์ง ์๊ณ ์ฝ๊ณ ์์ ํ๊ฒ network๋ฅผ ์ฌ์ฉํ ์ ์๋ค
2-1. Packet ์์์ ์๋ต ๋ฒํธ (ACK Number)
TCP์์๋ ๋ถํ ๋ packet์ ์ ๋ถํ ํ๊ณ ์์ ์ธก์ด ์ ์กฐํฉํ๋๋ก packet์ ์์๋ฅผ ์ฃผ๊ณ ์๋ต ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ค
Packet์ ์์๋ฅผ ๋ถ์ฌํ๋ ๊ฒ์
Sequence Number
, ์๋ต ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ ๊ฒ์ACK Number
๋ผ๊ณ ๋ถ๋ฅธ๋ค๋ ๋ฒํธ๊ฐ ์ํธ์์ฉํด ์์๊ฐ ๋ค๋ฐ๋๊ฑฐ๋ ์ค๊ฐ์ packet์ด ์์ค๋ ๊ฒ์ ํ์ ํ ์ ์๋ค
Sequence Number
์ ACK Number
์ ๊ธฐ๋ณธ ๋์ ๋ฐฉ์
Sequence Number
์ ACK Number
์ ๊ธฐ๋ณธ ๋์ ๋ฐฉ์๋ณด๋ด๋ ์ชฝ์์ packet์ ๋ฒํธ๋ฅผ ๋ถ์ฌํ๊ณ ๋ฐ๋ ์ชฝ์ ์ด ๋ฒํธ์ ์์๊ฐ ๋ง๋์ง ํ์ธํ๋ค
๋ฐ์ packet ๋ฒํธ๊ฐ ๋ง์ผ๋ฉด ์๋ต์ ์ฃผ๋๋ฐ, ์ด๋ ๋ค์ ๋ฒํธ์ packet์ ์์ฒญํ๋ค
์ด ์ซ์๋ฅผ
ACK Number
๋ผ๊ณ ํ๋ค
์ก์ ์ธก์ด 1๋ฒ packet์ ๋ณด๋๋๋ฐ ์์ ์ธก์ด ์ด packet์ ์ ๋ฐ๋๋ค๋ฉด 1๋ฒ์ ์ ๋ฐ์์ผ๋ ๋ค์์๋ 2๋ฒ์ ๋ฌ๋ผ๋ ํ์๋ก
ACK Number
2๋ฅผ ์ค๋ค
ex)
์ถ๋ฐ์ง์์
Sequence Number
๋ฅผ 0์ผ๋ก ๋ณด๋ธ๋ค (SEQ = 0)์์ ์ธก์์๋ 0๋ฒ packet์ ์ ๋ฐ์๋ค๋ ํ์๋ก ์๋ต ๋ฒํธ (
ACK Number
์ 1์ ์ ์ด ์๋ตํ๋ค์ด๋ ์์ ์ธก์์๋ ์์ ์ด ์ฒ์ ๋ณด๋ด๋ packet์ด๋ฏ๋ก ์์ ์ packet์
Sequence Number
0์ ๋ถ์ฌํ๋ค์ด packet์ ๋ฐ์ ์ก์ ์ธก์
Sequence Number
๋ฅผ1๋ก, (์์ ์ธก์ดACK Number
๋ก 1๋ฒ packet์ ๋ฌ๋ผ๊ณ ์์ฒญํ์ผ๋๊น!!)ACK Number
๋ ์๋๋ฐฉ์ 0๋ฒ Sequence๋ฅผ ์ ๋ฐ์๋ฐ๋ ์๋ฏธ๋ก Sequence Number๋ฅผ 1๋ก ๋ถ์ฌํด ๋ค์ ์ก์ ํ๋ค!
2-2. Window Size & Sliding Window
TCP๋ ์ผ๋ฐฉ์ ์ผ๋ก packet์ ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ ์๋๋ฐฉ์ด ์ผ๋ง๋ ์ ๋ฐ์๋์ง ํ์ธํ๊ธฐ ์ํด ACK ๋ฒํธ๋ฅผ ํ์ธํ๊ณ ๋ค์ packet์ ์ ์กํ๋ค
Packet์ด ์ ์ ์ก๋์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ณ๋ packet์ ๋ฐ๋ ๊ฒ ์์ฒด๊ฐ ํต์ ์๊ฐ์ ๋๋ฆฌ์ง๋ง, ์ก์ ์์ ์์ ์๊ฐ ๋จผ ๊ฑฐ๋ฆฌ์ ๋จ์ด์ ธ ์์ผ๋ฉด **์๋ณต ์ง์ฐ์๊ฐ (Round Trip Time, RTT)**์ด ๋์ด๋๋ฏ๋ก ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ๋ ๊ธธ์ด์ง๋ค
๋ง์ฝ ์์ packet์ ํ๋ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์์ผ๋ง ํ๋๋ฅผ ๋ ๋ณด๋ผ ์ ์๋ค๋ฉด ๋ชจ๋ data๋ฅผ ์ ์กํ๋ ๋ฐ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ด๋ค
๊ทธ๋์ data๋ฅผ ๋ณด๋ผ ๋ packet์ ํ๋๋ง ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ ๋ง์ packet์ ํ๊บผ๋ฒ์ ๋ณด๋ด๊ณ ์๋ต์ ํ๋๋ง ๋ฐ๋๋ค
๊ฐ๋ฅํ๋ฉด ์ต๋ํ ๋ง์ packet์ ํ๊บผ๋ฒ์ ๋ณด๋ด๋ ๊ฒ์ด ํจ์จ์ ์ด์ง๋ง, Network ์ํ๊ฐ ์ ์ข์ผ๋ฉด packet ์ ์ค ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๋ฏ๋ก ์ ์ ํ ์ก์ ๋์ ๊ฒฐ์ ํด์ผ ํ๋๋ฐ,
ํ ๋ฒ์ data๋ฅผ ๋ฐ์ ์ ์๋ data์ ํฌ๊ธฐ๋ฅผ
Window Size
๋ผ๊ณ ํ๊ณ ,Network ์ํฉ์ ๋ฐ๋ผ ์ด window size๋ฅผ ์กฐ์ ํ๋ ๊ฒ์
Sliding Window
๋ผ๊ณ ํ๋ค
TCP Header์์ window size๋ก ํํํ ์ ์๋ ์ต๋ ํฌ๊ธฐ๋ 2^16 ์ด๋ค
์ค์ ๋ก 64K๋งํผ window size๋ฅผ ๊ฐ์ง ์ ์์ง๋ง ์ด size๋ ํ์ ์ ์์ ์ฑ์ด ๋์์ง๊ณ ๊ณ ์ํ๋๋ ํ๋ network์์๋ ๋๋ฌด ์์ ์ซ์์ด๋ค
๊ทธ๋์ window size๋ฅผ 64K๋ณด๋ค ๋ํญ ๋๋ ค ํต์ ํ๋๋ฐ TCP header๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก header size๋ฅผ ๋๋ฆฌ์ง ์๊ณ ๋ค์ ์ซ์๋ฅผ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ์ผ๋ก window size๋ฅผ ์ฆ๊ฐ์์ผ ํต์ ํ๋ค
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ์ซ์์ 10๋ฐฐ, 100๋ฐฐ๋ก window๊ฐ ์ปค์ง๋ค!
TCP๋ data ์ ์ค์ด ๋ฐ์ํ๋ฉด window size๋ฅผ ์ ๋ฐ์ผ๋ก ๋จ์ด๋จ๋ฆฌ๊ณ ์ ์์ ์ธ ํต์ ์ด ๋๋ ๊ฒฝ์ฐ ์์ํ ํ๋์ฉ ๋๋ฆฐ๋ค
๋ง์ฝ Network ๊ฒฝํฉ์ด ๋ฐ์ํด
packet drop
์ด ์๊ธฐ๋ฉด ์์์ง window size๋ก ์ธํด data ํต์ ์๋๊ฐ ๋๋ ค์ ธ ํ์ ์ ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค์ด ๊ฒฝ์ฐ ๊ฒฝํฉ์ ํผํ๊ธฐ ์ํด
ํ์ ์๋๋ฅผ ์ฆ๊ฐ์ํค๊ฑฐ๋
๊ฒฝํฉ์ ์์๋ก ํผํ๊ฒ ํ ์ ์๋ buffer๊ฐ ํฐ network ์ฅ๋น๋ฅดใน ์ฌ์ฉํ๊ฑฐ๋
TCP ์ต์ ํ solution์ ์ฌ์ฉํด ์ด๋ฐ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ์ ์๋ค
2-3. 3-Way Handshake
TCP์์๋ ์ ์ค์๋ ์์ ํ ํต์ ์ ์ํด ํต์ ์์ ์ ์ฌ์ ์ฐ๊ฒฐ์์ ์ ์งํํ๋ค
๋ง์ฝ ๋ชฉ์ ์ง๊ฐ data๋ฅผ ๋ฐ์ ์ค๋น๊ฐ ์ ๋ ์ํฉ์์ data๋ฅผ ์ผ๋ฐฉ์ ์ผ๋ก ์ ์กํ๋ฉด ๋ชฉ์ ์ง์์๋ data๋ฅผ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด data๊ฐ ๋ฒ๋ ค์ง๋ค
์ด๋ฐ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด TCP protocol์ data๋ฅผ ์์ ํ๊ฒ ๋ณด๋ด๊ณ ๋ฐ์ ์ ์๋์ง ๋ฏธ๋ฆฌ ํ์ธํ๋ ์์ ์ ๊ฑฐ์น๋ ๊ฒ์ด๋ค!
Packet Network
์์๋ ๋์์ ๋ง์ ์๋๋ฐฉ๊ณผ ํต์ ํ๋ฏ๋ก ์ ํํ ํต์ ์ ์ํด ํต์ ์ ํต์ ์ ํ์ํ resource๋ฅผ ๋ฏธ๋ฆฌ ํ๋ณดํ๋ ์์ ์ด ์ค์ํ๋คTCP์์๋ 3๋ฒ์ packet์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ํต์ ์ ์๋ก ์ค๋นํ๋ฏ๋ก
3-Way Handshake
๋ผ๊ณ ๋ถ๋ฅธ๋ค
TCP์์๋ ์ด๋ฐ
3-Way Handshake
์งํ ์ํฉ์ ๋ฐ๋ผ state ์ ๋ณด๋ฅผ ๋ถ๋ฅด๋ ์ด๋ฆ์ด ๋ค๋ฅด๋คServer์์๋ service๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด client์ ์ ์์ ๋ฐ์๋ค์ผ ์ ์๋ LISTEN state๋ก ๋๊ธฐํ๋ค
Client์์ ํต์ ์ ์๋ํ ๋
Syn
packet์ ๋ณด๋ด๋๋ฐ client์์๋ ์ด ์ํ๋ฅผ SYN-SENT state ๋ผ๊ณ ๋ถ๋ฅธ๋คClient์
Syn
์ ๋ฐ์ server๋ SYN-RECEIVED state๋ก ๋ณ๊ฒฝ๋๊ณ ,Syn
,Ack
๋ก ์๋ตํ๋ค์๋ต์ ๋ฐ์ client๋ ESTABLISHED state๋ก ๋ณ๊ฒฝํ๊ณ ๊ทธ์ ๋ํ ์๋ต์ server์ ๋ณด๋ธ๋ค
Server์์๋ client์
Ack
์๋ต์ ๋ฐ๊ณ ESTABLISHED state๋ก ๋ณ๊ฒฝ๋๋คESTABLISHED state๋ server์ client ๊ฐ์ ์ฐ๊ฒฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์์์ ๋ํ๋ธ๋ค!
3-Way Handshake
๊ณผ์ ์ด ์๊ธฐ๋ค๋ณด๋ ์ด๋ค packet์ด ์๋ก์ด ์ฐ๊ฒฐ ์๋์ด๊ณ ๊ธฐ์กด์ ๋ํ ์๋ต์ธ์ง ๊ตฌ๋ถํ๊ธฐ ์ํด header์ Flag๋ผ๋ ๊ฐ์ ๋ฃ์ด ํต์ ํ๋คTCP Flags
SYN
์ฐ๊ฒฐ ์์ ์ฉ๋๋ก ์ฌ์ฉํ๋ค
์ฐ๊ฒฐ์ด ์์๋ ๋ SYN Flag์ 1๋ก ํ์ํด ๋ณด๋ธ๋ค
ACK
ACK ๋ฒํธ๊ฐ ์ ํจํ ๊ฒฝ์ฐ 1๋ก ํ์ํด ๋ณด๋ธ๋ค
์ด๊ธฐ SYN์ด ์๋ ๋ชจ๋ packet์ ๊ธฐ์กด message์ ๋ํ ์๋ต์ด๋ฏ๋ก ACK flag๊ฐ 1๋ก ํ๊ธฐ๋๋ค
FIN
์ฐ๊ฒฐ ์ข ๋ฃ ์ 1๋ก ํ์๋๋ค
Data ์ ์ก์ ๋ง์น ํ ์ ์์ ์ผ๋ก ์๋ฐฉํฅ ์ข ๋ฃ ์ ์ฌ์ฉ๋๋ค
RST
์ฐ๊ฒฐ ์ข ๋ฃ์ 1๋ก ํ์๋๋ค
์ฐ๊ฒฐ ๊ฐ์ ์ข ๋ฃ๋ฅผ ์ํด ์ฐ๊ฒฐ์ ์ผ๋ฐฉ์ ์ผ๋ก ๋์ ๋ ์ฌ์ฉ๋๋ค
URG
๊ธด๊ธ data์ธ ๊ฒฝ์ฐ 1๋ก ํ์ํด ๋ณด๋ธ๋ค
PSH
Server์ธก์์ ์ ์กํ data๊ฐ ์๊ฑฐ๋ data๋ฅผ buffering ์์ด ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ์ฆ์ ์ ๋ฌํ ๊ฒ์ ์ง์ํ ๋ ์ฌ์ฉ๋๋ค
3. UDP
TCP์ ๋ฌ๋ฆฌ UDP๋ Layer 4 protocol์ด ๊ฐ์ ธ์ผ ํ ํน์ง์ด ๊ฑฐ์ ์๋ค
4๊ณ์ธต์์๋ ์ ๋ขฐ์ฑ ์๋ ํต์ ์ ์ํด ์๋์ ๊ฐ์ ์์ ์ ์ํํ๋ค
์ฐ๊ฒฐ์ ๋ฏธ๋ฆฌ ํ๋ฆฝ (3-Way Handshake)
Data๋ฅผ ์ ๋ถํ ํ๊ณ ์กฐ๋ฆฝํ๊ธฐ ์ํด
packet ๋ฒํธ
๋ฅผ ๋ถ์ฌํ๊ณ ์์ ๋ data์ ๋ํด ์๋ตData๋ฅผ ํน์ ๋จ์(
Window Size
)๋ก ๋ณด๋ด๊ณ memory์ ์ ์งํ๋ค๊ฐACK Number
๋ฅผ ๋ฐ์ ํ ํต์ ์ด ์ ๋ ์ํฉ์ ํ์ ํ๊ณ ๋์์ผ memory์์ ์ด data๋ค์ ์ ๊ฑฐ๋ง์ฝ ์ค๊ฐ์ ์ ์ค์ด ์์ผ๋ฉด
Sequence Number
์ACK Number
๋ฅผ ๋น๊ตํด๊ฐ๋ฉฐ ์ด๋ฅผ ํ์ ํ๊ณ , memory์ ์ ์งํด๋์ data๋ฅผ ์ด์ฉํด ์ฌ์ ์ก์ด ๊ธฐ๋ฅ์ ์ด์ฉํด data ์ ์ค์ด ๋ฐ์ํ๊ฑฐ๋ ์์๊ฐ ๋ฐ๋๋๋ผ๋ ๋ฐ๋ก ์ก์ ์ ์์
UDP์๋ ์์ TCP์ ๊ฐ์ ๊ธฐ๋ฅ์ด ์ ํ ์๋ค
UDP header๋ TCP์ ๋น๊ตํ๋ฉด ๋ด์ฉ์ด ๊ฑฐ์ ์๋ค
UDP์๋ 4๊ณ์ธต์ ํน์ง์ธ ์ ๋ขฐ ํต์ ์ ์ํ ๋ด์ฉ (
Sequence Number
,ACK Number
,Flag
,Window Size
) ์ด ์๋ค
Data ํต์ ์ data ์ ์ก์ ์ ๋ขฐ์ฑ์ด ํต์ฌ์ด๋ค
application์์ ๊ฑฑ์ ํ์ง ์๊ณ data๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉํ๋ ๊ฒ์ด data ํต์ ์ ๋ชฉ์ ์ด์ง๋ง,
UDP๋ data ์ ์ก์ ๋ณด์ฅํ์ง ์๋ protocol ์ด๋ฏ๋ก ์ ํ๋ ์ฉ๋๋ก๋ง ์ฌ์ฉ๋๋ค
UDP๋ ์์ฑ data๋ ์ค์๊ฐ streamnig๊ณผ ๊ฐ์ด ์๊ฐ์ ๋ฏผ๊ฐํ protocol์ด๋ application์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ฌ๋ด ๋ฐฉ์ก์ด๋ ์ฆ๊ถ ์์ธ ๋ฐ์ดํฐ ์ ์ก์ ์ฌ์ฉ๋๋
multicast
์ฒ๋ผ ๋จ๋ฐฉํฅ์ผ๋ก ๋ค์์ ๋จ๋ง๊ณผ ํต์ ์ ์๋ต์ ๋ฐ๊ธฐ ์ด๋ ค์ด ํ๊ฒฝ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋คData๋ฅผ ์ ์กํ๋๋ฐ ์ ๋ขฐ์ฑ๋ณด๋ค ์ผ๋ถ data๊ฐ ์ ์ค๋๋๋ผ๋ ์๊ฐ์ ๋ง์ถ์ด ๊ณ์ ์ ์กํ๋ ๊ฒ์ด ์ค์ํ ํ์ํ์ ์์คํ ๊ณผ ๊ฐ์ ์๋น์ค์ ๊ฒฝ์ฐ UDP๋ฅผ ์ฌ์ฉํ๋ค
UDP๋ ์ค๊ฐ์ data๊ฐ ์ผ๋ถ ์ ์ค๋๋๋ผ๋ ์ ์ค๋ ์ํ๋ก data๋ฅผ ์ฒ๋ฆฌํ๋ค!
UDP๋ TCP์ ๋ฌ๋ฆฌ ํต์ ์์ ์
3-Way Handshake
์ ๊ฐ์ด ์ฌ์ ์ ์ฐ๊ฒฐ์ ํ๋ฆฝํ๋ ์ ์ฐจ๊ฐ ์๋ค๊ทธ ๋์ UDP์์ ์ฒซ data๋ resource ํ๋ณด๋ฅผ ์ํด Interrupt๋ฅผ ๊ฑฐ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๊ณ ์ ์ค๋๋ค
๊ทธ๋์ UDP protocol์ ์ฌ์ฉํ๋ application์ด ๋๋ถ๋ถ ์ด๋ฐ ์ํฉ์ ์ธ์งํ๊ณ ๋์ํ๊ฑฐ๋,
์ฐ๊ฒฐ ํ๋ฆฝ์ TCP protocol์ ์ฌ์ฉํ๊ณ , application ๋ผ๋ฆฌ ๋ชจ๋ ์ค๋น๋ฅผ ๋ง์น ํ ์ค์ data๋ง UDP๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค
ex)
Netflix๋ Youtube์ ๊ฐ์ด ์๊ฐ์ ๋ฏผ๊ฐํ์ง ์์ ๋จ์ผ ์์ฒญ์๋ฅผ ์ํ ์ฐ๊ฒฐ์ TCP๋ฅผ ์ฌ์ฉํ๋ค
์ค์๊ฐ ํ์ํ์ ์๋ฃจ์ ์ data ์ ์ก์ด ์๋ฐฉํฅ์ผ๋ก ์ผ์ด๋๊ณ ์๊ฐ์ ๋งค์ฐ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ๋ฏ๋ก TCP ์ด์ฉ ํ๊ฒฝ์์ data ์ ์ค์ด ๋ฐ์ํ๋ฉด ์ฌ์ฉ์๋ network ํ์ง์ด ๋์๋ค๊ณ ์๊ฐํ ์ ์์ผ๋ฏ๋ก UDP๋ฅผ ์ฌ์ฉํ๋ค
TCP vs UDP
์ฐ๊ฒฐ ์งํฅ (Connection Oriented)
๋น์ฐ๊ฒฐํ (Connectionless)
์ค๋ฅ ์ ์ด ์ํ O
์ค๋ฅ ์ ์ด ์ํ X
ํ๋ฆ ์ ์ด ์ํ O
ํ๋ฆ ์ ์ด ์ํ X
Unicast
Unicast, Multicast, Broadcast
์ ์ด์ค (Full Duplex)
๋ฐ์ด์ค (Half Duplex)
Data ์ ์ก
์ค์๊ฐ traffic ์ ์ก
+
Communication channels in telecommunications
๋จ๋ฐฉํฅ ํต์ (simplex communication)
๋จ๋ฐฉํฅ ์ ์ก
ex) TV, Radio
๋ฐ์ด์ค ํต์ (half-duplex communication)
์๋ฐฉํฅ์ผ๋ก ์ ์ก์ด ๊ฐ๋ฅํ์ง๋ง, ๋์์ ์์ชฝ์์๋ ์ ์กํ ์ ์๋ค
ex) ๋ฌด์ ๊ธฐ
์ ์ด์ค ํต์ (full-duplex communication)
๋์์ ์๋ฐฉํฅ ์ ์ก์ด ๊ฐ๋ฅํ๋ค
ex) ์ ํ๊ธฐ
Last updated
Was this helpful?