Linux網絡編程——網絡基礎知識

學習筆記,小白可以相互學習,大佬看到能告訴咱理解不對的地方就好了。


1.Internet歷史

"冷戰”的產物,有興趣去搜索。

2.網絡體系結構

網絡體系結構即是指網絡的層次結構和每層所使用的協議的集合。
2類非常重要的體系結構:OSI與TCP/IP
(用來檢測網絡傳輸中差錯的傳輸控制協議TCP)
(專門負責對不同網絡進行互聯的互聯網協議IP)

OSI七層模型:由底層開始往上依次爲 物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層
TCP/TP四層:由底層開始往上依次爲 網絡接口與物理層,    網絡層,傳輸層,                               應用層

常用協議:
TCP傳輸控制協議
IP網間協議
UDP用戶互數據報協議
ICMP互聯網控制信息協議
SMTP簡單郵件傳輸協議
SNMP簡單網絡管理協議
HTTP超文本傳輸協議
FTP文件傳輸協議
ARP地址解析協議

2.1UDP和TCP
共同點:同爲傳輸層協議
不同點:TCP:優點:有連接,可靠          缺點:效率較低
UDP:缺點:無連接,不可靠      缺點:效率較高
TCP協議特點:是一種面向連接的傳輸層協議,它能提供高可靠性通信(數據無誤,數據無丟失,數據無失序,數據無重複)
UDP協議特點:用戶數據報協議,是不可靠的無連接協議。在數據發送之前不需要進行連接,所以可進行高效率的數據傳輸


3.socket(通信的渠道)

1.是一個編程接口,函數接口:創建socket套接字
2.文件描述符可以實現不同主機不同平臺等之間的通信,特殊的文件描述符
3.使用範圍:可以使用於TCP/IP(1.TCP:流式套接字,面向連接、數據可靠;2.UDP:數據報套接字,無連接、不保證數據可靠);還可以使用網絡層的ICMP協議(原始套接字)
4.使用原因:主要是解決不同主機之間數據通信,並且保證數據的高效傳輸。即通過socket套接字文件描述符實現。
5.類型以及位置:
流式套接字(SOCK_STREAM):     位於傳輸層
數據報套接字(SOCK_DGRAM):   位於傳輸層
原始套接字(SOCK_RAW): 跳過傳輸層

3.IP地址(通信的位置)

IP地址 = 網絡地址 (+子網號)+ 主機地址
1.IP地址是Internet中主機的標識
主機要與別的機器通信必須具有一個IP地址。IP地址爲32位(IPv4),128(IPv6)
2.數據包在發送的過程中,每一個數據包都會攜帶目的IP和源IP
3.IP地址的表現形式:人識別的是點分形式的IP地址,例如:192.168.2.39;計算機識別的是32位無符號整形數(網絡字節序的方式)。
  4.IP地址分類:五類()用途:1.ABC:通用IP地址;2. D:多點廣播;3. E:目前未使用
  5.子網掩碼:網絡地址=IP地址 & 子網掩碼;  主機地址=IP地址 & ~子網掩碼
  (例:IP地址192.168.2.1,子網掩碼255.255.255.234,求還可以連接多少臺主機?
234轉成2進制是11101011取反爲00010101在位與上11111111 = 00010101 = 21
21 - 2 = 19 (減去2是因爲主機和廣播各佔據了一個)

4.端口號(尋找服務器或者客戶端所在進程)

 1.用來標識服務器或者客戶端運行的進程,但是端口號和進程是相互對立
2.在TCP與UDP當中端口號相互獨立

5.字節序

網絡中傳輸的數據必須按網絡字節序,即大端字節序(字節高位在內存中放在存儲單元低位)
小端(高地址放在存儲數據的高位):與大端相反

  主機字節序轉換成網絡字節序

  u_long htonl (u_long hostlong)

   u_short htons (u_short short)

  網絡字節序轉換成主機字節序

u_long ntohl(u_long hostlong)

u_short ntohs(u_short short)

發佈了31 篇原創文章 · 獲贊 21 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章