位元組序tcp/udp
socket網路程式設計預備知識
ip位址
埠號位元組序
socket
埠號(port)是計算機內部,區分不同應用程式的乙個標識。
答:不同應用程式的埠號不同,以送快遞為例:
埠號,就好比是門牌號一樣,客戶端可以通過ip位址找到對應的伺服器端(類似於快遞員能找到你住的門牌號一樣),但是伺服器端是有很多埠的,每個應用程式對應乙個埠號,通過埠號,客戶端才能真正的訪問到該伺服器。(類似於找到了你住的門牌號,但是你租房子住的,快遞員不知道你住哪一間,這時快遞員會根據你住的那間房的具體房間號送到你面前)。
為了對埠進行區分,將每個埠進行了編號,這就是埠號。
埠號一般由iana (internet assigned numbers authority)管理。
埠號是2個位元組16bit,取值範圍:0~65535。
(1)眾所周知埠號:1~1023
1~255之間為眾所周知埠
256~1023埠通常由unix系統占用
(2)已登記埠:1024~49151
(3)動態或私有埠:49152~65535
檢視埠命令:netstat-atn / -anp
linux系統自帶的tcp客戶端測試工具是:telnet 「ip位址」 「埠號」
linux@ubuntu:
~$ netstat
active internet connections (w/o servers)
proto recv-q send-q local address foreign address state
udp 0
0 localhost:
36084 localhost:domain established
udp 0
0 localhost:
41737 localhost:domain established
udp 0
0 localhost:
56624 localhost:domain established
active unix domain sockets (w/o servers)
proto refcnt flags type state i-node path
unix 16
dgram 8209
/dev/log
unix 3
stream connected 12859
unix 3
stream connected 12845 @/tmp/dbus-zwg1m5cfqh
unix 3
stream connected 13733
unix 3
stream connected 12844 @/tmp/dbus-zwg1m5cfqh
位元組序是指多位元組資料在計算機記憶體中儲存或者網路傳輸時各位元組的儲存順序。一般根據相對於低位位址可分為:
(1)主機位元組序(小端):將低序位元組儲存在低位位址,一般pc中記憶體儲存:小端對齊。
(2)網路位元組序(大端):將高序位元組儲存在低位位址,預設網路通訊:大端對齊。
注:在網路通訊中,傳送方和接收方可能會使用不同的位元組序,為了保證資料傳送接收後能被正確的解析處理,統一規定:資料以高位位元組優先順序在網路上傳輸。它與具體的cpu型別、作業系統等無關,因此資料在傳送前和接收後都需要進行主機位元組序和網路位元組序的轉換。
傳送前:主機位元組序 轉成 網路位元組序
接收後:網路位元組序 轉成 主機位元組序
tcp(transmission control protocol):傳輸控制協議,是一種面向連線的、可靠的、基於位元組流的傳輸層協議;即客戶端和伺服器在連線之前,必須先在雙方建立可靠的tcp連線後,才能進行資料的傳輸。
提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能可靠的從一端傳到另一端。
可靠包括:資料無誤、資料無丟失、資料無失序、資料無重複到達的通訊等。
適用於:
(1)對差錯敏感:檔案傳輸、使用者互動
(2)網路環境差時:無線傳輸
udp(user datagram protocol):使用者資料報協議,是一種無連線的不可靠的傳輸層協議。
因為在資料傳送前不需要建立客戶端和伺服器的連線,沒有超時重發等機制,所以傳輸速度很快,傳輸效率高。
適用於:
(1)網路環境好:區域網
(2)對差錯不敏感:在流**、vod、voip、iptv等網路多**服務中,通常採用udp方式進行實時資料傳輸。
(3)廣播/組播式通訊.
區別:
1) tcp是面向連線的,可靠性高;
udp是基於非連線的,可靠性低。
2) tcp是連線的通訊,需要有四次揮手三次握手、重新確認等連線過程,
會有延時,實時性差,同時過程複雜,也使其易於攻擊;
udp沒有建立連線的過程,因而實時性較強,也稍安全。
3) 在傳輸相同大小的資料時,tcp首部開銷20位元組,udp首部開銷8位元組;
tcp報頭比udp複雜,故實際包含的使用者資料較少。
tcp在ip協議的基礎上新增了序號機制、確認機制、超時重傳機制等,保證傳輸的可靠性,不會丟包或亂序。
udp有丟包,故tcp開銷大,udp開銷較小。
4) 每條tcp連線只能時點到點的;
udp支援一對
一、一對多、多對
一、多對多的互動通訊。
網路埠號
網路埠 一.提出的背景 在多程序的環境下,為了解決兩個主機之間的通訊,但是源主機不知道要傳送訊息給目的主機的哪乙個程序,所以,必須使用埠號來確定目的主機上的唯一的乙個程序。埠號應用於傳輸層。二.分類 一 按照埠號分為3類 1 公共埠 從0 1023,總共1024個這些埠的通訊都明確表明了某種服務的協...
網路常用埠號
運輸層的埠號分為服務端 客戶端使用的埠號兩大類 服務端使用的埠號 埠號範圍 熟知埠號 0 1023 登記埠號 1024 49151 客戶端使用的埠號 49152 65535 http 是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準 tcp 用於從www伺服器傳輸超文字...
網路埠號的型別
什麼是埠?在網路技術中,埠 port 大致有兩種意思 一是物理意義上的埠,比如,adsl modem 集線器 交換機 路由器用於連線其他網路裝置的介面,如rj 45埠 sc埠等等。二是邏輯意義上的埠,一般是指tcp ip協議中的埠,埠號的範圍從0到65535,比如用於瀏覽網頁服務的80埠,用於ftp...