검색결과 리스트
컴퓨터 연구 에 해당되는 글 111건
- 2015.07.20 Bridged networking
- 2015.07.20 Network Address Translation(NAT)
- 2015.07.16 VI 이동 모드
- 2015.07.15 리눅스 기본 디렉토리
- 2015.07.15 리눅스 입문
- 2009.03.06 Reconstruction
- 브리지 네트워킹에서, Virtual Box는 물리적 네트워크 어댑터로부터
데이터를 걸러내기 위해 호스트 시스템의 디바이스 드라이버를 사용
- 이 드라이버는 "net filter" 드라이버라고 불린다
- 이 것은 물리적 네트워크로부터 데이터를 가로채거나
데이터가 그곳(물리적 네트워크)으로 침투하는 것을 허락한다
- 효과적으로 소프트웨어에서 새로운 네트워크 인터페이스를 생성하는 것이다
- 게스트가 그런 새로운 소프트웨어 인터페이스를 이용할 때,
호스트 시스템에게는 게스트가 네트워크 케이블을 이용하여
물리적으로 직접 인터페이스에 연결되었다고 보여진다
- 호스트는 인터페이스를 통해 게스트에게 데이터를 전할 수 있고
그것으로부터 데이터를 받을 수 있다
- 이것은 게스트와 네트워크 나머지 장비들 사이에 라우팅이나 브리징을
직접 설정할 수 있다라는 것을 의미한다
- 이러한 작업을 하기 위해 Virtual Box는 호스트 시스템 상에서
디바이스 드라이버를 필요로 한다
- 브리지 네트워킹을 가능하게 하기 위해 할 일은
가상 머신의 설정 다이얼로그를 열고,
네트워크 페이지로 가서 "Attacted to" 필드에서 Briged network를 선택한다
- 마지막으로 페이지의 아래에 리스트로부터 원하는
호스트 인터페이스를 선택한다.
이것은 너의 시스템의 물리적 네트워크 인터페이스를 포함한다
* 한계
- 리눅스 : 무선 인터페이스를 이용하여 브리지 네트워킹을 할 때
기능이 제한적이다
현재 무선 상에서 오직 IPv4를 지원한다.
- 또한 Marvell Yukon II EC Ultra Ethernet NIC 상에서 sky2 드라이버에 의해
제공되는 무선 인터페이스 상에서 MTU를 1500 이하로 설정하는 것은
특정한 조건 하에서 패킷 손실이 일어난다
Virtual Box 네트워킹 모드 - Network Address Translation(NAT)
- 가상 머신에서 외부 네트워크에 접근하는 가장 간단한 방법
- 호스트 네트워크와 게스트 시스템 상에서 어떤 구성도 필요하지 않음
- 이러한 이유로 Virtual Box에서 디폴트로 설정됨
- 진짜 컴퓨터와 같이 라우터를 통해 인터넷에 연결
- 이 경우에 라우터는 Virtual Box 네트워킹 엔진
- 이 라우터는 각각의 가상 머신과 호스트 사이에 위치
이 구분은 가상 머신끼리 서로 통신하지 않기 때문에 보안이 최대화
- 단점 : 가상 머신은 외부로부터 보이지도 않고 접근할 수도 없음
=> 따라서 이 방식으로는 서버를 운영할 수 없음
- 가상 머신은 Virtual Box에 통합된 DHCP 서버로부터 개별 네트워크 상의
네트워크 주소와 구성을 받는다.
- 따라서 가상 머신에 할당된 IP 주소는 보통 호스트보다
완전히 다른 네트워크 상에 있다
- ex) 가상 머신에 하나보다 많은 카드가 설정 되어 있을 때
첫 번째 카드는 10.0.2.0이라면, 두 번째 카드는 10.0.3.0 등으로 연결된다
* NAT 한계
- NAT의 4가지 한계가 있는데 이것은 사용자들이 알아야 한다.
1. ICMP 프로토콜 한계 : 자주 사용되는 네트워크 디버깅 툴은(ping or tracerouting)
메시지를 보내고 받는데에 ICMP 프로토콜에 의존한다
ICMP 지원이 Virtual Box 2.1부터 개선되었지만,
일부 다른 도구들은 신뢰적으로 작동하지 않을 수 있다.
2. UDP 브로트캐스트를 받는 것이 신뢰할 수 없음
- 게스트가 특별한 포트 상에서 UDP 데이터를 보낸 후에
리소스를 저장하기 위해서 일정시간 동안 오직 리슨을 하기 때문에
게스트가 브로드캐스트를 확실히 받을 수 없다.
3. GRE와 같은 프로토콜이 지원 안 됨
- TCP와 UDP 말고 다른 프로토콜은 지원이 안 된다
4. 1024 미만의 호스트의 포트를 보내는 것은 불가능함
- root에서 실행되지 않는 응용프로그램은
1024 이하의 포트를 묶는 것은 불가능하다
- 그 결과 그러한 포트 전송을 구성하기를 시도하면 가상 머신은 시작을 안 한다.
- ex) NFS 는 포트 번호가 1024 미만이기 때문에
서버는 연결을 거절하는 구성을 취한다
드디어 기다리고 기다리던 리눅스에 발을 들였다...
15년 전에 레드햇 한 번 깔아보려고... 애썼건만 실패하고
3년 전에 우분투 한 번 깔아보려고 책까지 샀건만 실패하고...
드디어 회사에서 다시 한 번 시작이다
한 번 잘 해보자~~!
x1 = P1 * X1
x2 = P2 * X2
여기에서 P1 = [R1 | t1]; 이다. R1은 SO(3)에 포함되고 t1은 3D vector 이다.
1. Reconstruction Method
P1(t) = p1 + t * v1;
P2(s) = p2 + s * v2;
다음과 같이 되기 때문에 P1 과 P2 가 같게 되는 t와 s를 각각 구하면 된다.
두 장의 영상에서 임의의 점에 대한 대응점을 x와 x'이라고 하면
다음과 같이 만들 수 있다.
(x와 x'은 영상 좌표의 homogeneous coordinate 이다)
xn = K-1 * x;
xn' = K-1 * x';
p1 = - R1' * t1;
p2 = - R2' * t2;
v1 = R1' * xn;
v2 = R2' * xn';
위의 4개의 vector p1, p2, v1, v2를 이용하여
다음과 같은 식으로 t와 s를 구할 수 있다.
k1 = p2 - p1;
k2 = v1 x v2;
M1 = [k1 v2 k2];
M2 = [k1 v1 k2];
t = det(M1) / (k2' * k2);
s = det(M2) / (k2' * k2);
t와 s를 구하면 P1(t) 와 P2(s) 에 각각 대입하면
같은 3D 좌표가 나오게 되고 이게
실제 3차원 상의 점이 된다.