๐Ÿ’ผ CS/๐Ÿ“ถ Network

    Network :: Flow Control & Congestion Control

    Network :: Flow Control & Congestion Control

    Flow Control ์ƒ๋Œ€์™€ ๋‚˜์™€ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ๋งž์ถ”์–ด๊ฐ€๋ฉด์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—๋งŒ ์ƒ๋Œ€๋ฐฉ์ด ๋ณด๋‚ด๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด Flow control ! TCP header ์•ˆ receive window ํ•ญ๋ชฉ์— ํ˜„์žฌ ๋ฒ„ํผ์— ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋งŒํผ์˜ ๊ณต๊ฐ„์ธ rwnd ๋ถ€๋ถ„ value ๋ฅผ ์ฑ„์›Œ์„œ ์ƒ๋Œ€์—๊ฒŒ ๋ณด๋‚ด๊ณ , ์ƒ๋Œ€๋Š” ์ตœ๋Œ€ ๊ทธ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. โ†’ ๋”ฐ๋ผ์„œ buffer overflow ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์Œ ! ์ดˆ๊ธฐ์—๋Š” receive window ์— RcvBuffer ์‚ฌ์ด์ฆˆ๊ฐ€ ์„ค์ •๋˜๊ณ  (์ผ๋ฐ˜์ ์œผ๋กœ 4096) ์ดํ›„์—๋Š” ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋งŒํผ(rwnd ๊ฐ’)์„ receive window ์— ๋ณด๋‚ด๋ฉด์„œ ํ๋ฆ„ ์ œ์–ด ! Congestion Control ํ•œ ๋ฒˆ์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด ๋„คํŠธ์›Œํฌ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. โ†’ ๊ทธ๋ž˜์„œ ํ•œ ..

    Network :: TCP

    Network :: TCP

    TCP ํŠน์ง• point-to-point : 1๋Œ€1 ์—ฐ๊ฒฐ reliable, in-order byte stream : ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์—ฐ๊ฒฐ, ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ์ „์†ก pipelined : stop-and-wait ํ•˜์ง€ ์•Š๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก ์ด ๋ฐฉ์‹์€ congestion control ๊ณผ flow control ์ด ๊ฐ™์ด ๋™๋ฐ˜๋˜์–ด์•ผ ํ•จ ! full duplex data : ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ MSS : maximum segment size connection-oriented : ์—ฐ๊ฒฐ ์ง€ํ–ฅ handshaking flow controlled : ์ˆ˜์‹ ์ž๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์šฉ๋Ÿ‰์„ ์†ก์‹ ์ž๊ฐ€ ๊ณ ๋ คํ•จ ํ—ค๋” ๊ตฌ์กฐ source port / dest port : ๊ฐ 2bytes sequence number : 4by..

    Network :: UDP

    Network :: UDP

    UDP User Datagram Protocol connectionless no handshaking ์‚ฌ์šฉ๋˜๋Š” ๊ณณ ์ŠคํŠธ๋ฆฌ๋ฐ multimedia app DNS SNMP UDP ํ—ค๋” ํ—ค๋” 8byte ๋ฐ–์— ์—†๋‹ค. source port : 16bit (0~65535) dest port : 16bit (0~65535) 1000๋ฒˆ ์ดํ•˜ ํฌํŠธ๋Š” well-known ํฌํŠธ์ด๋ฏ€๋กœ ์“ฐ์ง€ ๋ง์ž UDP Checksum ์‹น ๋‹ค ๋”ํ•œ๋‹ค 1์˜ ๋ณด์ˆ˜๋ฅผ ์ทจํ•œ๋‹ค

    Network :: Pipelined protocol

    Network :: Pipelined protocol

    ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ Reliable ํ•˜๊ฒŒ ์ „์†ก์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ  ์ž˜ ๋ฐ›์•˜๋Š”์ง€ ACK ์‘๋‹ต์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ACK ์„ ๋ฐ›๊ณ  ๋‹ค์Œ ํŒจํ‚ท์„ ์ „์†กํ•˜๋ ค๋ฉด stop-and-wait ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ํŒจํ‚ท์„ ์‹ค์ œ ์ „์†กํ•˜๋Š”๋ฐ๋Š” ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์ง€๋งŒ, ํŒจํ‚ท์ด ๋„คํŠธ์›Œํฌ๋ฅผ ํƒ€๊ณ  ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ”๋‹ค๊ฐ€ ACK ์‹ ํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ๋Œ์•„์˜ค๋Š”๋ฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” RTT (Round Trip Time : ์™•๋ณต์‹œ๊ฐ„) ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ACK ์‹ ํ˜ธ๋ฅผ ๋ฐ›๊ณ  ๋‹ค์Œ ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ์–ด๋ ต๋‹ค. ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ณ ์ž ๋‚˜์˜จ ๊ฒƒ์ด Pipelined protocol ! Pipelined protocol pipelined protocol ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. go-Back-N selective repeat Go-Ba..

    Network :: Routing protocol

    Network :: Routing protocol

    ๋ชฉํ‘œ ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€๋Š” ๊ฐ€์žฅ ์ข‹์€ path ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ ์ข‹์€ path ๋ž€ ? ๋น„์šฉ์ด ์ ๊ฒŒ ๋“ค๊ฑฐ๋‚˜, ๊ฐ€์žฅ ๋น ๋ฅด๊ฑฐ๋‚˜, least congested ํ•˜๊ฑฐ๋‚˜ ! ๋ถ„๋ฅ˜ Q. global or decentralized information ? global โ†’ link state algorithm decentralized โ†’ distance vector algorithm Q. static or dynamic ? static dynamic Link state algorithm Dijkstraโ€™s algorithm ํŠน์ • ์ถœ๋ฐœ์ง€์—์„œ๋ถ€ํ„ฐ ๋ชจ๋“  ๋…ธ๋“œ๋กœ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ! ํŠน์ • ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€๋Š” ๊ฒฝ๋กœ ์ค‘ ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๊ฒƒ ํ‘œ๊ธฐ ๋ฐฉ๋ฒ• C(x, y) : x ์—์„œ y ๊นŒ์ง€ ๊ฐ€๋Š”๋ฐ ๋“œ๋Š” ๋น„..

    Network :: SDN

    Network :: SDN

    SDN Software-Defined Networking Router ์˜ ๊ฐœ์ˆ˜๋„ ๋งŽ์•„์ง€๊ณ , ๋‹จ์ˆœํžˆ Router ๊ฐ€ Routing ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ•ด์•ผ ํ•  ์ผ๋“ค์ด ๋งŽ์•„์ง€๋ฉด์„œ control plane ์—์„œ ์ •์ฑ…๋“ค์„ ๊ฒฐ์ •ํ•˜๊ณ  ์ด์— ๋”ฐ๋ผ Routing ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅ ! control plane ๊ณผ data plane ์„ ๋‚˜๋ˆ„๊ณ  Router ๋“ค์—๊ฒŒ์„œ ์ •๋ณด๋ฅผ ๋ฐ›์•„์„œ ์ค‘์•™ ์ง‘์ค‘์‹์œผ๋กœ table ์„ ๋งŒ๋“  ํ›„, (control plane) ๋‹ค์‹œ Router ๋“ค์—๊ฒŒ ํ•ด๋‹น ์ •๋ณด๋ฅผ ๋ฟŒ๋ ค์„œ Routing ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹ ! (data plane) Router ๋“ค์€ ๊ฐ๊ฐ CA ๋ผ๋Š” control agent ๊ฐ€ ์žˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด์„œ remote controller (์„œ๋ฒ„) ๋Š” ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค. ..

    Network :: IPv6

    Network :: IPv6

    ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ๊ธฐ์กด 32bit ๊ธฐ๋ฐ˜์˜ IPv4 ์—์„œ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด ํ•„์š”ํ•ด์กŒ๋‹ค. ์ถ”๊ฐ€๋กœ IPv4 ๋Š” Best effort ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”๋ฐ, ์ฃผ๋กœ ํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋˜ ์˜ˆ์ „๊ณผ ๋‹ฌ๋ฆฌ ์ด์ œ๋Š” ์˜์ƒ, VoIP ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์†ก์ˆ˜์‹ ๋˜๊ณ  ์žˆ๋‹ค. (์ฃผ๋กœ multi-media) ๋ณดํ†ต ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด์„œ ํŒจํ‚ท์ด ์ด๋™ํ•  ๋•Œ 3๊ณ„์ธต๊นŒ์ง€ ํ™•์ธํ•˜๋Š”๋ฐ, IPv4 ์˜ ๊ฒฝ์šฐ ํŒจํ‚ท ํ—ค๋”์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋”œ๋ ˆ์ด๊ฐ€ ๋งŽ์ด ์ƒ๊ธด๋‹ค. ์ด ๊ฐ€๋ณ€์ ์ธ ํ—ค๋” ํฌ๋งท์„ 40๋ฐ”์ดํŠธ๋กœ ๊ณ ์ •ํ•ด์„œ ํŒจํ‚ท ์ „์†ก ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ณ , ๋” ๋งŽ์€ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ฒŒ ํ•˜๊ณ ์ž ๋‚˜์˜จ ๊ฒƒ์ด IPv6 ! IPv6 ๊ณ ์ •๋œ 40bytes ๊ธธ์ด ํ—ค๋”๋ฅผ ๊ฐ€์ง„๋‹ค. fragmentation ์ด..

    Network :: NAT (Network Address Translation)

    Network :: NAT (Network Address Translation)

    NAT ๋ผ์šฐํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๊นฅ์ชฝ์—์„œ๋Š” ํ•œ ๊ฐœ์˜ IP, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ IP ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ ๋‚ด๋ถ€ ์‚ฌ์„ค IP ๋ฅผ ์™ธ๋ถ€ ๊ณต์ธ IP ๋กœ, ์™ธ๋ถ€ ๊ณต์ธ IP ๋ฅผ ๋‚ด๋ถ€ ์‚ฌ์„ค IP ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์™ธ๋ถ€์™€ ๋‚ด๋ถ€ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๋ณ€ํ™˜ ๊ธฐ์ˆ ์„ NAT ๋ผ ํ•œ๋‹ค ! NAT ๊ฐ€ ํ•ด์•ผ ํ•˜๋Š” ์ผ outgoing datagrams : replace ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ์“ฐ๊ณ  ์žˆ๋Š” ์ฃผ์†Œ๋Š” ๋‚ด๋ถ€๋ง ๊ฐ€์งœ ์ฃผ์†Œ ! NAT ๋ผ์šฐํ„ฐ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ˆœ๊ฐ„, ๋ณด๋‚ด๋Š” IP ์ฃผ์†Œ์™€ port ๋„˜๋ฒ„๋ฅผ ๋ฐ”๊ฟ”์„œ ๋‚ด๋ณด๋‚ธ๋‹ค. remember ์•ˆ์ชฝ์—์„œ ์“ฐ๋Š” IP ์ฃผ์†Œ์™€ port ๋„˜๋ฒ„, ๋ฐ”๊นฅ์—์„œ ์“ฐ๊ณ  ์žˆ๋Š” IP ์ฃผ์†Œ์™€ port ๋„˜๋ฒ„๋ฅผ ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ์ €์žฅํ•ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค. ingoing datagrams : replace ๋“ค์–ด์˜จ ํŒจํ‚ท์˜ IP ์ฃผ์†Œ์™€ por..