《網路程式設計懶人入門(一):快速理解網路通訊協議(上篇)》
《網路程式設計懶人入門(二):快速理解網路通訊協議(下篇)》
一:五層模型
物理層、資料鏈路層、網路層、傳輸層、應用層
1、物理層
使用光纜、電纜、雙絞線、無線電波等連線電腦,負責傳送0和1的電訊號
2、資料鏈路層
多少個電訊號為一組,確定六0和1的分組方式
a:乙太網協議
規定一組電訊號構成一個資料包,叫做幀。每一幀分成兩個部分:標頭和資料。
標頭:包含資料的說明項
b:MAC地址
乙太網規定,連入網路的所有裝置,都必須具有網路卡介面。網路卡的地址,就是資料包的傳送和接收地址,叫做MAC地址。(48個二進位制位)
c:廣播
一:一塊網路卡知道另一塊網路卡的MAC地址:ARP協議
二:怎麼把資料包送到接收方:向本網路所有計算機傳送,每臺計算機自己判斷
3、網路層
屬於同一子網路:廣播方式傳送;否則採用路由轉發
MAC地址是繫結在網路卡上的,網路地址管理員分配
a:IP協議
規定網路地址的協議,叫做IP協議
子網掩碼:32位二進位制數字,網路部分全為1,主機部分為0。
判斷兩臺計算機是否處於同一個子網路:將兩個IP地址與子網掩碼進行AND運算,結果相同在同一個子網路
b:IP資料包
把IP資料包直接放進乙太網資料包的“資料”部分
c:ARP協議
IP資料包放在乙太網資料包傳送,必須知道對方的MAC地址和IP地址,從IP地址得到MAC地址:
1):兩臺主機不再同一個子網路,把資料包傳到兩個子網路的閘道器,閘道器處理
2):在同一個子網路。ARP發出一個資料包,包含要查詢主機的IP地址,所在子網路的每一臺主機都收到資料包,取出IP地址與自身IP比較,相同做出回覆。
4、傳輸層
傳輸層的功能就是建立端到端的通訊,網路層建立主機到主機的通訊。
表示資料包供哪個程式(程式)使用的引數:埠。
埠有16個二進位制位,0—1023的埠被系統佔用。Unix系統把主機+埠,叫套接字
a:UDP協議
UDP協議幾乎就是在資料前面加上埠號,也是由“標頭”和“資料”組成。把UDP資料包放入IP資料包的資料部分。
b:TCP協議
UDP協議:比較簡單,容易實現,可靠性差
TCP協議:資料不會遺失,過程複雜,實現困難
5、應用層
規定應用程式的資料格式