CS

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 32. Network Layer (8) : control plane, 라우팅 프로토콜 개요

Network Control Plane컨트롤 플레인에는 전통적인 라우팅 알고리즘 (하지만 여전히 자주 쓰인다. 포워딩 테이블을 만드는데 사용한다.) 과 SDN 컨트롤러에 대한 내용을 다룬다.또 network 관리와 설정하는 것도 control plane 영역에서 다룬다. 실제 인터넷에서 널리 사용하는 라우팅 프로토콜로 OSPF 와 BGP가 있다.두 프로토콜이 적용되는 영역이 달라서 두 프로토콜 모두 중요하게 사용된다.상술한 전통적인 라우팅 알고리즘 내용과 관련있다. SDN 컨트롤러 개념을 구현한 프로토콜로는 OpenFlow, ODL, ONOS 컨트롤러 등이 있다.각각은 모두 특정 브랜드 이름이고, OpenFlow는 지난 글에서 정리했듯 공개된 표준이고, ODL과 ONOS은 일종의 OS이다. 네트워크를 관..

CS/컴퓨터 구조

[컴퓨터 구조] 28. Virtual Memory (3) - TLB 와 캐시 사이의 동작에 대한 고찰 (질문 정리)

lw $1, 8($0)8번 virtual address 에서 레지스터로 데이터를 가져올 때 일어나는 과정1. virtual address 를 physical address로 변환하기1. TLB 에 접근8번 주소를 분해한다.만약 주소의 길이가 32bit 라면 4KB 페이지 크기를 고려하여 12bit 를 떼고,TLB 인덱스의 개수가 8개라면 3bit 를 index bit 로서 추가로 떼어내, 남은 17 bit 를 tag 로서 TLB 에서 PA를 찾는다. 1-1. TLB HitTLB Hit 라면 바로 Physical Address 를 가져온다.이때 TLB에 기록된 dirty bit, ref bit는 신경쓸 필요가 없는걸까? 1-2. TLB Miss메인 메모리에 있는 Page Table에 직접 접근한다. (Pa..

CS/컴퓨터 구조

[컴퓨터 구조] 27. Virtual Memory (2) - TLB

TLB가상 메모리를 사용할 때 참고하는 page table 이 메모리에 있기 때문에, page를 읽으려고 할 때마다 접근하는 시간이 오래 걸린다. (메모리에 대한 접근을 매우 느리게 만든다.)메모리의 특정 부분에서 데이터를 읽기 위해서 2번의 메모리 접근이 필요한 것이다. 첫번째는 VA를 PA로 변환하기 위해 page table에 접근하면서 1번 메모리에 접근하고,두번째는 이렇게 얻어온 PA를 가지고 데이터/명령어를 읽어오기 위해 메모리에 한번 더 접근한다. 그래서 이 문제를 해결하기 위해 하드웨어 지원을 추가하는 방법을 고민했다.page table에 대한 접근은 그래도 spatial locality가 꽤 좋다.명령어의 크기가 4byte인 것에 비해 4KB라는 페이지 크기는 매우 넉넉해서 한번 페이지를 ..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 31. Network Layer (7) : Middlebox

Middlebox미들박스는 source host로부터 목적지 호스트로 가는 데이터 경로상의 IP 라우터를 제외한 모든 다른 네트워킹 장치를 일컫는다.IP 라우터는 normal (인터넷 설계 초기부터 매우 중요한 설계 요소) 인데, 인터넷 설계 초기에는 고려하지 않았던, 새롭게 등장한 장치들을 모두 미들박스라고 한다. 대표적으로 NAT 가 있다.만약 IP주소가 넉넉해서 모든 IP주소를 항상 원하는 단체, 기관, 개인에게 공급할 수 있었다면 NAT는 등장하지 않았겠지만, IP주소가 부족한 문제가 발생해서 NAT가 source - destination 경로 사이에서 IP라우터가 하는 일 이외의 다른 일을 하기위해 등장했다. 이런 장치를 미들박스라고 한다. Middlebox 종류1. NAT 2. Firewall..

CS/HCI 윈도우즈프로그래밍

[Computer Vision] 5. Edge Detection

Edge Detection의 기본 원리어떤 물체의 내부, 또는 그 물체의 배경에 대해 변화가 작다면, 배경과 물체 사이의 경계 주위에서는 큰 변화가 있을 것이다.이 관찰에 기반해서, Edge detection 알고리즘은 밝기, 색상, 텍스쳐 등의 변화량을 측정하고, 큰 변화가 발생한 위치를 edge로 인식한다. 이 작업을 수행하기 위한 가장 간단한 방법은, 각 픽셀에서 gray level의 gradient vector를 계산하는 것이다.이미지를 흑백으로 바꾼 뒤, 밝기의 차이만 보는 것이다. 그 값은 위와 같이 계산할 수 있다.또한 절대적인 변화량은 이렇게 절댓값을 씌워서 얻을 수 있다.그리고 이 변화량은 마치 수학에서 두 점 사이의 변화량을 보는 것과 같이 그 변화의 뱡향을 따질 수 있다.이때 변화의 ..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 30. Network Layer (6) : Generalized Forwarding

Generalized Forwarding지금까지 정리한 포워딩 방식은 IP 패킷을 받으면, 이 패킷의 목적지 IP주소를 보고, 가장 길게 매치되는 것을 포워딩 테이블에서 찾아서, 그 다음 목적지로 가기 위한 output link(port) 를 결정했었다. 이번엔 이 방법보다 조금 더 일반화된 포워딩 방법을 정리해보려고 한다.왜 output port 를 찾을 때 목적지 주소만 봐야 하는가, Source IP주소를 봤을 때도 도움이 될 만한 부분이 실제로 많다. 예를 들어 인터넷 해킹에서 공격 시발점의 source ip주소를 보고, black list에 있는 IP주소와 매칭되면 원천적으로 방화벽에서 차단시켜버리는 경우가 있다.홍대도 매일 100건 이상의 공격시도가 들어오는데, 물론 공격자들이 IP주소를 바꿔..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 29. Network Layer (5) : IPv6

IPv6(IPv5는 실험적 목적이므로 건너감!)IPv6는 나온지 20년이 넘은 꽤 오래된 개념이다.약 27년전 시점부터 IPv4의 주소가 고갈될게 분명해져서 그 전에 새로운 주소 체계를 도입하고자 등장한 것이 IPv6이였다.그런데 주소 체계를 바꾼다는 것은 꽤 큰 일이다.32bit 에서 128bit 주소 체계로 바꾼다는 것은, 일단 양립성을 포기하는 것과 같다.32bit 주소체계를 쓰면서 동시에 128bit 주소 체계를 사용하는 것이 불가능하기 때문이다. 그래서 IPv6를 설계할 때는 어차피 처음부터 만들 거 IPv4에서 마음에 안들었던 부분을 다같이 바꾸자고 생각했고, 많은 부분들이 개선되었다. (option, checksum 과 같은 필드가 삭제되었다.)따라서 헤더의 크기가 고정되었기 때문에, 프로세..

CS/컴퓨터 구조

[컴퓨터 구조] 26. Virtual Memory (1) - 개요

Virtual vs Real vs Transparent vs Erase1978년 IBM에서 정의한 바에 따르면 실제로 존재하는데, 눈으로 볼 수 있으면 'Real' 이라고 한다. (현실)실제로 존재하는데, 눈으로 볼 수 없으면 'Transparent' 라고 한다. (투명하다)실제로 존재하지 않는데, 눈으로 볼 수 있으면 'Virtual' 이라고 한다. (가상)실제로 존재하지 않는데, 눈으로 볼 수 없으면 'Erase' 라고 한다. (삭제했다) 따라서 이 용어에 따르면, Virtual Memory 는 실제로 존재하지 않지만 눈으로는 보이는 메모리를 일컫는다. Virtual Memory버추얼 메모리는 실제로는 운영체제가 제공하는 테크닉에 해당한다. 위 그림에서 초록색으로 표시된 장치는 실제로 존재하는 (Re..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 28. Network Layer (4) : NAT

NATNetwork Address Translation, 보통 '공유기' 라는 이름으로 익숙하게 알려져있다.말 네트워크 주소를 번역 (변환) 해준다. (일종의 라우터) NAT는 다수의 디바이스로 구성된 어떤 local network(집)에서 외부 인터넷으로 나가는 유일한 통로역할을 한다.외부 인터넷의 관점에서 보면, 해당하는 local network(집)로 들어가는 유일한 통로로 NAT 밖에 보이지 않는다. 즉, 집에서 여러 인터넷 디바이스를 사용하고 싶은데, 인터넷은 하나의 회선만 사용하고 싶을 때 NAT(공유기)를 사용할 수 있다. 또한 밖에서는 하나의 IPv4 주소만 가지고 있는 것처럼 보이기 때문에 내부 네트워크를 감추는 효과도 있다. local network 에서는 다시 각각의 디바이스를 구분하..

CS/컴퓨터 구조

[컴퓨터 구조] 25. Cache (3) - 성능 개선

캐시를 적용한 CPU 성능이제 캐시를 적용했을 때 CPU의 성능 (실행 시간)을 한번 생각해보기로 하자.  먼저 CPU의 실행시간은 (명령어의 개수) * (CPI) * (주기) 로 구할 수 있었다.이때 명령어의 개수 * CPI 는 결국 프로그램을 실행하는 과정에서 요구하는 총 cycle 수로 볼 수 있으므로CPU의 실행시간은 (clock cycle) * (주기) 라고 할 수 있다. 이때 clock cycle 을 CPU에서 명령어를 실행시키는데 필요한 cycle 과, 메모리를 접근하는데 시간이 오래 걸려서 CPU가 stall 하는 cycle 로 구분해서 생각해보자. 이때, 만약 캐시 Hit 가 발생하면 이때는 추가적인 CPU cycle이 필요하지 않다고 해보자.(즉, 캐시 Hit 가 발생하면 MEM sta..

에버듀
'CS' 카테고리의 글 목록 (9 Page)