요약

  • RFC 1434는 각 Data Link Switch에서 LLC Type 2를 종단하므로, 두 단말은 서로 독립적인 두 개의 로컬 링크를 가지며 WAN을 가로지르는 하나의 데이터 링크가 아닙니다.
  • 스위치 노드는 또한 SSP를 통해 단말을 찾고, 로컬 할당된 Circuit ID를 교환하며, 원격 접촉을 완료해야 합니다. TCP 연결이 정상이라는 것은 두 스위치 노드 사이에 전송이 존재한다는 것만 증명합니다.
  • 로컬 확인과 회로 멀티플렉싱은 WAN상의 제어 트래픽을 줄여 주지만 공유 장애 도메인을 형성합니다. 하나의 TCP가 실패하면 그 안의 모든 회로가 양단에서 로컬 단말에 대해 동시에 끊깁니다.

LAN의 타이머는 WAN을 이해하지 못한다

LLC Type 2의 리듬은 LAN에서 나옵니다. 이 프로토콜은 전송 지연이 짧고 비교적 안정적이라고 가정하고, 고정 타이머로 프레임이 유실되었는지를 판단합니다. 이 절차를 전통적인 브리징으로 저속 또는 혼잡한 WAN 링크에 그대로 내리면, 지연 변동이 패킷 손실로 위장합니다. 송신 측은 사실 아직 전송 중인 프레임을 재전송하고, 제어 절차는 그로 인해 혼란에 빠져 결국 스스로 링크를 해체할 수 있습니다.

RFC 1434는 타이머를 점점 늘리는 대신 경계를 바꾸는 길을 택했습니다. 왼쪽 단말은 인근의 Data Link Switch와만 LLC Type 2를 수립하고, 오른쪽 단말도 자신의 스위치 노드와 별도의 LLC Type 2를 수립합니다. 두 로컬 연결은 스위치 노드에서 종단되며, 정보는 Switch-to-Switch Protocol에 의해 신뢰성 있는 전송을 통해 반대편으로 전달됩니다.

이는 단말이 보는 RR, UA 같은 확인이 인접 스위치 노드가 로컬 링크의 책임을 인수했음만을 말한다는 뜻입니다. 그것은 원격 단말이 프레임을 받았음을 증명하지 않고, 반대편 LLC가 수립되었음을 증명하지 않으며, 원격 애플리케이션이 동작을 실행했음을 더더욱 증명하지 않습니다. 원문은 두 LLC 연결을 “완전히 독립적”이라고 명시적으로 부르는데, 이는 연속된 서비스 경험이 연속된 프로토콜 상태로 잘못 기록되는 것을 막기 위해서입니다.

이득도 실제입니다. LLC 타임아웃과 확인이 WAN을 통과할 필요가 없고, SDLC의 폴링과 응답도 로컬에 남을 수 있습니다. 재시도는 해당 링크에 가까운 스위치 노드가 흡수할 수 있습니다. WAN 지연이 더 이상 LAN을 위해 설계된 고정 타이머를 직접 공격하지 않습니다.

하나의 TCP는 운반 계층일 뿐이다

두 대의 Data Link Switch는 SSP를 사용하기 전에 먼저 전송 연결을 수립합니다. RFC 1434의 초기 구현은 TCP를 채택하면서 다른 신뢰성 있는 전송을 사용할 가능성도 남겨 두었습니다. 전송이 존재한 이후에야 SSP가 그 위에 종단 간 DLS 회로를 수립하며, 여러 회로가 같은 연결을 함께 사용할 수 있습니다.

순서는 근거의 계층을 보여 줍니다. 포트가 도달 가능하고 TCP 핸드셰이크가 완료되었다는 것은 두 스위치 노드 사이에 바이트 전송 경로가 있다는 것만 말합니다. 그것은 대상 단말이 어디 있는지, 어느 원격 스위치 노드가 접촉할 수 있는지, Circuit ID가 이미 짝을 이루었는지, 원격 로컬 링크가 접촉을 완료했는지에 답하지 않습니다. “TCP up”을 “단말 서비스 up”으로 보여 주면 프로토콜에서 가장 중요한 몇 단계를 건너뛰게 됩니다.

RFC 1434는 단말 관계와 회로 인스턴스에 서로 다른 식별자를 사용합니다. Data Link ID는 양단 단말의 MAC 주소와 SAP 주소로 구성됩니다. 각 스위치 노드는 또한 로컬에서 64비트 Circuit ID를 할당하며, 이는 DLC Port ID와 Data Link Correlator로 이루어집니다. 종단 간 회로에는 양측 Circuit ID의 짝이 필요하고, 각 측은 로컬과 원격의 매핑을 저장해야 합니다.

회로가 아직 수립되지 않았을 때는 제어 메시지가 비교적 완전한 Data Link ID를 담고, 회로가 수립된 후에는 INFOFRAME이 원격 Circuit ID만 담는 짧은 헤더를 사용할 수 있습니다. 이 최적화는 운영이 하나의 로컬 숫자만 기록해서는 안 된다는 요구를 만듭니다. Circuit ID 단독은 그것을 할당한 스위치 노드를 벗어나면 전역적 의미가 없으며, 상대측, 방향, 반대편 ID와 함께 저장해야 합니다.

“찾을 수 있음”과 “연결됨”은 같은 말이 아니다

제어 메시지의 이름들은 점차 좁혀지는 불확실성처럼 읽힙니다. CANUREACH는 누가 단말에 도달할 수 있는지 묻고, ICANREACH는 긍정 답변과 대상측 Circuit ID를 제공하며, REACH_ACK는 소스측 Circuit ID를 다시 돌려 보냅니다. 이어서 XIDFRAME이 링크 정보를 교환하고, CONTACT가 원격 단말 접촉을 요청하며, CONTACTED가 비로소 해당 단계의 완료를 뜻합니다.

각 동사에는 대체 불가능한 대상이 있습니다. DLS 피어가 살아 있다는 것이 단말 위치를 안다는 뜻은 아닙니다. ICANREACH를 받았다는 것이 양측 모두 회로 식별자를 확보했다는 뜻은 아닙니다. Circuit ID가 짝을 이루었다는 것이 원격 단말의 로컬 링크가 접속되었다는 뜻은 아닙니다. 상태 순서를 남겨 두어야만 장애가 발생했을 때 문제가 발견, 선택, 식별자 교환, 단말 접촉 중 어디에서 멈추었는지 판단할 수 있습니다.

같은 질의에 여러 개의 ICANREACH가 도착할 수도 있습니다. RFC 1434는 소스 스위치 노드가 가장 먼저 도착한 답변을 선택하고 선택된 노드에 REACH_ACK를 보내도록 합니다. 이 선택은 영구적인 디렉터리 사실이 아니라 특정 순간의 한 번의 검색이 얻은 결과입니다. 모든 답변, 도착 순서, 마지막 선택을 저장해야 하며, 겉보기에 고유한 “단말 위치” 하나만 남겨 두어서는 안 됩니다.

캐시에 위치가 없으면 스위치 노드는 CANUREACH 또는 NetBIOS 질의를 알려진 모든 DLS 피어에게 보낼 수 있습니다. 위치 캐시는 이러한 검색 확산을 줄여 주지만, 만료된 캐시는 새 회로를 오래된 위치로 이끌 수 있습니다. 발견 범위와 캐시 신선도는 그래서 회로 근거 사슬에 함께 속합니다.

로컬이 먼저 고개를 끄덕여도 원격은 여전히 침묵할 수 있다

연결 수립 절차에는 두 로컬 링크의 독립성을 가장 잘 보여 주는 지점이 있습니다. 소스 단말이 SABME를 보낸 후, 소스 스위치 노드는 원격이 아직 접촉하지 않은 상태에서 로컬로 UA를 회신할 수 있습니다. 단말이 완성되지 않은 원격 경로로 즉시 데이터를 밀어 넣지 않도록, 스위치 노드는 먼저 로컬에 RNR을 보내고, 상대의 CONTACTED를 받은 뒤에야 RR로 통행을 허가합니다.

로컬 회신은 원격 성공을 위조한 것이 아닙니다. 그것은 스위치 노드가 인접 링크의 책임을 이미 수용했음을 뜻하며, RNR은 사슬 후반부의 불확실성을 성실하게 남겨 둡니다. 진짜 오류는 관측 시스템이 UA를 원격 단말이 수락했다고, RR을 원격 애플리케이션이 처리했다고 해석할 때 발생합니다.

여기에는 적어도 네 가지 서로 다른 사실이 있습니다. SSP 회로가 수립되었음, 원격 접촉이 완료되었음, 로컬 송신이 허가되었음, 애플리케이션 교환에 응답이 있었음. 하나의 녹색 불이 넷을 대표할 수는 없습니다. 신뢰성 있는 TCP가 이미 바이트를 원격 스위치 노드까지 전달했더라도, 원격 LLC는 여전히 재시도하거나, 끊기거나, 해당 애플리케이션을 찾지 못할 수 있습니다.

1995년의 RFC 1795는 이후 트래픽 허가를 더 명확히 했습니다. 능력 교환을 추가하고 방향별, 회로별로 적응적 페이싱을 시행했습니다. 송신자는 시작할 때 허가된 단위가 없어 수신자가 FCIND로 할당을 부여하기를 기다려야 하고, 초기 창은 능력 교환에서 나옵니다. 이들은 RFC 1434의 원래 기능이 아니지만, 신뢰성 있는 전송 위에도 독립적인 주입 허가가 필요하다는 것을 보여 줍니다.

멀티플렉싱은 연결을 절약하지만 사고도 집중시킨다

로컬 종단은 WAN상에서 반복되는 LLC 확인을 없애고, 멀티플렉싱은 단말 쌍마다 하나의 전송 연결을 독점하는 것을 피하게 합니다. 그러나 많은 독립 회로가 같은 TCP를 공유하면, 그들은 또한 같은 중간 장애 지점을 공유합니다.

RFC 1434의 규정은 단순합니다. 두 스위치 노드 사이의 TCP가 실패하면, 그 연결 위에 멀티플렉스된 모든 연결을 해체해야 합니다. 양측 Data Link Switch는 영향을 받는 각 로컬 시스템에 DISC를 보냅니다. 어떤 단말은 케이블, 포트, 로컬 LLC가 완전히 건강해도, 중간 공유 의존성이 사라지면서 세션 종료를 목격합니다.

따라서 거의 동시에 일어난 열 개의 로컬 단선은 하나의 전송 근본 원인일 수 있으며, “단말 장애 10건”만 보고하면 근본 원인 수를 과대 계수하게 됩니다. 반대로 “TCP 단선 1건”만 보고하면 열 개 회로의 서비스 영향을 숨깁니다. 이벤트 모델은 하나의 공유 원인과 여러 영향받은 관계를 동시에 보존해야 합니다.

정상적인 해체에는 별도의 HALT_DL과 DL_HALTED 상호작용이 있고, 로컬 DLC 오류도 하나의 회로를 단선 상태로 만들 수 있습니다. 단말 표면에는 모두 끊김으로 나타나지만 책임 면은 로컬 링크, 원격 링크, 단일 SSP 회로 또는 공통 전송일 수 있습니다. 시간의 근접성은 분류 기준이 아니며, 상태 머신의 첫 전이가 기준입니다.

후속 표준은 숨겨진 계층을 관측 계층으로 바꾼다

RFC 1795는 자신이 RFC 1434에 대해 중대한 변경을 하고 그를 대체한다고 명시합니다. APPN Implementers Workshop의 DLSw 그룹은 다중 벤더가 구현할 수 있는 통일된 SSP를 만들고 문서 문제를 수정하기를 원했습니다. 전송 수립 이후, 일반 회로 제어 이전에 능력 교환을 넣고 전송 협상과 회로별 흐름 제어를 규범화했습니다.

RFC 2024는 다시 이 계층을 관리 대상으로 사영합니다. 전송 상태에는 connecting, 초기 능력 교환, connected, quiescing, disconnecting, disconnected가 포함되고, 관리자는 회로 생성, 검색 활동, 단선 원인 등을 볼 수 있습니다. 이 시점부터 “소켓이 온라인”이라는 사실이 나머지 상태를 삼킬 자격이 없어집니다.

RFC 2166은 규모가 커진 뒤의 대가를 기록합니다. 대량의 피어 구성을 유지하고, 발견과 NetBIOS 트래픽을 많은 점대점 연결로 복제하고, 전송 세션을 보유하며, 중심 노드에서 대량의 LLC2를 종단하는 것은 모두 자원을 소모합니다. v2.0은 그래서 더 명확한 halt 사유, 멀티캐스트 지원 발견, 필요 시 연결, 양측이 지원할 경우 하나의 양방향 TCP를 추가했습니다.

이 후속 변화를 1993년에 이미 갖춘 능력으로 거슬러 쓸 수는 없습니다. 그들이 증명하는 것은 이것입니다. RFC 1434가 WAN 지연을 격리해 낸 뒤에도 상태는 사라지지 않고 스위치 노드로 이동했으며, 새로운 협상, 관측, 규모 제어가 필요해졌다.

근거는 애플리케이션까지 도달해야 완전하다

추적 가능한 기록에는 최소한 다음이 포함되어야 합니다. 전송 피어와 상태, 검색된 단말 주소, 모든 ICANREACH와 선택된 답변, 짝을 이룬 Circuit ID, CONTACT와 CONTACTED, 양측 로컬 DLC 상태, 송신 허가, 데이터 계수, HALT, DLC 오류 또는 전송 실패의 최초 원인. 애플리케이션 응답은 별도로 기록하며, 앞의 상태로부터 자동 생성될 수 없습니다.

RFC 1434와 RFC 1795는 모두 보안 문제를 다루지 않았다고 명시합니다. 따라서 이 문헌들만으로 SSP 교환을 피어 인증, 단말 권한 부여, 기밀성 또는 공격 대응의 완전한 보장으로 삼을 수 없습니다. TCP의 신뢰성은 주어진 모델에서의 순서 전달을 기술할 뿐, 보안 결론이 아닙니다.

이 RFC들은 또한 특정 벤더 배치, 특정 사고 또는 현대 네트워크가 여전히 이 메커니즘을 사용한다는 것을 증명하지 않습니다. 역사적 가치는 겉보기에 연속된 하나의 세션을 책임의 현실로 되돌려 나눈 데 있습니다. 로컬 확인, 원격 접촉, 공유 전송, 트래픽 허가, 애플리케이션 결과는 각각 자기 근거가 필요합니다.

출처