5
$\begingroup$

A user posted a question on MSO, asking about where to ask their theoretical computer networking question. Since it's not a practical problem, it's not really a good fit for SO, Network Engineering, Super User, or Server Fault.

The user mentioned that there's no IPv4 tag here, so they didn't think it was even remotely on-topic. I did a couple of quick searches and did find there are some general computer networking questions here.

Before I go and suggest that they come here to ask, (and potentially get 20 angry CS users telling me not to do that :) ) I wanted to get guidance about whether it would be an acceptable question. Here's the question asked on SO (and a few other places) and that's been closed as off topic:

This is a question on how to construct a 50-bit globally unique identifier with sub-second precision using an IPv4 address and a 1-second-resolution timer as stable inputs.

This question is from competitive exam GATE (see-Q-No.-27) , and answer was given by GATE 256 (see-A-no.-27). The original question is:

Every host in an IPv4 network has a 1-second resolution real-time clock with battery backup. Each host needs to generate up to 1000 unique identifiers per second. Assume that each host has a globally unique IPv4 address. Design a 50-bit globally unique ID for this purpose. After what period (in seconds) will the identifiers generated by a host wrap around?

Given that each host has a globally unique IPv4 Address and we have to design 50 – bit unique Id. So, 50 – bit in the sense (32 + 18). So, It is clearly showing that IP Address (32 – bit) followed by 18 bits.

1000 unique Ids → 1Sec

2^(18) unique Ids → 2^(18) / 1000 = 262.144 (my answer).

Note that if I assume 1024 = 1000 (but this is not fair), then answer is is 256.

I think the answer should be in the range of [256 ,263]. What is the reason that the correct/given answer is 256?

My secondary question is: Are non-practical computer networking questions acceptable here, and if so what is the specific guidance I can use when referring users to this site?

Of course I'll also make it clear to anyone I refer here that the quality standards are just as high here as anywhere else in the network, and that they need to carefully and thoroughly check that their question is as well written as they can possibly make it.


Update: The question was re-opened on SO, then closed by a moderator. Regardless of what happened there, I'd still like feedback from the users here about whether the question itself is on-topic for this site, and more importantly, what kinds of non-practical networking questions would be a good fit for CS. Ideally MSO would have a canonical answer that we can point people to, since "Where do I ask about X?" questions all filter through there. (And we get plenty of comments when we get it wrong. :) )

$\endgroup$
  • 3
    $\begingroup$ The sheer amount of numbers in the post and the fact that the answer depends on a specific industry protocol makes me think that this is an exercise in arithmetics, not computer science. My scope may be off, though; let's see what domain experts have to say. $\endgroup$ – Raphael Oct 23 '15 at 13:29
  • 1
    $\begingroup$ @Raphael - That's why I asked about it before sending it here. I'm not sure if that question is on-topic anywhere. I'll also fixed the links to the references in the question. If it's not on topic here, I still would appreciate some feedback from this meta about what kinds of networking questions are ok, so we can use the linked MSO question as a canonical duplicate target for these types of questions. It's a waste of our time and yours to send questions here that will be immediately closed. $\endgroup$ – theB Oct 23 '15 at 13:46
7
$\begingroup$

There are two different questions hidden in your question.

In general, are questions about theoretical networking on-topic here? Sure. If it meets with our quality guidelines and site policies, it is suitable here. Networking is definitely part of the scope of computer science. As our help page on what is on-topic says,

"This site covers theoretical and applied computer science at any level, including but not limited to [...] networks"

So networking is absolutely in-scope for this site, whether theoretical or applied.

Is that particular question a good fit for CS.SE? In my personal opinion, that specific question does not seem like a great fit for us, in its current form, for multiple reasons:

  • It's not a question about networking; it's a question about reading the minds of the person who wrote the answer key for some particular exam statement. The question is "What is the reason that the correct/given answer is 256?" That's not a great question. If you want to know why the answer-key-author thought 256 was the correct answer, then you need to ask them.

    As an aside, in this case, I suspect that the provided answer key corresponds to a design that is not optimal, and the author's design is indeed superior. I might be able to guess a plausible guess at the misconception that the answer-key-author suffered from, but asking me about trying to guess what might have been in the mind of some answer-key-author is not a great question for CS.SE.

  • The question is basically a "check-my-answer" question. Our policy is that such questions are generally not suitable here (to give a crude summary of our policy). You can find our detailed policy explained at What to do when the answer is already part of the question and Questions about correctness of a solution.

    For such questions, often the right approach is for the poster to re-write their question to ask something that allows for a more substantive answer. For instance, one could write a conceptual question, such as "Given a counter with a specific range of values that's incremented at some specific rate, how do I compute how long until it will overflow?" or "Given an integer in the range [0,A-1] and an integer in the range [0,B-1], how many bits does it take to represent the pair of integers?". Or, one could phrase the question as a design question: e.g., "I want to generate a global unique ID based on my IP address and a counter, and I'd like to maximize the time for a particular host's ID to wrap around. I am promised that my IP address will be unique. I have only 50 bits for my unique ID. How should I do this, to maximize the time until wrap-around? What's the optimal design, and what will the wrap-around time be?" What question to ask depends on what specifically the poster is uncertain about.

  • Finally, as Raphael says, it's basically a question about arithmetic. Once you understand the concepts, it's just a matter of doing arithmetic. The poster basically asks us to check his/her arithmetic.

For these reasons, my sense is that the question might not fare so well, if it were posted here on CS.SE.

That said, if the question were re-framed, I think one could come up with a question that would be a much better fit, though it might require some changes to how the question was posed and structured.


More broadly, I'd encourage the poster to consider changing how they conceptualize Stack Exchange and how they use it as a learning tool. This is not an infrequent scenario: someone tries to do an exercise, they get a different answer in the answer key, and then they post a question saying "Which is right, my answer or the answer key?" I don't know whether those kinds of questions are likely to be useful to many other people in the future.

Instead, I think a better approach is for the poster to use the exercise as a tool to help them pinpoint some concept that they are not clear about, and then ask a question about that concept. In other words, use exercises and practice problems/exam problems as a "diagnostic", to diagnose gaps in their understanding, and then use that to help them write a question about the concept they are uncertain about. Personally, I'd prefer to see this site be about concepts, not about arithmetic.


It is important to remember that not every question has a home somewhere on Stack Exchange. There is no guarantee that any particular question will fit somewhere on Stack Exchange; we make no claim or attempt to try to provide a comprehensive network for all possible questions anyone might ever have. So, the fact that it is off-topic for some other Stack Exchange site does not make it any more on-topic here. What's on-topic here needs to be considered on its own merits.


It might not hurt for me to include a reminder that cross-posting on multiple Stack Exchange sites is not permitted.

$\endgroup$
  • $\begingroup$ Sorry about burying the general case question. Arguably that's the more important question to ask. I agree that some questions won't fit in anywhere in the network. The 11 hours I've had to think about that question have also made me completely sure about how tough it would be to make it fit, in its current form, on any site. (More to follow) $\endgroup$ – theB Oct 24 '15 at 1:41
  • $\begingroup$ That said, the possible examples that you proposed give a good base for advice to give anyone, not just this particular user, before sending them here to ask. It's a real disservice when we send people off to ask a question only to have it immediately downvoted and closed. While the same general rules (search first, word carefully, etc) are the same everywhere, the specific standards of each site vary, and I may not be able to pick out some of the finer points as an outsider to a particular site. (One last comment coming.) $\endgroup$ – theB Oct 24 '15 at 1:41
  • $\begingroup$ The cross posting issue is another thing entirely. It's rude to use the shotgun approach to asking. There's an impatience to it that is troubling. The sites here are not instant answer factories. This will definitely be made explicit in the answer I post on the MSO question. It may take some time to put together a detailed answer for that, but I'll comment here when it's posted, so that you and the users here can look at it and make sure that I didn't miss anything important. (Last comment. :) Sorry for spamming your inbox there.) $\endgroup$ – theB Oct 24 '15 at 1:42
  • $\begingroup$ Thanks, @theB, I appreciate how you are looking out for other folks and providing them constructive advice to help them have a good experience on Stack Exchange! I'll look forward to your answer on MSO. $\endgroup$ – D.W. Oct 24 '15 at 1:44
  • $\begingroup$ The answer is posted on MSO. Let me know if the personal pronoun that I arbitrarily chose for you in that answer is the correct/preferred one. Thank you again for your input. $\endgroup$ – theB Oct 24 '15 at 4:47
  • $\begingroup$ @D.W. sir , I've satisfied , Thanks to both of you sir . $\endgroup$ – 1 0 Oct 24 '15 at 6:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .