KR20000011371A - Secure port access to a device on a local area network - Google Patents

Secure port access to a device on a local area network Download PDF

Info

Publication number
KR20000011371A
KR20000011371A KR1019990025670A KR19990025670A KR20000011371A KR 20000011371 A KR20000011371 A KR 20000011371A KR 1019990025670 A KR1019990025670 A KR 1019990025670A KR 19990025670 A KR19990025670 A KR 19990025670A KR 20000011371 A KR20000011371 A KR 20000011371A
Authority
KR
South Korea
Prior art keywords
port
data
memory
source address
packet
Prior art date
Application number
KR1019990025670A
Other languages
Korean (ko)
Inventor
크리니언패트릭티.
Original Assignee
클라크 3세 존 엠.
내셔널 세미콘덕터 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 클라크 3세 존 엠., 내셔널 세미콘덕터 코포레이션 filed Critical 클라크 3세 존 엠.
Publication of KR20000011371A publication Critical patent/KR20000011371A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

PURPOSE: A network device is provided to prevent a non-permitted user from accessing to the network resource and to increase the network band resource so more users as to share the resource. CONSTITUTION: The network device contains; a memory for storing the plural programmed addresses; a port for receiving and transmitting the packet data including the source address through a network; a controller combined with the port and the memory and for comparing the source address with the plural programmed addresses, and disabling the port if the source address is not equal to anything of the plural programmed addresses.

Description

LAN상의 디바이스로의 안전한 포트 액세스{SECURE PORT ACCESS TO A DEVICE ON A LOCAL AREA NETWORK}Secure port access to devices on LAN {SECURE PORT ACCESS TO A DEVICE ON A LOCAL AREA NETWORK}

본 발명은 일반적으로 LAN (Local Area Network) 을 통해 데이터를 교환하는 것에 관한 것으로, 더 상세히 설명하면, LAN 상의 장치로의 안전한 포트 액세스에 관한 것이다.The present invention relates generally to exchanging data over a local area network (LAN), and, more particularly, to secure port access to devices on a LAN.

LAN 은 일반적으로 컴퓨터 또는 다른 디바이스를 상호접속시키는 데 사용된다. 한 컴퓨터는 네트워크를 통해 다른 컴퓨터로 데이터의 패킷을 송신할 수도 있다. 이 패킷은 소스 (source) 어드레스 필드, 데스티네이션 (destination) 어드레스 필드, 데이터 필드, 및 기타 필드를 포함한다. 데스티네이션 어드레스 필드는 패킷을 적절한 데스티네이션으로 라우팅하는 데 이용된다.LANs are commonly used to interconnect computers or other devices. One computer may send a packet of data to another computer via a network. This packet includes a source address field, a destination address field, a data field, and other fields. The destination address field is used to route the packet to the appropriate destination.

LAN 은, 다수의 디바이스를 포함하고 넓은 물리적 공간에 도달하도록 증대될 수도 있다. 예를 들면, LAN 을 통해 다수의 개인용 컴퓨터를 상호접속시킬 수도 있다. 개인용 컴퓨터들은 다수의 장소에 걸쳐 분산되어 있을 수도 있다. 디바이스의 수가 증가함에 따라, 네트워크 대역에 대한 수요도 증가한다. 디바이스간 거리가 증가함에 따라, 신호의 열화도 역시 증가한다.A LAN may be augmented to include a large number of devices and to reach a large physical space. For example, multiple personal computers can be interconnected via a LAN. Personal computers may be distributed across multiple locations. As the number of devices increases, so does the demand for network bands. As the distance between devices increases, so does the signal degradation.

라우터, 허브, 스위치, 브리지, 리피터 등과 같은 네트워크 디바이스는 네트워크 트래픽을 분산시키고 네트워크 신호를 증폭하는 데 사용될 수도 있다. 예를 들면, 네트워크 스위치는 네트워크를 서브 네트워크로 분할하는 데 사용될 수도 있다. 패킷을 모든 서브 네트워크에 송신할 필요가 없을 때, 이 스위치는 이 패킷을 적절한 서브 네트워크 (즉, 이 패킷의 데스티네이션 어드레스와 일치하는 디바이스 어드레스를 구비한 서브 네트워크) 로 라우팅한다. 이런 방식으로, 스위치는 서브 네트워크 내에서 트래픽을 감소시킬 수 있다.Network devices such as routers, hubs, switches, bridges, repeaters, and the like may be used to distribute network traffic and amplify network signals. For example, a network switch may be used to divide the network into subnetwork. When there is no need to send a packet to all subnetworks, this switch routes this packet to the appropriate subnetwork (ie, the subnetwork with the device address that matches the destination address of this packet). In this way, the switch can reduce traffic within the subnetwork.

또한, LAN 은, 다양한 물리적 장소에 위치한 다수의 사용자 사이에서 데이터 및 컴퓨터 리소스 (resource) 를 공유하는 데 이용될 수 있다. 허가된 사용자는 이런 리소스에 액세스하고 공유할 수 있어야 하지만, 허가되지 않은 사용자는 상기와 같은 것이 금지되어야 한다. 그러나, 네트워크 디바이스의 수가 증가함에 따라, 허가되지 않은 사용자를 적절히 확인하기가 더 어려워진다. 마찬가지로, 네트워크 디바이스를 수용하는 물리적 장소의 수가 증가함에 따라, 네트워크 보안을 보장하기가 더 어렵게 된다. 예를 들면, 허가되지 않은 사용자가 LAN 에 들어와, 비밀 데이터 또는 컴퓨터 리소스에 액세스하려고 할 수도 있다.LANs can also be used to share data and computer resources among multiple users located in various physical locations. Authorized users should be able to access and share these resources, but unauthorized users should be prohibited from doing so. However, as the number of network devices increases, it becomes more difficult to properly identify unauthorized users. Likewise, as the number of physical locations housing network devices increases, it becomes more difficult to ensure network security. For example, an unauthorized user may enter the LAN and attempt to access secret data or computer resources.

따라서, 허가받지 않은 사용자가 네트워크 리소스에 접근하지 못하게 하는 네트워크 디바이스가 필요하게 된다. 또한, 더 많은 사용자가 리소스를 공유할 수 있도록 네트워크 대역 리소스를 증대시키는 네트워크 디바이스가 필요하다.Thus, there is a need for a network device that prevents unauthorized users from accessing network resources. There is also a need for network devices that augment network bandwidth resources so that more users can share resources.

본 발명의 일태양에 따르면, 패킷 데이터를 수신 및 송신하는 네트워크 디바이스는 메모리, 포트, 및 제어기를 포함한다. 메모리는 복수의 프로그램된 어드레스를 저장하도록 구성된다. 포트는 네트워크를 통해 패킷 데이터 (소스 어드레스 포함) 를 수신 및 송신하도록 구성된다. 제어기는 포트 및 메모리와 동작적으로 결합되어 있고 소스 어드레스를 복수의 프로그램된 어드레스와 비교하도록 구성되어 있다. 소스 어드레스가 복수의 프로그램된 어드레스의 어느 것과도 일치하지 않는 경우에 제어기는 포트를 디스에이블 (disable) 시킨다.According to one aspect of the invention, a network device for receiving and transmitting packet data includes a memory, a port, and a controller. The memory is configured to store a plurality of programmed addresses. The port is configured to receive and transmit packet data (including source address) over the network. The controller is operatively coupled to the port and the memory and is configured to compare the source address with a plurality of programmed addresses. If the source address does not match any of the plurality of programmed addresses, the controller disables the port.

본 발명의 다른 태양에 따르면, 패킷 데이터를 수신 및 송신하는 네트워크 디바이스는 레지스터, 포트, 및 메모리를 포함한다. 레지스터는, 보안 프로그램 모드를 포함한, 복수의 동작모드 중에서 선택하도록 구성된다. 포트는, 레지스터와 동작적으로 결합되어 있고 네트워크를 통해 패킷 데이터 (소스 어드레스 포함) 를 수신하도록 구성된다. 메모리는, 레지스터 및 포트와 동작적으로 결합되어 있고 복수의 프로그램된 어드레스를 저장하도록 구성된다. 메모리는 소스 어드레스를 복수의 프로그램된 어드레스와 비교하여, 불일치를 검출하면, 포트를 디스에이블시킨다.According to another aspect of the present invention, a network device that receives and transmits packet data includes a register, a port, and a memory. The register is configured to select from a plurality of operating modes, including a secure program mode. The port is operatively associated with a register and configured to receive packet data (including source address) over the network. The memory is operatively associated with registers and ports and configured to store a plurality of programmed addresses. The memory compares the source address with a plurality of programmed addresses and, upon detecting a mismatch, disables the port.

본 발명의 또다른 태양에 따르면, 네트워크 디바이스는 제 1 포트를 통해 패킷 데이터 (소스 어드레스 포함) 를 수신한다. 네트워크 디바이스는 소스 어드레스를 복수의 프로그램된 어드레스와 비교한다. 비교단계가 불일치를 발생시키는 경우에, 네트워크 디바이스는 제 1 포트를 디스에이블시킨다.According to another aspect of the invention, a network device receives packet data (including a source address) via a first port. The network device compares the source address with a plurality of programmed addresses. If the comparing step results in a mismatch, the network device disables the first port.

도 1 은 3 개의 데이터 교환장치 (data exchanger) 와 2 개의 관련 업링크 (up-link) 를 포함하는 스위치드 네트워크 (switched network) 의 바람직한 일실시예의 블록도.1 is a block diagram of one preferred embodiment of a switched network comprising three data exchangers and two associated uplinks.

도 2 는 스위치 버스에 접속된 2 개의 데이터 교환장치를 포함하는 스위치드 네트워크의 다른 바람직한 실시예의 블록도.2 is a block diagram of another preferred embodiment of a switched network including two data exchanges connected to a switch bus.

도 3 은 프레임을 셀로 분할하는 바람직한 일실시예의 블록도.3 is a block diagram of one preferred embodiment of dividing a frame into cells.

도 4 는 데이터 셀의 바람직한 일실시예의 블록도.4 is a block diagram of one preferred embodiment of a data cell.

도 5 는 도 2 의 룩업 엔진 (look-up engine) 의 바람직한 일실시예의 블록도.5 is a block diagram of one preferred embodiment of the look-up engine of FIG.

도 6 은 도 5 의 소스 어드레스 메모리의 블록도.6 is a block diagram of the source address memory of FIG. 5;

도 7 은 퍼스트 허드모드에서의 도 5 의 룩업 엔진의 바람직한 동작의 흐름도.7 is a flow diagram of the preferred operation of the lookup engine of FIG. 5 in first head mode.

도 8 은 라스트 허드모드에서의 도 5 의 룩업 엔진의 바람직한 동작의 흐름도.8 is a flow chart of the preferred operation of the lookup engine of FIG. 5 in last head mode.

도 9 는 보안 프로그램 모드에서의 도 5 의 룩업 엔진의 바람직한 동작의 흐름도.9 is a flow chart of a preferred operation of the lookup engine of FIG. 5 in a secure program mode.

*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

110, 120, 130, 210, 260 : 데이터 교환장치110, 120, 130, 210, 260: data exchange device

111, 112...117, 118, 121...124, 131, 132...142, 143 : 컴퓨터111, 112 ... 117, 118, 121 ... 124, 131, 132 ... 142, 143: Computer

221, 222...232, 233, 271, 272...282, 283 : 포트221, 222 ... 232, 233, 271, 272 ... 282, 283: ports

150 : 스위치 버스 160, 170 : 업링크150: switch bus 160, 170: uplink

202a, 202b : 패킷 212, 262 : 외부 물리계층202a, 202b: Packets 212, 262: External Physical Layer

236, 286 : 룩업 엔진 234, 284, 524 : 수신 FIFO236, 286: lookup engine 234, 284, 524: receive FIFO

242, 292 : 송신 FIFO 244, 294 : 브로드캐스트 버퍼242, 292: transmit FIFO 244, 294: broadcast buffer

246, 296 : 외부 메모리 238, 288 : 버스 인터페이스246, 296: external memory 238, 288: bus interface

240, 290 : 버퍼 매니저 252 : 스위치 아비트레이션240, 290: buffer manager 252: switch arbitration

510 : 송신버퍼 매니저 530 : CAM510: Transmission buffer manager 530: CAM

540 : CAM 매니저540: CAM Manager

도 1 을 참조하여, 3 개의 데이터 교환장치 (110, 120, 130) 를 포함한 스위치드 네트워크 (100) 의 바람직한 일실시예를 설명한다. 데이터 교환장치 (110, 120, 130) 는 스위치 버스 (150) 를 통해 접속되며, 이로 인해 데이터 교환장치 (110, 120, 130) 가 데이터를 공유하게 한다. 데이터 교환장치 (110, 120, 130) 는 각각 복수의 컴퓨터 또는 다른 디바이스에 접속된다. 구체적으로, 데이터 교환장치 (110) 는 컴퓨터 (111-118) (113-116 은 도시되지 않음) 에 접속된다. 데이터 교환장치 (120) 는 컴퓨터 (121-124) 에 접속된다. 데이터 교환장치 (130) 는 컴퓨터 (131-143) (133-141 은 도시되지 않음) 에 접속된다.Referring to Fig. 1, a preferred embodiment of a switched network 100 including three data exchange devices 110, 120, 130 will be described. The data exchange devices 110, 120, 130 are connected via a switch bus 150, thereby allowing the data exchange devices 110, 120, 130 to share data. The data exchange devices 110, 120, 130 are each connected to a plurality of computers or other devices. Specifically, the data exchange device 110 is connected to the computer 111-118 (113-116 is not shown). The data exchange device 120 is connected to the computers 121-124. The data exchange device 130 is connected to a computer 131-143 (133-141 not shown).

데이터 교환장치 (110, 120, 130) 는 상기 컴퓨터 사이의 패킷 데이터를 라우팅하도록 구성된다. 예를 들면, 컴퓨터 (111) 는 컴퓨터 (122) 의 데스티네이션 어드레스와 일치하는 데스티네이션 어드레스와 함께 데이터 패킷을 송신할 수도 있다. 적절히 라우팅되면, 이 패킷은 데이터 교환장치 (110) 를 통과하여, 스위치 버스 (150) 를 통해, 데이터 교환장치 (120) 를 지나, 컴퓨터 (122) 로 전달된다. 다른 컴퓨터도 유사한 방식으로 통신할 수 있다.Data exchange devices 110, 120, 130 are configured to route packet data between the computers. For example, computer 111 may transmit a data packet with a destination address that matches the destination address of computer 122. When properly routed, this packet passes through the data exchange 110, through the switch bus 150, through the data exchange 120 and to the computer 122. Other computers can communicate in a similar manner.

바람직한 일실시예에서, 네트워크 (100) 는, 임의의 컴퓨터가 그외 다른 컴퓨터와 통신할 수 있도록 구성된다. 그러나, 컴퓨터의 수가 증가함에 따라, 네트워크 트래픽도 증가한다. 따라서, 바람직한 다른 실시예에서, 네트워크 (100) 는 복수의 가상 LAN (VLAN) 을 규정하도록 구성된다. 제 1 VLAN 을 통해, 컴퓨터 (111, 118, 122, 131, 143) (각각 빗금으로 표시냄) 가 통신할 수 있다. 제 2 VLAN 을 통해, 컴퓨터 (112, 117, 121, 123, 124, 132, 142) 가 통신할 수 있다. 네트워크 (100) 를 2 개의 VLAN 으로 분할하므로써 각각에 대한 트래픽을 감소시킨다. 이 네트워크는, 특정의 네트워크 요청에 따라, 추가의 VLAN 으로 더 분할될 수도 있다.In one preferred embodiment, the network 100 is configured to allow any computer to communicate with other computers. However, as the number of computers increases, so does the network traffic. Thus, in another preferred embodiment, the network 100 is configured to define a plurality of virtual LANs (VLANs). Through the first VLAN, computers 111, 118, 122, 131, 143 (respectively indicated by hatching) can communicate. Through the second VLAN, computers 112, 117, 121, 123, 124, 132, 142 can communicate. By dividing the network 100 into two VLANs, traffic for each is reduced. This network may be further divided into additional VLANs, depending on the particular network request.

도 1 에 도시된 각 컴퓨터는 컴퓨터 또는 다른 디바이스의 서브 네트워크를 포함할 수도 있다. 따라서, 데이터 교환장치 (110, 120, 130) 는 서브 네트워크를 상호접속시키도록 동작할 수도 있다.Each computer shown in FIG. 1 may include a subnetwork of a computer or other device. Thus, data exchange devices 110, 120, 130 may operate to interconnect sub-networks.

데이터 교환장치 (110, 120) 는 각각 업링크 (160, 170) 를 포함한다. 업링크 (160, 170) 는, 기업형 네트워크와 같은 상위레벨 네트워크로의 접속을 제공한다. 데이터 교환장치 (110, 120) 는, 패킷의 데스티네이션 어드레스가 스위치 버스 (150) 에 접속된 다른 컴퓨터에 의해 일치되지 않는 경우, 업링크 (160, 170) 를 통해 각각 상위레벨 네트워크로 패킷을 전송할 것이다. 또한, 데이터 교환장치 (110, 120) 는 각각 업링크 (160, 170) 를 통해 멀티캐스트 및 브로드캐스트 패킷을 전송할 것이다.Data exchange devices 110 and 120 each include uplinks 160 and 170, respectively. Uplinks 160 and 170 provide access to higher level networks, such as enterprise networks. The data exchange device 110, 120 transmits the packet to the upper level network via the uplinks 160, 170, respectively, if the destination address of the packet does not match by another computer connected to the switch bus 150. will be. In addition, the data exchange devices 110 and 120 will transmit multicast and broadcast packets on the uplinks 160 and 170, respectively.

도 2 를 참조하여, 스위치드 네트워크 (200) 의 바람직한 다른 실시예를 설명한다. 스위치드 네트워크 (200) 는 제 1 데이터 교환장치 (210) 및 제 2 데이터 교환장치 (260) 를 포함한다. 도시된 바와 같이, 데이터 교환장치 (210, 260) 는 패킷 데이터의 고속 라우팅을 가능하게 하는 몇가지 기능블록을 각각 포함한다. 이 기능블록은 제어기 또는 프로세서와 같은 상용 부품을 사용하여 구현될 수도 있고, 또는, 본 명세서에 설명된 기능을 수행하도록 특별히 설계될 수도 있다.2, another preferred embodiment of a switched network 200 is described. The switched network 200 includes a first data exchange 210 and a second data exchange 260. As shown, the data exchange devices 210 and 260 each include several functional blocks that enable high speed routing of packet data. This functional block may be implemented using commercially available components such as a controller or processor, or may be specifically designed to perform the functions described herein.

데이터 교환장치 (210) 및 데이터 교환장치 (260) 에는, 외부 네트워크 디바이스에 접속하기 위하여 다수의 포트를 각각 설치한다. 좀더 상세히 설명하면, 데이터 교환장치 (210) 에는 포트 (221-233) (포트 223-231 는 도시되지 않음) 를 설치하고, 데이터 교환장치 (260) 에는 포트 (271-283) (포트 273-281 는 도시되지 않음) 를 설치한다. 포트 (221-233) 는 각각 외부 물리계층 (212) 에 접속된다. 도시된 바와 같이, 외부 물리계층 (212) 은 각 포트를 물리적 네트워크에 동작적으로 접속하도록 단일 디바이스로 구성될 수도 있다. 또한, 물리계층 (212) 은 단일 포트를 네트워크에 동작적으로 각각 접속시키도록 다수의 별개의 디바이스로 구성될 수도 있다. 물리계층 (212) 은 네트워크로의 물리적 접속을 제공하고, 포트 (221-223) 로의 매체독립 (media independent) 인터페이스를 제공한다. 포트 (271-283) 각각은 외부 물리계층 (262) 에 접속된다. 외부 물리계층 (262) 은 물리계층 (212) 과 동일한 기능을 제공한다. 포트 (221-233, 271-283) 의 각각은 네트워크를 통해 데이터를 송신 및 수신하는 매체 액세스 제어기능을 제공한다.The data exchanger 210 and the data exchanger 260 are each provided with a plurality of ports for connecting to an external network device. More specifically, the data exchange device 210 is provided with ports 221-233 (ports 223-231 are not shown), and the data exchange device 260 has ports 271-283 (ports 273-281). Is not shown). Ports 221-233 are each connected to an external physical layer 212. As shown, the external physical layer 212 may be configured as a single device to operatively connect each port to a physical network. In addition, the physical layer 212 may be configured with a number of separate devices to each operatively connect a single port to the network. Physical layer 212 provides a physical connection to the network, and provides a media independent interface to ports 221-223. Each of the ports 271-283 is connected to an external physical layer 262. External physical layer 262 provides the same functionality as physical layer 212. Each of the ports 221-233, 271-283 provides a media access control function for sending and receiving data over the network.

데이터 교환장치 (210) 는 스위치 버스 (250) 및 스위치 아비트레이션 (arbitration) 링크 (252) 를 통해 데이터 교환장치 (260) 에 접속된다. 아래에서 설명하는 바와 같이, 데이터 교환장치 (210) 에 의해 포트를 통해 수신된 패킷 데이터는 스위치 버스 (250) 를 통해 데이터 교환장치 (260) 로 송신될 수도 있다. 데이터 교환장치 (260) 는 데이터 교환장치 (260) 내의 포트 중의 하나를 통해 이 패킷 데이터를 차례로 송신할 수도 있다. 이런 방식으로, 포트 (221-233) 중의 하나에 접속된 네트워크 디바이스는 포트 (271-283) 중의 하나에 접속된 디바이스로 데이터를 송신할 수도 있다. 마찬가지로, 포트 (271-283) 중의 하나에 접속된 네트워크 디바이스는 포트 (221-233) 중의 하나에 접속된 디바이스로 데이터를 송신할 수도 있다. 2 개의 데이터 교환장치만이 도시되어 있지만, 스위치 버스 (250) 및 스위치 아비트레이션 링크 (252) 를 통해 추가의 데이터 교환장치를 접속할 수도 있다.The data exchanger 210 is connected to the data exchanger 260 via a switch bus 250 and a switch arbitration link 252. As described below, packet data received via the port by the data exchange 210 may be transmitted to the data exchange 260 via the switch bus 250. The data exchange 260 may in turn transmit this packet data through one of the ports in the data exchange 260. In this way, a network device connected to one of the ports 221-233 may transmit data to the device connected to one of the ports 271-283. Similarly, a network device connected to one of the ports 271-283 may transmit data to the device connected to one of the ports 221-233. Although only two data exchangers are shown, additional data exchangers may be connected via switch bus 250 and switch arbitration link 252.

데이터 교환장치 (210) 는 수신 FIFO (234), 송신 FIFO (242), 및 브로드캐스트 버퍼 (244) 를 포함한다. 수신 FIFO (234) 는 포트 (221-233) 각각에 접속되어 패킷 데이터를 수신한다. 수신 FIFO (234) 는 스위치 버스 (250) 를 통해 이 데이터를 전송하기 전에 프레임 데이터의 임시 저장을 제공한다.The data exchange 210 includes a receive FIFO 234, a transmit FIFO 242, and a broadcast buffer 244. Receive FIFO 234 is connected to each of ports 221-233 to receive packet data. Receive FIFO 234 provides temporary storage of frame data before transmitting this data over switch bus 250.

송신 FIFO (242) 는 포트 (221-233) 각각에 접속되어 유니캐스트 프레임 데이터를 송신한다. 송신 FIFO (242) 는 각 포트에 대해 별도의 FIFO 를 포함한다. 송신 FIFO (242) 는, 외부 메모리 (246) 로부터, 적절한 FIFO 를 통해, 유니캐스트 프레임 데이터의 데스티네이션 어드레스를 이용하여 적절한 포트로 데이터를 이동시킨다.The transmit FIFO 242 is connected to each of the ports 221-233 to transmit unicast frame data. Transmit FIFO 242 includes a separate FIFO for each port. The transmit FIFO 242 moves data from the external memory 246 to the appropriate port using the destination address of the unicast frame data, via the appropriate FIFO.

브로드캐스트 버퍼 (244) 는 포트 (221-233) 각각에 접속되어 브로드캐스트 및 멀티캐스트 프레임 데이터를 전송한다. 브로드캐스트 버퍼 (244) 는 10 Mb/s 및 100 Mb/s FIFO 를 포함한다. 또한, 이들 FIFO 는 외부 메모리 (246) 로부터의 데이터를 적절한 포트로 이동시킨다.The broadcast buffer 244 is connected to each of the ports 221-233 to transmit broadcast and multicast frame data. Broadcast buffer 244 includes 10 Mb / s and 100 Mb / s FIFOs. These FIFOs also move data from external memory 246 to the appropriate ports.

버스 인터페이스 (238) 는 수신 FIFO (234) 로부터의 데이터를 스위치 버스 (250) 로 전송한다. 버스 인터페이스 (238) 는 스위치 버스 (250) 를 통해 데이터를 전송하기 위해 저압 고대역 드라이버를 제공한다. 또한, 버스 인터페이스 (238) 는 스위치 버스 (250) 로부터 데이터를 판독한다. 버스 인터페이스 (238) 는 헤더 데이터를 룩업 엔진 (236) 에 제공하고, 프레임 데이터를 송신버퍼 (242) 및 브로드캐스트 버퍼 (244) 에 제공한다.Bus interface 238 transmits data from receive FIFO 234 to switch bus 250. Bus interface 238 provides a low voltage high band driver for transferring data over switch bus 250. Bus interface 238 also reads data from switch bus 250. The bus interface 238 provides the header data to the lookup engine 236 and provides the frame data to the transmit buffer 242 and the broadcast buffer 244.

아래에서 설명하는 바와 같이, 버스 인터페이스 (238) 는, 스위치 버스로부터 데이터를 받아들일 것인지, 그리고 라우팅 테이블을 유지할 것인지를 결정하기 위해 룩업 엔진 (236) 에 액세스한다. 이 데이터가 받아들여지면, 버스 인터페이스 (238) 는 헤더 데이터를 이용하여 라우팅 명령어를 버퍼 매니저 (240) 에 제공한다.As described below, the bus interface 238 accesses the lookup engine 236 to determine whether to accept data from the switch bus and maintain a routing table. If this data is accepted, the bus interface 238 uses the header data to provide a routing command to the buffer manager 240.

이 라우팅 명령어에 기초하여, 버퍼 매니저 (240) 는 이 데이터를 외부 메모리 (246) 에 저장한다. 또한, 버퍼 매니저 (240) 는 메모리 사용양을 추적하고 외부 메모리 (246) 에 있는 큐 (queue) 를 제어한다. 이 큐는 정체된 포트를 위해 데이터를 저장하는 데 이용된다.Based on this routing instruction, buffer manager 240 stores this data in external memory 246. The buffer manager 240 also tracks the amount of memory used and controls queues in the external memory 246. This queue is used to store data for congested ports.

데이터 교환장치 (260) 는, 데이터 교환장치 (210) 의 기능블록과 마찬가지로 동작하는 기능블록을 포함한다. 구체적으로 설명하면, 데이터 교환장치 (260) 는 수신 FIFO (284), 룩업 엔진 (286), 버스 인터페이스 (288), 버퍼 매니저 (290), 송신 FIFO (292), 브로드캐스트 버퍼 (294), 및 외부 메모리 (296) 를 포함한다. 이들 블록은 각각, 수신 FIFO (234), 룩업 엔진 (236), 버스 인터페이스 (238), 버퍼 매니저 (240), 송신 FIFO (242), 브로드캐스트 버퍼 (244), 및 외부 메모리 (246) 와 동일한 방식으로 기능한다.The data exchange device 260 includes functional blocks that operate similarly to the functional blocks of the data exchange device 210. Specifically, data exchange device 260 includes a receive FIFO 284, a lookup engine 286, a bus interface 288, a buffer manager 290, a transmit FIFO 292, a broadcast buffer 294, and An external memory 296. These blocks are the same as receive FIFO 234, lookup engine 236, bus interface 238, buffer manager 240, transmit FIFO 242, broadcast buffer 244, and external memory 246, respectively. Function in a way.

단일 유니캐스트 패킷이 데이터 교환장치 (210) 로부터 데이터 교환장치 (260) 로 이동할 때의 경로를 설명한다. 먼저, 패킷 (202a) 이 외부 물리계층 (212) 에 의해 수신된다. 적절히 동작하는 경우, 제 1 패킷은 다른 패킷이 동일 포트에 의해 수신되기 전에 완전히 수신될 것이다. 외부 물리계층 (212) 은 패킷 (202a) 을 프레임 데이터로 변환시키며, 이 프레임 데이터는 매체독립 인터페이스를 통해 포트 (221) 로 제공된다. 이 변환은, 매체의존 (media dependent) 패킷 데이터를 니블 와이드 (nibble wide) NRZ 포맷으로 변환한다.The path when a single unicast packet travels from data exchange 210 to data exchange 260 is described. First, the packet 202a is received by the external physical layer 212. If properly operated, the first packet will be completely received before other packets are received by the same port. The outer physical layer 212 converts the packet 202a into frame data, which is provided to the port 221 via a media independent interface. This conversion converts media dependent packet data into a nibble wide NRZ format.

포트 (221) 는 SFD (start-of-frame delimiter) 에 대한 인커밍 (incoming) 데이터를 모니터한다. SFD 수신시, 포트 (221) 는 이 프레임 데이터를 48 비트 셀로 분할한다. 그후, 이 셀은 수신 FIFO (234) 로 전달된다. 수신 FIFO (234) 에서의 셀의 수가 드레인 임계값을 초과하는 경우, 데이터 교환장치 (210) 는 스위치 아비트레이션 링크 (252) 를 통해 스위치 버스 리퀘스트 (request) 를 어서트 (assert) 한다. 데이터 교환장치가 아비트레이션을 얻으면, 데이터 교환장치는 수신 FIFO (234) 에 저장된 제 1 셀 (204a) 을 스위치 버스 (250) 를 통해 송신할 것이다. 수신 FIFO (234) 는, 모든 셀이 송신될 때까지 셀을 계속 송신할 것이다.Port 221 monitors incoming data for the start-of-frame delimiter (SFD). Upon receiving the SFD, port 221 divides this frame data into 48 bit cells. This cell is then forwarded to the receive FIFO 234. If the number of cells in the receive FIFO 234 exceeds the drain threshold, the data exchange 210 asserts a switch bus request over the switch arbitration link 252. If the data exchanger gets the arbitration, the data exchanger will transmit the first cell 204a stored in the receive FIFO 234 via the switch bus 250. Receive FIFO 234 will continue to transmit cells until all cells have been transmitted.

데이터 교환장치 (260) 는 스위치 버스 (250) 를 모니터한다. 룩업 엔진 (286) 은 제 1 셀 (204b) 을 분석하여, 데스티네이션 어드레스 필드가 포트 (271-283) 에 접속된 임의의 액티브 디바이스의 데스트네이션 어드레스 필드와 일치하는지를 결정한다. 이 예에서, 룩업 엔진 (286) 은 데스티네이션 어드레스 필드가 포트 (282) 에 접속된 액티브 디바이스의 데스티네이션 어드레스 필드와 일치한다고 결정한다. 이 응답으로, 룩업 엔진 (286) 은 일치신호를 데이터 교환장치 (210) 에 제공하고, 메모리 (296) 내에 버퍼를 예비하도록 버퍼 매니저 (290) 에 지시한다. 메모리 (296) 내의 버퍼는 연속적인 메모리 장소 내에 전체 프레임을 저장하기에 충분히 크다. 동일 프레임으로부터 후속 셀들이 수신될 때, 버퍼 매니저 (290) 는 연속적인 메모리 장소 내에 상기 셀을 순차적으로 저장한다.The data exchange 260 monitors the switch bus 250. The lookup engine 286 analyzes the first cell 204b to determine whether the destination address field matches the destination address field of any active device connected to the ports 271-283. In this example, lookup engine 286 determines that the destination address field matches the destination address field of the active device connected to port 282. In response, the lookup engine 286 provides a match signal to the data exchange device 210 and instructs the buffer manager 290 to reserve a buffer in the memory 296. The buffer in memory 296 is large enough to store the entire frame in consecutive memory locations. When subsequent cells are received from the same frame, the buffer manager 290 sequentially stores the cells in consecutive memory locations.

버퍼에 저장된 셀의 수가 드레인 임계값을 초과할 때, 데이터는 송신 FIFO (292) 에 전달된다. 송신 FIFO (292) 는 포트 (271-283) 각각에 대해 별도의 FIFO 를 구비한다. 이 데이터는 포트 (282) 와 연관된 송신 FIFO 에 제공된다. 포트 (282) 와 연관된 송신 FIFO 는 48 비트 와이드 데이터를 니블 와이드 데이터로 변환시킨다. 이 데이터는 매체독립 인터페이스를 통해 물리계층 (262) 에 제공된다. 물리계층 (262) 은 이 데이터를 패킷 (202b) 으로 변환하며, 이 패킷은 네트워크 접속을 통해 송신된다.When the number of cells stored in the buffer exceeds the drain threshold, data is passed to the transmit FIFO 292. The transmit FIFO 292 has a separate FIFO for each of the ports 271-283. This data is provided to the transmit FIFO associated with port 282. The transmit FIFO associated with port 282 converts 48 bit wide data into nibble wide data. This data is provided to the physical layer 262 via a media independent interface. Physical layer 262 converts this data into packet 202b, which is transmitted over a network connection.

브로드캐스트 또는 멀티캐스트 패킷은 유사한 데이터 흐름을 갖는다. 버퍼 매니저 (290) 는 셀 데이터를 메모리 (296) 내의 연속적인 메모리 장소에 저장한다. 메모리 (296) 에 저장된 셀의 수가 드레인 임계값을 초과할 때, 이 데이터는 송신 FIFO (292) 대신에 브로드캐스트 버퍼 (294) 로 전달된다. 브로드캐스트 버퍼 (294) 는 10 Mb/s 버퍼 또는 100 Mb/s 버퍼를 포함한다. 이들 버퍼는 모두 데이터를 포트 (271-283) 에 제공한다. 외부 물리계층 (262) 에 따라, 각 포트는 매체독립 인터페이스를 통해 10 Mb/s 또는 100 Mb/s 데이터 중의 어느 하나를 물리계층 (262) 에 제공한다. 물리계층 (262) 은 이 데이터를 패킷으로 변환하며, 이것은 각 네트워크 접속을 통해 송신된다.Broadcast or multicast packets have a similar data flow. The buffer manager 290 stores cell data in contiguous memory locations in memory 296. When the number of cells stored in memory 296 exceeds the drain threshold, this data is delivered to broadcast buffer 294 instead of transmit FIFO 292. The broadcast buffer 294 includes a 10 Mb / s buffer or a 100 Mb / s buffer. These buffers all provide data to ports 271-283. According to the external physical layer 262, each port provides either the 10 Mb / s or 100 Mb / s data to the physical layer 262 via a media independent interface. Physical layer 262 converts this data into packets, which are transmitted over each network connection.

도 3 을 참조하여, 포트 (221-233) 가 프레임 데이터를 셀들로 분할하는 바람직한 처리를 설명한다. 데이터 프레임 (310) 은, 프리앰블 필드 (312), SFD 필드 (314), 데스티네이션 어드레스 필드 (316), 및 소스 어드레스 필드 (318) 로 시작한다. 또한, 데이터 프레임 (310) 은 필드 (320) 를 포함하며, 이것은 프라이오리티 (priority), 타입, 길이, VLAN, 또는 기타 데이터를 포함할 수도 있다. 데이터 프레임 (310) 은, 가변길이 데이터 필드 (322), 및 EFD (end of frame delimiter) 필드 (323) 를 더 포함한다.Referring to Fig. 3, the preferred processing for the ports 221-233 to divide the frame data into cells is described. Data frame 310 begins with a preamble field 312, an SFD field 314, a destination address field 316, and a source address field 318. In addition, the data frame 310 includes a field 320, which may include priority, type, length, VLAN, or other data. The data frame 310 further includes a variable length data field 322, and an end of frame delimiter (EFD) field 323.

프레임이 포트를 통해 수신될 때, 이 프레임은 48 비트 와이드 셀로 분할된다. 예를 들면, 데이터 프레임 (310) 은 셀 C1, C2,... CN 으로 분할된다. 제 1 셀 (C1) 은 데스티네이션 필드 (316) 를 포함할 것이지만, 후속 셀들 (즉, C2,...,CN) 은 포함하지 않을 것이다. 통상적으로, 데스티네이션 어드레스 필드는 네트워크가 데이터를 적절한 데스티네이션으로 라우팅할 수 있도록 한다. 그러나, 차후의 셀이 데스티네이션 어드레스 필드를 포함하지 않을 때, 이들은 데스티네이션 어드레스 필드에 기초하여 라우팅될 수 없다. 따라서, 소스 포트 식별자가 이들 셀에 부가된다. 그때, 이들 셀은 소스 포트 식별자에 기초하여 라우팅된다.When a frame is received through the port, it is divided into 48-bit wide cells. For example, data frame 310 is divided into cells C1, C2, ... CN. The first cell C1 will include a destination field 316, but will not include subsequent cells (ie, C2,..., CN). Typically, the destination address field allows the network to route data to the appropriate destination. However, when subsequent cells do not include a destination address field, they cannot be routed based on the destination address field. Thus, source port identifiers are added to these cells. At that time, these cells are routed based on the source port identifier.

도 4 에, 셀 (410) 이 도시되어 있다. 셀 (410) 은 소스 정보필드 (412) 및 데이터 필드 (414) 를 포함한다. 바람직한 실시예에서, 각 데이터 교환장치는 최대 13 포트를 갖고, 최대 13 개의 데이터 교환장치가 스위치 버스를 통해 함께 직렬접속될 수도 있다. 따라서, 최대 포트수는 156 이고, 8 비트의 소스 정보필드 (412) 이면 각 소스 포트를 유일하게 식별하기에 충분하다. 또한, 소스 정보필드 (412) 는 소스 포트에 관련된 속도 및 타입 정보를 포함한다. 속도정보는, 소스 포트가 10 Mb/s, 100 Mb/s, 또는 다른 속도로 동작하는지를 식별한다. 타입정보는, 이 셀 데이터가 ATM OC3 프레임, ATM OC12 프레임, 예비 프레임, 또는 다른 타입의 프레임의 일부인지를 나타낸다. 데이터 필드 (414) 는 프레임의 48 비트 부분, 예컨대, 도 3 의 셀 C1...CN 중의 하나를 포함한다. 또한, 소스 정보필드 (412) 는 다른 타입정보, 예컨대, 적절한 VLAN 을 식별하는 데 이용되는 정보를 포함할 수도 있다.In FIG. 4, a cell 410 is shown. Cell 410 includes a source information field 412 and a data field 414. In a preferred embodiment, each data exchange has up to 13 ports, and up to 13 data exchanges may be serially connected together via a switch bus. Thus, the maximum number of ports is 156, and an eight-bit source information field 412 is sufficient to uniquely identify each source port. Source information field 412 also includes speed and type information related to the source port. The speed information identifies whether the source port is operating at 10 Mb / s, 100 Mb / s, or other speed. The type information indicates whether this cell data is part of an ATM OC3 frame, an ATM OC12 frame, a spare frame, or another type of frame. Data field 414 includes a 48-bit portion of the frame, eg, one of cells C1... CN of FIG. 3. In addition, the source information field 412 may include other type information, such as information used to identify the appropriate VLAN.

이상 설명한 바와 같이, 인커밍 프레임 데이터는 셀들로 분할되어, 수신 FIFO 에 배치된다. 그후, 이들 셀은 스위치 버스를 통해 송신되어, 다른 데이터 교환장치에 의해 수신된다. 셀들을 수신하는 동안, 데이터 교환장치는 라우팅 표를 관리하며, 이 라우팅 표는 소스 식별필드를 프레임 데스티네이션과 연관시킨다. 제 1 셀만이 데스티네이션 어드레스 필드를 포함할 때, 라우팅 표는 이 데이터 교환장치가 차후의 셀을 적절히 라우팅할 수 있게 하며, 이 차후의 셀은 데스티네이션 어드레스 필드를 갖고 있지 않다.As described above, the incoming frame data is divided into cells and placed in the receive FIFO. These cells are then transmitted over the switch bus and received by other data exchanges. While receiving the cells, the data exchange maintains a routing table, which associates the source identification field with the frame destination. When only the first cell contains a destination address field, the routing table allows this data exchange to properly route subsequent cells, which subsequent cells do not have a destination address field.

상술한 바와 같이, 룩업 엔진 (236) 은 스위치 버스 (250) 를 통해 송신된 데이터를 받아들일지를 결정하여야 한다. 결정하기 위하여, 룩업 엔진 (236) 은 데이터 교환장치 (210) 에 현재 접속된 디바이스의 어드레스를 모니터해야 한다. 이에 따라, 룩업 엔진 (236) 은 일군의 액티브 디바이스 어드레스를 관리한다.As discussed above, the lookup engine 236 must determine whether to accept the data sent over the switch bus 250. To determine, the lookup engine 236 must monitor the address of the device currently connected to the data exchange 210. Accordingly, lookup engine 236 manages a group of active device addresses.

도 5 에서, 도 2 의 룩업 엔진 (236) 의 바람직한 실시예를 설명한다. 룩업 엔진 (236) 은 어드레스, 포트, 및 VLAN 정보를 러닝 (learning) 하고, 저장하고, 관리하여야 하며, 패킷 포워딩 결정시 이용한다. 룩업 엔진 (236) 은, 구성 정보, 패킷타입, 저장된 어드레스, 포트, 및 VLAN 정보에 기초하여 패킷을 포워딩하거나 필터링한다. 룩업 엔진 (236) 이 스위치 버스를 통해 버퍼 (512) 를 지나 패킷정보를 수신할 때, 룩업 엔진은 이 패킷이 (전송될 포트가 있다면) 어느 포트로 전송되어야 하는지를 결정한다. 이 패킷이 어느 포트로 전송되어야 한다고 룩업 엔진이 결정하면, 그때 룩업 엔진은 송신 FIFO (242) 에게 알린다. 좀더 상세히 설명하면, CAM (content addressable memory) 매니저 (540) 는, 포트 비트 마스크를 이 패킷의 제 1 셀의 인포필드 (info field) 에 삽입시키므로써 송신 버퍼 매니저 (510) 에게 알린다. CAM 매니저 (540) 는 블록 (514) 을 통해 이 포트 비트 마스크를 제공한다.In FIG. 5, a preferred embodiment of the lookup engine 236 of FIG. 2 is described. The lookup engine 236 must learn, store, and manage address, port, and VLAN information, and use it in packet forwarding decisions. The lookup engine 236 forwards or filters packets based on configuration information, packet type, stored address, port, and VLAN information. When the lookup engine 236 receives packet information past the buffer 512 via the switch bus, the lookup engine determines to which port this packet should be sent (if any). If the lookup engine determines that this packet should be sent to, then the lookup engine informs the transmitting FIFO 242. More specifically, the content addressable memory (CAM) manager 540 informs the transmit buffer manager 510 by inserting a port bit mask into the info field of the first cell of this packet. The CAM manager 540 provides this port bit mask via block 514.

룩업 엔진 (236) 이 네트워크 디바이스로부터 버퍼 (524) 를 통해 패킷정보를 수신할 때, 룩업 엔진은 소스 포트, 어드레스 및 프라이오리티 정보를 결정한다. 이 정보에 기초하여, 룩업 엔진 (236) 은 FIFO (522) 로의 로딩을 위해 프라이오리티를 결정한다. 스위치 버스를 통한 송신 전에, 룩업 엔진 (236) 은 블록 (520) 을 통해 VLAN 및 프라이오리티 정보를 부가한다.When the lookup engine 236 receives packet information from the network device through the buffer 524, the lookup engine determines source port, address, and priority information. Based on this information, the lookup engine 236 determines the priority for loading into the FIFO 522. Before transmitting over the switch bus, the lookup engine 236 adds VLAN and priity information through block 520.

룩업 엔진 (236) 은, 수신 FIFO (234) 및 스위치 버스 양측으로부터의 패킷정보에 대해 CAM (530) 에서 룩업을 수행한다. 수신 FIFO (234) 로부터의 패킷정보에 대한 룩업은, 스위치 버스상의 송신 전에 VLAN 및/또는 프라이오리티 대입 (substitution) 을 위해 수행된다. 그후, 이 패킷정보는 스위치 버스에 제공된다. 그후, 데이터 교환장치에 의해 전송된 패킷정보는 동일 데이터 교환장치 및 다른 데이터 교환장치에 의해 모니터된다. 스위치버스로부터의 패킷정보에 대한 룩업은 포워딩 및 MAC 러닝 (learning) 결정을 위해 수행된다. 러닝 및 포워딩은 차후에 더 상세히 설명된다.The lookup engine 236 performs a lookup at the CAM 530 on packet information from both the receive FIFO 234 and the switch bus. Lookup for packet information from receive FIFO 234 is performed for VLAN and / or pristitution substitution prior to transmission on the switch bus. This packet information is then provided to the switch bus. Thereafter, the packet information transmitted by the data exchanger is monitored by the same data exchanger and another data exchanger. Lookup for packet information from the switchbus is performed for forwarding and MAC learning (learning) decisions. Running and forwarding are described in more detail later.

스위치 버스로부터 패킷이 수신될 때, 이 패킷의 (1) 데스티네이션 어드레스; (2) VLAN 태그; 및 (3) 업링크 ID 에 기초하여, CAM (530) 은 룩업 엔진 (236) 이 포워딩 결정을 할 수 있게 한다. CAM (530) 은 4 개의 별개의 CAM, 즉, (1) 유니캐스트 패킷을 포워딩하는 데 이용된 포트 ID 번호 태그를 갖는, 소스 어드레스 메모리 (532); (2) VLAN 태그가 되어 있는 패킷을 매핑하기 위한 포트 마스크 태그를 갖는, VLAN 메모리 (534); (3) (미지의 데스티네이션 어드레스 또는 브로드캐스트를 갖는) 패킷이 어느 업링크 포트로 전송되어야 하는지를 결정하는 데 이용된 포트 어드레스 태그를 갖는, 업링크 메모리 (536); 및 (4) VLAN 을 이용하거나 VLAN 을 특정 변환과 연관시켜 멀티캐스트 비디오 스트림을 구현하기 위한 VLAN ID 태그 필드를 갖는, 멀티캐스트 메모리 (538) 를 포함한다.When a packet is received from the switch bus, the packet's (1) destination address; (2) VLAN tags; And (3) based on the uplink ID, the CAM 530 allows the lookup engine 236 to make forwarding decisions. CAM 530 includes four separate CAMs: source address memory 532, with (1) a port ID number tag used to forward unicast packets; (2) VLAN memory 534, having a port mask tag for mapping packets tagged with a VLAN; (3) an uplink memory 536 having a port address tag used to determine to which uplink port a packet (with an unknown destination address or broadcast) should be sent; And (4) multicast memory 538 having a VLAN ID tag field for implementing a multicast video stream using a VLAN or associating a VLAN with a particular translation.

소스 어드레스 메모리 (532) 는 데이터 교환장치마다 소스 어드레스를 지원할 수 있다. 포트 (총 13 개가 예비되어 있음) 마다 전용 장소가 하나 있다. 13 개의 포트 중에서 공유될 수 있는 115 개의 플로팅 (floating) 메모리 장소가 있다. 이 115 개의 장소는 FCFS (first-come first-serve) 기준으로 이용될 수 있거나, 각 포트에는 그것이 이용할 수 있는 최대수가 할당될 수 있다. 각 포트는 4, 8, 16, 또는 24 의 최대 어드레스 쿼터 (quota) 를 갖도록 구성될 수도 있다. 이 쿼터 특징은, 구성 레지스터 (542) 내에 쿼터 인에이블 (enable) 비트를 설정하므로써 포트단위로 인에이블될 수 있다. 주어진 포트에 대해 예비된 최대 장소의 수는 구성 레지스터 (542) 내의 쿼터 필드를 통해 프로그램가능하다. 데이터 교환장치는 그 포트의 각각에 대해 CLU (CAM location usage counter) 를 관리한다. CLU 는 호스트 소프트웨어에 의해 액세스가능하다. 이 카운터는 그 포트에 할당된 소스 어드레스 메모리 장소의 수를 반영한다. 주어진 포트에 대한 CLU 카운터가 그 포트에 대해 프로그램된 쿼터와 동일한 경우, 그 포트에 대해 사용가능한 메모리 장소는 다 소모된다.The source address memory 532 may support a source address for each data exchange device. There is a dedicated location for each port (13 in total). There are 115 floating memory locations that can be shared among 13 ports. These 115 locations can be used on a first-come first-serve (FCFS) basis, or each port can be assigned the maximum number it can use. Each port may be configured to have a maximum address quota of 4, 8, 16, or 24. This quota feature can be enabled on a per-port basis by setting the quota enable bit in the configuration register 542. The maximum number of locations reserved for a given port is programmable through the quarter field in the configuration register 542. The data exchange maintains a CAM location usage counter (CLU) for each of its ports. The CLU is accessible by the host software. This counter reflects the number of source address memory locations allocated to that port. If the CLU counter for a given port is the same as the quota programmed for that port, the memory location available for that port is exhausted.

VLAN 메모리 (534) 에는 192 개의 장소가 있다. 룩업은 데스티네이션 데이터 교환장치에 의해 스위치 버스의 송신측에서 수행된다. 스위치 버스로부터 수신된 패킷의 VLAN 태그 필드를 VLAN 메모리 내용과 비교하여 그 VLAN 멤버쉽 (membership) 을 결정한다. 데스티네이션 데이터 교환장치가 VLAN 멤버쉽 내의 변경을 위한 그룹 어드레스 레솔루션 프로토콜 리퀘스트 (group address resolution protocol request) 를 검출하는 경우, 또는, 데스티네이션 데이터 교환장치가 VLAN 불일치를 검출하는 경우, 해당 패킷은 13 번째 포트 또는 선택적으로 업링크 포트로 포워딩된다. 이로 인해, 매니지먼트 엔티티 (management entity) 는 원하는대로 이 패킷을 처리할 수 있게 된다. 또한, 매니지먼트 엔티티는 지정된 VLAN 의 멤버쉽을 초기화하여야 한다.There are 192 locations in VLAN memory 534. The lookup is performed at the transmitting side of the switch bus by the destination data exchange. The VLAN membership of the packet received from the switch bus is compared with the contents of the VLAN memory to determine its VLAN membership. If the destination data exchange detects a group address resolution protocol request for a change in VLAN membership, or if the destination data exchange detects a VLAN mismatch, the packet is sent to the 13th. Port or optionally an uplink port. This allows the management entity to process this packet as desired. In addition, the management entity must initialize the membership of the specified VLAN.

업링크 메모리 (536) 의 내용은 호스트 인터페이스 (544) 에 대한 구성에서 프로그램된다. 업링크 메모리의 내용은 상위레벨 네트워크의 어드레스를 나타낸다.The content of uplink memory 536 is programmed in the configuration for host interface 544. The content of the uplink memory represents the address of the high level network.

멀티캐스트 메모리 (538) 내에는, 주어진 멀티캐스트 어드레스 또는 소스-어드레스/데스티네이션-어드레스 타입 해시 (hash) 를 특정 VLAN 과 연관시키도록 프로그램될 수 있는 192 개의 장소가 있다. 이 메모리는, 프라이오리티에 기초하여 연관시키는 데 이용될 수도 있다. 데스티네이션 어드레스가 멀티캐스트 메모리 (538) 에 포함된 어드레스와 일치하는 패킷이 수신되면, 특정 VLAN 의 멤버인 이들 포트는 프레임 송신에 참여할 것이다. 멀티캐스트 메모리 (538) 의 룩업은 소스 데이터 교환장치에 의해 스위치 버스의 수신측에서 수행된다.Within the multicast memory 538, there are 192 locations that can be programmed to associate a given multicast address or source-address / destination-address type hash with a particular VLAN. This memory may be used to associate based on priity. If a packet is received whose destination address matches the address included in multicast memory 538, those ports that are members of a particular VLAN will participate in frame transmission. The lookup of the multicast memory 538 is performed at the receiving side of the switch bus by the source data exchange.

메모리 (532, 534, 536, 538) 각각은 그들 엔트리 각각과 연관된 유효 태그 비트를 갖는다. 유효 태그비트는 연관된 데이터가 유효함을 나타낸다. 또한, 메모리 (534, 536, 538) 의 각각은 각 엔트리와 연관된 액티비티 (activity) 비트를 갖는다. 이들은 연관된 엔트리의 사용양을 모니터하는 데 이용된다.Each of the memories 532, 534, 536, 538 has a valid tag bit associated with each of those entries. The valid tag bit indicates that the associated data is valid. In addition, each of the memories 534, 536, 538 has an activity bit associated with each entry. These are used to monitor the usage of associated entries.

포트로부터 패킷 수신시, 데이터 교환장치는, 이 패킷을 셀들로 분할하고 이 패킷을 스위치 버스를 통해 적절한 포트로 포워딩한다. 다른 데이터 교환장치는 스위치 버스를 모니터하여, 이 패킷의 데스티네이션 어드레스가 그 포트 중의 하나에 접속된 디바이스의 데스티네이션 어드레스와 일치하는지를 결정하여야 한다. 그렇다면, 이 데이터 교환장치는 이 패킷 데이터를 수신하여 이것을 적절한 포트로 포워딩한다. 이 패킷을 특정 포트로 포워딩할지의 여부를 결정하기 위해, 이 데이터 교환장치는 메모리 (532, 534, 536, 538) 를 관리한다.Upon receiving a packet from a port, the data exchanger divides this packet into cells and forwards the packet over the switch bus to the appropriate port. The other data exchange must monitor the switch bus to determine if the destination address of this packet matches the destination address of the device connected to one of its ports. If so, the data exchange receives this packet data and forwards it to the appropriate port. To determine whether to forward this packet to a particular port, this data exchange manages memories 532, 534, 536, 538.

도 6 을 참조하여, 소스 어드레스 메모리 (532) 의 바람직한 일실시예를 설명한다. 상기한 바와 같이, 소스 어드레스 메모리는, 각각이 하나의 소스 어드레스에 관련된 정보를 저장하도록 구성된 복수의 장소로 분할된다. 각 메모리 장소는, 소스 어드레스 필드 (610), 스태틱 (static) 필드 (612), 에일리어스 (alias) 필드 (614), 유효 필드 (616), ACT 필드 (618), 및 포트 필드 (620) 를 포함한다.Referring to Fig. 6, a preferred embodiment of the source address memory 532 is described. As mentioned above, the source address memory is divided into a plurality of places, each configured to store information related to one source address. Each memory location is a source address field 610, a static field 612, an alias field 614, a valid field 616, an ACT field 618, and a port field 620. It includes.

소스 어드레스 필드 (610) 는 네트워크 디바이스의 소스 어드레스를 보유한다. 유효 필드 (616) 는 메모리 장소가 유효한 데이터를 보유하는지를 나타낸다. 초기화시, 모든 유효 필드는 소거된다. 이들 필드는, 소스 어드레스 정보가 연관된 메모리 장소에 부가되는 대로 설정된다.Source address field 610 holds the source address of the network device. Valid field 616 indicates whether the memory location holds valid data. At initialization, all valid fields are cleared. These fields are set as the source address information is added to the associated memory location.

스태틱 필드 (612) 는, 연관된 메모리 장소가 스태틱 데이터 또는 다이내믹 데이터를 보유하는지를 나타낸다. 스태틱 필드 (612) 가 스태틱으로 설정되면, 연관된 메모리 장소는 새로운 데이터로 오버라이트 (overwrite) 될 수 없다. 프로그램 모드로 동작할 때, 호스트 프로세서로부터 어드레스 정보를 수신한 후, 이 필드가 설정된다. 따라서, 루프 (loop) 와 같은 에러상태가 검출되지 않으면, 연관된 메모리 장소는 오버라이트되지 않을 것이다.Static field 612 indicates whether the associated memory location holds static data or dynamic data. If the static field 612 is set to static, the associated memory location cannot be overwritten with new data. When operating in the program mode, this field is set after receiving address information from the host processor. Thus, if an error condition such as a loop is not detected, the associated memory location will not be overwritten.

에일리어스 필드 (614) 는, 연관된 어드레스로 전송된 데이터가 역시 에일리어스 어드레스로 전송되어야 하는지를 나타낸다. 에일리어스 어드레스는 다른 노드가 트래픽을 모니터할 수 있게 한다.The alias field 614 indicates whether data sent to the associated address should also be sent to the alias address. Alias addresses allow other nodes to monitor traffic.

액티비티 필드 (618) 는, 연관된 어드레스가 데이터를 수신할 때마다 설정된다. 이로 인해, 백그라운드 (background) 프로세스는 어느 어드레스가 현재 액티브인지를 결정할 수 있게 된다. 라스트-허드 러닝모드 (last-heard learning mode) 에서는, 가장 오래된 러닝된 어드레스가 오버라이트될 수도 있다. 포트 필드 (622) 는, 어느 포트가 연관된 소스 어드레스를 갖는 디바이스에 접속되는지를 식별한다.Activity field 618 is set whenever the associated address receives data. This allows the background process to determine which address is currently active. In last-heard learning mode, the oldest run address may be overwritten. The port field 622 identifies which port is connected to the device with the associated source address.

소스 어드레스 메모리 (532) 의 어드레스 정보는 러닝 또는 프로그래밍되어야 한다. 도 5 에 도시된 바와 같이, 룩업 엔진 (236) 은 수신 FIFO (234) 를 통해 네트워크 트래픽을 모니터하므로써 어드레스 정보를 러닝할 수 있다. 대안으로, 룩업 엔진 (236) 은 호스트 인터페이스 (544) 를 통해 프로그래밍될 수 있다.The address information of the source address memory 532 must be run or programmed. As shown in FIG. 5, the lookup engine 236 may run address information by monitoring network traffic via the receive FIFO 234. Alternatively, lookup engine 236 may be programmed via host interface 544.

룩업 엔진 (236) 은 이러한 4 개의 러닝 및 프로그래밍 모드, 즉, (1) 퍼스트-허드 (first-heard) 모드; (2) 라스트-허드 모드; (3) 프로그램 모드; 및 (4) 보안 프로그램 모드를 지원한다. 각 포트는 이들 4 개의 모드 중의 하나를 선택하도록 개별적으로 구성가능하다. 이 모드는 구성 레지스터 (542) 를 설정하므로써 호스트 인터페이스 (544) 를 통해 선택가능하다.The lookup engine 236 may include these four running and programming modes, namely (1) first-heard mode; (2) last-herd mode; (3) program mode; And (4) secure program mode. Each port is individually configurable to select one of these four modes. This mode is selectable via host interface 544 by setting configuration register 542.

퍼스트-허드 러닝은 그 포트에 접속된 노드의 소스 어드레스를 저장한다. 이것은 메모리 장소가 할당된 만큼의 어드레스를 저장할 것이다 (포트당 하나의 예비된 메모리 장소 외에, 포트를 위해 예비된 추가의 쿼터가 있다). 일단 포트를 위해 할당된 메모리 장소가 다 소모되면, 임의의 새로운 어드레스는 러닝되지 않을 것이다. 그때, 임의의 새로운 소스 어드레스는 인트루전 (intrusion) 으로 간주될 것이다. 소스 어드레스는 러닝되지 않지만, SAM (source address mismatch) 비트는 상태 레지스터 내에 설정된다. 또한, 소스 어드레스는 어드레스 레지스터 내에 포획된다.First-learning stores the source address of the node connected to that port. This will store as many addresses as the memory location is allocated (in addition to one reserved memory location per port, there is an additional quota reserved for the port). Once the memory location allocated for the port is exhausted, any new addresses will not run. At that time, any new source address will be considered intrusion. The source address is not running, but the source address mismatch (SAM) bit is set in the status register. In addition, the source address is captured in the address register.

도 7 을 참조하여, 퍼스트-허드 모드에서의 데이터 교환장치의 바람직한 동작을 설명한다. 데이터 교환장치는 아이들 (idle) 상태로 들어가는 블록 (710) 에서 시작한다. 아이들 상태에서, 데이터 교환장치는 그 포트를 통한 인커밍 패킷에 대해 모니터한다. 패킷 수신시, 데이터 교환장치는 블록 (712) 으로 진행한다. 여기에서, 데이터 교환장치는 인커밍 패킷 데이터를 FIFO 내에 저장한다. 블록 (714) 에서, 데이터 교환장치는 수신된 패킷의 소스 어드레스를 메모리 내에 포함된 소스 어드레스와 비교한다. 이 비교가 일치를 발생하면, 대역이 허용될 때 데이터 교환장치는 스위치 버스를 통해 이 패킷을 다른 포트로 송신한다. 그때 데이터 교환장치는 블록 (710) 에서 아이들 상태로 돌아간다.Referring to Fig. 7, the preferred operation of the data exchange device in the first-herd mode will be described. The data exchange starts at block 710 entering an idle state. In the idle state, the data exchange monitors for incoming packets on that port. Upon receiving the packet, the data exchange proceeds to block 712. Here, the data exchange device stores the incoming packet data in the FIFO. In block 714, the data exchange device compares the source address of the received packet with a source address contained within the memory. If this comparison occurs, the data exchange sends this packet through the switch bus to another port when the band is allowed. The data exchange then returns to the idle state at block 710.

그러나, 이 비교가 일치를 발생하지 않으면, 데이터 교환장치는 메모리가 풀 (full) 인지를 결정한다. 풀인 경우, 데이터 교환장치는 수신된 패킷을 송신하지만, 새로운 소스 어드레스는 러닝되지 않는다. 소스 어드레스는 어드레스 레지스터 내에 저장되고, SAM 비트는 메모리 상태 레지스터 내에 설정된다. 그때, 데이터 교환장치는 블록 (710) 에서 아이들 상태로 돌아간다.However, if this comparison does not occur, the data exchange determines if the memory is full. If full, the data exchange sends the received packet, but no new source address is running. The source address is stored in the address register and the SAM bit is set in the memory status register. At that time, the data exchange device returns to the idle state at block 710.

그렇지 않고, 메모리가 블록 (716) 에서 풀이 아니면, 데이터 교환장치는 메모리에 소스 어드레스를 부가한다. 대역이 허용될 때 데이터 교환장치는 스위치 버스를 통해 패킷을 다른 포트로 송신한다.Otherwise, if the memory is not full at block 716, the data exchange adds a source address to the memory. When the band is allowed, the data exchange sends packets through the switch bus to another port.

또한, 라스트-허드 러닝 모드는 그 포트에 접속된 노드의 소스 어드레스를 저장할 것이다. 이것은 메모리 장소가 할당되는 만큼의 어드레스를 저장할 것이다. 포트를 위해 할당된 메모리 장소가 다 소모되면, 임의의 새로운 어드레스가 그 포트에 대해 이전에 러닝된 장소를 오버라이트할 수 있다. 오버라이트되어야 하는 장소는, 모든 장소를 통해 연속적으로 순환하면서, 태그 필드의 판독을 수행하여, 포트 ID 를 결정하고 어드레스가 스태틱 엔트리인지를 결정하는 백그라운드 프로세스에 의해 결정된다.The last-hard running mode will also store the source address of the node connected to that port. This will store as many addresses as the memory location is allocated. If the memory location allocated for a port is exhausted, any new address may overwrite the previously run location for that port. The place to be overwritten is determined by a background process that cycles through all the places, performing a read of the tag field to determine the port ID and determine whether the address is a static entry.

이 백그라운드 프로세스는 각 메모리 엔트리와 연관된 태그 비트를 판독하며, (설정될 때) 이것은, 장소가 호스트 프로세서에 의해 프로그램되었고, "스태틱", 즉, 라스트-허드 러닝모드를 위해 구성될 때 오버라이트되어서는 안됨을 나타낸다. 각 포트를 위해, 라스트-허드 오버라이트에 사용되어야 하는 다음 메모리 장소로의 포인터인 8 비트 레지스터가 있다. 백그라운드 프로세스는 장소를 판독하고, 이 포트가 라스트-허드 모드이면, 이것은, 오버라이트 포인터 레지스터가 유효한 내용인지를 검사한다. 그렇지 않으면, 그리고, 이 장소가 스태틱으로 지정되지 않으면, 이것은 오버라이트 포인터를 갱신한다. 쿼터, 스태틱 비트, 및 런 모드 (learn mode) 는, 이 런 모드에서의 포트가 항상 사용가능한 비스태틱 (non-static) 장소를 갖도록 프로그램되어야 한다. 그렇지 않으면, 새로운 어드레스가 러닝되지 않을 것이다.This background process reads the tag bits associated with each memory entry, which (when set) are overwritten when the location has been programmed by the host processor and configured for "static", ie last-hard running mode. Indicates no. For each port, there is an 8-bit register that is a pointer to the next memory location that should be used for last-herd overwrites. The background process reads the location and if this port is in last-herd mode, it checks to see if the overwrite pointer register is valid. Otherwise, and if this location is not specified statically, it updates the overwrite pointer. Quotas, static bits, and run modes must be programmed so that the ports in this run mode always have a non-static location available. Otherwise, the new address will not run.

또한, 이 프로세스는 링크를 분실한 포트에 대한 엔트리를 무효화한다. 이 경우, 오버라이트 포인터는 이 장소로 갱신되지 않을 것이고, 이 프로세스는 이 포인터가 이미 이 장소를 포함하고 있는지를 검사할 것이다. 포함하고 있으면, 이 프로세스는 엔트리를 무효화시킨다.This process also invalidates the entry for the port that lost the link. In this case, the overwrite pointer will not be updated to this place, and this process will check if this pointer already contains this place. If so, this process invalidates the entry.

도 8 을 참조하여, 라스트-허드 모드에서의 데이터 교환장치의 바람직한 동작을 설명한다. 데이터 교환장치는 아이들 모드로 들어가는 블록 (810) 에서 시작한다. 아이들 상태에서, 데이터 교환장치는 그 포트를 통한 인커밍 패킷에 대해 모니터한다. 패킷 수신시, 데이터 교환장치는 블록 (812) 으로 진행한다. 여기서, 데이터 교환장치는 인커밍 패킷 데이터를 FIFO 에 저장한다. 블록 (814) 에서, 데이터 교환장치는 패킷의 소스 어드레스를 메모리내의 소스 어드레스와 비교한다. 소스 어드레스가 이런 하나의 어드레스와 일치하면, 대역이 허용될 때 데이터 교환장치는 스위치 버스를 통해 다른 포트로 송신한다. 그때, 데이터 교환장치는 블록 (810) 에서 아이들 상태로 돌아간다.Referring to Fig. 8, the preferred operation of the data exchange device in the last-hard mode will be described. The data exchange starts at block 810 entering the idle mode. In the idle state, the data exchange monitors for incoming packets on that port. Upon receiving the packet, the data exchange proceeds to block 812. Here, the data exchange device stores the incoming packet data in the FIFO. At block 814, the data exchange device compares the packet's source address with a source address in memory. If the source address matches this one address, the data exchange transmits through the switch bus to another port when the band is allowed. At that time, the data exchange device returns to the idle state at block 810.

그러나, 소스 어드레스가 메모리에 포함된 임의의 어드레스와 일치하지 않으면, 데이터 교환장치는 메모리가 풀인지를 결정한다. 풀이 아닌 경우, 데이터 교환장치는 블록 (820) 에서 소스 어드레스를 메모리에 부가한다. 그후, 대역이 허용될 때 데이터 교환장치는 스위치 버스를 통해 다른 포트로 패킷을 송신한다. 그후, 데이터 교환장치는 블록 (810) 에서 아이들 상태로 돌아간다.However, if the source address does not match any address contained in the memory, the data exchange device determines whether the memory is full. If not, the data exchange adds the source address to the memory at block 820. Then, when the band is allowed, the data exchange device sends a packet through the switch bus to another port. The data exchange then returns to the idle state at block 810.

그렇지 않고, 메모리가 블록 (816) 에서 풀이면, 데이터 교환장치는 메모리에 저장된 소스 어드레스를 수신된 패킷의 새로운 소스 어드레스에 오버라이트한다. 대역이 허용될 때 데이터 교환장치는 스위치 버스를 통해 다른 포트로 패킷을 송신한다. 그후, 데이터 교환장치는 블록 (810) 에서 아이들 상태로 돌아간다.Otherwise, if the memory is full at block 816, the data exchange overwrites the source address stored in memory with the new source address of the received packet. When the band is allowed, the data exchanger sends a packet through the switch bus to another port. The data exchange then returns to the idle state at block 810.

제 3 모드인 프로그램 모드는, 호스트 프로세서가 호스트 인터페이스를 통해 소스 어드레스를 수동으로 기입하게 한다. 이전에 언급한 모드와 함께 할 때, 실제의 러닝은 일어나지 않는다. 이 모드에서, 수신된 프레임은 소스 어드레스가 메모리에서 일치하지 않으면 인트루전으로 간주된다. 인트루전이 검출되면, 소스 어드레스는 러닝되지 않지만, 불일치 비트는 메모리 상태 레지스터에서 설정되고, 소스 어드레스는 어드레스 레지스터 내에 포획된다. 프로그램 모드에서, 포트는 인트루전 검출시 디스에이블된다.The third mode, the program mode, allows the host processor to manually write the source address via the host interface. When combined with the previously mentioned modes, no actual running takes place. In this mode, the received frame is considered integral if the source address does not match in memory. If an integrity is detected, the source address is not running, but the mismatch bits are set in the memory status register and the source address is captured in the address register. In program mode, the port is disabled upon intrusion detection.

보안 프로그램 모드는, 인트루전이 검출될 때를 제외하고 프로그램 모드와 동일하고, 인트루전 패킷이 수신된 포트는 디스에이블된다. 불일치 비트는 메모리 상태 레지스터 내에 설정되고, 소스 어드레스는 어드레스 레지스터 내에 저장된다. 바람직한 실시예에서, 포트가 디스에이블될 때, 더 이상 데이터를 송신하거나 수신할 수 없다. 대안으로, 포트는 송신 및 수신 기능 중의 하나만을 제거하므로써 디스에이블될 수도 있다.The secure program mode is the same as the program mode except when an integrity is detected, and the port on which the integrity packet was received is disabled. The discrepancy bit is set in the memory status register and the source address is stored in the address register. In the preferred embodiment, when the port is disabled, it can no longer send or receive data. Alternatively, the port may be disabled by removing only one of the transmit and receive functions.

도 9 를 참조하여, 보안 프로그램 모드에서의 데이터 교환장치의 바람직한 동작을 설명한다. 데이터 교환장치는 910 에서 시작한다. 여기서, 데이터 교환장치는 시리얼 인터페이스를 통해 호스트 프로세서로부터 프로그램된 어드레스를 수신한다. 프로그램된 어드레스는 메모리에 저장된다. 모든 프로그램된 어드레스가 로딩된 후, 데이터 교환장치는 블록 (912) 에서 아이들 상태로 들어가는 것을 대기한다. 아이들 상태에서, 데이터 교환장치는 그 포트를 통한 인커밍 패킷에 대해 모니터한다. 패킷 수신시, 데이터 교환장치는 블록 (914) 으로 진행한다. 여기서, 데이터 교환장치는 수신 FIFO 내에 인커밍 패킷 데이터를 저장한다. 블록 (916) 에서, 데이터 교환장치는 수신된 패킷의 소스 어드레스를 메모리 내에 포함된 프로그래밍된 어드레스와 비교한다. 이 비교가 일치를 발생하면, 대역이 허용될 때 블록 (920) 에서 데이터 교환장치는 스위치 버스를 통해 다른 포트로 패킷을 송신한다. 그때, 데이터 교환장치는 블록 (912) 에서 아이들 상태로 돌아간다.9, a preferred operation of the data exchange device in the secure program mode will be described. The data exchange starts at 910. Here, the data exchange device receives the programmed address from the host processor through the serial interface. The programmed address is stored in memory. After all the programmed addresses have been loaded, the data exchange waits to enter an idle state at block 912. In the idle state, the data exchange monitors for incoming packets on that port. Upon receipt of the packet, the data exchange proceeds to block 914. Here, the data exchange device stores the incoming packet data in the reception FIFO. At block 916, the data exchange compares the source address of the received packet with a programmed address contained within the memory. If this comparison occurs, then at block 920 the data exchange sends a packet to the other port over the switch bus when the band is allowed. At that time, the data exchange device returns to the idle state at block 912.

그러나, 블록 (916) 에서 소스 어드레스가 메모리에 포함된 임의의 프로그램된 어드레스와 일치하지 않으면, 데이터 교환장치는 블록 (918) 으로 진행한다. 여기서, 데이터 교환장치는 수신된 패킷을 버린다. 소스 어드레스는 어드레스 레지스터에 저장되고, 불일치 비트는 메모리 상태 레지스터 내에 설정된다. 데이터 교환장치는 또한 추가의 패킷이 그 포트를 통해 송신 또는 수신될 수 없도록 이 포트를 디스에이블한다. 그때, 데이터 교환장치는 블록 (912) 에서 아이들 상태로 돌아간다. 이 포트는, 호스트 프로세서에 의해, 또는, 데이터 교환장치의 리세팅시 리셋될 때까지, 디스에이블 상태에 있다.However, if the source address does not match any programmed address contained in the memory at block 916, the data exchange proceeds to block 918. Here, the data exchange device discards the received packet. The source address is stored in the address register and the mismatch bits are set in the memory status register. The data exchange also disables this port so that additional packets cannot be sent or received through that port. At that time, the data exchange device returns to the idle state at block 912. This port is in the disabled state until reset by the host processor or upon reset of the data exchange device.

바람직한 다른 실시예에서, 블록 (918) 에서, 데이터 교환장치는 수신된 패킷을 포워딩한다. 데이터 교환장치는 또한 패킷이 이 포트를 통해 송신될 수 없도록 이 포트를 디스에이블시킨다. 그러나, 추가의 패킷이 이 포트를 통해 수신될 수도 있다.In another preferred embodiment, at block 918, the data exchange forwards the received packet. The data exchange also disables this port so that packets cannot be sent through this port. However, additional packets may be received through this port.

러닝 모드에서, 어드레스는 CRC, 프레임 정렬, 또는 사이즈 에러로 수신된 패킷으로부터 러닝되지 않는다. 이것은, 패킷의 EOF 셀이 스위치 버스로부터 수신되고 에러가 없다는 것이 밝혀질 때까지 소스 어드레스 메모리로의 러닝된 어드레스의 이전을 지연시키므로써 달성된다. 패킷의 소스 어드레스의 일치는, SOF 셀 및 소스 어드레스가 SRAM 내에 저장된 동안에 수행된다. 이 소스 어드레스는, 전체 패킷이 에러없이 수신될 때 소스 어드레스 메모리로 기입된다 (EOF 셀).In running mode, addresses are not running from packets received with CRC, frame alignment, or size errors. This is accomplished by delaying the transfer of the run address to the source address memory until the EOF cell of the packet is received from the switch bus and found to be error free. Matching of the source address of the packet is performed while the SOF cell and the source address are stored in the SRAM. This source address is written into the source address memory when the entire packet is received without error (EOF cell).

룩업 엔진 (236) 은, 스위치 버스로부터 수신된 패킷을 데스티네이션 어드레스 및 VLAN 태그에 기초하여 포워딩한다. 패킷의 데스티네이션 포트는 제 1 SOF 셀이 스위치 버스로부터 떨어져 수신될 때 결정된다. 그때, 차후의 셀은 정보필드 내의 소스 포트 ID 에 기초하여 포워딩된다.The lookup engine 236 forwards the packet received from the switch bus based on the destination address and the VLAN tag. The destination port of the packet is determined when the first SOF cell is received away from the switch bus. At that time, subsequent cells are forwarded based on the source port ID in the information field.

더 상세히 설명하면, 룩업 엔진은 SOF 셀에 대한 스위치 버스를 모니터한다. SOF 셀의 수신시, 룩업 엔진은 그 데스티네이션 어드레스 필드를 소스 어드레스 메모리에 포함된 것과 비교한다. 이 비교가 일치를 발생하면, 패킷 데이터의 나머지가 수신되고, CAM 에 포함된 포워딩 정보에 기초하여 패킷은 적절한 포트로 포워딩된다.In more detail, the lookup engine monitors the switch bus for the SOF cell. Upon receipt of the SOF cell, the lookup engine compares its destination address field with that contained in the source address memory. If this comparison occurs, the rest of the packet data is received, and the packet is forwarded to the appropriate port based on the forwarding information included in the CAM.

CAM 매니저 (540) 는 CAM 어드레스의 할당 및 할당해제를 관리한다. 현재 사용되지 않는 (그리고 임의의 포트에 사용가능한) CAM 장소의 리스트는 SRAM 에 저장된다. 리셋시, SRAM 은, 특정 포트를 위해 현재 예비되지 않은 CAM 내의 장소의 각각으로의 포인트로 초기화된다.The CAM manager 540 manages the allocation and deallocation of CAM addresses. The list of CAM locations not currently used (and available for any port) is stored in SRAM. Upon reset, the SRAM is initialized with points to each of the locations in the CAM that are not currently reserved for a particular port.

각 CAM 장소는, 일치할 때 어드레스가 더 이상 사용되어서는 안됨을 나타내도록 리셋될 수 있는 연관된 유효 비트를 갖는다. 또한, 이것은, 이 어드레스 상에서 소스 어드레스 일치가 있을 때마다 설정되는 프레임 액티비티 비트를 갖는다. 또한, 이 비트는, CAM 매니저에 의해 주기적으로 리셋되고, 어드레스의 에이징 (aging) 을 결정하는 데 사용된다.Each CAM location has an associated valid bit that can be reset to indicate that when an match should no longer be used. It also has a frame activity bit that is set whenever there is a source address match on this address. This bit is also periodically reset by the CAM manager and used to determine the aging of the address.

본 명세서에 설명된 실시예들은 특정 구조를 갖는 데이터 교환장치에 관련한 것이지만, 본 발명은 본 발명의 범위에 벗어남없이 다양한 다른 네트워크 디바이스에서 실행될 수 있다. 이러한 다른 네트워크 디바이스는, 본 명세서에서 설명된 기능블록을 사용하여 본 발명을 실행할 수도 있고, 또는, 동일 기능을 수행하는 다른 구성을 실행할 수도 있다. 당업자는, 여기 개시된 것으로부터 벗어남없이 많은 수정이 가능하다는 것을, 본 명세서에 설명된 실시예들로부터 분명히 이해할 것이다. 모든 실시예들 및 모든 이러한 변형들은 다음의 청구범위 내에 포함되도록 한다.Although the embodiments described herein relate to a data exchange apparatus having a specific structure, the present invention can be implemented in various other network devices without departing from the scope of the present invention. Such other network devices may implement the invention using the functional blocks described herein, or may implement other configurations that perform the same functions. Those skilled in the art will clearly understand from the embodiments described herein that many modifications are possible without departing from what is disclosed herein. All embodiments and all such modifications are intended to be included within the scope of the following claims.

본 발명에 따르면, 허가받지 않은 사용자가 네트워크 리소스에 접근하지 못하게 하고, 또한, 더 많은 사용자가 리소스를 공유할 수 있도록 네트워크 대역 리소스를 증대시키는 네트워크 디바이스를 제공가능하다.According to the present invention, it is possible to provide a network device that prevents unauthorized users from accessing network resources and also increases network bandwidth resources so that more users can share the resources.

Claims (5)

복수의 프로그램된 어드레스를 저장하도록 구성된 메모리;A memory configured to store a plurality of programmed addresses; 소스 어드레스를 포함한 패킷 데이터를 네트워크를 통해 수신 및 송신하도록 구성된 포트; 및A port configured to receive and transmit packet data including a source address over a network; And 상기 포트 및 메모리와 동작적으로 결합되고, 상기 소스 어드레스를 복수의 프로그램된 어드레스와 비교하도록 구성된 제어기를 구비하되,A controller operatively coupled with the port and memory, the controller configured to compare the source address with a plurality of programmed addresses, 상기 제어기는, 소스 어드레스가 복수의 프로그램된 어드레스의 어느 것과도 일치하지 않을 때 상기 포트를 디스에이블시키는 것을 특징으로 하는 패킷 데이터를 수신 및 송신하는 네트워크 디바이스.Said controller disabling said port when a source address does not match any of a plurality of programmed addresses. 제 1 항에 있어서,The method of claim 1, 상기 메모리, 포트, 및 제어기는 함께 네트워크 스위치를 구성하는 것을 특징으로 하는 네트워크 디바이스.Wherein said memory, port, and controller together constitute a network switch. 제 1 항에 있어서,The method of claim 1, 상기 메모리는 CAM (content addressable memory) 을 포함하는 것을 특징으로 하는 네트워크 디바이스.And the memory comprises a content addressable memory (CAM). 보안 프로그램 모드를 포함한 복수의 동작모드 중에서 선택하도록 구성된 레지스터;A register configured to select from a plurality of operating modes including a secure program mode; 상기 레지스터와 동작적으로 결합되고 소스 어드레스를 포함하는 패킷 데이터를 네트워크를 통해 수신하도록 구성된 포트; 및A port operatively associated with the register and configured to receive over the network packet data comprising a source address; And 상기 레지스터와 동작적으로 결합되며 복수의 프로그램된 어드레스를 저장하도록 구성되고, 상기 소스 어드레스를 복수의 프로그램된 어드레스와 비교하여, 불일치의 검출시, 상기 포트를 디스에이블시키는 메모리를 포함하는 것을 특징으로 하는 패킷 데이터를 수신 및 송신하는 네트워크 디바이스.A memory operatively coupled with the register and configured to store a plurality of programmed addresses, and comparing the source address with a plurality of programmed addresses to disable the port upon detection of a mismatch. A network device for receiving and transmitting packet data to be spoken. 소스 어드레스를 포함하는 패킷 데이터를 제 1 포트를 통해 수신하는 단계;Receiving packet data including a source address through a first port; 상기 소스 어드레스를 복수의 프로그램된 어드레스와 비교하는 단계; 및Comparing the source address with a plurality of programmed addresses; And 비교단계가 불일치를 발생할 때, 상기 제 1 포트를 디스에이블시키는 단계를 포함하는 것을 특징으로 하는 네트워크 디바이스의 동작방법.And disabling the first port when the comparing step results in a mismatch.
KR1019990025670A 1998-07-01 1999-06-30 Secure port access to a device on a local area network KR20000011371A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10844098A 1998-07-01 1998-07-01
US9/108,440 1998-07-01

Publications (1)

Publication Number Publication Date
KR20000011371A true KR20000011371A (en) 2000-02-25

Family

ID=22322227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990025670A KR20000011371A (en) 1998-07-01 1999-06-30 Secure port access to a device on a local area network

Country Status (2)

Country Link
KR (1) KR20000011371A (en)
DE (1) DE19929515A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237252A (en) * 1993-02-12 1994-08-23 Toshiba Corp Communication control system for lan
KR970700969A (en) * 1994-12-07 1997-02-12 로날드 비. 리차드 SECURITY SYSTEM FOR INTERCONNECTED COMPUTER NETWORKS
JPH0964870A (en) * 1995-08-23 1997-03-07 Nippon Telegr & Teleph Corp <Ntt> Network system, its operation processing method and use access method
KR970049735A (en) * 1995-12-11 1997-07-29 포만 제프리 엘 Method and apparatus for improving mutual authentication, and computer readable program product
JPH10340254A (en) * 1997-04-11 1998-12-22 Hitachi Ltd Network system which can detect illegal use

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237252A (en) * 1993-02-12 1994-08-23 Toshiba Corp Communication control system for lan
KR970700969A (en) * 1994-12-07 1997-02-12 로날드 비. 리차드 SECURITY SYSTEM FOR INTERCONNECTED COMPUTER NETWORKS
JPH0964870A (en) * 1995-08-23 1997-03-07 Nippon Telegr & Teleph Corp <Ntt> Network system, its operation processing method and use access method
KR970049735A (en) * 1995-12-11 1997-07-29 포만 제프리 엘 Method and apparatus for improving mutual authentication, and computer readable program product
JPH10340254A (en) * 1997-04-11 1998-12-22 Hitachi Ltd Network system which can detect illegal use

Also Published As

Publication number Publication date
DE19929515A1 (en) 2000-01-05

Similar Documents

Publication Publication Date Title
US6779043B1 (en) Network address manager
US6181699B1 (en) Apparatus and method of assigning VLAN tags
US7072335B1 (en) Method of sending packets between trunk ports of network switches
US7480310B2 (en) Flexible DMA descriptor support
US6181702B1 (en) Method and apparatus for capturing source and destination traffic
US6813268B1 (en) Stacked network switch configuration
US6308219B1 (en) Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US7593403B2 (en) Stacked network switch configuration
US6934260B1 (en) Arrangement for controlling learning of layer 3 network addresses in a network switch
US6839349B2 (en) Mirroring in a stacked network switch configuration
US7443858B1 (en) Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6807179B1 (en) Trunking arrangement in a network switch
US20030112805A1 (en) Method and apparatus for providing device-to-device connectivity using shared infiniband NIC device
US20050147094A1 (en) Address resolution snoop support for CPU
US7099276B1 (en) Apparatus and method for distributing a load across a trunk group
US6907036B1 (en) Network switch enhancements directed to processing of internal operations in the network switch
US7031302B1 (en) High-speed stats gathering in a network switch
KR20000011371A (en) Secure port access to a device on a local area network
JP3413696B2 (en) Flow control method and its hub
US7680054B1 (en) Arrangement for switching infiniband packets using switching tag at start of packet

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application