1 |
1
각각 소정 키에 매핑되는 목적지 정보를 저장하는 하나 이상의 버킷(이하 '제 1 버킷'로 기재함)으로 구성되는 해시테이블을 구비한 메인 메모리와, 상기 해시테이블에 저장된 목적지 정보를 저장하는 임시테이블을 구비하고, 수신 패킷으로부터 추출된 소정 키를 소정 해시 함수에 적용하여 상기 임시테이블에서의 버킷(이하 '제 2 버킷'로 기재함)의 위치를 결정하고, 상기 결정된 위치의 제 2 버킷에 저장된 목적지 정보를 획득하여 상기 수신 패킷을 전송하는 중앙처리유닛(CPU)을 포함함을 특징으로 하는 소프트웨어 라우터
|
2 |
2
제 1항에 있어서, 상기 임시테이블은상기 제 1 버킷들과 매핑되는 동일한 갯수의 제 2 버킷들로 구성되고, 상기 제 2 버킷들 각각은상기 목적지 정보 및 매핑되는 제 1 버킷에서의 라우팅 엔트리들의 충돌 여부를 표시하는 충돌 플래그를 포함함을 특징으로 하는 소프트웨어 라우터
|
3 |
3
제 2항에 있어서, 상기 CPU는패킷을 수신하는 패킷 수신부와, 상기 수신된 패킷의 목적지 정보를 획득하는 패킷 처리부와, 상기 획득된 목적지 정보로 전송하는 패킷 전송부와, 상기 해시테이블에 저장되는 목적지 정보를 기반으로 상기 임시테이블을 관리하는 라우팅 엔트리 관리부를 포함함을 특징으로 하는 소프트웨어 라우터
|
4 |
4
제 3항에 있어서, 상기 라우팅 엔트리 관리부는상기 제 1 버킷에 소정 키와 그에 상응하는 목적지 정보가 하나일 경우, 매핑되는 상기 제 2 버킷에 해당 목적지 정보를 저장함과 아울러 상기 충돌 플래그를 충돌 미발생으로 설정함을 특징으로 하는 소프트웨어 라우터
|
5 |
5
제 3항에 있어서, 상기 라우팅 엔트리 관리부는상기 제 1 버킷에 소정 키와 그에 상응하는 목적지 정보가 각각 둘 이상이고, 상기 둘 이상의 목적지 정보가 각각 상이할 경우, 매핑되는 상기 제 2 버킷에 해당 목적지 정보를 저장하지 않고 상기 충돌 플래그를 충돌 발생으로 설정함을 특징으로 하는 소프트웨어 라우터
|
6 |
6
제 3항에 있어서, 상기 라우팅 엔트리 관리부는상기 제 1 버킷에 소정 키와 그에 상응하는 목적지 정보가 각각 둘 이상이고, 상기 둘 이상의 목적지 정보가 각각 동일할 경우, 매핑되는 상기 제 2 버킷에 해당 목적지 정보를 저장하고, 상기 충돌 플래그를 충돌 미발생으로 설정함을 특징으로 하는 소프트웨어 라우터
|
7 |
7
제 3항에 있어서, 상기 패킷 처리부는상기 결정된 위치의 임시테이블의 충돌 플래그를 확인 결과 충돌 발생으로 설정되어 있을 경우, 상기 해시테이블로부터 목적지 정보를 획득함을 특징으로 하는 소프트웨어 라우터
|
8 |
8
제 3항에 있어서, 상기 패킷 처리부는상기 해시테이블이 이더넷(Ethernet) 포워딩 테이블의 형태일 경우, 상기 수신 패킷의 MAC 주소를 기반으로 임시테이블을 검색함을 특징으로 하는 소프트웨어 라우터
|
9 |
9
제 3항에 있어서, 상기 패킷 처리부는상기 해시테이블이 MPLS 포워딩 테이블의 형태일 경우, 상기 수신 패킷의 Label을 기반으로 임시테이블을 검색함을 특징으로 하는 소프트웨어 라우터
|
10 |
10
소프트웨어 라우터에서의 라우팅 테이블 검색 방법에 있어서, 각각 소정 키에 매핑되는 목적지 정보를 저장하는 하나 이상의 버킷(이하 '제 1 버킷'로 기재함)으로 구성되는 해시테이블이 메인 메모리에 구비되고, 상기 해시테이블에 저장된 목적지 정보를 저장하는 임시테이블이 중앙처리유닛(CPU)에 구비되되, 수신 패킷으로부터 추출된 소정 키를 소정 해시 함수에 적용하여 상기 임시테이블에서의 버킷(이하 '제 2 버킷'로 기재함)의 위치를 결정하는 단계와,상기 결정된 위치의 임시테이블의 제 2 버킷으로부터 목적지 정보를 획득하여 상기 수신 패킷을 전송하는 단계를 포함함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 테이블 검색 방법
|
11 |
11
제 10항에 있어서, 상기 임시테이블은상기 제 1 버킷들과 매핑되는 동일한 갯수의 제 2 버킷들로 구성되고, 상기 제 2 버킷들 각각은상기 목적지 정보 및 매핑되는 제 1 버킷에서의 라우팅 엔트리들의 충돌 여부를 표시하는 충돌 플래그를 포함하는데, 상기 결정된 위치의 임시테이블의 충돌 플래그를 확인 결과 충돌 발생으로 설정되어 있을 경우, 상기 해시테이블로부터 목적지 정보를 획득하는 단계를 더 포함함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 테이블 검색 방법
|
12 |
12
제 10항에 있어서, 상기 임시테이블은상기 해시테이블로부터 목적지 정보를 획득하지 못할 경우, 상기 수신 패킷을 폐기하는 단계를 더 포함함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 테이블 검색 방법
|
13 |
13
소프트웨어 라우터에서의 라우팅 엔트리 갱신 방법에 있어서, 각각 소정 키에 매핑되는 목적지 정보를 저장하는 하나 이상의 버킷(이하 '제 1 버킷'로 기재함)으로 구성되는 해시테이블이 메인 메모리에 구비되고, 상기 해시테이블에 저장된 목적지 정보를 저장하는 임시테이블이 중앙처리유닛(CPU)에 구비되되, 추가 라우팅 엔트리를 상기 해시테이블의 제 1 버킷에 저장하고, 상기 제 1 버킷에 매핑되는 상기 임시테이블의 버킷(이하 '제 2 버킷'로 기재함)에 상기 추가 라우팅 엔트리로 저장하는 단계와, 삭제 라우팅 엔트리가 저장되어 있는 상기 해시테이블의 제 1 버킷에서 삭제 라우팅 엔트리를 삭제하고, 상기 제 2 버킷의 목적지 정보를 삭제하는 단계를 포함함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 엔트리 갱신 방법
|
14 |
14
제 13항에 있어서, 상기 저장하는 단계는 상기 추가 라우팅 엔트리를 저장할 제 1 버킷에 다른 라우팅 엔트리가 존재하고, 상기 추가 라우팅 엔트리의 값과 상기 다른 라우팅 엔트리의 값이 동일할 경우, 제 1 버킷에만 상기 추가 라우팅 엔트리를 추가함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 엔트리 갱신 방법
|
15 |
15
제 13항에 있어서, 상기 저장하는 단계는상기 추가 라우팅 엔트리를 저장할 제 1 버킷에 다른 라우팅 엔트리가 존재하고, 상기 추가 라우팅 엔트리의 값과 다른 라우팅 엔트리의 값이 동일하지 않을 경우, 제 1 버킷에 상기 추가 라우팅 엔트리를 추가함과 아울러 상기 임시테이블의 충돌 플래그를 충돌 발생으로 설정함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 엔트리 갱신 방법
|
16 |
16
제 13항에 있어서, 상기 삭제하는 단계는 삭제 라우팅 엔트리가 저장되어 있는 제 1 버킷에 상기 삭제 라우팅 엔트리를 제외한 하나 이상의 라우팅 엔트리들의 값이 동일할 경우, 상기 제 1 버킷에서 삭제 라우팅 엔트리를 삭제하고, 제 2 버킷에 상기 제 1 테이블의 상기 삭제 라우팅 엔트리를 제외한 하나 이상의 라우팅 엔트리들의 값으로 설정함과 아울러 충돌 플래그를 충돌 미발생으로 설정함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 엔트리 갱신 방법
|
17 |
17
제 13항에 있어서, 상기 삭제하는 단계는 삭제 라우팅 엔트리가 저장되어 있는 제 1 버킷에 상기 삭제 라우팅 엔트리를 제외한 하나 이상의 라우팅 엔트리들의 값이 동일하지 않을 경우, 해시테이블의 제 1 버킷에서 삭제 라우팅 엔트리를 삭제함을 특징으로 하는 소프트웨어 라우터에서의 라우팅 엔트리 갱신 방법
|