<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>FWIW: from the UK I can connect to port 80, but get no response
      from the webserver for a HTTP request for the home page.<br>
    </p>
    <p><tt>$ ping osaps.bou.edu.bd</tt><tt><br>
      </tt><tt>PING osaps.bou.edu.bd (103.103.100.21): 56 data bytes</tt><tt><br>
      </tt><tt>64 bytes from 103.103.100.21: icmp_seq=0 ttl=49
        time=252.833 ms</tt><tt><br>
      </tt><tt>64 bytes from 103.103.100.21: icmp_seq=1 ttl=49
        time=253.525 ms</tt><tt><br>
      </tt><tt>^C</tt><tt><br>
      </tt><tt>--- osaps.bou.edu.bd ping statistics ---</tt><tt><br>
      </tt><tt>2 packets transmitted, 2 packets received, 0.0% packet
        loss</tt><tt><br>
      </tt><tt>round-trip min/avg/max/stddev =
        252.833/253.179/253.525/0.346 ms</tt></p>
    <p><tt>$ telnet osaps.bou.edu.bd 80</tt><tt><br>
      </tt><tt>Trying 103.103.100.21...</tt><tt><br>
      </tt><tt>Won't send login name and/or authentication information.</tt><tt><br>
      </tt><tt>Connected to osaps.bou.edu.bd.</tt><tt><br>
      </tt><tt>Escape character is '^]'.</tt><tt><br>
      </tt><tt>GET / HTTP/1.0</tt><tt><br>
      </tt></p>
    <p><tt><< hangs here >></tt></p>
    <p><tt>$ time curl -v osaps.bou.edu.bd</tt><tt><br>
      </tt><tt>* Rebuilt URL to: osaps.bou.edu.bd/</tt><tt><br>
      </tt><tt>*�� Trying 103.103.100.21...</tt><tt><br>
      </tt><tt>* TCP_NODELAY set</tt><tt><br>
      </tt><tt>* Connected to osaps.bou.edu.bd (103.103.100.21) port 80
        (#0)</tt><tt><br>
      </tt><tt>> GET / HTTP/1.1</tt><tt><br>
      </tt><tt>> Host: osaps.bou.edu.bd</tt><tt><br>
      </tt><tt>> User-Agent: curl/7.54.0</tt><tt><br>
      </tt><tt>> Accept: */*</tt><tt><br>
      </tt><tt>></tt><tt><br>
      </tt></p>
    <p><tt><< hangs here >></tt></p>
    <p><tt>* Recv failure: Connection reset by peer<br>
        * stopped the pause stream!<br>
        * Closing connection 0<br>
        curl: (56) Recv failure: Connection reset by peer<br>
        <br>
        real��� 4m3.266s<br>
        user��� 0m0.011s<br>
        sys��� 0m0.020s<br>
      </tt></p>
    <br>
    <p>However, if I request a non-existent page, it's handled
      correctly:<br>
    </p>
    <p><tt>$ curl -v osaps.bou.edu.bd/zxcv</tt><tt><br>
      </tt><tt>...</tt><tt><br>
      </tt><tt><body></tt><tt><br>
      </tt><tt>��� <div id="container"></tt><tt><br>
      </tt><tt>��� ��� <h1>404 Page Not Found</h1></tt><tt><br>
      </tt><tt>��� ��� <p>The page you requested was not
        found.</p>��� </div></tt><tt><br>
      </tt><tt></body></tt><tt><br>
      </tt><tt>* Closing connection 0</tt></p>
    <p>Similarly if I make an invalid HTTP request:</p>
    <p><tt>$ telnet osaps.bou.edu.bd 80</tt><tt><br>
      </tt><tt>
        Trying 103.103.100.21...</tt><tt><br>
      </tt><tt>
        Won't send login name and/or authentication information.</tt><tt><br>
      </tt><tt>
        Connected to osaps.bou.edu.bd.</tt><tt><br>
      </tt><tt>
        Escape character is '^]'.</tt><tt><br>
      </tt><tt>
        <b>bluergh</b></tt><tt><br>
      </tt><tt>
        HTTP/1.1 400 Bad Request</tt><tt><br>
      </tt><tt>
        Date: Sat, 10 Aug 2019 17:21:54 GMT</tt><tt><br>
      </tt><tt>
        Server: Apache/2.2.15 (CentOS)</tt><tt><br>
      </tt><tt>
        Content-Length: 308</tt><tt><br>
      </tt><tt>
        Connection: close</tt><tt><br>
      </tt><tt>
        Content-Type: text/html; charset=iso-8859-1</tt><tt><br>
      </tt> <tt><br>
      </tt><tt>
        <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"></tt><tt><br>
      </tt><tt>
        <html><head></tt><tt><br>
      </tt><tt>
        <title>400 Bad Request</title></tt><tt><br>
      </tt><tt>
        </head><body></tt><tt><br>
      </tt><tt>
        <h1>Bad Request</h1></tt><tt><br>
      </tt><tt>
        <p>Your browser sent a request that this server could not
        understand.<br /></tt><tt><br>
      </tt><tt>
        </p></tt><tt><br>
      </tt><tt>
        <hr></tt><tt><br>
      </tt><tt>
        <address>Apache/2.2.15 (CentOS) Server at osaps.bou.edu.bd
        Port 80</address></tt><tt><br>
      </tt><tt>
        </body></html></tt></p>
    <p><br>
    </p>
    <p>My first reaction is that this may be something to do with MTU.�
      That is:</p>
    <p>1. I connect to the webserver</p>
    <p>2. I send a HTTP request</p>
    <p>3. The webserver starts sending a large request - the next packet
      in the TCP stream has MTU 1500 (say)</p>
    <p>4. But there is a link somewhere which does not support MTU
      1500.� Rather than fragmenting the packets or sending back ICMP
      Fragmentation Needed, it just throws the packets away.</p>
    <p>This could be a combination of an ISP which uses PPPoE (MTU
      1492), and a badly-configured firewall at the institution.</p>
    <p><br>
    </p>
    <p>However, ping doesn't support this theory:</p>
    <p>$ ping -D -s1472 osaps.bou.edu.bd<br>
      PING osaps.bou.edu.bd (103.103.100.21): 56 data bytes<br>
      64 bytes from 103.103.100.21: icmp_seq=0 ttl=49 time=252.326 ms<br>
      64 bytes from 103.103.100.21: icmp_seq=1 ttl=49 time=252.857 ms<br>
      64 bytes from 103.103.100.21: icmp_seq=2 ttl=49 time=252.153 ms<br>
      ^C<br>
      --- osaps.bou.edu.bd ping statistics ---<br>
      3 packets transmitted, 3 packets received, 0.0% packet loss<br>
      round-trip min/avg/max/stddev = 252.153/252.445/252.857/0.300 ms</p>
    <p>(That's for MacOS. Under Linux, use "-Mdo" instead of "-D" to
      prevent fragmentation)</p>
    <p>As far as I can see, 1500-byte packets are working end-to-end.
      (1472 data + 8 bytes ICMP header + 20 bytes IP header = 1500)</p>
    <p><br>
    </p>
    <p>So more likely I think it's a problem with the webserver itself.�
      Maybe it's running some sort of dynamic web page generation
      software which has locked up.� Maybe it's proxying to a back-end
      webserver which has locked up.� This doesn't explain why mobile
      users can see the page, unless the mobile network is doing
      aggressive caching and always returning a cached version of the
      page, or different dynamic content is being returned based on
      source IP address.<br>
    </p>
    <p>Debugging on the target webserver would be the best approach IMO.<br>
    </p>
    <p>HTH,</p>
    <p>Brian.<br>
    </p>
  </body>
</html>