MCU單晶片韌體設計

2016年3月31日 星期四

Socket Option : TCP_NODELAY


Linux Socket Option : TCP_NODELAY


int init_socket(mqtt_broker_handle_t* broker, const char* hostname, short port, int keepalive)
{
int flag = 1;

// Create the socket
if((socket_id = socket(PF_INET, SOCK_STREAM, 0)) < 0)
return -1;

// Disable Nagle Algorithm
if (setsockopt(socket_id, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag)) < 0)
return -2;

struct sockaddr_in socket_address;
// Create the stuff we need to connect
socket_address.sin_family = AF_INET;
socket_address.sin_port = htons(port);
socket_address.sin_addr.s_addr = inet_addr(hostname);

// Connect the socket
if((connect(socket_id, (struct sockaddr*)&socket_address, sizeof(socket_address))) < 0)
return -1;

// MQTT stuffs
mqtt_set_alive(broker, keepalive);
broker->socket_info = (void*)&socket_id;
broker->send = send_packet;

return 0;
}

Disable Nagle Algorithm:  
為了提升TCP傳送效率, 不要送一點資料就送出一個TCP/IP封包, 若只送1 byte , 先不看MAC層header 光TCP+IP Header 就有40byte了, overhead 太大, 所以Nagle 這個人, 就提一個方法, 累積一定的大小才送..
if there is new data to send
  if the window size >= MSS and available data is >= MSS
    send complete MSS segment now
  else
    if there is unconfirmed data still in the pipe
      enqueue data in the buffer until an acknowledge is received
    else
      send data immediately
    end if
  end if
end if


2 則留言 :

  1. Chiều cao khiêm tốn khiến không ít bạn nam ngại ngùng khi giao tiếp, tham gia những bữa tiệc hay những cuộc vui chơi, Bài viết nam chân ngắn nên chọn loại giày nào sẽ mang lại những thông tin hữu ích nhất để bạn có thể lựa chọn được đôi giày thích hợp mà che đi vóc dáng khiêm tốn của mình.

    Hãy cùng tìm hiểu về loại giày này né. Theo khảo sát cho thấy, có rất nhiều thích mang những chiếc giày màu trắng, tuy nhiên những đôi giày màu trắng hay màu sáng thường rất dễ bị vàng, bị úa nếu như giữ gìn không chu đáo. Vậy khi Giày bị ố vàng phải làm sao.

    Đồng hồ là một trong những thương hiệu thời trang được nhiều người sử dụng để phối đồ cũng như quản lí thời gian một cách thích hợp nhất, thương hiệu đồng hồ nổi tiếng trên thế giới có thể bạn quan tâm để lựa chọn cho mình những mặt hàng hiệu.

    Một số gợi ý cách chọn giày cho phái mạnh hợp thời trang và rất cá tính. Bạn có biết Giày Sneaker là gì? thuộc loại giày nào chưa. Đây là một trong những loại giày thời trang được phái mạnh rất ưa chuộng hiện nay đấy.

    Hướng dẫn Cách đeo đồng hồ đẹp và quý phái giúp bạn luôn sang trọng trong mọi lúc, mọi nơi.

    回覆刪除
  2. Trên thị trường nội thất trên TPHCM,noi that van phong giá rẻ TPHCM được lựa chọn và sử dụng rộng rãi hơn hẳn những bàn làm việc của những thương hiệu khác. Với nội thất văn phòng sky được sử dụng rất rộng rãi nhờ vào giá rẻ.

    回覆刪除