學習筆記,小白可以相互學習,大佬看到能告訴咱理解不對的地方就好了。
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)