Hi, Avygdor,

We're very close (not that I have a ballot position, but :-) ...


Ah - in that case, I suggest that you delete the sentence "While this mode of operation is not explicitly supported in the ANSI C12.22 standard, it MAY be made possible through mutual operating agreements".

You don't need to say this, and you're just calling the reader's attention to an undesirable practice that MIGHT work - that's enough to make some product managers say "oh, you can implement Uni-directional TCP for this, and tell people to make it work". :-(


Ok. Will delete the text
"While this mode of operation is not explicitly supported in the ANSI C12.22 standard, it MAY be made possible through mutual operating agreements. The means by which nodes are configured to enact the uni-directional use of TCP is not defined in this specification or in the ANSI C12.22 standard; it is left for future consideration."

You actually deleted two sentences - I wasn't sure about asking you to delete the second sentence, but if you're OK with it, I think that's fine.

3.4.2. Sending Large C12.22 APDUs Using UDP

  When sending a large C12.22 Message via UDP, whereby the ACSE PDU
  size exceeds the UDP datagram maximum data length (65527 bytes), the
  initiating C12.22 IP Node SHALL segment the ACSE PDU in accordance
  with ANSI C12.22 Datagram Segmentation and Reassembly algorithm, such
  that each APDU segment fits within the UDP data field.

Spencer (minor): If you're matching something that's already deployed, fine, but if you have an opportunity to set a lower bound than 65527 bytes for invoking application-level segmentation and reassembly, I'd suggest thinking about that. Losing fragments means you retransmit the entire IP packet (no surprise there), and more fragmentation means you're taking up more reassembly buffers on NATs, if this protocol is really intended to traverse the Internet...

This explains the upper limit that is imposed on to the Segmentation Algorithm of ANSI C12.22 by the IP Network. When a node pushes data above that size it must segment. However, nodes may choose to segment a much lower limits (which may be negotiated between peers by the C12.22 Protocol).

I'm not an expert in the application space where you're working, but if it's anything like the open Internet, there are a lot of reasons to avoid IP fragmentation when you can do so.

To name two, some NATs drop packets that don't have port numbers (subsequent fragments don't), and when one fragment is lost for an application that can't "lose" packets, the entire IP packet has to be retransmitted. Assuming a 1500-byte-ish 802 link layer, you're saying that applications don't have to worry until the Message size is bigger than 65527 bytes - that's 44 fragments. If you've already lost one fragment due to congestion, throwing 44 more packets onto the path seems wrong.

You might wish to consider encouraging use of the C12.22 Protocol to negotiate lower limits (probably at SHOULD strength), unless you're sure that the current text won't lead to problems in your application space (and that your application won't be used on the open Internet).

I see the problem. We are caught between a rock and a hard place.
Most payloads are very small (less than 100 bytes). The reason for the number 65527 is to instruct the user not to trip on UDP. The problem you indicate will need to be addressed in C12.22, since it originates there and if it is a defect in C12.22 then it will be common not just to IP but other transports that C12.22 may use as well. I will bring this to the attention of ANSI SC17 and IEEE SCC31 (the committees) for correction.

I understand. You documented the limit that is KNOWN to fail :-)

I'm understanding from our conversation that you might be communicating with a C12.22 endpoint that won't negotiate downward before happily sending you maximum-length UDP packets whether you wish they would or not...

Ralph - I might be pushing too hard on this one - could you provide guidance?

Thanks again for the quick turnaround on this.

Spencer
_______________________________________________
Gen-art mailing list
Gen-art@ietf.org
https://www.ietf.org/mailman/listinfo/gen-art

Reply via email to