Does ICE uses any http protocol for communication

bhuvneshzerocbhuvneshzeroc Member Bhuvnesh JoshiOrganization: GE HealthcareProject: Evaluating ICE for Networking Interface

Hello. Want to know does ICE serialized objects are being put in HTTP in RPC environment. ? or it goes as serialized buffer ?.

Answers

  • xdmxdm La Coruña, SpainAdministrators, ZeroC Staff Jose Gutierrez de la ConchaOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff

    Hi Joshi,

    Ice serialize data using Ice encoding into a stream, and this stream is send over the wire using one of the supported transports.

    If you want to better understand how the encoding of messages works, you should take a look at the Ice protocol chapter in the Ice Manual.

    For a list of the supported transports see https://doc.zeroc.com/ice/3.7/client-server-features/transports

  • bhuvneshzerocbhuvneshzeroc Member Bhuvnesh JoshiOrganization: GE HealthcareProject: Evaluating ICE for Networking Interface

    Thanks, however my question was the ICE encoding does not put serialized data into a HTTP protocol ?.

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff

    The Ice protocol is an application layer protocol, just like http: see https://en.wikipedia.org/wiki/Internet_protocol_suite#Application_layer

    The Ice protocol does not depend on http. The Ice protocol is implemented over various transport protocols, such as TCP (with or without an additional TLS layer), UDP, Bluetooth RFCOMM and WebSocket.

    WebSocket (https://en.wikipedia.org/wiki/WebSocket) upgrades an http connection to a binary WebSocket connection. We then use the Ice protocol over this WebSocket connection:
    https://doc.zeroc.com/ice/3.6/ice-release-notes/new-features-in-ice-3-6#id-.NewFeaturesinIce3.6v3.6-JavaScriptMappingandWebSocketTransports

    This allows you to use http/WebSocket-aware proxies and firewalls to manage your Ice/WebSocket/TCP connections.

    I guess you may see this as sending Ice protocol messages over http, but it's really over WebSocket, not plain http.

    Then in terms of serialization, the Ice serialization format is called the "Ice encoding" and is totally independent of http. Ice puts byte sequences encoded using the Ice encoding into Ice protocol messages, and then send these messages over TCP, WebSocket (etc.) connections.

    I hope this is clearer now!

    Best regards,
    Bernard

Sign In or Register to comment.