一. 網(wǎng)絡(luò)應(yīng)用程序設(shè)計模式
C/S - client/server 協(xié)議靈活, 可緩存數(shù)據(jù), 但是開發(fā)量大
B/S - browser/server 跨平臺, 但是協(xié)議單一http/https
二. 協(xié)議概念: 數(shù)據(jù)傳輸和數(shù)據(jù)解釋的規(guī)則, 典型協(xié)議: TCP/UDP, http, FTP, IP, ARP
socket 并不是協(xié)議, 可以理解為網(wǎng)絡(luò)接口, 但是里邊封裝的有協(xié)議(TCP/UDP傳輸層協(xié)議)
三. 分層模型

OSI七層模型.png
- osi 7層
從下往上: 1.物理層 2.數(shù)據(jù)鏈路層 3.網(wǎng)絡(luò)層(用的最多的是IP協(xié)議) 4.傳輸層(用的多的tcp/udp), 5.會話層, 6.表示層, 7.應(yīng)用層(用的多的是http, ftp, ssh) - tcp/ip 4層, 開發(fā)人員只做應(yīng)用層的處理, 其他的內(nèi)核處理
從下往上:
1.網(wǎng)絡(luò)接口/數(shù)據(jù)鏈路層: 物理層, 數(shù)據(jù)鏈路層; 該層對應(yīng)的以太網(wǎng)幀協(xié)議
2.網(wǎng)絡(luò)層: 網(wǎng)絡(luò)層(用的最多的是IP協(xié)議)
3.傳輸層: 傳輸層(用的多的tcp/udp)
4.應(yīng)用層: 會話層, 表示層, 應(yīng)用層(用的多的是http, ftp, ssh)
四. 協(xié)議介紹
(1) 以太網(wǎng)幀協(xié)議(處于物理層, 發(fā)送數(shù)據(jù)時封裝在最外層的), 有系統(tǒng)內(nèi)核處理; 原理: 需要找到對方的mac地址, 然后通信, 所以需要使用ARP協(xié)議(通過IP)先發(fā)送一個請求的ARP數(shù)據(jù)包;

以太網(wǎng)幀協(xié)議.png
不知道的地址,則填ff:ff:ff:ff:ff:ff

發(fā)送請求.png
對方收到請求之后回復(fù), 此時對方會將數(shù)據(jù)填進(jìn)去

回復(fù)請求.png
之后在通信時, 幀類型0800即可通信
(2) 網(wǎng)絡(luò)層協(xié)議, 這里介紹IP協(xié)議, 目前使用的是ipv4, 數(shù)據(jù)包最多條256次

IP數(shù)據(jù)報格式.png
(3) 傳輸層協(xié)議(udp/tcp)

UDP數(shù)據(jù)段.png

TCP數(shù)據(jù)段.png
net映射: http://www.cnblogs.com/OpenCoder/diary/2011/06/29/2093895.html
打洞機(jī)制: 比如語音聊天, 兩個客戶端不能直接通信, 因為路由保護(hù), 但是他們都認(rèn)識一個服務(wù)器, 此時服務(wù)器會將兩者連接起來, 這種模式即為打洞機(jī)制.