
(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)
캐싱 프록시 서버에서 사용되는 정교한 리디렉션 기술
- Reliable & High-performance & Content-aware
- 특정 콘텐츠가 있을 확률이 높은 위치에 요청 전송
WCCP2_HERE_I_AM : 캐시 -> 라우터WCCP Message Header
Security Info Component
Service Info Component
Web-cache Identity Info Component
Web-cache View Info Component
Capability Info Component (optional)
Command Extension Component (optional)WCCP2_I_SEE_YOU : 라우터 -> 캐시WCCP Message Header
Security Info Component
Service Info Component
Router Identity Info Component
Router View Info Component
Capability Info Component (optional)
Command Extension Component (optional)WCCP2_REDIRECT_ASSIGN : 지정된 캐시 -> 라우터WCCP Message Header
Security Info Component
Service Info Component
Assignment Info Component, or Alternate Assignment ComponentWCCP2_REMOVAL_QUERY : 라우터 -> 캐시WCCP Message Header
Security Info Component
Service Info Component
Router Query Info Component

한 캐시가 Sibling Caches에서 콘텐츠를 찾을 수 있게 하는 프로토콜
- Sigling Caches : 동일한 계층에 위치한 캐시들 (not downstream, upstream)
Opcode : ICP 메시지의 의미를 나타내는 8비트 값, ICP_OP_QUERY 요청 메시지, ICP_OP_HIT, ICP_OP_MISS 로 구성Version : ICP 프로토콜의 버전 번호 (RFC 2186)Message length : ICP 메시지의 전체 바이트 크기를 나타내는 16비트 값 -> ICP 메시지 크기는 16383 바이트를 초과할 수 없고 URL의 길이는 16KB보다 짧아야 한다Request number : 요청 번호 -> 1번 요청에 대한 응답에도 동일한 번호가 포함되어야 한다Options : ICP의 동작을 제어하기 위한 32비트 bit vectorOption data : 부가적인 기능을 위해 사용되는 32비트 데이터Sender host address : 메시지 송신자의 32비트 IP 주소 (실제로는 사용되지 않는다)Payload : 메시지 유형에 따라 서로 다른 내용 보유무지성으로 개발을 하다 보면 아무래도 HTTP 자체에만 집중하게 되는 것 같다. 클라이언트와 서버 사이에 존재하는 수많은 라우터들이 어떻게 패킷을 주고받는지는 딱히 관심도 없고 흐린 눈으로 봐왔다. 근데 원리를 알고 보니 좀 재밌다.
네트워크 내에서 라우터와 캐시 풀을 구성하고 WCCP라는 프로토콜을 통해 성능을 개선하고 있다는 것을 알게 됐다. 같은 계층의 Cache간 탐색이 필요할 때는 ICP를 사용한다는 것, 캐시간 빠른 통신을 위해 UDP 위에 구현된다는 것도 알게 됐다.
이 세상에는 참 신기한 프로토콜이 많은 것 같다.