๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€214

[2์ฃผ์ฐจ] Principles of Reliable Data Transfer Principles of Reliable Data Transfer โœ” reliable ํ•˜๋‹ค๊ณ  ํ•˜์ง€๋งŒ... - ์‹ค์งˆ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋˜๋Š” underlying network๋Š” reliable ํ•˜์ง€ ์•Š๋‹ค!. โœ” Unreliable Channel์—์„œ๋Š”? - Message error - Message loss Simple Reliable Data Transfer Protocol์„ ๊ฐ€์ •ํ•˜์ž 1. Perfect Channel์ด๋ผ๋ฉด? โœ” No packet errors โœ” No packet loss 2. Packet error๊ฐ€ ์กด์žฌํ•˜๋Š” Channel์ด๋ผ๋ฉด? ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์ด ํ•„์š”ํ• ๊นŒ? 1. Error detection - Checksum 2. Feedback (reciever) - Acknowledgemen.. 2022. 9. 27.
[๋ฐฑ์ค€] 2206 ๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/2206 2206๋ฒˆ: ๋ฒฝ ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ N×M์˜ ํ–‰๋ ฌ๋กœ ํ‘œํ˜„๋˜๋Š” ๋งต์ด ์žˆ๋‹ค. ๋งต์—์„œ 0์€ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์„ ๋‚˜ํƒ€๋‚ด๊ณ , 1์€ ์ด๋™ํ•  ์ˆ˜ ์—†๋Š” ๋ฒฝ์ด ์žˆ๋Š” ๊ณณ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹น์‹ ์€ (1, 1)์—์„œ (N, M)์˜ ์œ„์น˜๊นŒ์ง€ ์ด๋™ํ•˜๋ ค ํ•˜๋Š”๋ฐ, ์ด๋•Œ ์ตœ๋‹จ ๊ฒฝ๋กœ www.acmicpc.net ๋ฒฝ์„ ๋ถ€์ˆ˜๋Š” ๊ฑธ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒŒ ํ•ต์‹ฌ์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ 2์ฐจ์› ๋ฐฐ์—ด์— ๋ฒฝ ๋ถ€์ˆ˜๋Š” ๊ฑธ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ๋„ฃ์–ด์„œ bfs๋ฅผ ๋Œ๋ฆฌ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. ํŠน์ • ์ง€์  (r, c)์— ๋ฒฝ์„ ๋ถ€์ˆ˜๊ณ  ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•(a)๋ž‘ ๋ฒฝ์„ ๋ถ€์ˆ˜์ง€ ์•Š๊ณ  ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•(b)๊ฐ€ ์žˆ๋Š”๋ฐ, a๊ฐ€ b๋ณด๋‹ค ๊ฑฐ๋ฆฌ๊ฐ€ ์งง์„ ๋•Œ(a < b)์ผ ๋•Œ 2์ฐจ์› ๋ฐฐ์—ด์—์„œ๋Š” a๋งŒ ํ‘œ์‹œ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋‚˜์ค‘์— ๋ฒฝ์„ ๋ถ€์ˆ˜์ง€ ์•Š๊ณ ๋Š” ํ†ต๊ณผํ•˜์ง€.. 2022. 9. 27.
[2์ฃผ์ฐจ] Connectionless transport : UDP Connectionless transport : UDP UDP์˜ Segment โœ” ๊ฐ ํ”„๋กœํ† ์ฝœ์˜ ํ—ค๋” ์ •๋ณด๋ฅผ ์ž˜ ์•Œ์•„์•ผํ•จ (ํ•ด๋‹น ํ•„๋“œ ์ •๋ณด๋Š” ํ”„๋กœํ† ์ฝœ์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค) โœ” 4๊ฐœ์˜ ํ—ค๋” -> ๋™์ž‘์ด ๋‹จ์ˆœํ•˜๋‹ค โœ” ํ•œ ํ•„๋“œ๋Š” 16๋น„ํŠธ source port, dest port โœ” 6๋งŒ ์—ฌ ๊ฐœ์˜ ํฌํŠธ ๋ฒˆํ˜ธ (2^16) โœ” dest port ๊ธฐ๋ฐ˜์œผ๋กœ ๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ checksum โœ” ๋ฐ์ดํ„ฐ ์ „์†ก ๋„์ค‘์— ์—๋Ÿฌ ์—ฌ๋ถ€ ํŒ๋‹จ -> ์—๋Ÿฌ๊ฐ€ ์žˆ์—ˆ์„ ๊ฒฝ์šฐ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  ๋“œ๋ž ์‹œํ‚จ๋‹ค! UDP๋Š” ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ•œ๋‹ค? ์–ธ๋œป ๋ณด๋ฉด ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์ง€๋งŒ transport layer๊ฐ€ ํ•ด์•ผํ•  ๊ธฐ๋ณธ์ ์ธ ์ผ 2๊ฐ€์ง€๋ฅผ ํ•ด์ค€๋‹ค โœ” multiplexing - demultiplexing (๋ฉ”์„ธ์ง€ ์ „์†ก) โœ” ์—๋Ÿฌ ์ฒดํฌ 2022. 9. 27.
[2์ฃผ์ฐจ] Transport Layer- Multiplexing_Demultiplexing Transport Layer: Multiplexing & Demultiplexing Multiplexing / Demultiplexing Multiplexing โœ” Sender๊ฐ€ Application Layer์—์„œ Transport Layer๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•  ๋•Œ ์—ฌ๋Ÿฌ ์†Œ์ผ“์˜ ํŒจํ‚ท(๋ฐ์ดํ„ฐ + ํ—ค๋”)์„ ํ•˜๋‚˜์˜ ์ƒˆ๊ทธ๋จผํŠธ๋กœ ์บก์Šํ™” ํ•˜์—ฌ Network Layer์— ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ • โœ” ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์—ฌ๋Ÿฌ ์†Œ์ผ“์˜ ๋ฐ์ดํ„ฐ์™€ ํ—ค๋”๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ชจ์œผ๋Š” ๊ณผ์ •! Demultiplexing โœ” Transport layer ์—์„œ Application layer๋กœ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „๋‹ฌ ํ•  ๋•Œ, ์˜ฌ๋ฐ”๋ฅธ ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ํ•˜๋Š” ๊ณผ์ • โœ” ์–ด๋–ป๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌํ• ๊นŒ? - ์„ธ๊ทธ๋จผํŠธ์˜ ํ—ค๋” ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ „๋‹ฌ! UDP์—์„œ์˜ demultipl.. 2022. 9. 27.
[2์ฃผ์ฐจ] Application Layer - Socket ์†Œ์ผ“์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ์˜ ํ†ต์‹  -> ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค - ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹  โœ” OS๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” API์˜ ์ผ์ข…์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐ”๋กœ ๋ฐ‘์— ์žˆ๋Š” Transport Layer๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. -> TCP socket or UDP socket Socket API (TCP) โœ” ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜๋™์ ์ด๋‹ค(ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋Œ์•„์˜ฌ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ) โœ” ํด๋ผ์ด์–ธํŠธ๊ฐ€ connect ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๋‘ ์†Œ์ผ“์ด ์—ฐ๊ฑธ๋œ๋‹ค. (Read - Write) Socekt ๊ฐ„ ์—ฐ๊ฒฐ๊ณผ์ •๊ณผ ํ•จ์ˆ˜๋“ค Function: socket โœ” int type: ํ•ด๋‹น ์†Œ์ผ“์ด UDP type ์ธ์ง€ TCP type์ธ์ง€ ๊ฒฐ์ •ํ•ด์ฃผ๋Š” ์ธ์ž โœ” ์ƒ์„ฑํ•œ ์†Œ์ผ“์˜ id / idx ๋ฐ˜ํ™˜ Function: bi.. 2022. 9. 26.
[๋ฐฑ์ค€] 14503 ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ(Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/14503โ€‹ 14503๋ฒˆ: ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฒญ์†Œํ•˜๋Š” ์˜์—ญ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์žˆ๋Š” ์žฅ์†Œ๋Š” N×M ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 1×1ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด www.acmicpc.net โ€‹ ๊ตฌํ˜„ ๋ฌธ์ œ๋ผ ํŠน๋ณ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•„์š” ์—†๊ณ  ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ๋‚ด์šฉ์„ ์ •์งํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ๋ฐฉํ–ฅ ์ฒ˜๋ฆฌ๊ฐ€ ์ข€ ๋ณต์žกํ•ด์„œ ์‹ ๊ฒฝ ์จ์•ผ๋œ๋‹ค.(๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์ด ์ฃผ์–ด์ง€๊ณ  ๊ทธ ์ƒํƒœ์—์„œ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ ๋ฐ ์ด๋™, ๋’ค๋กœ ์ด๋™) ์ฒญ์†Œํ•œ ์˜์—ญ์„ ๋ฒฝ์ด๋ž‘ ๋˜‘๊ฐ™์€ 1๋กœ ํ‘œ์‹œํ•˜๋ฉด ์•ˆ๋œ๋‹ค.(-1 ๊ฐ™์ด 0, 1 ํ˜น์€ ๋‹ค๋ฅธ ์ˆซ์ž๋กœ ์ฒ˜๋ฆฌ) # 220827 14503 ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ # ์ •๋‹ต์ฝ”๋“œ import sys input = sys.. 2022. 9. 26.