您好,登錄后才能下訂單哦!
我真的不知道用什么樣的語言來整理我學過的網絡知識,如果說是理論知識,百度百科上一搜一大堆,我希望我整理的東西在生活中都能找到模板,貼近生活,源于生活。
網絡我們都很熟悉,無論是qq 微信等社交軟件還是游戲,我們都離不開網絡,網絡貫穿我們生活的點點滴滴,而且今天成熟的網絡系統,都是由傳統的網絡一點一點發展而來的。
帶著問題去思考,我們都知道OSI七層,那么什么叫做層,為什么要分層?分層有有什么優勢?為什么每一層有對應的不同的協議?
層:描述了所有需求上的有效通訊過程,我們把這些過程叫做層。
為什么要分層?
這就像一個公司,剛開始公司人很少,隨著公司規模的擴大,我們就要劃分各個部門來實現各部門的作用,網絡經過長期的發展,日益成熟與健壯,人們就邏輯的給劃分為七層,來讓每一層實現每一層的作用,來形成一個完善的網絡系統。
分層的優勢?
把復雜的網絡劃分成易于管理的層,易于排錯,創造更好的集成環境,低層為上層提供服務。(什么是低層,什么是高層見上圖)
為什么每一層有每一層對應的設備和協議?
設備和協議是相關的,因為有網絡的發展帶動了生產不同設備的廠商,主要就是路由器和交換機,剛開始它們各自的廠商有自己的標準,導致不同廠商設備之間不能通信,例如可能戴爾的路由器就不能和聯想的通信,這就導致網絡的通信遇到了很多的阻礙,所以為了形成統一的標準,就出來了標準協議,各個廠商就必須遵守的一個協議。
這就類似普通話,協議只是為了達成一個公認的統一的標準。
由上層協議開始介紹OSI七層:
應用層(用戶接口)
應用層一般都是應用程序:qq 瀏覽器 郵箱(專門針對具有通信功能應用程序的一層)
簡單說一個具有通信功能的應用程序就是應用層一個用戶的接口(不叫端口,端口是相對傳輸層而言的)。
常用協議:telnet http smtp ftp
表示層(沒有協議,只是把應用層給細致劃分)
上層數據表示加密等特殊處理過程,定義數據格式及加密。
會話層(沒有協議,只是把應用層給細致劃分)
保證不同應用(應用程序)間的數據區分。
例如:你打開一個qq 和一個瀏覽器,你就有兩個應用程序,但是你qq聊天中的內容只在qq中呈現,不可能在瀏覽器中呈現,這就是會話層給做了一個數據的區分。
如果了籠統一點,這三層可以統稱為應用層
下面介紹下層協議(設備都是硬件設備)
物理層
最底層,發送或接收比特流。
比特流是什么,我們都知道計算機的世界里只有0和1,這都是相對于物理層來說的。1B=8b,1MB=1024kB B(字節) b(比特位,表示0 1)
例如:00101011 就是8比特位,1字節
流是什么意思,就是很多,例如水流,所以網線里面傳的就是很多很多的0和1叫比特流。
硬件設備: 網線網卡,光纖,電纜
數據鏈路層
作用:將比特流轉換成數據幀,負責成幀
在這層數據都叫幀
典型設備:交換機
協議數據單元:幀
有設備就有協議,數據鏈路層的協議:ppp HDLC ATM Ethernet(以太網,包括802.3 802.2) FR(幀中繼)
交換機的工作原理:
交換機接收數據幀(到了交換機的數據都封裝成了數據幀,交換機只接收數據幀,里面有源MAC地址,和目的MAC地址),根據源MAC 地址更新MAC 地址表,根據目標MAC 地址做出轉發決定。
如果是已知單播或廣播幀,則直接由已知端口轉發,如果是未知,則除了接收幀的接口以外的接口全部轉發,稱為泛洪。這時候接收到的計算機就會給交換機一個相應(告訴交換機我就是擁有目的地址的那臺計算機),這時候交換機中就會多一條記錄,MAC 地址和端口的對應關系,但是這條記錄是動態的,老化時間300秒,這條記錄只存300秒。
MAC 地址相當于交換機內部一個數據庫,記錄著MAC地址和接口編號的對應關系
交換機查看MAC 地址表 show mac-address-table
以太網(這一層一個重要的協議)幀格式:
*****網絡層(點到點的通信)
決定路徑的邏輯尋址,實現不同網絡間的通信
設備:路由器
協議:ip arp icmp (ping 命令)
協議數據單元(pdu):包
這幾個協議很重要很重要,ip是個泛指,互聯網協議。ip協議的格式:
arp 的作用:將ip地址解析成MAC地址,是計算機通信的橋梁,很重要,因為ip只是確定的一個范圍,MAC地址才是每臺計算機的唯一標識。ip地址為什么只確定一個范圍呢?這是由路由表決定的,路由表里面只有網段和端口的對應。ip就相當于你在哪個班,MAC就相當于你是這個班里的哪個人。
***傳輸層(端到端的通信)
協議:TCP UDP
設備:無
作用:可靠或不可靠的數據傳輸,數據重傳前的數據糾正。
TCP 是可靠的,面向連接的數據傳輸,UDP 是不可靠的,不面向連接的數據傳輸。
為什么這么說?為什么說可靠?為什么說面向連接?
TCP 經歷三次握手,四次斷開的過程。
TCP的數據格式:
UDP的數據格式:
比較源端口號或目的端口號,我們發現UDP 會比TCP 少很多東西,沒有序號沒有確認序號,沒有標記字段,重要的都沒有。
一些重要標記字段的作用:
RST:重新連接
FIN:請求斷開
SYN:請求建立連接
ACK:確認序列號
端口的概念:范圍(0~65535)
三次握手的過程:
為什么說TCP可靠呢?
因為它麻煩,就像你的微信換臺設備登錄一樣,就要經過舊的設備認證,確認機制比較多,所以安全。TCP 也是同樣的道理,因為它的確認機制比較多,所以安全可靠。
什么是面向連接?
面向連接是指依賴于發送方和接收方顯示通信或阻塞來管理數據連接。
三次握手語言描述:
TCP 的連接是一個非常謹慎的過程,A和B 說我請求連接,但是計算機和人不一樣,B怎么樣來區分你說的這句話是用來請求連接的?是不是A給B 發了一個標記字段,并且發了一個序號seq=A,這時候B 就給A發了一個確認序列號,代表我同意,所以ack=A+1(確認序列號都是源序號加1),還給A發了一個他自己的序號seq=B;這時候還沒完,當A收到B的回復以后就開始建立會話,當在建立回話的時候seq=A+1;用來表示這是A主機和B說的第二句話,ack=B+1:(ack的確認永遠是確認的對方的)
四次斷開示意圖:
三次握手,四次斷開主要是因為TCP協議的格式中有標記字段,UDP沒有。
TCP(傳輸控制協議) UDP(用戶數據協議)
TCP UDP的協議格式都存在端口號,有時候我們會說web服務--http協議--tcp--80端口
http協議指的是應用層協議,tcp 指的是在這個協議傳輸層的傳輸形式,80端口是在傳輸層的端口號。
這時候可能就已經十分懵逼了,總結下,ip用來說明一個范圍,例如一個班級,MAC 用來標識特定的主機,例如一個班級的某一個人,端口號用來確定這臺計算機上的一個應用,例如一個班上的一個人的一只手。
所以說只要有提供服務的客戶端軟件,就有一個應用層協議,當經過傳輸層時就有端口號,但是數據有兩種情況,要么走TCP,要么走UDP.
端口號的介紹:
比如說Telent協議,當數據傳輸時源端口號是任意一個,目的端口號是23.
大概OSI七層就介紹完了,但是在實際生產中可能不會劃分的這么細,所以人們也習慣性的說TCP/IP五層:
網絡接口層、互聯網層、主機到主機層、應用層。
我自己畫了一張圖來表示我對這七層的理解
總結:
常用服務 協議 端口
1. POP3 TCP 110
2. IMAP TCP 143
3. SMTP TCP 25
4. Telnet TCP 23
5. 終端服務TCP 3389
6. TFTP UDP 端口69
7. HTTP TCP 80
8. NTP UDP 端口123
9. HTTPS TCP 443
10. FTP 控制TCP 21 FTP 默認數據TCP 20
11. RADIUS UDP 1645
12. DHCP 服務器UDP 67
13. DNS UDP 53 DNS TCP 53
14. SNMP UDP 161
15 ipsec UDP 500
16 PPTP TCP 1723
17 L2TP UDP 1701
代理服務器常用以下端口:
(1). HTTP協議代理服務器常用端口號:80/8080/3128/8081/9080
(2). SOCKS代理協議服務器常用端口號:1080
(3). FTP(文件傳輸)協議代理服務器常用端口號:21
(4). Telnet(遠程登錄)協議代理服務器常用端口:23
HTTP服務器,默認的端口號為80/tcp(***Executor開放此端口);
HTTPS(securely transferring web pages)服務器,默認的端口號為443/tcp 443/udp;
Telnet(不安全的文本傳送),默認端口號為23/tcp(***Tiny Telnet Server所開放的端口);
FTP,默認的端口號為21/tcp(***Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的端口);
TFTP(Trivial File Transfer Protocol ),默認的端口號為69/udp;
SSH(安全登錄)、SCP(文件傳輸)、端口重定向,默認的端口號為22/tcp;
SMTP Simple Mail Transfer Protocol (E-mail),默認的端口號為25/tcp(***Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都開放這個端口);
POP3 Post Office Protocol (E-mail) ,默認的端口號為110/tcp;
WebLogic,默認的端口號為7001;
Webshpere應用程序,默認的端口號為9080;
webshpere管理工具,默認的端口號為9090;
JBOSS,默認的端口號為8080;
TOMCAT,默認的端口號為8080;
WIN2003遠程登陸,默認的端口號為3389;
Symantec AV/Filter for MSE ,默認端口號為8081;
Oracle 數據庫,默認的端口號為1521;
ORACLE EMCTL,默認的端口號為1158;
Oracle XDB(XML 數據庫),默認的端口號為8080;
Oracle XDB FTP服務,默認的端口號為2100;
MS SQL*SERVER數據庫server,默認的端口號為1433/tcp 1433/udp;
MS SQL*SERVER數據庫monitor,默認的端口號為1434/tcp 1434/udp;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。