網路相關知識

541732025發表於2014-04-22

OSI七層模型:

OSI七層網路模型

Linux TCP/IP四層概念模型

對應網路協議

應用層(Application

應用層

TFTP, FTP, NFS, WAIS

表示層(Presentation

Telnet, Rlogin, SNMP, Gopher

會話層(Session

SMTP, DNS

傳輸層(Transport

傳輸層

TCP, UDP

網路層(Network

網際層

IP, ICMP, ARP, RARP, AKP, UUCP

資料鏈路層(Data Link

網路介面

FDDI, Ethernet, Arpanet, PDN, SLIP, PPP

物理層(Physical

IEEE 802.1A, IEEE 802.2IEEE 802.11


資料在各層之間的單位都是不一樣的,在物理層資料的單位稱為位元(bit);在資料鏈路層,資料的單位稱為幀(frame);在網路層,資料的單位稱為資料包(packet);傳輸層,資料的單位稱為資料段(segment)。

TCP/UDP的區別:

 

TCP

UDP

是否連線

面向連線

面向非連線

傳輸可靠性

可靠的

不可靠的

應用場合

傳輸大量的資料

少量資料

速度


TCP/IP是一種可靠的網路傳輸協議。要求通訊雙方首先建立連線,之後再進行資料的傳輸(三次握手)。TCP/IP負責保證資料傳輸的可靠性,包括資料的可到達、資料到達的順序等,由於TCP/IP需要保證連線以及資料傳輸的可靠性,因此可能會犧牲一些效能。
三次握手的過程:
tcp標誌位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)
Sequence number(順序號碼) Acknowledge number(確認號碼)
第一次握手:客戶端傳送位碼為syn=1,隨機產生seq number=3626544836的資料包到服務端,服務端由SYN=1知道客戶端要求建立連線。
第二次握手:服務端收到請求後要確認連線資訊
向客戶端傳送ack number=3626544837(客戶端傳送的隨機數+1),,syn=1,ack=1,並隨機產生seq=1739326486的包;
第三次握手:客戶端收到後檢查ack number是否正確(看是否是自己傳送的隨機數+1),
以及位碼ack是否為1,若正確,客戶端會再次傳送ack number=1739326487(服務端隨機數+1),ack=1,服務端收到後,確認seq是否為seq+1,ack=1則建立連線。

UDP/IP是一種不保證資料一定到達的網路傳輸協議,UDP/IP並不直接給通訊的雙方建立連線,而是直接進行資料傳輸,由於不建立連線,所以不能保證資料傳輸的可靠性,因此效能上表現相對較好,但可能會出現資料丟失以及資料亂序的現象。

http、socket、tcp/ip關係:
http是基於應用層上的協議,處於最上層,最終底層還是要依賴tcp/ip的。
socket是處於應用層與tcp/ip層之間的中間軟體抽象層,它是一組介面,相當於一個facade,將複雜的tcp/ip協議族隱藏在socket介面後面。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1146738/,如需轉載,請註明出處,否則將追究法律責任。

相關文章