SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    RE: iSCSI: BASE64 and numerical values



    On Tue, 21 May 2002, Robert Snively wrote:
    
    > I have been having continuing problems understanding why
    > iSCSI is considering any use of base64, and I find myself
    > in total agreement with Bill's clear exposition of the
    > situation.
    >
    > Upon reviewing RFC-2045, it is clear that base64 is a method
    > for containing handy binary values in a EMAIL structure that does
    > not use TCP/IP to transmit data, but rather uses obsolete
    > 7-bit ASCII or (slightly less obsolete) EBCDIC strings to
    > carry the data.  TCP/IP transmits data neutral octets,
    > so binary values can be carried in their native binary
    > string format (allowing for a possible requirement to pad
    > strings to an octet boundary).  The most standard way to
    > present those binary strings on a printer or as an input
    > value to a program is hexadecimal encoding.
    >
    > For those reasons, I agree with Bill that we should delete
    > base64 from the text and use hexadecimal as he suggests.
    
    I must not have been totally clear. I'm not suggesting we remove base64,
    I'm suggesting we limit its use to the cases where (IMHO) it makes sense.
    While there will be much fewer cases in the text with the changes I
    suggest, it will still be in the spec.
    
    Some of the cryptographic authentications throw around large binary
    strings. Quite large (compared to the numbers and strings we often use)
    binary strings. The fact that if you support these modes of authentication
    you are supposed to be able to accept four times as much text in login
    commands reflects the size of these strings.
    
    Base64 is a real win for these. Hex can encode 4 bits per byte, while
    base64 can encode 6. Thus an n byte string will be about 1.33*n bytes in
    base 64, while it will be 2n bytes in hex. That size difference is why we
    want base64.
    
    The main point I've been trying to make is that binary strings and numbers
    are different things, and that encoding methods for one aren't really
    appropriate for the other. Specifics: decimal & hex work great for
    numbers, and hex and base64 work great for binary strings. That's it.
    Also, the hex for numbers isn't the same as the hex for binary strings.
    One is the number in hex, the other is more like hexdump -x without the
    spaces and without the offsets.
    
    Take care,
    
    Bill
    
    
    


Home

Last updated: Tue May 21 13:18:34 2002
10167 messages in chronological order