網絡基礎1
網絡的劃分
- 局域網(覆蓋範圍在1000m內)
- 城域網(覆蓋範圍在20㎞內)
- 廣域網(覆蓋範圍大於20km),(互聯網 / 因特網是更大的國際性的廣域網- - - 容災性更強,以太網 / 令牌環網 是組網方式)
IP地址
uint32_t - - - 無符號4個字節的整數
1、在網絡中作爲主機的唯一標識,網絡中主機之間的定位(哪個主機與哪個主機之間進行通信),通過IP地址進行標識。
2、網絡中每條數據中都會包含:源端的IP地址 / 對端的IP地址;
3、ipv4 : uint32_t - - -DHCP/NAT
ipv6 : uint8_t addr[16] - - - 推廣度還很低
端口號
uint16_t - - -無符號2個字節的整數
在一臺主機上唯一標識一個進程 - - - - 編寫通信程序的時候,必須告訴計算機,發往哪個端口的數據應該交給我處理;
一個端口只能被一個進程佔用,然而一個進程可以使用多個端口
在網絡通信的每條數據中,都會包含有 源端端口 / 對端端口 - - - 標識了這個數據從哪個進程發送出來,要交給哪個進程處理。
網絡通信協議
網絡通信證的數據格式約定,遵循統一通信協議標準,才能實現實質通信,實現網絡互聯
協議分層
根據通信場景的不同,提供的服務不同,使用的協議不同進行的層次劃分
典型協議分層
OSI七層參考模型:應用層、表示層、會話層、傳輸層、網絡層、鏈路層、物理層。
TCP/IP五層模型:應用層、傳輸層、網絡層、鏈路層、物理層。
- 應用層:負責應用程序之間如何溝通;HTTP / FTP / DNS / DHCP…
- 傳輸層:負責進程之間的數據傳輸; TCP / UDP
- 網絡層:負責地址管理與路由選擇; IP / 路由器
- 鏈路層:負責相鄰設備之間的數據傳輸; 以太網協議 / 交換機
- 物理層:負責物理光電信號的傳輸; 以太網協議 / 集線器
網絡通信數據的封裝與分用流程
**主機字節序:一個主機字節序的大小端取決於cpu架構 - - - X86 / MIPS **
int a =0x 01 02 03 04 -> 高位 000000001 00000010 00000011 00000100 低位
uchar *b = (uchar *)&a 內存低地址 b[0] b[1] b[2] b[3] 內存高地址
大端字節序:低地址存高位 b[0]=01、 b[1]=02、 b[2]=03、 b[3]=04
小端字節序:低地址存低位 b[0] =04、 b[1]=03、 b[2]=02、 b[3]=01
主機字節序跟網絡通信的關係:不同主機字節序的主機進行通信容易造成數據二義性。