資料內(nèi)容:
1. 一個是如何準(zhǔn)確的定位網(wǎng)絡(luò)上一臺或多臺主機,
2. 另一個就是找到主機后如何可靠高效的進行數(shù)據(jù)傳輸。
在 TCP/IP 協(xié)議中 IP 層主要負(fù)責(zé)網(wǎng)絡(luò)主機的定位,數(shù)據(jù)傳輸?shù)穆酚?,?br />
IP 地址可以唯一地確定 Internet 上的一臺主機。
而 TCP 層則提供面向應(yīng)用的可靠(TCP)的或非可靠(UDP)的數(shù)據(jù)傳輸機
制,這是網(wǎng)絡(luò)編程的主要對象,一般不需要關(guān)心 IP 層是如何處理數(shù)據(jù)的。
目前較為流行的網(wǎng)絡(luò)編程模型是客戶機/服務(wù)器(C/S)結(jié)構(gòu)。即通信雙方
一方作為服務(wù)器等待客戶提出請求并予以響應(yīng)??蛻魟t在需要服務(wù)時向服
務(wù)器提 出申請。服務(wù)器一般作為守護進程始終運行,監(jiān)聽網(wǎng)絡(luò)端口,一
旦有客戶請求,就會啟動一個服務(wù)進程來響應(yīng)該客戶,同時自己繼續(xù)監(jiān)聽
服務(wù)端口,使后來的客戶也 能及時得到服務(wù)。
網(wǎng)絡(luò)協(xié)議是什么
在計算機網(wǎng)絡(luò)要做到井井有條的交換數(shù)據(jù),就必須遵守一些事先約定好的規(guī)則,比
如交換數(shù)據(jù)的格式、是否需要發(fā)送一個應(yīng)答信息。這些規(guī)則被稱為網(wǎng)絡(luò)協(xié)議。
為什么要對網(wǎng)絡(luò)協(xié)議分層
簡化問題難度和復(fù)雜度。由于各層之間獨立,我們可以分割大問題為小問題。
靈活性好。當(dāng)其中一層的技術(shù)變化時,只要層間接口關(guān)系保持不變,其他層不受影
響。
易于實現(xiàn)和維護。
促進標(biāo)準(zhǔn)化工作。分開后,每層功能可以相對簡單地被描述
TCP/IP 四層協(xié)議(數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層)
1. 應(yīng)用層 應(yīng)用層最靠近用戶的一層,是為計算機用戶提供應(yīng)用接口,也為
用戶直接提供各種網(wǎng)絡(luò)服務(wù)。我們常見應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP,
HTTPS,F(xiàn)TP,TELNET 等。
2. 傳輸層 建立了主機端到端的鏈接,傳輸層的作用是為上層協(xié)議提供端到
端的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯控制和流量控制等問題。
該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié),使高層用戶看到的只是在兩個傳
輸實體間的一條主機到主機的、可由用戶控制和設(shè)定的、可靠的數(shù)據(jù)通路。
我們通常說的,TCP UDP 就是在這一層。端口號既是這里的“端”。
3. 網(wǎng)絡(luò)層 本層通過 IP 尋址來建立兩個節(jié)點之間的連接,為源端的運輸層送
來的分組,選擇合適的路由和交換節(jié)點,正確無誤地按照地址傳送給目的
端的運輸層。就是通常說的 IP 層。這一層就是我們經(jīng)常說的 IP 協(xié)議層。
IP 協(xié)議是 Internet 的基礎(chǔ)。
4. 數(shù)據(jù)鏈路層 通過一些規(guī)程或協(xié)議來控制這些數(shù)據(jù)的傳輸,以保證被傳輸
數(shù)據(jù)的正確性。實現(xiàn)這些規(guī)程或協(xié)議的硬件和軟件加到物理線路,這樣就
構(gòu)成了數(shù)據(jù)鏈路,
1 TCP / UDP
1.1 什么是 TCP/IP 和 UDP
TCP/IP 即傳輸控制/網(wǎng)絡(luò)協(xié)議,是面向連接的協(xié)議,發(fā)送數(shù)據(jù)前要先建立
連接(發(fā)送方和接收方的成對的兩個之間必須建 立連接),TCP 提供可靠
的服務(wù),也就是說,通過 TCP 連接傳輸?shù)臄?shù)據(jù)不會丟失,沒有重復(fù),并且
按順序到達(dá)
UDP 它是屬于 TCP/IP 協(xié)議族中的一種。是無連接的協(xié)議,發(fā)送數(shù)據(jù)前不
需要建立連接,是沒有可靠性的協(xié)議。因為不需要建立連接所以可以在在
網(wǎng)絡(luò)上以任何可能的路徑傳輸,因此能否到達(dá)目的地,到達(dá)目的地的時間
以及內(nèi)容的正確性都是不能被保證的。
1.2 TCP 與 UDP 區(qū)別:
TCP 是面向連接的協(xié)議,發(fā)送數(shù)據(jù)前要先建立連接,TCP 提供可靠的服務(wù),
也就是說,通過 TCP 連接傳輸?shù)臄?shù)據(jù)不會丟失,沒有重復(fù),并且按順序到
達(dá);
UDP 是無連接的協(xié)議,發(fā)送數(shù)據(jù)前不需要建立連接,是沒有可靠性;
TCP 通信類似于于要打個電話,接通了,確認(rèn)身份后,才開始進行通行;
UDP 通信類似于學(xué)校廣播,靠著廣播播報直接進行通信。
TCP 只支持點對點通信,UDP 支持一對一、一對多、多對一、多對多;
TCP 是面向字節(jié)流的,UDP 是面向報文的; 面向字節(jié)流是指發(fā)送數(shù)據(jù)時以
字節(jié)為單位,一個數(shù)據(jù)包可以拆分成若干組進行發(fā)送,而 UDP 一個報文只
能一次發(fā)完。
TCP 首部開銷(20 字節(jié))比 UDP 首部開銷(8 字節(jié))要大
UDP 的主機不需要維持復(fù)雜的連接狀態(tài)表