UDP資料包一次傳送多大為好?
當然,這個沒有唯一答案,相對於不同的系統,不同的要求,其得到的答案是不一樣的,我這裡僅對
像ICQ一類的傳送聊天訊息的情況作分析,對於其他情況,你或許也能得到一點幫助:
首先,我們知道,TCP/IP通常被認為是一個四層協議系統,包括鏈路層,網路層,運輸層,應用層.
UDP屬於運輸層,下面我們由下至上一步一步來看:
乙太網(Ethernet)資料幀的長度必須在46-1500位元組之間,這是由乙太網的物理特性決定的.
這個1500位元組被稱為鏈路層的MTU(最大傳輸單元).
但這並不是指鏈路層的長度被限制在1500位元組,其實這這個MTU指的是鏈路層的資料區.
並不包括鏈路層的首部和尾部的18個位元組.
所以,事實上,這個1500位元組就是網路層IP資料報的長度限制.
因為IP資料報的首部為20位元組,所以IP資料報的資料區長度最大為1480位元組.
而這個1480位元組就是用來放TCP傳來的TCP報文段或UDP傳來的UDP資料報的.
又因為UDP資料報的首部8位元組,所以UDP資料報的資料區最大長度為1472位元組.
這個1472位元組就是我們可以使用的位元組數。:)
相關推薦
UDP資料包一次傳送多大為好?
當然,這個沒有唯一答案,相對於不同的系統,不同的要求,其得到的答案是不一樣的,我這裡僅對 像ICQ一類的傳送聊天訊息的情況作分析,對於其他情況,你或許也能得到一點幫助: 首先,我們知道,TCP/IP通常被認為是一個四層協議系統,包括鏈路層,網路層,運輸層,應用層. UDP屬於運輸層,下面我們由下至上一步一步
計算機網路_驗證UDP特性(一次未將報文資料讀完,剩餘部分將被丟棄)
一、 思路 伺服器端和客戶端進行報文互動,客戶端每次向伺服器端傳送訊息,伺服器端只讀取5個有效字元,觀察情況: 二、 程式碼實現 #include<netinet/in.h> //struct sockaddr; struct sockaddr_in; #incl
實現一次更新多條資料
實現用一條sql去更新多條語句的前提是多條語句的條件不同,但是更新的欄位及欄位的值都是相同的,這樣才能去更新。 public void updateMoreNumber(String[] ids){ StringBuffer sb = new StringBuffer("up
Linux 網路程式設計——原始套接字例項:傳送 UDP 資料包
乙太網(Ethernet)報文格式(MAC頭部報文格式): IP 報文格式: UDP 報文格式: 校驗和函式: /******************************************************* 功能:
VC++實現UDP資料包傳送
UDP協議的全稱是使用者資料包協議,在網路中它與TCP協議一樣用於處理 UDP資料包,是一種無連線的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP有不提供資料包分組、組裝和不能對資料包進行排序的缺點,也就是說,當報文傳送之後,是無法得知其是否安全完
JAVA使用HBase根據Rowkey批量查詢資料(一次查多條,返回多個記錄)
最近有需求說是根據多個RowKey返回結果集: public static Configuration conf = null; public static Connection connection = null; public static Admin admin = nul
Mongoose - 一次錄入多條資料insertMany
使用 insertMany // 出入資料 { "list":[ { "areaOfPharmacistBackup":"湖北省武漢市黃陂區", "nameOfPharmacistBackup":"魯**", "typeOfPharmacistBackup":"中
oracle一次插入多條資料
insert into 表名(欄位1,欄位2) select '一','二' from dual union all select '三','四' from dual union all
oracle一次插入多條資料(insert all)
問題 公司的專案,有個功能每次使用需要向資料庫插入很多資料,導致頁面等待很長時間才有結果。 資料庫:oracle11g id:採用sequence自增 每次迴圈,都會查詢一次sequence,然後insert一條資料,效能非常低。 改進 改成一次
Ubuntu系統編寫shell指令碼程式一次安裝多個軟體包
#!/bin/sh sudo apt-get install gcc g++ python -y sudo apt-get install gcc g++ python python-dev -y sudo apt-get install mercurial -y sudo apt-get install b
SQL中一次插入多條資料
SQL中insert一次可以插入一條資料,我們有三種方法可以一次性插入多條資料。 1. 語法:select 欄位列表 into 新表 from 源表 注意事項:此種方法新表是系統自動建立,語句執行前不可以存在新表,並且新表只能保留源表的標識列特性,其他約束不能保留。 若只需要源表的資料結構,我們可以在語句中
Oracle一次Insert多條資料
insert all into JK_TB_DATE (fbmmc,fgzjh,fsbmc,fsbxh,fsbbh,db_shuifenyi,db_pihao,db_wuliaobianma) values ('檢測督查科','102','水分測試儀','SDWE-BZDHX
AndroidStudio一次打多個包
功能背景: 因公司專案要求,每次打包都需要打包三個版本,兩個測試版本和一個線上的版本, 並且呼叫不同的baseURL,最開始的做法是每次打包一次就換一個baseURL,然後一個個打包,分別需要打包三次,如果編譯很慢會浪費了很多時間,還需要註釋掉不同的baseUR
Mybatis使用註解的方式一次插入多條資料
ORACLE 對於oracle資料庫:不需要進行額外設定,可以直接在方法上使用註解進行多表的插入 @Insert("INSERT ALL INTO city (id,name,state) VALUES (31002, 'Disc','DISC') INTO city2
Linux C raw socket 傳送ipv4下的簡單udp資料包
問題描述: 在linux下使用C語言和raw socket來簡單實現ipv4下的udp資料包的傳送 參考資源: http://www.pdbuchan.com/rawsock/rawsock.html 解決方案: 下面的程式碼拷貝於"參考資源"中的udp4.c檔案。#inc
matlab一次讀取多幅圖片的方法////////////讀取資料夾中的所有圖片or檔案
方法1: 把檔案的檔名按一定的規律命名,假如:filename1.txt,filename2.txt,...,fielname100.txt,在讀取的時候則可以使用迴圈: for i = 1:100 fileName = ['filename' num2str(i) '.txt']; x = lo
mysql一次插入多條demo測試用資料
1.傻傻的insertINSERT INTO raw_materials.common_picture_setting (PICTURE_SETTING_NAME,PICTURE_SETTING_URL
mybatis怎麼實現一次插入多條資料
前兩種為mybatis框架裡面的程式碼,第三種方法為純java程式碼時jdbc操作 1.複製原有資料庫中的n條記錄直接插入 <!--複製Menu表中的所有資訊複製插入,傳入引數為#{pr
dtd + 復雜元素的子元素出現次數 一次或多次
ges block 珍惜 html XML 1.0 條件 sch version 禮悟: 好好學習多思考,尊師重道存感恩。葉見尋根三二一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉強身心,誠勸且行且珍惜。 xml:1.0
一次下載多個文件
itl cnblogs script log logs html 文件 download nload 一次下載多個文件 JavaScript多文件下載一次下載多個文件