전공 수업 CS/Computer Network

    [컴퓨터 네트워크] Blocking I/O & Non-Blocking I/O

    I/O 작업은 Kernel level에서만 수행할 수 있다. 따라서, Process, Thread는 커널에게 I/O를 요청해야 한다. #Blocking I/O(1) Process(Thread)가 Kernel에게 I/O를 요청하는 함수를 호출 특징 I/O 작업이 진행되는 동안 user Process(Thread) 는 자신의 작업을 중단한 채 대기 Resource 낭비가 심함 (I/O 작업이 CPU 자원을 거의 쓰지 않으므로) 여러 Client 가 접속하는 서버를 Blocking 방식으로 구현하는 경우 -> I/O 작업을 진행하는 작업을 중지 -> 다른 Client가 진행중인 작업을 중지하면 안되므로, client 별로 별도의 Thread를 생성해야 함 -> 접속자 수가 매우 많아짐 이로 인해, 많아진 Th..

    [컴퓨터 네트워크] 로드 밸런싱 (Load Balancing)

    [컴퓨터 네트워크] 로드 밸런싱 (Load Balancing)

    둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것 요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 되었다. 따라서 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다. 대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다. 하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 효과적이다. 이때 여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 로드 밸런싱이다. 로드 밸런싱은 분산식 웹 서비스로, 여러 서버에 부하(Load)를 나누어주는 역할을 한다. Load Balancer를 클라이언트와 서버 사이에 두..

    [컴퓨터 네트워크] 대칭키 (Symmetric Key) & 공개키(Public Key)/비대칭키(Asymmetric Key)

    대칭키(Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 동일한 키를 주고받기 때문에, 매우 빠르다는 장점이 있음 but, 대칭키 전달과정에서 해킹 위험에 노출 #공개키(Public Key)/비대칭키(Asymmetric Key) 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘 대칭키의 키 분배 문제를 해결하기 위해 고안됨.(대칭키일 때는 송수신자 간만 키를 알아야하기 때문에 분배가 복잡하고 어렵지만 공개키와 비밀키로 분리할 경우, 남들이 알아도 되는 공개키만 공개하면 되므로) 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화할 수 있는 암호키(공개키)를 대중에 공개함 #공개키 암호화 방식 진행 과정 A가 웹 상에 공개된 'B의 공개키'를 이용해 평문을 암호화하여..

    [컴퓨터 네트워크] 라우팅 알고리즘 | RIP와 OSPF | 임시노드, 영구노드 작성

    [컴퓨터 네트워크] 라우팅 알고리즘 | RIP와 OSPF | 임시노드, 영구노드 작성

    시험 날짜는 다가오는데... 진도는 계속 나간다ㅎ... 갈수록 어려워짐 오늘은 라우팅 알고리즘에 대해서 배웠고 이를 정리해두려한다. * 제 3계층(네트워크 계층) 1. Routing Control :: 경로만 설정함. (경로 관리) 2. Switching :: 주어진 경로에 따라 정보에 처리. 정보만 처리함. (전송관리) → 속도, 메시지 크기, Protocol을 맞춰줌. 3. Traffic :: 주어진 전송의 혼잡(과부화) 3-1. 전송 단위 3-2. 속도 3-3. Protocol :: 여기서 스위칭과 트래픽은 서로 연관이 있지만 라우팅 제어는 이들과 조금 거리가 있다고 할 수 있다. *Routing # Metric :: Routing 의 파라미터 1. hop 수 2. cost 3. delay 4. t..

    [컴퓨터 네트워크] TCP 혼잡 제어

    [컴퓨터 네트워크] TCP 혼잡 제어

    ▶ Congestion Control - 너무 많은 출발지(네트워크 장비)에서 네트워크가 감당하기에는 너무 많은 데이터를 너무 빠르게 전송하여 발생하는 네트워크 혼잡 현상이다. - 징후 라우터에서 버퍼가 오버플로우되어 패킷 손실의 발생 라우터 버퍼에서 긴 큐잉 지연(Queueing delay) 발생 - 흐름 제어(Flow Control)와는 다르다. ▶ 라우터가 무한한 크기의 버퍼를 갖는 경우 - 출력 링크의 수용력을 R이라고 가정했을 때, 전송률이 아무리 커도 링크 처리량(수용력)은 R/2을 넘을 수가 없다. 지연 시간이 지수적으로 증가하므로 혼잡 시 큰 지연이 발생한다. 출처 ▶ 라우터가 유한한 크기의 버퍼를 갖는 경우 - 송신측에서는 타임아웃된 패킷(손실 패킷)의 재전송이 이루어진다. 즉, 큐가 유..

    [컴퓨터 네트워크] IPv6 and Tunneling - IPv6 주소 체계 |  터널링

    [컴퓨터 네트워크] IPv6 and Tunneling - IPv6 주소 체계 | 터널링

    터널링이란 캡슐화를 이용하여 한 네트워크에서 다른 네트워크를 거쳐 안전한 통신을 할 수 있도록 해주는 것이다. 터널링은 두번째 네트웍에 의해 운송되는 패킷들 내에 네트웍 프로토콜을 캡슐화함으로써 운영된다. ▶ Tunneling - 모든 라우터가 동시에 업그레이드되어질 수 없어서 실제로 IPv6가 보편화되기에는 시간이 걸림 - 그래서 터널링(tunneling) 기법을 통해 IPv4와 IPv6를 혼용하여 사용한다. - Tunneling : IPv4를 사용하는 라우터들 사이에서 IPv6 데이터그램이 IPv4 데이터그램 안에 payload로써 이동되어지도록 IPv6를 IPv4로 캡슐화하는 기법이다. - IPv4와 IPv6 모두 허용하는 라우터마다 IPv6를 IPv4로 캡슐화하고, 도착지에서 받은 데이터는 헤드가..

    [컴퓨터 네트워크] ICMP(Internet Control Message Protocol)

    [컴퓨터 네트워크] ICMP(Internet Control Message Protocol)

    전공공부중에 개념정리가 필요한 것 같아서 작성한다. ICMP(Internet Control Message Protocol) ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다. IP에는 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어 있다. 따라서 정상적으로 목적지 호스트에 도달하는 경우에는 IP에서 통신이 성공하고 종료되므로 아무런 문제가 없다. 그러나, 만일 전달해야 할 호스트가 꺼져 있거나, 선이 단절된 경우와 같은 비정상적인 경우에 이 패킷 전달을 의뢰한 출발지 호스트에 이러한 사실을 알려야하지만, IP에는 그러한 에러에 대한 처리 방법이 명시되어있지 않다. 이러한 IP의 부족한 점을 메꾸기 위하여 사용되는 것이 바로 ICMP 프로토콜이다. ICMP는..

    [컴퓨터 네트워크] CIDR, 서브넷 마스크

    [컴퓨터 네트워크] CIDR, 서브넷 마스크

    CIDR Classless Inter Domain Routing 사전지식 IPv4 는 총 32비트의 숫자로 구성되어있다.(4,294,967,296개) 588,514,304 개는 특정한 목적으로 선점되어 있다. 따라서 가용한 IP 는 3,706,452,992개이다. 이미 충분하지 않다는 것을 알 수 있는데 이를 해결하기 위해 사설 네트워크(Private Network) 를 사용한다. 사설망 하나의 Public IP 를 여러 기기가 공유할 수 있는 방법 하나의 망에는 Private ip 를 부여받은 기기들과 gateway로 구성 각 기기는 인터넷과 통신시 Gateway 를 통해 통신 Private IP 는 지정된 대역의 IP만 사용가능 즉 해당 범위의 IP 를 부여받은 다면 이는 무조건 사설망이다. (ex...

    [컴퓨터 네트워크] IP 주소 클래스(A, B, C 클래스)

    [컴퓨터 네트워크] IP 주소 클래스(A, B, C 클래스)

    1) IP주소의 클래스란? 지난시간 IP주소에 대해 배웠는데 잠시 복습하면, IP주소는 32 자리 이진수로 구성되어 있고 이 주소는 십진수로 표현되는데 옥테드 당 ' . ' 을 찍어 구분한다고 했습니다. 또한, 하나의 네트워크안에 IP들은 네트워크 영역은 같아야하고, 호스트 IP는 서로 달라야 통신이 가능하다고 했습니다. 예를 들어 203.240.100.1 에서 203.240.100 은 네트워크 영역이고 1 은 호스트 IP라는 사실을 알 수 있습니다. 여기서 어떻게 네트워크 주소와 호스트 주소를 구분할 수 있을까요? 바로 클래스 때문입니다. 203.240.100.1 IP가 C클래스 이기 때문에 203.240.100 은 네트워크 주소이고, 1은 호스트 주소란 사실을 알아낸 것입니다. 이렇게 IP주소에는 클..

    [컴퓨터 네트워크] IP 주소

    [컴퓨터 네트워크] IP 주소

    전공 공부하다가 서브넷 마스크 개념에 대한 의문 생겼고 이참에 정리하고자한다. 1) IP주소란? IP주소는 네트워크 환경에서 컴퓨터(노드)간 통신하기 위해 각 컴퓨터에 부여된 네트워크 상 주소라고 생각하면 된다. 설명을 위해 우선 내 컴퓨터의 IP주소를 알아보자. 윈도우 검색창에 CMD를 치시고 명령프롬프트 창을 열어, ipconfig라는 명령어를 치면 아래와 같은 나의 IP정보가 나온다. IPv4주소가 곧 내 컴퓨터의 IP주소입니다. 192.168.1.2 가 내 주소임! 여기서 네트워크 주소는 192.168.1 까지이고!! 2는 나만의 호스트 IP라고 합니다. 어디서부터 어디까지가 네트워크 주소이고 호스트 주소인지는 다음글에서 이야기하겠다. 2) IP는 32자리로 이루어진 2진수 IP 주소에 대해서 조..