JP5331123B2 - ルート・サーバの各種方式および装置 - Google Patents
ルート・サーバの各種方式および装置 Download PDFInfo
- Publication number
- JP5331123B2 JP5331123B2 JP2010534087A JP2010534087A JP5331123B2 JP 5331123 B2 JP5331123 B2 JP 5331123B2 JP 2010534087 A JP2010534087 A JP 2010534087A JP 2010534087 A JP2010534087 A JP 2010534087A JP 5331123 B2 JP5331123 B2 JP 5331123B2
- Authority
- JP
- Japan
- Prior art keywords
- route
- server
- bgp
- user
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
Description
view isp-1
class transit
import buyer-1 class buyer-1
view isp-1-out
import isp-1 transit
class isp-1-per-prov
prefix-map 10 buyer-1-list
set add-class isp-1-per-prov
set weight 65535
view isp-2
class transit
import buyer-1 class buyer-1
view isp-2-out
import isp-2 transit
class isp-2-per-prov
prefix-map 10 buyer-1-list
set add-class isp-2-per-prov
set weight 65535
view buyer-1
class buyer-1
import isp-1 class transit
import isp-2 class transit
view buyer-1-isp-1
import isp-1 class transit
view buyer-1-isp-2
import isp-2 class transit
router bgp main 65500 192.168.1.14/24 default
bgp router-id 192.168.1.14
neighbor 192.168.1.15 remote-as 65501
neighbor 192.168.1.15 view isp-1
neighbor 192.168.1.16 remote-as 65502
neighbor 192.168.1.16 view isp-2
neighbor 192.168.1.17 remote-as 65503
neighbor 192.168.1.17 view buyer-1
router bgp isp-1 65500 192.168.1.13/24
bgp router-id 192.168.1.13
neighbor 192.168.1.17 remote-as 65503
neighbor 192.168.1.17 view buyer-1-isp-1
router bgp isp-2 65500 192.168.1.12/24
bgp router-id 192.168.1.12
neighbor 192.168.1.17 remote-as 65503
neighbor 192.168.1.17 view buyer-1-isp-2
! prefix list buyer-1-list
ip prefix-list buyer-1-list 10 permit 192.168.1.17.0/24
1) next-hop フィールドが発信元のネイバーのBGPインスタンスの正しいサブセットにあるかチェックする。正しくない、または next hop にアクセスできない場合、その経路を検討対象から除外する。
2) 経路がダンプされる場合(つまりBGPダンピング)、その経路は検討しない。
3) 最大の WEIGHT を持つパスを指定する。
4) 同じ WEIGHT を持つ経路が複数ある場合、BGPの最良パスの順序で定義付けを行うために、AS_PATH、MONETARY_COST、PACKET_LOSS、AVERAGE_RTT、および JITTER のメトリックスを比較する。
5) 上記のすべてのメトリックスが同じですべての候補経路が同じネイバーのASからの場合、最低の MULTI_EXIT_DISC を持つ経路を指定する(BGPの always-compare-med が設定されていない場合に限る。この場合は、ネイバーのASが同じかどうかに拘わらず比較する)。
6) その他のものがすべて等しく、BGPの最良パスの compare-routerid が設定されていない場合に限り、最初に受け取った経路を指定する。設定されている場合は、最低の BGP ルータIDを持つ経路を指定する。
BGPネイバー
ピア テーブルにまだネイバーが存在しない場合、BGPネイバーに新しいスロットが割り当てられ、そのピアは初期化される。以降のステップもすべて実行される。
ピアに BGP_FLAGS_DECONFIG が設定されている場合、そのピアはハード・リセット用にマークされ、フラグは設定されない。
ネイバーがシャットダウンとして構成されている場合、ピアもシャットダウンとしてマークされる。ピアがまだ管理シャットダウンになっていない場合、そのピアをハード・リセットとしてマークする。ネイバーがシャットダウンとして構成されていない場合はそのピアのシャットダウン・フラグをクリアし、ピアがシャットダウンの場合は BGP_STATE_IDLE に入れる。
ネイバーが passive として構成されているかチェックする。構成されている場合はピアの passive フラグを設定する。構成されていない場合はピアの passive フラグをクリアする。このフラグではピアのリセットは必要ないため、フラグの設定およびクリアは、フラグの設定およびクリアをチェックする場合と同様に簡単である。実際、ルート・サーバ305では、必要な場合でも両方のアクション(チェックおよび変更)を実行して変更する必要はないので、むしろ簡単である。
ネイバーが 'fake’ ('fake’ ネイバーのデバッグ) として構成されているかチェックする。構成されている場合、ピアに適切なフラグを設定する。構成されておらずピアが fake の場合、BGP_FLAGS_FAKE をクリアしてピアをハード リセットに設定する。
ネイバーにコミュニティが送られないように設定されているかチェックする。ピアが異なって設定されている場合はハード・リセットとマークする。(ソフト・リセットでは経路を再送せず、更新のスレッドに経路の再送が必要か決定させる。)
ネイバーが no transparent-as として設定されているかチェックする。ピアが異なって設定されている場合はハード・リセットとマークする(ソフト・リセットでは経路を再送しない)。
ネイバーのAS番号が変更されているかチェックする。変更されている場合、ピアのAS番号を変更してハード・リセットとマークする。
ビューの名前およびBGPインスタンス名を構成済みのネイバーから実行中のピアにコピーする。
現在のBGPインスタンスがデフォルトとマークされている場合、そのピアに BGP_FLAGS_ON_DEFAULT を設定し、それ以外の場合はクリアにする。
ネイバーの weight をチェックする。ピアのものと異なっている場合、ピアのデフォルトの weight に一致するように変更し、そのピアをソフト・リセットとマークする。
保持時間およびキープアライブ間隔をピアの構成済み保持時間およびキープアライブ間隔にコピーする(アクティブなものではない。)。
ネイバーの最大プレフィックス設定をチェックする。ピアのものと異なっている場合、ピアの設定を変更し、そのピアをソフト・リセットとマークする。
ピアがハード・リセットとマークされているが BGP_STATE_IDLE になっていない場合、ピアの bgp_change_state_external() を呼び出してその状態を BGP_STATE_CLEANUP に設定する。
それ以外にピアがソフト・リセットとマークされている場合は RCOMMAND_CLEAR_SOFT を現在のピアの経路スレッドに送る。
読み取りスレッド
A. 読み取りスレッド410は、読み取るデータがあるチャネルを識別する。これは、2つの fd_sets (1つは読み取り、もう1つはエラー用)を使用し、ログチャンネルではなく、アクティブでインプットを無効にしていないチャンネルをマークして実行され、(チャンネルがBGPチャンネルの場合)、読み取りキューは route server_READQ_MAX 上にはない。使用可能なチャンネルの socketid は fd_sets に追加される。
B. 読み取りスレッド410は、ノンブロッキングの select() を使用して、使用可能なチャンネルの中から読み取りデータを持っているチャネルを識別する。
C. 読み取りスレッド410は、各チャンネルをループし、処理待ちのデータを持つチャンネルがあるかどうかをチェックし、デーモン チャンネル (CHFLAG_ADMIND、CHFLAG_BGPD) を別途実行する。
D. 読み取りスレッド410は、管理チャンネルおよびBGPチャンネルに対し、インプットを実行する。管理チャンネルに対しては基本正常性チェックを実行する。読み取りに失敗した場合、あるいはゼロを戻す場合は、チャンネルは閉じている。読み取りに失敗した場合、PACKET_LEN バイトまではチャンネルの current_read パケットに読み込む。BGPチャンネルに対しては異なる正常性チェックを行った後、パケットを current_read にも読み込む。パケットが current_read にあり、しかも有効に見えるBGPパケットの場合、読み取りキューに入れられ経路テーブル・スレッド412で作動する。
E. 最後に、読み取りスレッド410が再度各チャンネルをループし、終了可能なチャンネルは終了される。
書き込みスレッド
1. writefds (書き込みの準備ができているファイル記述子の fd_set) をクリアし、少なくとも1つの記述子を示すフラグを準備する。
2. us の下に変更しないように、チャンネル・テーブルで読み取りロックを取得する。
3. 以下を実行しながら、テーブルの各チャンネルをループする。
・ チャンネルが閉じている場合、書き込みキューに残っているデータをクリーンアップする。
・ チャンネルの current_write にはデータはないが書き込みキューにデータがある場合、最初のパケットのキューを解除し、current_write に配置する。
・ チャンネルの current_write にデータがある場合、フラグを設定して現在のチャンネルの最初のファイル記述子を writefds に追加する。
4. チャンネルのループが完了したら、書き込みの writefdsでselect() を選択する。select() が戻ったら、再度チャンネル・テーブルをループし、socketid が writefds にある各チャンネルに write_queue() を発行する(write_queue() 関数は、チャンネルの書き込みキューにすべてのデータの書き込みを試みる。全データを書き込めない場合、データは次回の書き込みに持ち越される)。
5. チャンネル・テーブルの読み取りロックを解除する。
6. 条件変数 write_cond を待つ。
書き込みスレッド 416 は、上記のステップを無限にループする。
経路テーブル・スレッド
1. コマンド キューにあるすべてのコマンドを処理する。
2. 読み取りキューで最大1000BGPパケットまで処理する。
3. アップデート・キューにすでに route server_UPDATEQ_MAX エントリがある場合、現在の RouteList をアップデート・キューに追加して処理し、1秒間スロットルする。
4. BGPピアのテーブルをスキャンして、各ピアに対して次のチェックを実行する。
・ 必要に応じてキープアライブを送る。
・ 保持時間をチェックして、有効期限が切れている場合通知を送る。
・ ネゴシエーション中にピアのタイムアウトをチェックする。
・ BGP_STATE_IDLE でピアへの接続を開始する。
・ BGP_STATE_CLEANUP でピアのシャットダウンを終了させる。
5. 前回実行時から route server_GARBAGE_COLLECTION_TIME 秒以上経過している場合、ガーベジ コレクタを実行する。
6. 前回実行時から route server_DAMPENING_TIMER 秒以上経過している場合、route_dampening() を実行する。
7. ピアの最大プレフィックス設定をチェックする。
以下の説明では、これらの各操作を具体的に順番に説明する。
1.処理コマンド
#define RCOMMAND_SHOW_IP_ROUTE 3
#define RCOMMAND_SHOW_IP_ROUTE_SUMMARY 4
#define RCOMMAND_SHOW_IP_BGP_NEIGHBORS 5
#define RCOMMAND_CHANGE_STATE 6
#define RCOMMAND_FORCE_GC 7
#define RCOMMAND_SET_RTT 8
#define RCOMMAND_SET_JITTER 9
#define RCOMMAND_SET_COST 10
#define RCOMMAND_SET_LOSS 11
#define RCOMMAND_CLEAR_SOFT 12
#define RCOMMAND_CLEAR_DAMP 13
RCOMMAND_SHOW_* コマンドは出力を管理ログインへ送る。経路テーブル・スレッド412に読み取り専用のポインタをルート・テーブルに生成する。
・ RCOMMAND_CHANGE_STATE は特定のピアの BGP 状態を変更する。
・ route server_GARBAGE_COLLECTION_TIME 秒経過していない場合でも、RCOMMAND_FORCE_GC は経路テーブル・スレッド412に対し、ガーベジ・コレクションを実行する。これを使用し、再構成で発生した変更を実行する。
・ RCOMMAND_SET_* コマンドは、パラメーターを特定の経路に設定する。
・ RCOMMAND_CLEAR_SOFT は、特定のピアのルート テーブルを再スキャンする。
・ RCOMMAND_CLEAR_DAMP は、特定のビューまたは経路の BGP ダンピング情報をクリアする。
経路テーブル・スレッド412は、ループを反復するたびにコマンドを1つのみ処理する。他のスレッドからのコマンドは、BGPパケットほど頻繁ではないものとする。
2.BGPパケットの処理
bgp_process_packet() は比較的簡単な関数である。パケットの “type” フィールド(例えば、RFC 1771 に従うと19番目のバイト)をチェックしてからパケットを処理する。
1. BGP_PACKET_OPEN ? パケット上に bgp_process_open() を呼び出す。
2. BGP_PACKET_UPDATE ? アップデートを受け取ったピアが確定しているかチェックする。確定していない場合はアップデートを静かにドロップする。確定している場合はパケットを bgp_process_update() に渡す。
3. BGP_PACKET_NOTIFICATION ? このピアから通知を受け取った場合、送られたメッセージをログしてピア側の通知番号を増加し、channel_close_start() を呼び出して、ピアが存在しているチャンネルの閉鎖過程を開始する。
4. BGP_PACKET_KEEPALIVE ? ピアが存在する場合、ピア側のキープアライブ番号を増加してから、ピアがどの状態にあるかによってパケットを処理する。ピアが存在しない (別のスレッドによりチャンネルが閉じられている) 場合はパケットを無視する。
3.現在の RouteList をアップデート キューに送る
4.ピア・テーブルのスキャン
1. ピアが確立され、かつ保持タイムが > 0 で設定されている場合、キープアライブを送信するタイミングをチェックする。また、ピアの保持タイムが規定時間を越えていないかチェックする。タイムがキープアライブになっている場合、現在のピアに対してbgp_send_keepalive() をコールする。もしピアの保持時間が超過した場合、現在のピアに対して bgp_send_notification() を BGP_ERR_HOLDTIMER の値でコールする。
2. 次に、ピアが BGP オープン ネゴシエーションの間にタイムアウトしたかどうかチェックする。タイムアウトの場合、現在のピアに対しBGP_ERR_HOLDTIMER の値でbgp_send_notification() をコールする。
3. ピアが BGP_IDLE の状態で、「passive」として設定されていない場合、かつroute server_BGP_CONNECT_WAIT 秒数がピアの最後のデータから過ぎている場合は、bgp_intiate_open() をコールしピアへの接続を試みる。
4. ピアが「fake」として構成されている場合、デバッグし、かつ現在BGP_IDLE の状態の場合、ピアを特定する。
5. ピアが BGP_STATE_CLEANUP の状態の場合、route_peer_shutdown() を現在のピアに対しコールし、last_send 値を現行時間に設定する。ピアがチャンネルと関連している場合は、channel_close_start() をコールする。
5.ガーベジ コレクション
6.BGPルート・ラップ・ダンピング
route_thread() ループの完了
スレッドの更新
ルート・テーブル・プリント・スレッド
コンフィギュレーション/コマンド・スレッド
ロック
ルート・テーブル
struct treenode {
struct treenode *next [16];
struct route *route; /* sorted linked list of routes */
};
;
struct route {
struct route *next;
uint32_t network, netlen, netmask;
BGPattr const *peerview [the route server_MAX_BGPPEERS];
uint32_t annc_num, annc_max;
BGPannc *announcements;
};
typedef struct BGPannc_t {
BGPattr *attr;
uint16_t peerid;
uint16_t penalty; /* dampening penalty */
} BGPannc;
ルートテーブルのスキャン
void proc (...) {
TREEWALK_LOCALS;
TREEWALK_LOOP_START {
printf (“route is %08x\n”, TREEWALK->network);
} TREEWALK_LOOP_END
};
ルート・テーブル管理
#define ROUTE_LIST_MAX 13100
typedef struct route_list {
int peerid; /* specific peer, or -1 = all peers */
int num; /* number of entries in this table */
uint8_t type [ROUTE_LIST_MAX];
void *ptr [ROUTE_LIST_MAX];
} RouteList;
構造経路
struct route {
struct route *next;
uint32_t network, netlen, netmask;
BGPattr const *peerview [the route server_MAX_BGPPEERS];
uint32_t annc_num, annc_max;
BGPannc *announcements;
};
Uint32_t ネットワーク、netlen、ネットマスク
BGPattr const *ピアビュー [route server_MAX_BGPPEERS];
typedef struct BGPattr_t {
uint32_t refcount;
the route server_CLASS_TYPE class;
uint32_t peerid;
uint32_t next_hop;
uint32_t med;
uint32_t cost;
uint16_t loss, rtt;
uint16_t jitter, weight;
uint32_t attr_len;
uint16_t as_ptr, as_segments, as_len, community_ptr, community_num;
uint8_t origin;
uint8_t not_missing; /* flags */
u_char packet [4]; /* note: open ended array, using malloc */
} BGPattr;
Uint32_t annc_num、annc_max;
BGPannc *アナウンスメント
typedef struct BGPannc_t {
BGPattr *attr;
uint16_t peerid;
uint16_t penalty; /* dampening penalty */
} BGPannc;
ルート リスト
typedef struct route_list {
int peerid; /* specific peer, or -1 = all peers */
int num; /* number of entries in this table */
uint8_t type [ROUTE_LIST_MAX];
union {
void *ptr;
BGPattr *attr;
struct {
uint16_t peerid;
uint16_t penalty;
} peer;
} payload [ROUTE_LIST_MAX];
} RouteList;
ROUTE_LIST_MAX
ROUTE_LIST_MAX のデフォルト値は131000である。32-ビット・ポインタが使用される場合、ルート・リストが65536バイト(64k)内に適合するからである。メモリをそれほど頻繁に割り当てない場合には、十分な容量となる。また、ルート・リストに1つか2つのエントリしかない場合には、容量が小さくなるため多くのスペースを浪費しなくてすむ。配列は常に同じサイズである。所定の時刻にリスト上に存在するアクティブなエントリの数は、フィールド・ナムにより指定される。ルート・サーバ上のその他のデータ構造同様、ルート・リストは割り当てたり再使用できるが、破棄されることはない。ルート・リストは永続性のある存在なので、可能な限り柔軟性をもたせたほうがよい。その中心にはユニオンがある。これにより、ルート・リストは、void*、BGPattr*、または2つの16-ビット整数で構成された構造を格納できる。
構造ルートへのポインタ(RLIST_ROUTE)、
BGPattrへのポインタ(RLIST_ATTR)、
別のルート リスト xへのポインタ(RLIST_ATTR)、および
BGPannc 構造の一部 (RLIST_ANNC または RLIST_ANNC2)。
リサイクルされたキュー
typedef struct QueueEntry {
struct QueueEntry *next;
void *dataptr;
} QueueEntry;
typedef struct Queue {
QueueEntry *first, *last, *reuse;
u_int count; /* how many entries are in the queue */
u_int initcount; /* how many entries to init during malloc */
pthread_mutex_t lock;
pthread_cond_t cond;
} Queue;
Queue *queue_new (u_int initcount);
u_int queue_size (Queue *q);
void queue_add (Queue *q, void *dataptr);
void *queue_get (Queue *q, int wait);
void *queue_get_locked (Queue *q);
#define QUEUE_WAIT 1
#define QUEUE_NOWAIT 0
メモリ使用
view name isp-1
two classes
class transit
class on-net
member in view structure points to import buyer-1 class buyer-1
view isp-2
class transit
class on-net
class Europe-only
import buyer-1 class buyer-1
import buyer-2 class buyer-2
view buyer-1
class buyer-1
import isp-1 class on-net
import isp-2 class transit
view buyer-2
class buyer-2
import isp-2 class on-net Europe-only
typedef struct View_t {
struct View_t *next;
/* packed 32bit int as follows:
* bottom 8 bits: flags (0x000000ff)
* next 8 bits: unused (0x0000ff00)
* top 16 bits are best path order..3 bits at a time
* 1st comparison: 0x00070000 0000 0000 0000 0111
* 2nd comparison: 0x00380000 0000 0000 0011 1000
* 3rd comparison: 0x01c00000 0000 0001 1100 0000
* 4th comparison: 0x0e000000 0000 1110 0000 0000
* 5th comparison: 0x70000000 0111 0000 0000 0000
* last bit unused: 0x80000000 1000 0000 0000 0000
*/
uint32_t best path;
uint16_t dampening_penalty; /* 0 = no dampening */
uint16_t dampening_halflife;
uint16_t dampening_reuse;
uint16_t dampening_supress;
uint16_t dampening_maxsupress;
uint16_t dampening_maxpenalty;
uint8_t obsolete;
ViewImport *imports;
PrefixMap *prefix_map;
CommunityMap *community_map;
NexthopMap *nexthop_map;
ASpathMap *aspath_map;
int refcount;
char class_name [EDRS_CLASS_BITS][EDRS_NAME_MAX_LEN + 1];
char name [EDRS_NAME_MAX_LEN + 1];
} View;
announcement->class AND class_mesh [from][to].
/* class mesh: [x][y] x=from y=to */
extern EDRS_CLASS_TYPE class_mesh [EDRS_MAX_BGPPEERS][EDRS_MAX_BGPPEERS];
/* check to see if the class is being imported */
if ((attr->class & class_mesh [attr->peerid][peerid]) == 0)
continue;
Claims (20)
- 複数のインターネット・ネットワーク・サービス・プロバイダから複数のユーザのネットワーク要素(elements)へと、ネットワーク要素を接続するようにプログラムされたコードを有し、かつルータを含む、ルート・サーバを包含する装置であって、
前記ルート・サーバは、前記複数のユーザと前記複数のインターネット・ネットワーク・サービス・プロバイダとのために、ルーティング決定を行うようにプログラムされたコードをも有すると共に、これらの決定を、ブローダ・ゲートウェイ・プロトコル(Broader Gateway Protocol:以下、GBPと略記)を介して、前記複数のインターネット・ネットワーク・サービス・プロバイダの1又は2以上に伝達し、
前記ルート・サーバは、ルーティング・テーブルの複数のビューを維持(maintain)すると共に、複数のBGPインスタンスを実行するようにプログラムされたコードをも有し、かつ各インスタンスは、前記ルート・サーバの単一のインスタンスにおいて、異なる自立システムとなり、
前記ルート・サーバは、第1のユーザと複数の前記インターネット・ネットワーク・サービス・プロバイダとの双方により提供される条件(criteria)に基づいて、第1のユーザをインターネット・ネットワーク・サービス・プロバイダの1又は2以上に適合させるようにプログラムされたコードをも有し、
前記条件に基づいて前記第1のユーザを前記インターネット・ネットワーク・サービス・プロバイダに適合させた後、前記第1のユーザは、前記第1のユーザのIPパケットを宛先アドレスに届けるためのルート・テーブルを構築するために、前記ユーザの条件と適合した各インターネット・ネットワーク・サービス・プロバイダからの、各インターネット・ネットワーク・サービス・プロバイダの最良の可能ルートのみならず、宛先アドレスへの全ての可能ルートの全リストから選択することができる、装置。 - 前記ユーザの条件は、使用可能なインターネット・ネットワーク・サービス・プロバイダのサブセットを含み、かつ前記ルート・サーバは、前記第1のユーザが選択したサブセットにおいて、各インターネット・サービス・プロバイダから、全トランジット・ルート(full transit route)を受け取るために、前記ルート・サーバと前記第1のユーザの前記ネットワーク要素との間に、1又は2以上の追加のBGPピアリング・セッション(peering session)を育成する(bring up)ようにプログラムされたコードをも有する、請求項1に記載の装置。
- 前記ルート・サーバは、ネットワーク・トランジット・パス(paths)をフィルタリングすることについてのユーザの条件と適合する全トランジット・ルートから、特別なルート・プレフィックス(route prefixes)を、フィルター・イン(filter in)、フィルター・アウト(filter out)、又はフィルター・インとフィルター・アウトの双方を行うために、これらの全トランジット・ルートにフィルターを適用(apply)するようにプログラムされたコードをも有する、請求項2に記載の装置。
- 前記追加のBGPピアリング・セッションは、前記ルート・サーバと前記第1のユーザのネットワーク要素との間に、プロバイダの(per-provider)セッションのための、双方向通信(bidirectional communication)を確立し、そのプロバイダのセッションにおいては、前記第1のユーザのネットワーク要素は、前記追加のBGPピアリング・セッションを通じて、前記ルート・サーバの主たるBGPピアリング・セッションを通じて折返し通知される(announced back)情報とは異なる情報を、前記追加のBGPピアリング・セッションを通じて、1又は2以上のISPに通知することができる、請求項2に記載の装置。
- 前記ルート・サーバは、前記ユーザの条件を集める(gather)ために、前記ユーザに対して、ユーザ・インタフェースを提示(present)し、かつ前記第1のユーザとISPプロバイダとの双方により提供される条件に基づいて、前記ISPが前記第1のユーザに対してISPサービスを自動的に提供することにより提供される情報に、前記ユーザの条件を適合させるように、プログラムされたコードをも有する、請求項2に記載の装置。
- 前記ルート・サーバは、各BGPインスタンスが自己のルータIDを有し、異なるIPアドレス及びTCPソケットについて聞き(listens)、かつ全てのBGPインスタンスが同一の自立システム番号の一部である場合には、同一のピア(peers)に話す(talking)多数の(multiple)インスタンスをサポートするようにプログラムされたコードをも有し、それにより、バイヤー(buyers)が個別の(separate)IPアドレスとピアすることができ、かつ特定のISPプロバイダにより送られたそれらのルートを単に取得できる場合には、前記ルート・サーバは、プロバイダのBGPセッションのために、BGPの多数のインスタンスを使用する、請求項1に記載の装置。
- 前記ルート・サーバは、多数の(multiple)スレッド・デーモン(threaded daemon)としてコード化されており、かつ前記多数のスレッド・デーモンは、主スレッド(main thread)と4個又はそれを超える数の独立した永続的スレッド(persistent thread)とからなり、さらに
ピアからの伝送制御プロトコル(TCP)・トラフィックを取り扱い、新しいTCP接続を受け入れ、かつ失敗した接続を検出するようにプログラムされたコードを有するリード・スレッドと、
実際のデータパケットをピア接続へと送るようにプログラムされたコードを有するライト・スレッドと、
いずれのプレフィックス(prefix)が、各BGPピアに対して、通告される(advertised)べきか又は取り下げられる(withdrawn)べきかを決定するようにプログラムされたコードを有するアップデート・スレッドと、
前記ルート・テーブルへのリード及びライトの双方のアクセスにおける唯一の永続的スレッドとなることにより、全てのピアのために維持される単一のルート・テーブルを維持するようにプログラムされたコードを有するルート・テーブル・スレッドとを含み、
前記ルート・テーブル・スレッドのみが前記ルート・テーブルを変更することできるので、他の独立した永続的なスレッドが、前記テーブルから、同時にかつスレッドをロックさせることなく、読み出すことを許容することにより、全てのスレッドにより前記ルート・テーブルへの高速アクセスを許容するために、前記ルート・テーブル・スレッドは、前記ルート・テーブルに書き込むことができる唯一の永続的なスレッドとなる、請求項1に記載の装置。 - 前記永続的な独立スレッドは、互いの間を通過するキュー構造(queue structure)と状態変数(condition variables)とを介して交信(communicate)し、その後、前記キューをパイプライン処理し、拡張性(scalability)を達成するためにフラグを使用する、請求項7に記載の装置。
- 前記ルート・サーバは、リンク・リストとBトリーとのハイブリッド・コンビネーションであるルート・テーブルを有し、前記ルート・テーブルは、前記ルート・テーブルが実行中に再びバランスをとる必要がないことを確かなものとする(make sure)ために、ネットマスク長のルート内に、各ルートのネットマスク長により予めバランスのとられた組織(organization)と、全ての可能なプレフィックスのためのフィールド・エントリーとを有し、
新たなBGPセッションが確立するときに、前記ルート・テーブル内において、既存のルートを追加したり削除したりする理由がなくなるように、むしろ、幾つかのポインタの更新により、与えられたプレフィックスと関連する幾つかの特性を変化させるように、全ての通知されたルートは、前記ルート・テーブルの予め割り当てられたメモリ空間に永久的に保存(kept)される、請求項1に記載の装置。 - 前記ルート・サーバは、リンク・リストとBトリーとのハイブリッド・コンビネーションであるルート・テーブルを有し、前記ルートテーブルは、非再帰的アルゴリズム(non-recursive algorithm)によるスキャンを許容するために、有界の最大深さを有し、かつ
前記ルート・サーバによるデータ・ハンドリングは、前記ルート・テーブル内を循環するリード・オンリー・ポインタからなり、
他のスレッドに送るためのルートリストを作成するために、ルート・テーブルがスキャンされる必要があるときには、既知の有界最大深さで使用される非再帰的アルゴリズムが、再帰的アルゴリズムが必要である如何なる特別なファンクション・コール・オーバーヘッドも除去する、請求項1に記載の装置。 - 前記ルート・サーバは、リンク・リストとBトリーとのハイブリッド・コンビネーションであるルート・テーブルを有し、前記ルート・テーブルの構築は、前記トリーの各ルートが特定のネットマスク長のルートを取り扱い、前記テーブルに既に存在するルートが前記ルート・サーバに到来すると、新規のルート構造は割り当てられず、このルートのBGP特性が、このピアにより通知された他のいかなるプレフィックスとも同一でないときに限り、新規のBGP特性が割り当てられる、請求項1に記載の装置。
- 情報が共有される必要があるときには、前記ルート・スレッド以外のスレッドが、前記ルート・スレッドからパスされたルート・リストを経由して、前記ルート・テーブルからリードすることができ、前記ルート及びその通知は、ルート・リストに置かれ、他の永続的なスレッドの1つに通知され(communicated)、その後、他の永続的なスレッドが、それらがなおも存在することを知っている、前記ルート・リストに置かれたなんらかのポインタをリードすることが許容され、前記通知されたルート・リストが、割り当てられていない空間にスレッドオフを送り込んだりすると言った、他の永続的なスレッドが前記ルート・テーブル自身をスキャンする必要を妨げる、請求項7に記載の装置。
- 前記ルート・サーバは、スレッド・ロッキングの原因となるメモリ割り当て動作の量を減少させるために、キュー・エントリーのプール(pool)を維持することにより、キューをリサイクルし、かつキュー・エントリーのプールにおける全ての新しいエントリーは、再使用リストに加えられる、ようにプログラムされたコードをも有する、請求項1に記載の装置。
- 前記ルート・サーバは、単一のファイル内における前記メモリ内の互いに近接するグローバル変数の繰り返しかつ順序的使用を維持することにより、キャッシュロードのより良い使用をなすようにプログラムされたコードをも有する、請求項1に記載の装置。
- 前記ルート・サーバは、ルーティング・テーブルの各ビューが、そのピアが見る(see)ことを望むルーティング・テーブルのカスタムビューである場合には、ルーティング・テーブルの多対多のビューを維持する、請求項1に記載の装置。
- 前記ルート・サーバは、そのルートが一緒と考えられる自立システムにおける一群のビューを維持するものであり、一緒と考えられるルートの各々が複数のクラスのうちのゼロ又は1以上であり、かつ一緒と考えられるルートが、ネットワーキング特性条件に基づいて、クラスに割り当てられる場合、前記ビューは、そのビューと関連する複数のクラスをも有する、請求項1に記載の装置。
- 前記ルート・サーバは、各ビューがクラスの数を定義しており、ルートが1又は2以上のクラスに属することができ、与えられたISPプロバイダが申し出るサービスのクラスを異ならせるためにクラスが使用される場合には、ビュー及びクラスの入力時におけるルートのクラスをサポートするようにプログラムされたコードをも有する、請求項1に記載の装置。
- ルート・サーバのための方法であって、
前記ルート・サーバを介して、複数のインターネット・ネットワーク・サービス・プロバイダから複数のユーザのネットワーク要素へと、ネットワーク要素を接続するステップと、
前記複数のユーザと前記複数のインターネット・ネットワーク・サービス・プロバイダとのためにルーティング決定を行うと共に、ボーダ・ゲートウェイ・プロトコル(Boader Gateway Protocol)を介して、これらの決定を、構築されたルート・テーブルを介して、前記複数のインターネット・ネットワーク・サービス・プロバイダの1又は2以上に通知(communicate)するステップと、
前記ルーティング・テーブルの、前記ルート・サーバが、そのピアのそれぞれが、多数の(multiple)BGPインスタンスを見ると共に実行することを欲する、多数のビューを維持すると共に、前記ルート・サーバの単一インスタンスにおける異なる自立システムを表す(representing)ステップと、
第1のユーザと前記複数のインターネット・ネットワーク・サービス・プロバイダとの双方により提供される条件(criteria)に基づいて、前記第1のユーザを、前記インターネット・ネットワーク・サービス・プロバイダの1又は2以上に適合させ、前記条件に基づいて前記第1のユーザを前記インターネット・ネットワーク・サービス・プロバイダに適合させた後、前記第1のユーザは、前記第1のユーザのIPパケットを宛先アドレスに届けるためのルート・テーブルを構築するために、前記ユーザの条件と適合した各インターネット・ネットワーク・サービス・プロバイダからの、各インターネット・ネットワーク・サービス・プロバイダの最良の可能ルートのみならず、宛先アドレスへの全ての可能ルートの全リストから選択することができ、さらに前記ユーザの条件は、あり得る(possible)インターネット・ネットワーク・サービス・プロバイダのサブセットを含み得る、ステップと、
前記第1のユーザが選択した前記サブセットにおいて、各インターネット・サービス・プロバイダから、全トランジット・ルート(full transit route)を受け取るために、前記ルート・サーバと前記第1のユーザの前記ネットワーク要素との間に、1又は2以上の追加のBGPピアリング・セッション(peering session)を育成する(bring up)ステップと、
を包含する方法。 - 前記ルート・サーバと前記第1のユーザのネットワーク要素との間に、プロバイダの(per-provider)セッションのための、双方向通信(bidirectional communication)を確立し、そのプロバイダのセッションにおいては、前記第1のユーザのネットワーク要素は、前記追加のBGPピアリング・セッションを通じて、前記ルート・サーバの主たるBGPピアリング・セッションを通じて折返し通知される(announced back)情報とは異なる情報を、前記追加のBGPピアリング・セッションを通じて、1又は2以上のISPに通知することができるステップと、
前記ルーティング・テーブル内の全てのあり得るプレフィックスのための予め割り当てられたメモリ空間を有する前記ルートテーブル内に、はじめに、ルートを置く(locating)ステップと、
前記ルート・テーブルに、ひとたび、置かれた(entered)場合には、そのルートが、最早、通知されたルートであったとしても、前記ルート・テーブルからルートを消去しないステップと、
このルートの前記BGP特性が、このピアにより通知された他の如何なるプレフィックスとも同一でないときに限り、新規のBGP特性を割り当てるステップと、
をさらに包含する請求項18に記載の方法。 - 各ビューがクラスの数を定義しており、ルートが1又は2以上のクラスに属することができ、与えられたISPプロバイダが申し出るサービスのクラスを異ならせるためにクラスが使用され、かつ与えられたクラス内の一組のルートが、単に、前記ルーティング・テーブルのもう一つのピアのビューへと導入される(imported)ものである場合には、ビュー及びクラスの入力時におけるルートのクラスをサポートするステップをさらに包含する、請求項18に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/985,763 | 2007-11-16 | ||
US11/985,763 US8645568B2 (en) | 2007-11-16 | 2007-11-16 | Various methods and apparatuses for a route server |
PCT/US2008/081476 WO2009064612A1 (en) | 2007-11-16 | 2008-10-28 | Various methods and apparatuses for a route server |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011504047A JP2011504047A (ja) | 2011-01-27 |
JP5331123B2 true JP5331123B2 (ja) | 2013-10-30 |
Family
ID=40278840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010534087A Active JP5331123B2 (ja) | 2007-11-16 | 2008-10-28 | ルート・サーバの各種方式および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8645568B2 (ja) |
EP (1) | EP2218222B1 (ja) |
JP (1) | JP5331123B2 (ja) |
AT (1) | ATE505884T1 (ja) |
DE (1) | DE602008006263D1 (ja) |
WO (1) | WO2009064612A1 (ja) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9137033B2 (en) | 2003-03-18 | 2015-09-15 | Dynamic Network Services, Inc. | Methods and systems for monitoring network routing |
US8391185B2 (en) * | 2007-05-29 | 2013-03-05 | Cisco Technology, Inc. | Method to transport bidir PIM over a multiprotocol label switched network |
US8645568B2 (en) | 2007-11-16 | 2014-02-04 | Equinix, Inc. | Various methods and apparatuses for a route server |
US8837465B2 (en) | 2008-04-02 | 2014-09-16 | Twilio, Inc. | System and method for processing telephony sessions |
AU2009231676B2 (en) | 2008-04-02 | 2013-10-03 | Twilio Inc. | System and method for processing telephony sessions |
US7864706B1 (en) * | 2008-04-04 | 2011-01-04 | Force 10 Networks, Inc. | Border gateway protocol peer dampening |
US7864765B2 (en) * | 2008-09-30 | 2011-01-04 | At&T Intellectual Property I, L.P. | Anycast-based internet protocol redirection to alleviate partial routing tables |
US8169921B2 (en) | 2008-09-30 | 2012-05-01 | At&T Intellectual Property I, Lp | Methods and apparatus to monitor border gateway protocol sessions |
US8018941B2 (en) * | 2008-09-30 | 2011-09-13 | At&T Intellectual Property I, L.P. | Demand-based distribution of internet protocol routing information across a network |
CN102227904A (zh) | 2008-10-01 | 2011-10-26 | 特维里奥公司 | 电话网络事件的系统和方法 |
US20100094938A1 (en) * | 2008-10-10 | 2010-04-15 | Nicolas Le Scouarnec | Method of transmitting data between peerss by selecting a network according to at least one criterion and associated management device and communication equipment |
US9723048B2 (en) * | 2008-10-29 | 2017-08-01 | Oracle International Corporation | System and method for providing timer affinity through notifications within a session-based server deployment |
US8036126B2 (en) * | 2009-02-17 | 2011-10-11 | At&T Intellectual Property Llp | System and method for compressing internet protocol routing tables |
CA2789942C (en) | 2009-03-02 | 2017-05-23 | Jeffrey Lawson | Method and system for a multitenancy telephone network |
US8509249B2 (en) | 2009-09-04 | 2013-08-13 | Equinix, Inc. | Process and system for an integrated carrier ethernet exchange |
US9210275B2 (en) | 2009-10-07 | 2015-12-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US9269061B2 (en) * | 2009-12-10 | 2016-02-23 | Equinix, Inc. | Performance, analytics and auditing framework for portal applications |
US9590849B2 (en) | 2010-06-23 | 2017-03-07 | Twilio, Inc. | System and method for managing a computing cluster |
US9338064B2 (en) | 2010-06-23 | 2016-05-10 | Twilio, Inc. | System and method for managing a computing cluster |
US9459925B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US20120208495A1 (en) | 2010-06-23 | 2012-08-16 | Twilio, Inc. | System and method for monitoring account usage on a platform |
US9459926B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US8838707B2 (en) | 2010-06-25 | 2014-09-16 | Twilio, Inc. | System and method for enabling real-time eventing |
US8649268B2 (en) | 2011-02-04 | 2014-02-11 | Twilio, Inc. | Method for processing telephony sessions of a network |
US20140044123A1 (en) | 2011-05-23 | 2014-02-13 | Twilio, Inc. | System and method for real time communicating with a client application |
US9398622B2 (en) | 2011-05-23 | 2016-07-19 | Twilio, Inc. | System and method for connecting a communication to a client |
US9648006B2 (en) | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
US8640236B2 (en) * | 2011-06-27 | 2014-01-28 | Cisco Technology, Inc. | Performing a defensive procedure in response to certain path advertisements |
US10182147B2 (en) | 2011-09-21 | 2019-01-15 | Twilio Inc. | System and method for determining and communicating presence information |
WO2013044138A1 (en) | 2011-09-21 | 2013-03-28 | Twilio, Inc. | System and method for authorizing and connecting application developers and users |
US9495227B2 (en) | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US20130304928A1 (en) | 2012-05-09 | 2013-11-14 | Twilio, Inc. | System and method for managing latency in a distributed telephony network |
US9240941B2 (en) | 2012-05-09 | 2016-01-19 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US8831019B2 (en) * | 2012-05-18 | 2014-09-09 | Renesys | Path reconstruction and interconnection modeling (PRIM) |
US9247062B2 (en) | 2012-06-19 | 2016-01-26 | Twilio, Inc. | System and method for queuing a communication session |
US8737962B2 (en) | 2012-07-24 | 2014-05-27 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US8948356B2 (en) | 2012-10-15 | 2015-02-03 | Twilio, Inc. | System and method for routing communications |
US8938053B2 (en) | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
US9253254B2 (en) | 2013-01-14 | 2016-02-02 | Twilio, Inc. | System and method for offering a multi-partner delegated platform |
US9282124B2 (en) | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US9584445B2 (en) | 2013-05-07 | 2017-02-28 | Equinix, Inc. | Direct connect virtual private interface for a one to many connection with multiple virtual private clouds |
US9225840B2 (en) | 2013-06-19 | 2015-12-29 | Twilio, Inc. | System and method for providing a communication endpoint information service |
US9160696B2 (en) | 2013-06-19 | 2015-10-13 | Twilio, Inc. | System for transforming media resource into destination device compatible messaging format |
US9483328B2 (en) | 2013-07-19 | 2016-11-01 | Twilio, Inc. | System and method for delivering application content |
CN104378400B (zh) * | 2013-08-15 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 数据分散并发方法和装置 |
US9137127B2 (en) | 2013-09-17 | 2015-09-15 | Twilio, Inc. | System and method for providing communication platform metadata |
US9338018B2 (en) | 2013-09-17 | 2016-05-10 | Twilio, Inc. | System and method for pricing communication of a telecommunication platform |
US9274858B2 (en) | 2013-09-17 | 2016-03-01 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US9998354B2 (en) * | 2013-09-24 | 2018-06-12 | Netflix, Inc. | Server selection for content distribution |
US9325624B2 (en) | 2013-11-12 | 2016-04-26 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
US9553799B2 (en) | 2013-11-12 | 2017-01-24 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US9344573B2 (en) | 2014-03-14 | 2016-05-17 | Twilio, Inc. | System and method for a work distribution service |
US9226217B2 (en) | 2014-04-17 | 2015-12-29 | Twilio, Inc. | System and method for enabling multi-modal communication |
US9806954B2 (en) | 2014-06-03 | 2017-10-31 | Equinix, Inc. | Transformation engine for datacenter colocation and network interconnection products |
US9251371B2 (en) | 2014-07-07 | 2016-02-02 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US9516101B2 (en) | 2014-07-07 | 2016-12-06 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US9246694B1 (en) | 2014-07-07 | 2016-01-26 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
EP3210350B1 (en) | 2014-10-21 | 2020-05-20 | Twilio, Inc. | Method for providing a miro-services communication platform |
WO2016077801A2 (en) * | 2014-11-14 | 2016-05-19 | Bigleaf Networks, Llc | Circuit-aware load balancing with dynamic quality of service |
US9755946B2 (en) * | 2015-01-06 | 2017-09-05 | Verizon Patent And Licensing Inc. | Confidentially determining route diversity for network routes |
US9477975B2 (en) | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US10013453B2 (en) * | 2015-06-22 | 2018-07-03 | Vmware, Inc. | Efficient management of large number of file descriptors |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
US20190155985A1 (en) * | 2017-11-22 | 2019-05-23 | Mentor Graphics Corporation | Communication protocols design verification through database systems for hardware-based emulation platforms |
US11750441B1 (en) * | 2018-09-07 | 2023-09-05 | Juniper Networks, Inc. | Propagating node failure errors to TCP sockets |
CN108828979A (zh) * | 2018-09-17 | 2018-11-16 | 广州市特沃能源管理有限公司 | 基于Thread协议的智能家居控制系统和方法 |
US11356369B1 (en) * | 2020-03-31 | 2022-06-07 | Juniper Networks, Inc. | Border gateway protocol update packing for a distributed routing information base |
US11561823B1 (en) | 2020-05-12 | 2023-01-24 | Juniper Networks, Inc. | Lockless management of immutable objects by multi-threaded processes using multiple counters |
US11323387B2 (en) * | 2020-05-18 | 2022-05-03 | Juniper, Networks, Inc. | Prioritized communication session establishment in computer networks |
US11762710B2 (en) | 2020-06-23 | 2023-09-19 | Juniper Networks, Inc. | Multithreaded route processing for routing information display |
CN113727056B (zh) * | 2021-08-30 | 2023-09-22 | 聚好看科技股份有限公司 | 一种数据传输连接的管理方法及服务器 |
US11956204B1 (en) * | 2022-12-23 | 2024-04-09 | Plume Design, Inc. | IPv4-in-IPv6 relaying systems and methods to preserve IPv4 public addresses |
CN116319514B (zh) * | 2023-05-22 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151629A (en) | 1998-03-02 | 2000-11-21 | Compaq Computer Corporation | Triggered remote dial-up for internet access |
US6665702B1 (en) | 1998-07-15 | 2003-12-16 | Radware Ltd. | Load balancing |
US6584093B1 (en) * | 1998-08-25 | 2003-06-24 | Cisco Technology, Inc. | Method and apparatus for automatic inter-domain routing of calls |
US6611872B1 (en) * | 1999-01-11 | 2003-08-26 | Fastforward Networks, Inc. | Performing multicast communication in computer networks by using overlay routing |
US6603758B1 (en) | 1999-10-01 | 2003-08-05 | Webtv Networks, Inc. | System for supporting multiple internet service providers on a single network |
US6912567B1 (en) | 1999-12-27 | 2005-06-28 | International Business Machines Corp. | Broadband multi-service proxy server system and method of operation for internet services of user's choice |
US7139728B2 (en) | 1999-12-30 | 2006-11-21 | Rod Rigole | Systems and methods for online selection of service providers and management of service accounts |
CA2296213C (en) | 2000-01-07 | 2009-04-14 | Sedona Networks Corporation | Distributed subscriber management |
US7792745B2 (en) | 2000-02-25 | 2010-09-07 | Ipass Inc. | Method and system to facilitate financial settlement of service access transactions between multiple parties |
GB0028113D0 (en) * | 2000-05-15 | 2001-01-03 | Band X Ltd | Communication system and method |
JP2001358765A (ja) | 2000-06-13 | 2001-12-26 | Sanyo Electric Co Ltd | プロバイダ転送サーバおよびプロバイダ転送サービス方法 |
EP1293063A2 (en) * | 2000-06-14 | 2003-03-19 | Coreexpress, Inc. | Route selection within a network with peering connections |
US7225220B2 (en) | 2000-07-21 | 2007-05-29 | Hewlett-Packard Development Company, Lp | On-line selection of service providers in distributed provision of services on demand |
US6981055B1 (en) * | 2000-08-22 | 2005-12-27 | Internap Network Services Corporation | Method and system for optimizing routing through multiple available internet route providers |
US6985963B1 (en) | 2000-08-23 | 2006-01-10 | At Home Corporation | Sharing IP network resources |
US6976269B1 (en) | 2000-08-29 | 2005-12-13 | Equinix, Inc. | Internet co-location facility security system |
US7349994B2 (en) * | 2000-10-17 | 2008-03-25 | Avaya Technology Corp. | Method and apparatus for coordinating routing parameters via a back-channel communication medium |
JP3729051B2 (ja) * | 2000-10-18 | 2005-12-21 | 日本電気株式会社 | インタードメインルーティング装置、システムおよび方法 |
US6515224B1 (en) | 2000-11-21 | 2003-02-04 | Equinix, Inc. | Cascading cable tray system with pre-fabricated support structure |
US20020073182A1 (en) | 2000-12-08 | 2002-06-13 | Zakurdaev Maxim V. | Method and apparatus for a smart DHCP relay |
US7620574B2 (en) | 2001-01-22 | 2009-11-17 | N2 Broadband, Inc. | Cable billing systems and methods enabling independence of service marketing and provisioning from billing and collection of revenue |
US20020099616A1 (en) | 2001-01-23 | 2002-07-25 | Wim Sweldens | System and method for distributing web content on a network |
KR100353892B1 (ko) | 2001-02-19 | 2002-09-28 | 주식회사 파워콤 | 멀티 인터넷 서비스 제공자 시스템 및 구현방법 |
US7150037B2 (en) | 2001-03-21 | 2006-12-12 | Intelliden, Inc. | Network configuration manager |
US7269157B2 (en) * | 2001-04-10 | 2007-09-11 | Internap Network Services Corporation | System and method to assure network service levels with intelligent routing |
JP2002351761A (ja) * | 2001-05-22 | 2002-12-06 | Canon Inc | ネットワーク通信システム、ネットワーク通信接続選択装置、情報処理装置、ネットワーク通信接続選択方法、記録媒体およびプログラム |
US6816890B2 (en) | 2001-05-28 | 2004-11-09 | Hitachi, Ltd. | Gateway apparatus with LAC function |
US20030120769A1 (en) * | 2001-12-07 | 2003-06-26 | Mccollom William Girard | Method and system for determining autonomous system transit volumes |
US20030172170A1 (en) | 2002-03-08 | 2003-09-11 | Johnson Gerald R. | Providing multiple ISP access to devices behind NAT |
US7577154B1 (en) | 2002-06-03 | 2009-08-18 | Equinix, Inc. | System and method for traffic accounting and route customization of network services |
US20030236968A1 (en) * | 2002-06-19 | 2003-12-25 | Anindya Basu | Method and apparatus for generating efficient data structures for use in pipelined forwarding engines |
US7310685B2 (en) * | 2002-08-29 | 2007-12-18 | International Business Machines Corporation | Method and system for reducing look-up time in packet forwarding on computer networks |
US6976296B2 (en) | 2003-06-26 | 2005-12-20 | Astoria 2000 Llc | Constant velocity (CV) boot installer for motor vehicles |
US8693350B2 (en) * | 2004-10-26 | 2014-04-08 | Jds Uniphase Corporation | Method of collecting BGP routing protocol messages |
KR20060044049A (ko) * | 2004-11-11 | 2006-05-16 | 한국전자통신연구원 | 보안 라우터 시스템 및 그 시스템에 접속하는 사용자에대한 인증 방법 |
US7643488B2 (en) * | 2006-09-29 | 2010-01-05 | Nortel Networks Limited | Method and apparatus for supporting multiple customer provisioned IPSec VPNs |
US8645568B2 (en) | 2007-11-16 | 2014-02-04 | Equinix, Inc. | Various methods and apparatuses for a route server |
-
2007
- 2007-11-16 US US11/985,763 patent/US8645568B2/en active Active
-
2008
- 2008-10-28 JP JP2010534087A patent/JP5331123B2/ja active Active
- 2008-10-28 AT AT08849351T patent/ATE505884T1/de not_active IP Right Cessation
- 2008-10-28 DE DE602008006263T patent/DE602008006263D1/de active Active
- 2008-10-28 WO PCT/US2008/081476 patent/WO2009064612A1/en active Application Filing
- 2008-10-28 EP EP08849351A patent/EP2218222B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2009064612A1 (en) | 2009-05-22 |
US8645568B2 (en) | 2014-02-04 |
ATE505884T1 (de) | 2011-04-15 |
JP2011504047A (ja) | 2011-01-27 |
EP2218222A1 (en) | 2010-08-18 |
DE602008006263D1 (de) | 2011-05-26 |
US20090182896A1 (en) | 2009-07-16 |
EP2218222B1 (en) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5331123B2 (ja) | ルート・サーバの各種方式および装置 | |
US11310155B1 (en) | Virtual router workload offloading | |
Apostolopoulos et al. | QoS routing mechanisms and OSPF extensions | |
US7454486B2 (en) | Profiling and tracing distributed applications | |
Kawadia et al. | System services for ad-hoc routing: Architecture, implementation and experiences | |
US7197553B2 (en) | Network system having a virtual-service-module | |
US7376092B2 (en) | Method and apparatus for implementing persistent and reliable message delivery | |
JP4509916B2 (ja) | Snmp基盤のネットワーク管理装置および方法 | |
US11601365B2 (en) | Wide area networking service using provider network backbone network | |
JP2004508743A (ja) | インターネットルート非集合およびルート選択参照 | |
US11824773B2 (en) | Dynamic routing for peered virtual routers | |
KR20050017108A (ko) | 발행-가입 네트워크에서의 경보 서비스, 디지털 콘텐트전달, 및 서비스 품질 관리를 위한 페이로드 검사를 통한패킷 라우팅 및 선택적 멀티캐스팅을 갖는 캐싱 | |
US20020143850A1 (en) | Method and apparatus for progressively processing data | |
CN115086250A (zh) | 一种网络靶场分布式流量发生系统与方法 | |
US20090041033A1 (en) | Fitness based routing | |
US20220321471A1 (en) | Multi-tenant offloaded protocol processing for virtual routers | |
Voellmy et al. | Nettle: A language for configuring routing networks | |
Apostolopoulos et al. | rfc2676: QoS routing mechanisms and OSPF extensions | |
Partridge et al. | Fire: Flexible intra-as routing environment | |
Quoitin | BGP-based interdomain traffic engineering | |
Zeigler et al. | Modeling and Simulation of Ultra Large Networks: A Framework for New Research Directions | |
Moore | Practical active packets | |
Islam | Customizing system software using OO frameworks | |
CN118101745A (zh) | 一种无边车代理的分布式微服务治理方法 | |
Ramanath | A Study of the interaction of BGP/OSPF in Zebra/ZebOS/Quagga |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101025 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110216 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110519 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130313 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130612 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130726 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5331123 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |