[Computer Network] Chap10. HTTP & SIP

2023. 12. 19. 13:18ใ†ComputerScience/ComputerNetwork

 

 

 

 

 

10. HTTP & SIP

* HTTP/1.1

– HTTP client๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € / ๋ฐ‘์— TCP๋ฅผ ๊นŒ๋Š” ๊ฒƒ์„ ์ „์ œ๋กœ ํ•œ ๊ฒƒ

- ํ”„๋กœํ† ์ฝœ์„ ๋‹จ์ˆœํ™” ํ•œ ๊ฒƒ (์—๋Ÿฌ ๊ฒ€์ถœ ๋ฐ ๋ณต๊ตฌ ๋”ฐ์œ„ X, ๊ทธ๊ฑด TCP๊ฐ€ ์•Œ์•„์„œ ํ•˜๊ฒ ์ง€)

 

* Resource

1. Static content - HTTP request๊ฐ€ T0์— ๋„์ฐฉํ–ˆ์„ ๋•Œ, T0 ์ด์ „์— ์ด๋ฏธ ์ปจํ…์ธ ๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ์œผ๋ฉด static 

- file system, ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ๋น„๋””์˜ค ํด๋ฆฝ (์œ ํŠœ๋ธŒ, ๋„ทํ”Œ๋ฆญ์Šค) // DB์— ๋“ค์–ด์žˆ๋Š” ์ •๋ณด

2. Dynamic content 

- HTTP ๋ฆฌํ€˜์ŠคํŠธ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ T0 ์ดํ›„์—, ๊ทธ ์•ˆ์— ์€ํ–‰ ๊ณ„์ •, ์ธ์ฆ๋ฒˆํ˜ธ ๋“ฑ์„ ํ†ตํ•ด ์„œ๋ฒ„๊ฐ€ ๊ณ„์‚ฐํ•  ๋•Œ

- ํ˜„์žฌ ์ฃผ๊ฐ€ ๋“ฑ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•  ์ˆ˜ X / ์ง€๊ธˆ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ์ด๊ฒƒ๋“ค์ด dynamic contents // by Logic server

 

- ์ด๋ฉ”์ผ ์ปจํ…์ธ ์— ๋Œ€ํ•œ ์ „ํ†ต์ ์ธ ํ”„๋กœํ† ์ฝœ MIME (Multipurpose Internet Mail Extensions) 

- TCP๋Š” bit ๋‹จ์œ„, HTTP๋Š” byte ๋‹จ์œ„ - ์‹ฌ์ง€์–ด ๋ˆˆ์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์–ด text base

 

- URI – Uniform Resource Identifier

- URN – name / URL – location (์œ„์น˜ ์ •๋ณด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ ์ธ์‹ํ•˜๋Š” ๊ฒƒ, ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹) 

 

* Transaction

– HTTP ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ request, response ๊ณผ์ • by HTTP methods 

- HTTP messages ex) GET _ request method (file์„ ์ฃผ์„ธ์š”) / root ๋ฐ‘์˜ ์ •ํ™•ํ•œ ์œ„์น˜.gif ๋ฅผ ๋ณด๋‚ธ๋‹ค. 

- HTTP ๋ฉ”์„ธ์ง€ ์•ˆ์—๋„ HOST ์ฃผ์†Œ๋ฅผ ์”€ / ์ด๋ฏธ IP์— ์žˆ์œผ๋‚˜ ๊ตณ์ด 2๋ฒˆ ์“ด๋‹ค. 

 

- HTTP 4๋Œ€ methods (request)

1. GET – ์„œ๋ฒ„์˜ ํŒŒ์ผ(๋ฆฌ์†Œ์Šค)์„ ์š”์ฒญ, ๊ฐ€์žฅ common – ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ 

2. PUT – ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์—…๋กœ๋“œ, ๊ณผ์ œ ์ œ์ถœ -> ๋‚ด๊ฐ€ ์ค€ ํŒŒ์ผ์„ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ‘์— product-list.txt๋กœ ์ €์žฅํ•ด

3. DELETE – ์„œ๋ฒ„์˜ ํŒŒ์ผ์„ ์‚ญ์ œ -> 200 OK -> ์ž˜ ์ง€์› ๋‹ค.

4. POST – ๊ฐ’์„ ๋ณด๋‚ด๋Š” ๊ฒƒ, ๊ฒ€์ƒ‰์ฐฝ์— ์ž…๋ ฅํ•˜๋Š” ํ…์ŠคํŠธ ๋“ฑ ํŒŒ์ผ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด X -> ์„œ๋ฒ„๋Š” ๋ฐ›์•„์„œ ๋กœ์ง์„ ๋Œ๋ฆผ

-> Logic server์— params ์ „๋‹ฌํ•  ๋•Œ or ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ๊ทธ๋žจ์ด ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ

 

- Status Code – return ๊ฐ’์œผ๋กœ 3์ž๋ฆฌ ์ˆซ์ž๋ฅผ ๋ณด๋ƒ„ (response)

Ex) 200 – OK / 302 - redirection / ๋กœ๊ทธ์ธ ์ฐฝ / 404 – not found ๊ทธ ํŒŒ์ผ์ด ์ง€์›Œ์กŒ์„ ๋•Œ, ์ฆ‰ ๊ทธ ํŒŒ์ผ์ด ์—†์Œ 

 

 

 

 

 

- User-agent๋ฅผ ํ†ตํ•ด ๋ชจ๋ฐ”์ผ iOS์—์„œ ์ ‘์†ํ•œ ๊ฒƒ์ธ์ง€, ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์“ฐ๋Š”์ง€ ํŒŒ์•…ํ•จ (๋ชจ์งˆ๋ผ ์„œ๋ฒ„ ๋“ฑ) 

+ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ• / 1. ๊ธฐ๋ก ์‚ญ์ œ / 2. ์บ์‰ฌ ์ด๋ฏธ์ง€, ํŒŒ์ผ ์‚ญ์ œ

+ ๋””์Šคํฌ๊นŒ์ง€ ์•ˆ ๊ฐ€๊ณ  CPU๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ์˜ฌ๋ ค ๋‘๋Š” ๊ฒƒ -> Cache / Last modified ์—ฐ๊ด€ O

- TCP/IP - HTTP/1.1๋Š” ํŒจํ‚ท์ด ์œ ์‹ค๋˜์ง€ ์•Š๊ธธ ๋ฐ”๋žŒ + ์‹ ๋ขฐ์„ฑ ๋•Œ๋ฌธ์— TCP ์‚ฌ์šฉ -> ๋ฌธ์ œ์  ๊ณ ์Šค๋ž€ํžˆ ์•ˆ๊ณ  ๊ฐ

 

* HTTP/1.1์˜ ์—ฐ๊ฒฐ ๊ณผ์ • 

1. URL์— ๋ณธ์ธ์ด ๊ฐ€๊ณ  ์‹ถ์€ ๊ณณ ์ฃผ์†Œ ์ž…๋ ฅ / 2. IP address๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด DNS ์„œ๋ฒ„

3. Port number์™€ IP ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด TCP ์—ฐ๊ฒฐ + HTTP request๋ฅผ ๋ณด๋‚ธ๋‹ค / 4. Response ๊ฐ€์ ธ์˜ค๋ฉด TCP ์—ฐ๊ฒฐ ํ•ด์ œ

 

* Proxy Server 

- HTTP ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ๋น„๊ณต์‹์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„

- ์ค‘๊ฐ„์—์„œ intercept ๊ฐ€๋กœ์ฑ„์„œ, ๋ณธ์ธ์ด ๋ฉ”์„ธ์ง€๋ฅผ ์ฝ๋Š”๋‹ค.

 

- ์›น ๋ณด์•ˆ -> DDoS ๋ฐฉ์ง€ / ๋ธ”๋ž™ ๋ฆฌ์ŠคํŠธ ์‚ฌ์ดํŠธ ์ ‘์† ์ฐจ๋‹จ ๋ฐ ๊ธฐ๋ก -> Application integration

- ๊ฑฐ๋Œ€ํ•œ ํŒŒ์ผ์„ ์•ž๋‹จ์œผ๋กœ ๊ฐ€์ ธ์˜ด, ์ตœ์ ํ™” / get request ์ž์ฃผ ๋˜๋Š” ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ / performance optimization

- ์„œ๋น„์Šค ๋กœ์ง์„ ์ค‘๊ฐ„์— ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. -> HTTP request ์‚ดํŽด๋ณด๊ณ , ์‚ฌ์–‘ ๋‚ฎ์€ ๋‹จ๋ง๊ธฐ๋ผ๋ฉด, ์„œ๋ฒ„์—์„œ ๋ฐ›์€ 4K ํ•ด์ƒ๋„ ์ปจํ…์ธ ๋ฅผ proxy์—์„œ ๋‹ค์šด ์Šค์ผ€์ผ๋ง ํ•˜๋Š” ๋กœ์ง์ด ๋ˆ๋‹ค + ์„œ๋ฒ„๋Š” ๋ชจ๋ฆ„

 

* HTTP/2

- HTTP2.0 by Google SPDY

1. binary protocol - ํ…์ŠคํŠธ๋ฅผ ๋‹ค์‹œ 0๊ณผ 1์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊ฟˆ

2. Multiplexing - ๋…ผ๋ฆฌ์ ์ธ ์ค„์ธ stream ๊ฐœ๋…์„ ๋„์ž… / ์ŠคํŠธ๋ฆผ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ

- ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ ์•ˆ์—, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ง‘์–ด๋„ฃ๋Š” ์ŠคํŠธ๋ฆผ ๊ฐœ๋… -> ์—ฌ๋Ÿฌ request response ๋…๋ฆฝ์  ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

3. ํ—ค๋” ์••์ถ•  ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋”๋ฅผ ํ—ค๋” ํ…Œ์ด๋ธ” ๋‚ด ์ธ๋ฑ์Šค๋กœ ์ฒ˜๋ฆฌ -> ํ—ค๋” ํฌ๊ธฐ๋ฅผ 80% ์ค„์ž„

4. ์šฐ์„ ์ˆœ์œ„ ์„ค์ •  ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ -> ์Šค์ผ€์ค„๋ง ์ด์Šˆ -> ์ŠคํŠธ๋ฆผ ๋ณ„ ์šฐ์„  ์ˆœ์œ„ ์„ค์ •

5. ์„œ๋ฒ„ ํ‘ธ์‹œ - ์„œ๋ฒ„๊ฐ€ ๋ณธ์ธ์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ push / ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ์„œ๋ฒ„๊ฐ€ ๋‚ด๋ฆฐ๋‹ค. ๋ชจ๋ฐ”์ผ์€ X

 

1. binary protocol – ํ—ค๋” ํ”„๋ ˆ์ž„๊ณผ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ์ชผ๊ฐฌ -> ์••์ถ•ํ•˜๊ณ  01 ๋น„ํŠธ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌ + ์ค‘๋ณต ์ „์†ก X

 

2. Multiplexing / ๋‹ค์ค‘ํ™”

– HTTP/1.1์€ ์ˆœ์„œ๋Œ€๋กœ ์™€์•ผ ํ•จ ex) ํ™ˆํŽ˜์ด์ง€์˜ 80๊ฐœ ๋ฆฌ์†Œ์Šค -> response๋„ ์ˆœ์ฐจ์ ์œผ๋กœ ์™€์•ผ ํ•จ 

- HTTP2๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“ฆ -> ์ •ํ•ด์ง„ ์ˆœ์„œ ์—†์ด, ์„ ํ›„๊ด€๊ณ„ ์—†์ด ๋™์‹œ ๋‹ค๋ฐœ์ ์œผ๋กœ 
response
๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ์กฑ์กฑ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด๊ธฐ

- ํ•˜๋‚˜์˜ TCP ์ค„(์—ฐ๊ฒฐ) ์œ„์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ / ํฐ ๋ฉ”์„ธ์ง€ ๊ฐœ๋…์„ frame ๋‹จ์œ„๋กœ ์ชผ๊ฐœ

-> ์ฆ‰ ๋ฉ”์„ธ์ง€๋ฅผ ๋‹ค์‹œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ frame์œผ๋กœ ์ฐข์Œ – interleaving

- ์ŠคํŠธ๋ฆผ 1 ~ N ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅํ•จ

 

- ๊ณผ๊ฑฐ ํŽธ๋ฒ• - TCP ์ค„์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋šซ์Œ -> ์ตœ๋Œ€ 8๊ฐœ ๋šซ์—ˆ์Œ (์†๋„ 8๋ฐฐ ์ฆ๊ฐ€ ๊ฐ€๋Šฅ)

- HTTP2๋Š” 3๊ฐœ๊ฐ€ ๊ฐ์ž ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ชผ๊ฐœ์ ธ์„œ ๊ฐ€๋Šฅ 

+ ์—๋Ÿฌ๊ฐ€ ์—†๊ณ , ์†๋„๊ฐ€ ๋น ๋ฅธ ๋„คํŠธ์›Œํฌ์—์„œ๋Š” HTTP/2๊ฐ€ 1๋ณด๋‹ค ์ข‹๋‹ค. (์ „์ œ ์กฐ๊ฑด ์ค‘์š”!)

 

3. Header Compression ํ—ค๋” ์••์ถ• 

1. ์šฐ๋ฆฌ ๋ชจ๋‘ ํ…Œ์ด๋ธ”์„ ๋™์ผํ•˜๊ฒŒ ๊ฐ–๊ณ  ์žˆ์„ ํ…Œ๋‹ˆ, ํฐ ๊ธ€์ž๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊ฟˆ -> GET ๋Œ€์‹  2 ์ฆ‰ index ๊ฐ’์„ ๋ณด๋‚ด

-> ์„œ๋กœ ํ•ฉ์˜์— ์˜ํ•ด ์ƒ์ˆ˜ ๊ฐ’์„ ์ฃผ๊ณ  ๋ฐ›์Œ - ํ—ค๋” ๋ถ€๋ถ„์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ํ™• ์ค„์–ด๋“ฆ

2. static table ๋ฐ‘์— ์ถ”๊ฐ€๋˜๋Š” dynamic table - ๋‚ด๊ฐ€ ์ด ์„œ๋ฒ„์— ๋ถ™์—ˆ์„ ๋•Œ ์„œ๋กœ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ •๋ณด๋Š” ๋™์ ์œผ๋กœ ์ถ”๊ฐ€

3. ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ - ๋ณ€ํ™”๋œ ๊ฐ’๋งŒ ์ถ”์ถœํ•ด์„œ ๋ณด๋‚ด๋Š” ์••์ถ• ๋ฐฉ์‹ / original์—์„œ ๋‚˜๋Š” ๋ณ€๊ฒฝ๋œ ๊ฐ’๋งŒ ๋ณด๋‚ด (๋ธํƒ€ ๊ฐ’)

 

4. Server Push – ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๊ธฐ ์ „, ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋ฒ„๊ฐ€ ๋จผ์ € ์ „์†ก

- import ํ•˜๋Š” ๋ชจ๋“ˆ๋“ค์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ํผ - HTML ๊ทธ์ œ์„œ์•ผ ๊ฐ€์ ธ์™€์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž„

-> ๋‚ด๊ฐ€ ๋ฏธ๋ฆฌ ์ปจํ…์ธ  ํŒŒ์ผ์„ ๋ณด๋‚ผ ํ…Œ๋‹ˆ๊นŒ ๋ฏธ๋ฆฌ ์ฒ˜๋ฆฌํ•ด๋ผ

 

* HTTP/3

- HTTP/3 by Google QUIC

 

 

- TCP ์„ฑ๋Šฅ ์ €ํ•˜ - slow start + ํ†ฑ๋‹ˆ๋ฐ”ํ€ด

- HTTP/2๋”๋ผ๋„, single TCP ์—ฐ๊ฒฐ์—์„œ loss ๋ฐœ์ƒ -> ๋ชจ๋“  ์ŠคํŠธ๋ฆผ์ด ํ•จ๊ป˜ ์„ฑ๋Šฅ ์ €ํ•˜๋กœ ์งํ–‰

- ์ด์— UDP base QUIC ๋“ฑ์žฅ -> OSI 7 layer์˜ 4๊ณ„์ธต์ด์•ผ!

 

* Head of Line blocking ๋ฌธ์ œ In HTTP/2

- HTTP2๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋„คํŠธ์›Œํฌ๋ผ๋ฉด, ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค. ์—ฌ์ „ํžˆ TCP์˜ ๋ฌธ์ œ์  O

- like ์ด๋™ ํ†ต์‹ , ์ฐจ๋ผ๋ฆฌ HTTP/1.1์˜ TCP 8์ค„ ๋šซ๋Š”๊ฒŒ ๋‚ซ๋‹ค๋Š” ๊ฑฐ์•ผ

 

- QUIC์€ TCP๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๋ฒ”์šฉ ๋ชฉ์ ์˜ 4๊ณ„์ธต ์ „์†ก ๊ณ„์ธต ํ†ต์‹  ํ”„๋กœํ† ์ฝœ

- UDP ์œ„์—์„œ new protocol QUIC -> ์ปค๋„ ์•ˆ X, ์ปค๋„ ์œ„์˜ application layer

- HTTP2์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ stream multiplexing ๊ฐœ๋… ์‚ฌ์šฉ

- ์ผ๋ฐ˜์ ์ธ TCP + TLS (์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ) ๋ณด๋‹ค QUIC -> ํ›จ์”ฌ ๋น ๋ฅด๋‹ค fast establishment

 

- 0-RTT - ํ€ต ์—ฐ๊ฒฐ์ด ๋‚˜๊ฐ€๋ฉด์„œ ๋™์‹œ์— HTTP request๊ฐ€ ๋‚˜๊ฐ -> ์—ฐ๊ฒฐ ์š”์ฒญ๊ณผ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์จ

- ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ด๋ฏธ ์ธ์ฆ์ ˆ์ฐจ ๊ฑฐ์ณค์œผ๋ฉด, ์ง€๋‚œ ๋ฒˆ์— ์™”์œผ๋‹ˆ๊นŒ, ๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด

- ์ฒซ๋ฒˆ์งธ HTTP ์‘๋‹ต์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ค๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ

 

- HTTP3๋Š” HTTP over QUIC์„ ํ‘œ์ค€ํ™” ํ•œ ๊ฒƒ -> ์„ฑ๋Šฅ ๊ฐœ์„  

- contents delivery network CDN – ์œ ํŠœ๋ธŒ, ๋„ทํ”Œ๋ฆญ์Šค or ์บ์‰ฌ ์„œ๋ฒ„ ์—…์ฒด๋“ค

-> ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ทธ๋Œ€๋กœ, ๋ฐ‘์— ๊น”๋ฆฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋งŒ ํ€ต์œผ๋กœ ๋ฐ”๊ฟจ๋Š”๋ฐ, ์†๋„(์„ฑ๋Šฅ)๊ฐ€ ์ฆ๊ฐ€ํ•œ ๊ฒƒ

 

- ์‹œ์ž‘์€ ์„œ๋ฒ„ ํˆฌ ์„œ๋ฒ„ / ์—๋Ÿฌ ๋‚  ํ•„์š” X, ๋งค์šฐ ๋น ๋ฅธ ์ƒํ™ฉ -> UDP๋„ ์ถฉ๋ถ„ํ•˜๊ฒ ๋„ค (์ด๊ฒŒ ๊ตฌ๊ธ€ ํ€ต ๊ฐœ๋ฐœ์˜ start)

- ์ฒ˜์Œ์—๋Š” QUIC ์„ฑ๋Šฅ X -> TCP๋Š” A๊ธ‰ ๊ฐœ๋ฐœ์ž, UDP๋Š” ํ›„์ง„ ์ฝ”๋“œ -> ๋ฆฌ๋ˆ…์Šค UDP ์ฝ”๋“œ ๊ฐœ์„ ํ•˜์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ

 

* SIP

- session initiation protocol, ์„ธ์…˜์„ ๋งŒ๋“œ๋Š” ํ”„๋กœํ† ์ฝœ

-> heavily inspired by HTTP -> text-based, request-response protocol – ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ์Œ 

- ์คŒ, ๊ตฌ๊ธ€๋ฏธํŠธ, ์นด์นด์˜ค ์ „ํ™” -> ์ฑ„ํŒ… ๋ฐฉ์„ ๋งŒ๋“ค๊ณ  ์—†์•จ ๋•Œ / ๊ณผ๊ฑฐ ์œ ์„  ์ „ํ™” ๋ฐฉ์‹์—์„œ ๋‚˜์˜จ ์˜ค๋ž˜๋œ ํ”„๋กœํ† ์ฝœ

 

* ์—ฐ๊ฒฐ์„ค์ • ๋ฐ ํ•ด์ œ ๊ณผ์ • 

- SIP INVITE ์—ฐ๊ฒฐ ์„ค์ • – 200 OK / SIP ACK ์—ฐ๊ฒฐ ์„ค์ • ๋‹ค ๋˜๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›์Œ / SIP BYE ์—ฐ๊ฒฐ ํ•ด์ œ

 

* ๋ฉ”์‹ ์ € ์„œ๋น„์Šค ์˜ˆ์‹œ - delivered (์•ฑ์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ์ž˜ ๋ณด๋ƒˆ๋‹ค) / displayed (์•ฑ์ด ํ™”๋ฉด์— ์ž˜ ๋ฟŒ๋ ธ๋‹ค)

 

 

 

 

* ๋‹ค๋ฅธ ์›น ๊ธฐ์ˆ ๋“ค

1. WebRTC

- ๊ตฌ๊ธ€์ด ๋งŒ๋“  ๊ธฐ์ˆ , ์›น ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์‹œ๊ฐ„ ํ†ต์‹  p2p real time communication

- ์›น ๋ธŒ๋ผ์šฐ์ € ์•ˆ์— ๋“ค์–ด๊ฐ€์„œ ํ™”์ƒ ํ”„๋กœ๊ทธ๋žจ / ํ™”์ƒํšŒ์˜, ์ „ํ™”, ์ฑ„ํŒ…์„ ์œ„ํ•œ ๋ชจ๋“  ๊ธฐ์ˆ ์ด ๋‹ค ๋“ค์–ด๊ฐ€ ์žˆ์Œ

 

* STUN / Signaling / TURN Server

1. ์œ ๋ฌด์„  ๊ณต์œ ๊ธฐ์˜ ์ฃผ์†Œ๋Š” private IP address / STUN ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ณธ์ธ์˜ public IP address๋ฅผ ์•Œ๋ ค์คŒ 

-> ์ฆ‰ NAT/PAT๋ฅผ ํ†ต๊ณผํ•˜๋ฉฐ ๋ฐ”๋€ ์ฃผ์†Œ๋ฅผ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์•Œ๋ ค์คŒ

2. Signaling Server – SDP, ICE ๋“ฑ ์‹œ๊ทธ๋„๋ง ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๊ฐ ๋””๋ฐ”์ด์Šค์˜ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„ P2P ํ†ต์‹ 

3. TURN server – ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ค‘๊ณ„ / ๋ฐ์ดํ„ฐ ์ „์†ก ์—ญํ• , ๋ฏธ๋””์–ด ์„œ๋ฒ„ 

 

1. ์ธ์› ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ์„œ๋ฒ„ ๋น„์šฉ์ด ์ฒญ๊ตฌ๋จ -> N์— ๋Œ€ํ•œ ์ˆซ์ž๋ฅผ ์ œํ•œ / ๊ฒฐ๊ตญ ๋น„์ง€๋‹ˆ์Šค ๋ชจ๋ธ์€ ์„œ๋ฒ„! 

2. ์„œ๋ฒ„๊ฐ€ ํ•ด์ƒ๋„์— ๋งž์ถ”์–ด transcoding / 3. ์˜์ƒ ๋…นํ™” ๋ฐ ์ €์žฅ, ๋‹ค์šด๋กœ๋“œ ๋“ฑ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ

 

2. WebXR/WebVR – ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์‹ค์–ด ๋‚˜๋ฅด๋Š” Mixed Reality, WebXR (๋ชจ์งˆ๋ผ ์žฌ๋‹จ)

3. asm.js  / assembly + JavaScript -> ๋งํ•จ, ์›น ๊ธฐ์ˆ ์€ ๊ตฌ๊ธ€ X, ๋ชจ์งˆ๋ผ ์žฌ๋‹จ

- ํ–‰๋ ฌ ๋ฌผ๋ฆฌ ์ˆ˜ํ•™ -> ์ด๊ฒŒ ๊ฒฐ๊ตญ ์„ฑ๋Šฅ์„ ๋ฐœ๋ชฉ์žก์Œ -> ๊ทธ๋ƒฅ C/Cpp๋กœ ์ง  ํ”„๋กœ๊ทธ๋žจ์„ ์›น ๋ธŒ๋ผ์šฐ์ € ์œ„์—์„œ ์˜ฌ๋ฆฌ์ž

- JS - JAVA๋Š”Virtual machine ์œ„์—์„œ ์‹คํ–‰๋จ

 

4. WASM - Web Assembly

- ๋ชจ๋“  ์–ธ์–ด์— ๋Œ€ํ•œ ๋ฒ”์šฉ์˜ virtual machine / compile / build๋งŒ ํ•˜๋ฉด ๋จ

- target option - web assembly (.wat) / platform independent

- ์›น ์–ด์…ˆ๋ธ”๋ฆฌ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ํŒŒ์ด์ฌ complier๋„ ์žˆ์Œ! ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์˜ ๊ฒฝ๊ณ„๊ฐ€ ๋ฌด๋„ˆ์ง€๊ณ  ์žˆ๋‹ค.

- ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€๋„ ์—ฐ๊ด€ - ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์“ฐ๊ณ  ๋ฐ˜๋‚ฉํ•˜๋Š” ํด๋ผ์šฐ๋“œ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ  

- ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„์ชฝ์—์„œ ํ˜๋ช…์ ์ธ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค๊ณ  ์žˆ๋‹ค.

 

5. WebGPU

- ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์™œ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฑด๋“œ๋ฆฌ๋ฉด ์•ˆ๋˜์ง€? ๋ณด์•ˆ๋ณด๋‹ค ์ค‘์š”ํ•œ ๊ฒƒ์€ ์„ฑ๋Šฅ ์•„๋‹๊นŒ?

- ๊ฒŒ์ž„ ๋ฌผ๋ฆฌ์—”์ง„, GPU ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋“ฑ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•˜๋“œ์›จ์–ด ์ž์›์„ ์ง์ ‘ access

- ์›น๊ธฐ๋ฐ˜ ์„œ๋น„์Šค๋“ค์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ / ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ € ์œ„์—์„œ ๋‹ค ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ

 

6. Solid – WWW ์›น์˜ ์•„๋ฒ„์ง€ ํŒ€ ๋ฒ„๋‚˜์Šค ๋ฆฌ ๊ฒฝ -> ๊ฐœ์ธ์ด ๊ถŒํ•œ์„ ๊ฐ–์ž

 

 

 

 

 

'ComputerScience > ComputerNetwork' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Computer Network] Chap12. Game Networking  (0) 2023.12.19
[Computer Network] Chap11. Cloud Computing  (0) 2023.12.19
[Computer Network] Chap9. Transport layer (2)  (0) 2023.12.19
[Computer Network] Chap8. Transport layer (1)  (0) 2023.12.19
[Computer Network] Chap7. Network Layer (2)  (1) 2023.11.13