Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 88769
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T22:36:43+00:00 2026-05-10T22:36:43+00:00

So I am doing a lot of high performance network programming using Boost::Asio (or

  • 0

So I am doing a lot of high performance network programming using Boost::Asio (or just Asio if you will), and have a pretty solid grasp of the essentials of both TCP and UDP protocols. I am wondering though, because I still don’t consider myself an expert in networking despite my knowledge, what is a good way to frame the essentials of what networking programmers should know, especially for those trying to push the performance of their large networking based applications?

There is a great essay on programmers and what they should know about memory (see below), so I’m wondering if someone has put together something similar for networking.

What every programmer should know about memory

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T22:36:43+00:00Added an answer on May 10, 2026 at 10:36 pm

    Some bullet points off the top of my head of things you should know:

    • How and why TCP works… 3-way handshakes, acknowledgement, delayed ack, nagling, sliding window protocol. There’s a concrete reason for every one of those features… and they can all destroy your application’s performance if handled improperly.
    • UDP multicast… even if you never think you’ll use it, you need to know why it exists so you can make educated decisions when designing systems.
    • IP fragmentation, and the impact of MTU.
    • Binary serialization and network byte ordering (even if you’re just going to use Google proto buffers, it’s nice to understand why they are efficient).
    • Ascii serialization and message framing (what does \r\n\r\n mean in HTTP?)
    • Different I/O dispatch models: Apache-style preforking, thread-per-connection, event-based single-threaded, event-based with worker threads, etc.
    • The impact of buffer-overflow vulnerabilities in a networked app
    • Protocol-based design, as opposed to API- or library-based design
    • asynchronous vs synchronous protocols. Many high-performance systems are asynchronous. HTTP is synchronous unless you use pipelining, and even then, there are many restrictions on what is possible… no out-of-order responses, for example.

    Update: What does protocol-based design mean?

    Consider HTTP, the protocol of the web. Apache, IIS, Lighttpd, Firefox, Opera, WebKit, etc… All of these pieces of software speak HTTP. It’s quite possible that none of them are sharing the code to do so. The downside, of course, is the increased likelihood of bugs due to the net volume of code. There are numerous upsides:

    • Any program can communicate via HTTP, regardless of implementation language
    • Lightweight/embedded environments can pick and choose a subset of the protocol, rather than using the whole thing
    • It’s possible to optimize a protocol handler for particular situations. It’s not possible to optimize a library without sacrificing generality.
    • A variety of different implementations forces library providers to address bugs (rather than just blowing them off because, well, everyone uses the same library).
    • There is no organizational or contractual burden on users of HTTP, no licensing fees.

    When you design a network protocol, you can build yourself several APIs, each tailored towards specific use-cases. Or you can build one, it’s up to you. Networked software components can be upgraded independent of each other. Basically, everything you hear that’s good about Java/C# Interfaces and C++ abstract classes, but applied at the network layer rather than the programming language layer.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 149k
  • Answers 149k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Can I use cookies for this ? Yes, see this… May 12, 2026 at 9:35 am
  • Editorial Team
    Editorial Team added an answer If you develop this application for Windows 7 only, I… May 12, 2026 at 9:35 am
  • Editorial Team
    Editorial Team added an answer I'm a big believer that no matter what type of… May 12, 2026 at 9:35 am

Related Questions

First question on stackoverflow. I have no previous experience of running a high traffic
I'm looking to translate several of my iPhone applications to other (human) languages. I've
So I am doing a lot of php tutorials and I always wonder when
I am doing a RogueLike game, and would like to make the logic for

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.