1、URI 和 URL
URI 統(tǒng)一資源標(biāo)識符(Uniform Resource Identifier),用于標(biāo)識互聯(lián)網(wǎng)上某一資源;URL 統(tǒng)一資源定位符(Uniform Resource Locator),標(biāo)識資源,指出訪問資源的方式;URL 是 URI 的子集。
2、OSI七層模型
①應(yīng)用層(Application Layer)提供為應(yīng)用軟件而設(shè)的接口,以設(shè)置與另一應(yīng)用軟件之間的通信。例如:?HTTP,HTTPS,F(xiàn)TP,TELNET,SSH,SMTP,POP3等。
②表達層(Presentation Layer)把數(shù)據(jù)轉(zhuǎn)換為能與接收者的系統(tǒng)格式兼容并適合傳輸?shù)母袷健?/p>
③會話層(Session Layer)負(fù)責(zé)在數(shù)據(jù)傳輸中設(shè)置和維護計算機網(wǎng)絡(luò)中兩臺計算機之間的通信連接。
④傳輸層(Transport Layer)把傳輸表頭(TH)加至數(shù)據(jù)以形成數(shù)據(jù)包。傳輸表頭包含了所使用的協(xié)議等發(fā)送信息。例如:TCP、UDP等。
⑤網(wǎng)絡(luò)層(Network Layer)決定數(shù)據(jù)的路徑選擇和轉(zhuǎn)寄,將網(wǎng)絡(luò)表頭(NH)加至數(shù)據(jù)包,以形成分組。網(wǎng)絡(luò)表頭包含了網(wǎng)絡(luò)數(shù)據(jù)。例如:互聯(lián)網(wǎng)協(xié)議(IP)等。
⑥數(shù)據(jù)鏈路層(Data Link Layer)負(fù)責(zé)網(wǎng)絡(luò)尋址、錯誤偵測和改錯。當(dāng)表頭和表尾被加至數(shù)據(jù)包時,會形成幀。數(shù)據(jù)鏈表頭(DLH)是包含了物理地址和錯誤偵測及改錯的方法。數(shù)據(jù)鏈表尾(DLT)是一串指示數(shù)據(jù)包末端的字符串。例如以太網(wǎng)、無線局域網(wǎng)(Wi-Fi)和通用分組無線服務(wù)(GPRS)等。
⑦物理層(Physical Layer)在局部局域網(wǎng)上傳送數(shù)據(jù)幀(data frame),它負(fù)責(zé)管理計算機通信設(shè)備和網(wǎng)絡(luò)媒體之間的互通。包括了針腳、電壓、線纜規(guī)范、集線器、中繼器、網(wǎng)卡、主機適配器等。
3、TCP/IP四層模型
①應(yīng)用層:應(yīng)用層是大多數(shù)普通與網(wǎng)絡(luò)相關(guān)的程序為了通過網(wǎng)絡(luò)與其他程序通信所使用的層。這個層的處理過程是應(yīng)用特有的;數(shù)據(jù)從網(wǎng)絡(luò)相關(guān)的程序以這種應(yīng)用內(nèi)部使用的格式進行傳送,然后被編碼成標(biāo)準(zhǔn)協(xié)議的格式。每一個應(yīng)用層協(xié)議一般都會使用到傳輸層協(xié)議TCP和UDP協(xié)議之一:
運行在TCP協(xié)議上的協(xié)議:
HTTP(80端口),主要用于普通瀏覽。
HTTPS(443端口),HTTP協(xié)議的安全版本。
FTP(20和21端口),由名知義,用于文件傳輸。
POP3(110端口),收郵件用。
SMTP(25端口),用來發(fā)送電子郵件。
SSH(22端口),用于加密安全登陸用。
運行在UDP協(xié)議上的協(xié)議:
DHCP(67端口,動態(tài)主機配置協(xié)議),動態(tài)配置IP地址。
其他:
DNS(Domain Name Service,域名服務(wù)),用于完成地址查找,郵件轉(zhuǎn)發(fā)等工作(運行在TCP和UDP協(xié)議上)。
SNMP(Simple Network Management Protocol,簡單網(wǎng)絡(luò)管理協(xié)議),用于網(wǎng)絡(luò)信息的收集和網(wǎng)絡(luò)管理。
ARP(Address Resolution Protocol,地址解析協(xié)議),用于動態(tài)解析以太網(wǎng)硬件的地址。
②傳輸層:解決諸如端到端可靠性(數(shù)據(jù)是否已經(jīng)到達目的地?)和保證數(shù)據(jù)按照正確的順序到達這樣的問題。TCP、UDP都是傳輸層協(xié)議。
③網(wǎng)絡(luò)層:解決在一個單一網(wǎng)絡(luò)上傳輸數(shù)據(jù)包的問題。IP協(xié)議是網(wǎng)絡(luò)層協(xié)議。
④數(shù)據(jù)鏈路層:它是數(shù)據(jù)包從一個設(shè)備的網(wǎng)絡(luò)層傳輸?shù)搅硗庖粋€設(shè)備的網(wǎng)絡(luò)層的方法。這個過程能夠在網(wǎng)卡的軟件驅(qū)動程序中控制或者專用芯片中控制。這將完成如添加報頭準(zhǔn)備發(fā)送、通過實體介質(zhì)實際發(fā)送這樣一些數(shù)據(jù)鏈路功能。另一端,鏈路層將完成數(shù)據(jù)幀接收、去除報頭并且將接收到的包傳到網(wǎng)絡(luò)層。
(注:TCP(Transmission Control Protocol, 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。與之對應(yīng)的是UDP(User Datagram Protocol ,用戶數(shù)據(jù)報協(xié)議),是不可靠的傳輸層協(xié)議。)
4、TCP 三次握手(連接)
①客戶端發(fā)送 SYN報文給服務(wù)器端,序列號是n,進入 SYN_SEND 狀態(tài)。
②服務(wù)器端收到 SYN 報文,回應(yīng)一個ACK(序列號是n+1)同時發(fā)一個 SYN (序列號是m),進入 SYN_RECV 狀態(tài)。
③客戶端收到服務(wù)器端的 SYN 報文,回應(yīng)一個 ACK(序列號是m+1)報文,進入 Established 狀態(tài)。

5、TCP 四步揮手(斷開)
①客戶端發(fā)送一個 FIN ,告訴服務(wù)器想關(guān)閉連接。
②服務(wù)器收到這個 FIN ,發(fā)回一個 ACK。
③服務(wù)器通知應(yīng)用程序關(guān)閉網(wǎng)絡(luò)連接,應(yīng)用程序關(guān)閉后通知服務(wù)器。服務(wù)器發(fā)送一個 FIN 給客戶端 。
④客戶端發(fā)回 ACK 報文確認(rèn)。

原因:因為服務(wù)端的 LISTEN 狀態(tài)下的 SOCKET 當(dāng)收到客戶端建立連接請求的SYN 報文后,它可以把 ACK 和 SYN ( ACK 起應(yīng)答作用,而 SYN 起同步作用)放在一個報文里來發(fā)送。但關(guān)閉連接時,當(dāng)服務(wù)器收到客戶端的 FIN 報文通知時,服務(wù)器只能發(fā)一個回應(yīng)報文ACK:“哦,我知道了”,然后通知應(yīng)用程序。應(yīng)用程序完成全部數(shù)據(jù)發(fā)送并確定可以終止了,服務(wù)器才能發(fā)送FIN告訴客戶端可以真正斷開連接了。所以這一步ACK報文和FIN報文需要分開發(fā)送,因此多了一個步驟。
6、TCP 報文格式

ACK : TCP協(xié)議規(guī)定,只有ACK=1時有效,也規(guī)定連接建立后所有發(fā)送的報文的ACK必須為1。
SYN(SYNchronization) : 在連接建立時用來同步序號。當(dāng)SYN=1而ACK=0時,表明這是一個連接請求報文。對方若同意建立連接,則應(yīng)在響應(yīng)報文中使SYN=1和ACK=1. 因此, SYN置1就表示這是一個連接請求或連接接受報文。
FIN (finis)即完,終結(jié)的意思, 用來釋放一個連接。當(dāng) FIN = 1 時,表明此報文段的發(fā)送方的數(shù)據(jù)已經(jīng)發(fā)送完畢,并要求釋放連接。