|
|
|
|
||||||
| comp.protocols.tcp-ip TCP and IP network protocols. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
My program is runing in a ethernet,it works well receiving and send
datagram which is larger than MTU in private network,but it can't recvfrom datagram which is from internet and is larger than MTU. Ethereal can capture the udp packet and the ip fragment packet,why ?how should i do? Thanks in advance. junying.jia jiajunying@sict.ac.cn |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
In article <1160699477.311472.232490@k70g2000cwa.googlegroups .com>,
jiajunying@gmail.com wrote: > My program is runing in a ethernet,it works well receiving and send > datagram which is larger than MTU in private network,but it can't > recvfrom datagram which is from internet and is larger than MTU. > Ethereal can capture the udp packet and the ip fragment packet,why ?how > should i do? > Thanks in advance. > junying.jia > jiajunying@sict.ac.cn What operating system is this? I've never heard of recvfrom() having a limit smaller than 32K (and the 32K limit was over a decade on an old version of SunOS -- it used a signed int for the buffer size). -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me *** *** PLEASE don't copy me on replies, I'll read them in the group *** |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Operating system is windos xp,use winsock2.lib, mtu is 1500, my udp
datagram is 3k Barry Margolin 写é“: > In article <1160699477.311472.232490@k70g2000cwa.googlegroups .com>, > jiajunying@gmail.com wrote: > > > My program is runing in a ethernet,it works well receiving and send > > datagram which is larger than MTU in private network,but it can't > > recvfrom datagram which is from internet and is larger than MTU. > > Ethereal can capture the udp packet and the ip fragment packet,why ?how > > should i do? > > Thanks in advance. > > junying.jia > > jiajunying@sict.ac.cn > > What operating system is this? I've never heard of recvfrom() having a > limit smaller than 32K (and the 32K limit was over a decade on an old > version of SunOS -- it used a signed int for the buffer size). > > -- > Barry Margolin, barmar@alum.mit.edu > Arlington, MA > *** PLEASE post questions in newsgroups, not directly to me *** > *** PLEASE don't copy me on replies, I'll read them in the group *** |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
jiajunying@gmail.com wrote:
> My program is runing in a ethernet,it works well receiving and send > datagram which is larger than MTU in private network,but it can't > recvfrom datagram which is from internet and is larger than MTU. > Ethereal can capture the udp packet and the ip fragment packet,why > ?how should i do? does Ethereal see _all_ the IP fragments of any one UDP datagram? are you running ethereal at the sending side, or the receiving side? are you using regular unicast IP addresses for this? just to be sure, when you send across the internet, things work when the send is smaller than the MTU? rick jones -- firebug n, the idiot who tosses a lit cigarette out his car window these opinions are mine, all mine; HP might not want them anyway... ![]() feel free to post, OR email to rick.jones2 in hp.com but NOT BOTH... |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
jiajunying writes:
> My program is runing in a ethernet,it works well receiving and send > datagram which is larger than MTU in private network,but it can't > recvfrom datagram which is from internet and is larger than MTU. You may have a firewall (or other inbound filter) that prevents non-first fragments from being received from the Internet. Non-first fragments contain IP protocol information, i.e. that they are fragments of a UDP datagram, but lack the protocol-specific header - so there is no UDP port information. Many firewalls/filters are configured to only let UDP packets with specific port numbers in, so they often have trouble with fragments. > Ethereal can capture the udp packet and the ip fragment packet, Well, if Ethereal sees all fragments and can assemble them to a UDP packet, then I don't know what is happening. Check out whether the relevant headers in the fragments (IP id, fragment offset) make sense. Again, some kind of middlebox might have messed with those. -- Simon. |
|
![]() |
| Outils de la discussion | |
|
|