一、什么是網(wǎng)絡(luò)編程?
網(wǎng)絡(luò)編程是進(jìn)程間通信的延續(xù)。
IPC:同一臺(tái)電腦上同一系統(tǒng)里的兩個(gè)進(jìn)程間通信。
網(wǎng)絡(luò):不同電腦上(操作系統(tǒng)也可能不一樣)的兩個(gè)進(jìn)程間通信。
互聯(lián)網(wǎng)與因特網(wǎng)
互聯(lián)網(wǎng)(internet):廣義詞,網(wǎng)網(wǎng)相聯(lián)。
因特網(wǎng)(Internet):專有詞,全球小老百姓使用的一個(gè)互聯(lián)網(wǎng)。
網(wǎng)絡(luò)協(xié)議:每一種不同互聯(lián)網(wǎng)都有其對(duì)應(yīng)的一套協(xié)議。
因特網(wǎng)上采用的協(xié)議:TCP/IP協(xié)議
網(wǎng)絡(luò)協(xié)議(Protocol)主要制定如下內(nèi)容:
- 一共需要傳輸多少種數(shù)據(jù)包
- 每個(gè)數(shù)據(jù)包中的二進(jìn)制位含義(這樣的數(shù)據(jù)包也被稱為PDU:Protocol Data Unit)
- 數(shù)據(jù)包的使用次序
ip地址 & 端口號(hào) & MAC地址
- ip地址:
a. 點(diǎn)分十進(jìn)制的字符串 "192.168.0.23" 4個(gè)數(shù)字取值范圍 0~255
b. 連續(xù)四字節(jié)的整型(編程所需的形式)
c. 域名("www.sina.com.cn")
服務(wù)名.機(jī)構(gòu)名.用途名.地區(qū)名
服務(wù)名:www(web服務(wù)、網(wǎng)頁(yè)服務(wù))、ftp、mailto
- 端口號(hào):
兩個(gè)字節(jié)的整型(0~65535)
0~1023:全球通用的一些服務(wù)。例如:網(wǎng)頁(yè):80,文件服務(wù):23等。
自定義的服務(wù)端口號(hào):1024開(kāi)始。 - MAC地址:(硬件地址 網(wǎng)卡地址)
局域網(wǎng)范圍以內(nèi)如何區(qū)分不同網(wǎng)口(網(wǎng)卡)的方法
a. 點(diǎn)分十六進(jìn)制的字符串 "AB.56.F2.23.CD.32" 4個(gè)數(shù)字取值范圍 0~255
b. 連續(xù)六字節(jié)的整型(編程所需的形式)
TCP/IP協(xié)議
TCP/IP五層協(xié)議模型:
- 應(yīng)用層:對(duì)應(yīng)網(wǎng)絡(luò)服務(wù)數(shù)據(jù)(http ftp SMTP POP3 IMAP4 DNS....)
- 傳輸層:進(jìn)程間的傳輸(TCP UDP)
- 網(wǎng)絡(luò)層:電腦間的傳輸(IP)
- 鏈路層:局域網(wǎng)范圍內(nèi)網(wǎng)口到網(wǎng)口的傳輸
- 物理層:用哪種傳輸介質(zhì)以及這種傳輸介質(zhì)如何表示二進(jìn)制位
客戶端 & 服務(wù)器
- 客戶端:享受服務(wù)的進(jìn)程
- 服務(wù)器:提供服務(wù)的進(jìn)程
二、后續(xù)學(xué)習(xí)
應(yīng)用層數(shù)據(jù)的組織
- 應(yīng)用層采用什么協(xié)議?
- 是現(xiàn)成的還是自定義?
傳輸層的功能如何去用
- TCP特點(diǎn)和使用方法
**TCP: Transfer Control Protocol **
面向連接的、可靠的(可靠:確保雙發(fā)傳輸?shù)臄?shù)據(jù)能到達(dá)對(duì)方)。
面向連接:意味著使用TCP進(jìn)行傳輸前,需要通信雙方建立好連接。
連接建立的過(guò)程如下:(三次握手)
1)客戶端發(fā)送連接請(qǐng)求
2)服務(wù)器針對(duì)這個(gè)請(qǐng)求給一個(gè)對(duì)應(yīng)的回應(yīng)
3)客戶端再回給服務(wù)器一個(gè)回應(yīng)的回應(yīng) - UDP特點(diǎn)和使用方法
UDP: User Data Protocol
面向非連接、不可靠的(不可靠的:發(fā)送方只負(fù)責(zé)將數(shù)據(jù)發(fā)出去,確無(wú)法明確對(duì)方是否收到)。
面向非連接:意味著使用UDP進(jìn)行傳輸前,通信雙方不需建立好連接。 - 網(wǎng)絡(luò)編程也被稱為socket編程
能夠發(fā)送和接收數(shù)據(jù)的Socket,必須具備:
a. 本端的地址(即本端的ip地址 + 端口號(hào))
b. 遠(yuǎn)端的地址(即遠(yuǎn)端的ip地址 + 端口號(hào))