본문 바로가기

728x90

ComputerScience/Network

(61)
Network Layer - 6. Control Plane (2) 이제까지 배운 라우팅은 다 이상적인 상황을 가정했다. (flat한 network 모형) 실제로는 네트워크를 구성하는 라우터가 동일하지도 않다. 라우팅 테이블에 억단위의 목적지 정보를 다 저장할 수는 없다. (당연히 exchange를 위한 트래픽이 오히려 증가할 것이다) 따라서 실제 네트워크 환경은 scalability를 위해 hierarchy가 있다. 실제 internet은 여러 intranet들의 inter-networking으로 구성된다. 각 intranet 관리자는 자신들의 네트워크 라우팅을 직접 관리하고 싶을 수 있다. intranet 집단을 하나의 autonomous system(AS)이라고 부른다. AS끼리의 routing을 inter-AS routing이라고 한다. 이때 가장 많이 사용하는 ..
Network Layer - 5. Control Plane (1) 네트워크는 2개의 주요 기능이 있다고 했다. - 패킷을 router의 Input에서 올바른 output으로 이동시키는 forwarding(data plane) - src에서 dst으로 패킷을 전달할 경로를 결정하는 routing(control plane) 1. Per-router control plane 모든 router에서 각각 forwarding table을 만든다. routing algorthim으로 table을 만들고 관리한다. 2. Logically centralized control plane(SDN) 각 router안에 있는 local control agent(CAs)가 (보통 원격으로 따로 존재하는) controller에게 정보를 보내준다. 그럼 controller가 알고리즘으로 각 rou..
Network Layer - 4. IP: Internet Protocol (2) 1. DHCP (Dynamic Host Configuration Protocol) host는 어떻게 ip를 할당 받을까? 직접 할당 받은 아이피를 매뉴얼하게 설정할 수 있다. 대부분은 동적으로 ip를 할당 받는다. 카페, 학교에서 와이파이, 이더넷을 연결하면 자동으로 아이피를 할당 받는다. 이를 도와주는 것이 DHCP 프로토콜이다. host가 DHCP 서버로 부터 아이피를 할당 받는 과정은 다음과 같다. 1. host가 DHCP 서버 주소를 모를때 : broadcast로 DHCP discover msg를 보낸다. src는 아직 아이피가 없기 때문에 0.0.0.0이다. (이 과정은 때때로 optional이다.) 2. DHCP가 그 메시지를 받고 응답으로 DHCP offer msg를 보낸다. dest를 아직..
Network Layer - 3. IP: Internet Protocol (1) 네트워크 레이어의 구성을 나타낸다. 하나씩 자세히 살펴보자. 1. IP datagram format IP header는 (option을 제외하면) 4bytes * 5 = 20bytes이다. ver : IPv4, IPv6 같은 버전 length : header + payload의 길이, 16비트단위까지 가능하지만 거의 1500Bytes를 넘지 않는다. 왜냐하면 우리가 대부분 사용하는 Ethernet의 최대 전송 유닛(MTU)이 1500Bytes이기 때문이다. 16-bit identifier, flgs, fragment offset : 이 필드들은 fragmentation/reassembly를 위해 사용된다. protocol : payload에 담겨 있는 프로토콜 종류를 나타냄. ex) TCP, UDP, I..
Network Layer - 2. What's inside a router? (1) 1. What's inside a router? router는 Layer 3 device이다. 라우터의 내부를 살펴보자. 라우터의 내부는 두 plane으로 구분할 수 있다. control plane에서 routing을 수행한다. (컴퓨터의 processor처럼) 프로세서가 routing software를 실행해서 경로를 찾는다. 소프트웨어 차원에서 구현되기 때문에 ms단위로 상대적으로 오래걸린다. 그 아래는 data plane이 있다. 여기서 forwarding을 수행한다. switching fabric이 실제로 패킷을 한쪽에서 다른쪽으로 move하는 작업을 수행한다. 하드웨어 차원에서 구현되어 있어 nano초단위로 굉장히 빠른시간 내에 처리된다. routing processor가 찾은 경로를 기반으로 ..
Network Layer - 1. overview 이제까지 살펴본 Transport layer는 process간의 logical communication을 담당하는 계층이였다. 이제부터 자세히 살펴볼 network layer는 hosts간의 logical communication을 담당하는 계층이다. network layer는 segment를 encapsulate한 datagram을 전달한다. 모든 라우터는 network layer 계층까지 존재한다. 라우터는 ip datagram의 header field만 보고 패킷을 전달한다. 네트워크 계층의 가장 중요한 두가지 역할은 forwarding과 routing이다. 1. forwarding router의 input link interface로 들어온 패킷을 올바른 output link interface로 ..
TCP - 5. throughput, fairness, ECN 1. throughput tcp의 congestion control 때문에 cwnd가 시간에 따라 saw tooth 모양을 띤다. 이번에는 평균 TCP throughput을 알아보자. throughput은 window크기와 RTT를 통해 유추할 수 있다. 시간에 따라 window 크기를 나타내는 그림이다. slow start는 지수배로 아주 짧은 시간에 윈도우 크기를 늘리기 때문에 1부터 시작하는 부분은 지우고 생각한다. 평균 윈도우 크기는 3/4W이다. 그럼 매 RTT마다 3/4W 만큼 보낸다고 생각할 수 있으니 throughput은 위처럼 추정할 수 있다. 만약 10Gbps throughput을 얻고 싶다면 loss rate, L은 2*10^(-10) 정도로 매우매우매우 작아져야 한다. 하지만 los..
TCP - 4. congestion control 평소처럼 웹사이트에 접속하려는데 오늘따라 유독 접속이 느렸던 경험이 있을 것이다. 수강신청처럼 사람이 갑자기 몰리는 상황에 특히 그렇다. 서버 자체가 많은 사용자의 요청을 처리하는데 시간이 많이 걸리는 것일 수 있고 네트워크가 혼잡해서 drop이 발생하거나 queueing delay가 큰 것 일수도 있다. 이런 상황을 congestion collapse라고 한다. 정리하면 congestion은 너무 많은 사용자가 너무 많은 데이터를 네트워크가 감당하기 힘들정도로 보내는 것을 말한다. 이 문제를 해결하려면 sender가 패킷을 보내는 속도를 제한해야 한다. * 참고로 congestion control은 신뢰성 있는 전송을 위해서도 필요하다. 네트워크가 혼잡할수록 reliable data transfer가 ..

728x90