認識網絡
1.網絡發展史
ARPnetA(阿帕網)->internet(因特網)->移動互聯網->物聯網
2.局域網與廣域網
局域網
概念:的縮寫是LAN(local area network),顧名思義,是個本地的網絡,只能實現小范圍短距離的網絡通信。我們的家庭網絡是典型的局域網。電腦、手機、電視、智能音箱、智能插座都連在路由器上,可以互相通信。
廣域網
概念:廣域網是相對于局域網來講的,局域網傳輸距離比較近,只能是一個小范圍的,如果需要長距離的傳輸,局域網是無法架設的。比如你在的公司總部在北京,三個分部分別在上海,深圳,成都,局域網明顯是無法實現的。
實現方式:通過因特網(寬帶連接,便宜)
? ? ? ? ? ? ? ? ? 通過廣域專線(安全,使用一條自己的專用線路來傳輸數據,不允許別的設備接入)
3.光貓(了解)
概念:光貓是一種類似于基帶modem(數字調制解調器)的設備,和基帶modem不同的是接入的是光纖專線,是光信號。用于廣域網中光電信號的轉換和接口協議的轉換,接入路由器,是廣域網接入。
光貓的作用:將光(模擬)信號轉化為數字信號
早期應用:電話線
現在應用:光纖
4.路由器?
概念(作用):用于連接局域網和外網
前面說了你的設備可以連接路由器來通信,你在你家這個區域設備之間連接在一起,但是你還要和外界通信,路由器就是把你家庭這個區域的網絡和外部網絡連接,你就能通過路由器提供的網絡和外部聯系。
路由器需要區分WAN口和LAN口,WAN口是接外網的(從Modem出來的或者從上一級路由器出來的),LAN口是接內網的,現在路由器都帶無線功能,本質上無線接入就是LAN。
5.交換機與路由器
交換機:用于局域網內網的數據轉發(就是處理數據,像一個物流中心,管理貨物(數據)運輸)
路由器:用于連接局域網和外網,也能進行數據轉發
注:現在大部分路由器都有有交換機的功能;
???????但是交換機沒有IP分配和IP尋址的功能,所以交換機沒有路由器的功能。
6.網線
網線就是數據傳輸的通路(就像道路一樣)
IP地址
1.基本概念
什么是IP地址
(1)IP地址是Internet中主機的標識(主機的身份證,如果有人要我給你送一個蘋果(數據),你沒有身份證,你怎么證明你是我要找的人)
(2)Internet中的主機要與別的機器通信必須具有一個IP地址
(3)IP地址為32位(IPv4)或者128位(IPv6)
(4)IPV4表示形式:常用點分十進制形式,如202.38.64.10,最后都會轉換為一個32位的無符號整數。
補充知識:
NAT設備(網絡地址轉換)
功能:NAT設備的主要功能是將內部私有IP地址轉換為公共IP地址,或反向操作,以便在局域網和外部網絡(如互聯網)之間進行通信。
工作原理:
當局域網內的設備訪問互聯網時,NAT設備記錄設備的內部IP地址和源端口,并用公共IP地址替換。
響應的流量也會經過NAT設備,NAT通過記錄的映射關系將數據包發送回正確的內部設備。
作用對象:NAT設備用于管理與外部網絡(如互聯網)的通信,通常作為路由器的一部分。
DHCP服務器(動態主機配置協議)
功能:DHCP服務器的主要任務是自動分配IP地址、子網掩碼、默認網關和DNS服務器ip等網絡配置給網絡中的設備(客戶端),簡化網絡管理。
工作原理:
當一個設備(如電腦或手機)首次連接到網絡時,它會發送一個DHCP請求。
DHCP服務器接收到請求后,從預設的IP地址池中分配一個可用的IP地址,并返回給客戶端。
作用對象:DHCP服務器專注于局域網內部的IP地址管理。
2.網絡號/主機號(二級劃分)
IP地址的組成:網絡號+主機號
網絡號:是一個局域網的標志,表示這個主機所屬的網段(局域網)
主機號:標識在本網段內的ID,同一局域網不能重復(相當于你的主機在這個局域網范圍內的編號)
不同的局域網網絡號是不一樣的,主機號可能和別的局域網內的主機一樣但是組合在一起的IP地址就不會一樣,就像你的身份證,你的所屬地編號可能有很多人和你一樣,但是后面哈有出生年日期和男女標識以及分配順序,這就決定了你的身份唯一性,但是又能找出很多同一性(所屬地等等)。
3.IP地址分類
IP地址分類
各個類的范圍:
A類:1.0.0.1~126.255.255.254
B類:128.0.0.1~~191.255.255.254
C類:192.0.0.1~~223.255.255.254
D類(組播地址):224.0.0.1~~239.255.255.254
E類:240.0.0.1~~247.255.255.254
特殊的IP地址
0.0.0.0:在服務器中,0.0.0.0指的是本機上的所有IPV4地址,如果一個主機有兩個IP地址,192.168.1.1 和 10.1.2.1,并且該主機上的一個服務監聽的地址是0.0.0.0,那么通過兩個ip地址都能夠訪問該服務
127.0.0.1:回環地址/環路地址,所有發往該類地址的數據包都應該被loop back(Loopback通常指網絡或系統中的一種自我測試機制,允許信號或數據從輸出端返回到輸入端而不經過外部設備。常見于網絡協議、音頻接口、軟件開發等領域)。
網絡地址: 每一個網段主機號為0的地址; 如:192.168.50.222-->192.168.50.0 它是網絡中的一個特殊地址,不能被分配給任何具體的主機(主機號為0)
廣播地址: 主機號最大的地址是該網段的廣播地址 如:192.168.50.222的廣播地址是192.168.50.255
全網廣播地址:255.255.255.255
終端輸入ifconfig可以查看自己當前設備的網絡配置信息(包含IPV4,子網掩碼,廣播地址等)
4 子網掩碼
子網掩碼:(1)是一個32位的整數,作用是將某一個IP劃分成網絡地址和主機地址;
? ? ? ? ? ? ? ? ? (2)子網掩碼長度是和IP地址長度完全一樣;
特點:網絡號全為1,主機號全為0;
公式:網絡地址=IP & MASK(子網掩碼)
???????????主機地址= IP& ~MASK(子網掩碼取反)
5.三級劃分
作用: 重新劃分網絡號和主機號 , 也就是重新組網 , 從而提高資源利用率
二級劃分 IP :IP地址= 網絡號 + 主機號(把IP地址分為兩個部分)
三級劃分 IP :IP地址= 網絡號 + 子網號 + 主機號(把IP地址分為三個部分,把主機號分為子網號和主機號)
練習:
1.B類地址的子網掩碼怎么寫?????????????????????????????????????????255.255.0.0
2.一個IP地址為192.168.3.183,計算其網絡號與主機號
子網掩碼:255.255.255.0 網絡號:192.168.3.0 主機號:0.0.0.183
3.B類地址,同一網段最多可以連接多少個主機?????????????2^16-2(去掉網絡地址和廣播地址)
4.如果有800臺電腦, 在不浪費ip情況下, 選用哪個網段????B
5.某公司有四個部門:行政、研發1、研發2、營銷,每個部門各50臺計算機接入公司局域網,如果要在192.168.1.0網段為每個部門劃分子網,子網掩碼應該怎么設置,每個子網的地址范圍分別是什么?
分析:首先確定使用第幾類IP地址合適,要求能表示兩百臺計算機,資源利用率越高越好;這里還要求我們把主機號分為子網號和主機號,子網號來表示部門,主機號才表示各個電腦;再確定子網號應該使用幾位,兩位就夠了,00,01,10,11,這個時候我們就確定了IP地址應該是網絡號(已有)+子網號(四個部門)+主機號;A類主機號十六位,十六位減去兩位子網號是14位,太多了,資源浪費,能不能再少點,B類八位主機號減去兩位子網號是六位,2的六次方是64,可以容下一部門五十個人,所以選擇B類IP地址。
確定格式:網絡號(16位)+子網號(2位)+主機號(6位)
答案:
行政:? ?192.168.1.00 00 0000~00 11 1111? =?192.168.1.0~~192.168.1.63
研發一:192.168.1.01 00 0000~01 11 1111?=?192.168.1.64~~192.168.1.127
研發二:192.168.1.10 00 0000~10 11 1111?= 192.168.1.128~~192.168.1.191
營銷:? ? 192.168.1.11 00 0000~11 11 1111 = 192.168.1.192~~192.168.1.255
子網掩碼:255.255.255.11 00 0000 = 255.255.255.192
網絡模型
1.網絡的體系結構
網絡采用分而治之的方法設計,將網絡的功能劃分為不同的模塊,以分層的形式有機組合在一起。每層實現不同的功能,其內部實現方法對外部其他層次來說是透明的。每層向上層提供服務,同時使用下層提供的服務
網絡體系結構即指網絡的層次結構和每層所使用協議的集合
兩類非常重要的體系結構:OSI與TCP/IP
2.OSI模型(ISO國際標準化組織)
OSI模型是最理想的模型,適用于教學和理解,一般不使用這種但是要記住。
應用層:指定特定應用的協議,文件傳輸,文件管理,電子郵件等。
表示層:確保一個系統應用層發送的消息可以被另一個系統的應用層讀取,編碼轉換,數據解 析,管理數據加密,解密;
會話層:通信管理,負責建立或者斷開通信連接
傳輸層:端口號,數據傳輸到具體那個進程程序(端到端)
網絡層:路由器中是有算法的,ip,(主機到主機)(路由的轉發)
鏈路層:格式變為幀(把數據分成包,一幀一幀的數據進行發送)
物理層:傳輸的是bit流(0與1一樣的數據),物理信號,沒有格式
3.TCP/IP模型(規范)
應用層:應用協議和應用程序的集合
傳輸層:決定數據交給機器的哪個任務(進程)去處理,通過端口尋址
(進程一定有進程號,不一定有端口號,端口號只有在進行網絡通信才有)
網絡層:提供設備到設備的傳輸,可以理解為通過IP尋址機器。
網絡接口和物理層:屏蔽硬件差異(驅動),向上層提供統一的操作接口
OSI和TCP/IP模型對應關系圖
?4.常見協議
應用層:
SSH:加密協議
telnet:遠程登錄協議
FTP:文件傳輸協議
HTTP:超文本傳輸協議
DNS:域名解析協議 (將人類易于記憶的域名(如www.baidu.com)轉換為計算機使用的IP地址(如192.0.2.1))
SMTP/POP3:郵件傳輸協議
傳輸層:
TCP:傳輸控制協議
UDP:用戶數據報協議
網絡層:
IP(IPV4/IPV6):網間互連的協議
ICMP:網絡控制管理協議,ping命令使用
IGMP:網絡分組管理協議,廣播和組播使用
ARP:地址解析協議 IP-->MAC
RARP:反向地址轉換協議 MAC-->IP
網絡接口和物理層:
ppp:點對點協議
Ethernet:是一種常見的局域網技術,使用MAC地址進行幀的傳輸和接收
Wi-Fi:用于無線局域網的數據傳輸,通常基于IEEE 802.11標準
1.DNS
由于使用IP地址來指定計算機不方便人們記憶,且輸入時候容易出錯,用字符標識網絡中計算機名稱方法。
這種命名方法就像每個人的名字,這就是域名(Domian Name )
域名服務器(Domain Name server):用來處理IP地址和域名之間的轉換。
域名系統(Domain Name System,DNS):域名翻譯成IP地址的軟件DNS
域名結構:
例如域名 www.baidu.com.cn 從右向左看:
1.cn為高級域名,也叫一級域名,它通常分配給主干節點,取值為國家名,cn代表中國
2.com為網絡名,屬于二級域名,它通常表示組織或部門
中國互聯網二級域名共40個,edu表示教育部門,com表示商業部門,gov表示政府,軍隊mil等等
3.baidu為機構名,在此為三級域名,表示百度
4.www:萬維網world wide web,也叫環球信息網,是一種特殊的信息結構框架。
DNS工作流程:
DNS黑客技術:
2.TPC與UDP:
相同點:
UDP TCP 協議都存在于傳輸層,全雙工通信
不同點:
TPC(傳輸控制協議):
1.全雙工通信、面向連接、可靠
2.是一種面向連接的傳輸層協議,它能提供高可靠性通信(即數據無誤、數據無丟失、數據無失序、數據無重復到達的通信)。
3.適用場景:
(1)發送小尺寸數據(如對DNS服務器進行IP地址查詢時)
(2)適合于廣播/組播式通信中。
(3)MSN/QQ/Skype等即時通訊軟件的點對點文本通訊以及音視頻通訊通常采用UDP協議
4.高可靠原因:
(1)?三次握手、四次揮手? ? ? ? ? ? ? ? ? ? ??
(2)序列號和應答機制? ? ? ? ? ? ? ??
(3)超時,錯誤重傳機制? ? ? ? ? ? ? ? ??
(4)擁塞控制、流量控制(滑動窗口)
UDP(用戶數據報協議):
1.全雙工通信、面向無連接、不可靠;因為在數據發送前不需要進行連接,所以可以進行高效率的數據傳輸,但是容易丟失數據。
2.適用場景:
(1)發送小尺寸數據(如對DNS服務器進行IP地址查詢時)
(2)適合于廣播/組播式通信中。
(3)MSN/QQ/Skype等即時通訊軟件的點對點文本通訊以及音視頻通訊通常采用UDP協議
5.常用網絡調試命令
1.ping:用來網絡聯通測試(使用多)
作用:
(1)用來檢測網絡的連通情況和分析網絡速度;
(2)根據域名得到服務器IP;
(3)根據ping返回的TTL值來判斷對方所使用的操作系統及數據包經過路由器數量。
參數:
字節:數據包大小
時間:響應時間,時間越小證明你鏈接這個地址的速度越快
TTL:Time To Live,從源到目的,每經過一個路由器,TTL減一,當TTL=0,包丟失
2.ifconfig:查看網絡接口信息

參數:
ens33:網卡名稱
????????en:Ethernet
????????s:表示熱插拔插槽上的設備
????????33:插槽編號
lo:回環網卡
其他命令:
格式
含義
ifconfig 具體網卡名稱
只顯示具體網卡的詳細信息(無論是否啟用)
ifconfig -a
表示顯示所有網卡包括沒有啟動的網卡
ifconfig 網卡名稱 up/down
表示開啟或關閉網卡
ifconfig 網絡接口 IP地址[/子網掩碼長度]
新建臨時IP地址(添加 一塊虛擬網卡)
ifconfig -s
查看通訊情況
手機調試工具
應用市場搜全能調試。
套接字:socket
1.什么是套接字
1.是一個編程接口
2.是一種特殊的文件描述符 (everything in Unix is a file)
3.socket是一種通信機制,并不僅限于TCP/IP協議
4.面向連接 (Transmission Control Protocol - TCP/IP)
5.無連接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX)
2.為什么需要socket?
1.普通的I/O操作過程 :打開文件->讀/寫操作->關閉文件
2.TCP/IP協議被集成到操作系統的內核中,引入了新型的“I/O”操作 ----->進行網絡通信的兩個進程在不同的機器上,如何連接? 網絡協議具有多樣性,如何進行統一的操作 ?
需要一種通用的網絡編程接口:Socket(像一個插排線,將兩個進程連接)
3.?socket類型
1.流式套接字(SOCK_STREAM) ---> TCP
提供了一個面向連接、可靠的數據傳輸服務,數據無差錯、無重復的發送且按發送順序接收。內設置流量控制,避免數據流淹沒慢的接收方。數據被看作是字節流。
2.數據報套接字(SOCK_DGRAM) --> UDP
提供無連接服務。數據包以獨立數據包的形式被發送,不提供無差錯保證,數據可能丟失或重復,順序發送可能亂序接收。
3.原始套接字(SOCK_RAW)
可以對較低層次協議如IP、ICMP直接訪問,還有一些ping命令
4. 位置
在應用層和數字鏈路層與物理層之間
端口號
概念:
1.為了區分一臺主機接收到的數據包應該轉交給哪個進程來進行處理,使用端口號來區分
2.TCP端口號與UDP端口號獨立(UDP port為8888,TCP port也可為8888 )
3.端口號一般由IANA (Internet Assigned Numbers Authority) 管理
4.端口用兩個字節來表示
分類:(1)眾所周知端口:(被占用:1~1023(1~255之間為眾所周知端口,256~1023端口通常由UNIX系統占用))
(2)已登記端口:1024~49151(可用來建立與其它主機的會話)
(3)動態或私有端口:49152~65535 (固定某些服務使用)
字節序
1.字節序: 不同類型的cpu主機,內存存儲大于一個字節類型的數據在內存中的存放順序。
2.浮點類型,字符類型,字符串沒有字節序
3.分類:
????????小端序(little-endian) - 低序字節存儲在低地址 (主機字節序)
????????大端序(big-endian)- 高序字節存儲在低地址 (網絡字節序)
網絡中傳輸的數據必須使用網絡字節序,即大端字節序
終端顯示的數據必須是主機字節序,即小端字節序
大小端口轉換
主機字節序轉換為網絡字節序 (小端序->大端序)
u_long htonl (u_long hostlong); //host to network long
u_short htons (u_short short); //掌握這個
網絡字節序轉換為主機字節序(大端序->小端序)
u_long ntohl (u_long hostlong);
u_short ntohs (u_short short);
主機字節序轉換為網絡字節序 (小端序->大端序)
in_addr_t inet_addr(const char *strptr); //該參數是字符串 typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; };
功能: 主機字節序轉為網絡字節序
參數: const char *strptr: 字符串
返回值: 返回一個無符號長整型數(無符號32位整數用十六進制表示), 否則NULL
網絡字節序轉換為主機字節序(大端序->小端序)
char *inet_ntoa(stuct in_addr inaddr);
功能: 將網絡字節序二進制地址轉換成主機字節序。
參數: stuct in_addr in addr : 只需傳入一個結構體變量
返回值: 返回一個字符指針, 否則NULL;