什么是計算機網絡?
是指將地理位置不同的具有獨立功能的多臺計算機及外部設備,借助于某種網絡介質連接起來,實現資源共享和信息傳遞的計算機系統
計算機網絡的特點?
1、能實現數據信息的快速傳輸和集中處理 2、可共享計算機系統資源 3、提高了計算機的可靠性及可用性 4、能均衡負載互相協作
常見的網絡應用程序
Web 瀏覽器(Chrome、IE、Firefox等) 即時消息(QQ、微信、釘釘等) 電子郵件(Outlook、foxmail 等) 協作(視頻會議、VNC、Netmeeting、WebEx 等) web網絡服務(apache,nginx,IIS) 文件網絡服務(ftp,nfs,samba) 數據庫服務(MySQL,MariaDB, MongoDB) 中間件服務(Tomcat,JBoss) 安全服務(Netfilter)
使用協議分層網絡模型
為了減少網絡設計的復雜性,絕大多數網絡采用分層設計方法。所謂分層設計方法,就是按照信息的流動過程將網絡的整體功能分解為一個個的功能層,不同機器上的同等功能層之間采用相同的協議,同一機器上的相鄰功能層之間通過接口進行信息傳遞
使用分層網絡模型的特點
1.降低復雜性 2.標準化接口 3.簡化模塊設計 4.確保技術的互操作性 5.加快發展速度 6.簡化教學
OSI七層模型
應用層:應用程序的進程 表示層:數據的格式,是否壓縮,加密等 會話層:建立斷開會話 傳輸層:決定了數據的可靠性,有TCP和UDP協議,也包含了源端口和目的端口 網絡層:到達不同網絡之間路徑的最佳選擇,路由數據包 數據鏈路層:物理地址尋址,錯誤校驗,數據幀封裝等 物理層:將上層所封裝的數據轉換為二進制通過物理介質傳輸到目的地
數據封裝與解封裝過程
三種通信模式
單播:一對一 組播:一對多 廣播:一對所有
網絡傳輸介質,RJ-45接口
T568A線序:白綠、綠、白橙、藍、白藍、橙、白棕、棕 T568B線序:白橙、橙、白綠、藍、白藍、綠、白棕、棕 相同設備用交叉,不同設備用直通,PC和路由器除外
以太網數據幀結構
前導碼(preamble):7字節,用于同步 幀開始符(SFD):1字節,標明下一個字節為目的MAC字段 目的MAC地址:6字節,指明此以太網幀的接收者 源MAC地址:6字節,指明此幀的發送者 長度(length):2字節,幀的數據字段的長度 類型(Type):2字節,幀中數據的協議類型 數據(Data):46~1500字節,所要發送的數據內容長度 幀校驗序列(FCS):4字節,判斷幀在傳輸過程中是否被修改過,如果發現錯誤,則丟棄此幀
MAC地址
MAC:Media Address Control或稱為物理地址、硬件地址,用來定義網絡設備的位置。在OSI模型中,第三層網絡層負責 IP地址,第二層數據鏈路層則負責 MAC地址。因此一個主機會有一個MAC地址,而每個網絡位置會有一個專屬于它的IP地址。 長度為48bits,使用16進制表示,分為前24位和后24位 前24位叫做組織唯一標志符、是由IEEE的注冊管理機構給不同廠家分配的代碼,區分了不同的廠家。 后24位是由廠家自己分配的,稱為擴展標識符。同一個廠家生產的網卡中MAC地址后24位是不同的。 MAC地址第8位如果為0,則表示單播MAC地址,如果為1,則表示組播MAC地址
以太網交換機工作原理
當PC1要和PC2通信時,源MAC地址為PC1,目的MAC地址為PC2,數據幀到達交換機的f0/1口,交換機查看MAC地址表是否有PC1的相關條目,如果沒有,則學習源MAC,將源MAC地址與之對應的端口號添加至MAC地址表當中,目的MAC也沒有相關條目,則廣播,PC2和PC3都收到了數據,由于數據的目的地是PC2,所以PC3收到數據則直接丟棄,PC2收到數據,則回應,此時源MAC為PC2,目的MAC為PC1,數據到達交換機的f0/2接口,交換機查看MAC地址表中是否有PC2相關條目,沒有,則學習源MAC地址,將MAC與之對應的端口號添加至MAC地址表,目的MAC為PC1,此時,MAC地址表中已經有PC1的MAC地址所對應的端口號,直接將數據發送至f0/1端口即可。 由于交換機MAC地址表當中已經有PC1與PC2的源MAC與端口對應關系,下次通信直接單播即可。
路由
路由:把一個數據包從一個設備發送到不同網絡里的另一個設備上去。這些工作依靠路由器來完成。路由器只關心網絡的狀態和決定網絡中的最佳路徑。路由的實現依靠路由器中的路由表來完成 路由器工作在網絡層,路由器在轉發數據包的過程中源IP與目的IP不會發生變化,而源MAC于目的MAC會發生改變
TCP/IP協議棧
Transmission Control Protocol /Internet Protocol 傳輸控制協議/因特網互聯協議 TCP/IP是一個Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等許多協議 最早發源于美國國防部(縮寫為DoD)的因特網的前身ARPA網項目,1983年1月1日,TCP/IP取代了舊的網絡控制協議NCP,成為今天的互聯網和局域網的基石和標準。由互聯網工程任務組負責維護。 共定義了四層 和ISO參考模型的分層有對應關系
TCP/IP 協議棧和OSI 模型
TCP包頭
TCP首部一共20個字節 源端口和目的端口:各占2個字節,上層的應用數據,標識計算機上的進程 序號:占4個字節,是本報文段所發送的數據項目組第一個字節的序號,在TCP傳送的數據流中,每個字節都有一個序號,例如,以報文段的序號為300,而其數據共100字節,則下一個報文段的序號就是300 確認序號:占4字節,是期望收到對方下次發送的數據的第一個字節的序號,也就是期望收到下一個報文首部中的序號 首部長度:因為選項是不定長的,這就需要標識整個首部字段的長度(單位是32位字),即5+選項個數。4位,單位是32位字,所以首部最長是15*4=60字節,即選項最長是40字節(10個選項)。 6個控制位: URG:當URG=1時,其后的緊急指針指示緊急數據在當前數據段中的位置(相對于當前序列號的字節偏移量),TCP接收方必須通知上層實體。 ACK:當ACK=0時,表示該數據段不包含確認信息,當ACK=1時,表示該報文段包括一個對已被成功接收報文段的確認。 PSH:當PSH=1時,接收方在收到數據后立即將數據交給上層,而不是直到整個緩沖區滿。 RST:用于重置一個已經混亂的連接(如主崩潰),也可用于拒絕一個無效的數據段或者拒絕一個連接請求。一般而言,如果你得到的數據段被設置了RST位,那說明你這一端有問題了。 SYN:用于建立連接過程,在連接請求中,SYN=1和ACK=0表示該數據段沒有使用捎帶的確認域,而連接應答捎帶一個確認,即SYN=1和ACK=1。 FIN:用于釋放一個連接,表示發送方已經沒有數據要傳輸了。此時,接收方可能繼續接收數據,好在SYN和FIN數據段都有序列號,從而保證了這兩種數據段以正確順序被處理。 窗口大?。河糜诹骺刂?確保連接的任何一方都不會過快地發送過量的分組而淹沒另一方),窗口大小指定了從被確認的字節算起可以發送多少個字節。 校驗和:提供了額外可靠性,在計算檢驗和的時候,TCP的Checksum域設為0,如果數據域的字節數為奇數,則數據域填補一個額外的0字節。校驗和算法:將所有的16位字按1的補碼形式累加起來,取累加結果的補碼。因此,當接收方執行同樣計算時(包括Checksum域),結果應該是0。 緊急指針:參考標志字段的URG位。 選項:選項部分是為了適合復雜網絡環境和更好地服務于應用層設計的。TCP選項最長是40字節 數據:無任何數據的TCP段也是合法的,通常用于確認和控制信息。
TCP三次握手
第一次握手:建立連接??蛻舳税l送連接請求報文段,將SYN位置為1,Sequence Number為x;然后,客戶端進入SYN_SEND狀態,等待服務器的確認; 第二次握手:服務器收到SYN報文段。服務器收到客戶端的SYN報文段,需要對這個SYN報文段進行確認,設置Acknowledgment Number為x+1(Sequence Number+1);同時,自己自己還要發送SYN請求信息,將SYN位置為1,Sequence Number為y;服務器端將上述所有信息放到一個報文段(即SYN+ACK報文段)中,一并發送給客戶端,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到服務器的SYN+ACK報文段。然后將Acknowledgment Number設置為y+1,向服務器發送ACK報文段,這個報文段發送完畢以后,客戶端和服務器端都進入ESTABLISHED狀態,完成TCP三次握手。
TCP四次揮手
第一次揮手:主機1(可以使客戶端,也可以是服務器端),設置Sequence Number和Acknowledgment Number,向主機2發送一個FIN報文段;此時,主機1進入FIN_WAIT_1狀態;這表示主機1沒有數據要發送給主機2了; 第二次揮手:主機2收到了主機1發送的FIN報文段,向主機1回一個ACK報文段,Acknowledgment Number為Sequence Number加1;主機1進入FIN_WAIT_2狀態;主機2告訴主機1,我“同意”你的關閉請求; 第三次揮手:主機2向主機1發送FIN報文段,請求關閉連接,同時主機2進入LAST_ACK狀態; 第四次揮手:主機1收到主機2發送的FIN報文段,向主機2發送ACK報文段,然后主機1進入TIME_WAIT狀態;主機2收到主機1的ACK報文段以后,就關閉連接;此時,主機1等待2MSL后依然沒有收到回復,則證明Server端已正常關閉,那好,主機1也可以關閉連接了。
UDP報文格式
源、目標端口號字段:占16比特。作用與TCP數據段中的端口號字段相同,用來標識源端和目標端的應用進程。 長度字段:占16比特。標明UDP頭部和UDP數據的總長度字節。 校驗和字段:占16比特。用來對UDP頭部和UDP數據進行校驗。和TCP不同的是,對UDP來說,此字段是可選項,而TCP數據段中的校驗和字段是必須有的。
ARP協議
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,并接收返回消息,以此確定目標的物理地址;收到返回消息后將該IP地址和物理地址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節約資源。地址解析協議是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;由此攻擊者就可以向某一主機發送偽ARP應答報文,使其發送的信息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP命令可用于查詢本機ARP緩存中IP地址和MAC地址的對應關系、添加或刪除靜態對應關系等
IP包頭格式
版本號(Version):長度4比特。標識目前采用的IP協議的版本號。一般的值為0100(IPv4),0110(IPv6) IP包頭長度:4字節,用于表示32位的IP包頭 服務類型:數據包的優先級 IP包總長(Total Length):長度16比特。 以字節為單位計算的IP包的長度 (包括頭部和數據),所以IP包最大長度65535字節。 標識符(Identifier):長度16比特。該字段和Flags和Fragment Offest字段聯合使用,對較大的上層數據包進行分段(fragment)操作。路由器將一個包拆分后,所有拆分開的小包被標記相同的值,以便目的端設備能夠區分哪個包屬于被拆分開的包的一部分。 標記(Flags):長度3比特。該字段第一位不使用。第二位是DF(Don't Fragment)位,DF位設為1時表明路由器不能對該上層數據包分段。如果一個上層數據包無法在不分段的情況下進行轉發,則路由器會丟棄該上層數據包并返回一個錯誤信息。第三位是MF(More Fragments)位,當路由器對一個上層數據包分段,則路由器會在除了最后一個分段的IP包的包頭中將MF位設為1。 片偏移(Fragment Offset):長度13比特。表示該IP包在該組分片包中位置,接收端靠此來組裝還原IP包。 生存時間(TTL):長度8比特。當IP包進行傳送時,先會對該字段賦予某個特定的值。當IP包經過每一個沿途的路由器的時候,每個沿途的路由器會將IP包的TTL值減少1。如果TTL減少為0,則該IP包會被丟棄。這個字段可以防止由于路由環路而導致IP包在網絡中不停被轉發。 協議(Protocol):長度8比特。標識了上層所使用的協議。 頭部校驗(Header Checksum):長度16位。用來做IP頭部的正確性檢測,但不包含數據部分。 因為每個路由器要改變TTL的值,所以路由器會為每個通過的數據包重新計算這個值。 起源和目標地址(Source and Destination Addresses):這兩個地段都是32比特。標識了這個IP包的起源和目標地址。要注意除非使用NAT,否則整個傳輸的過程中,這兩個地址不會改變。 可選項(Options):這是一個可變長的字段
IP地址
InterneProtocol,互聯網協議地址,是IP協議提供的一種統一的地址格式,及為計算機網絡相互連接進行網絡通信而設計的協議,為互聯網上每個網絡以及每個主機分配一個邏輯地址,以此來完成網絡通信 IP地址的組成 IP地址的組成:網絡位---主機位 IPv4地址:32bits 8bits.8bits.8bits.8bits 0.0.0.0---255.255.255.255 IPv4地址分類: A類: 第一段位網絡位,后三段為主機位 網絡號: 00000000--01111111:1-127 網絡數量:126,127 每個網絡中的主機數量:2^24-2 默認子網掩碼:255.0.0.0 用于與IP地址按位進行"與"運算,從而取出網絡地址 1.1.1.1/255.0.0.0 = 1.0.0.0 私網地址:10.0.0.0/255.0.0.0 B類: 前兩段為網絡位,后兩段為主機位 網絡號: 10000000 - 10111111:128-191 網絡數量:2^14 每個網絡中的主機數量:2^16-2 默認子網掩碼:255.255.0.0 私網地址范圍:172.16.0.0/16 -- 172.31.0.0/16 C類: 前三段為網絡號,最后一段為主機位 網絡號: 11000000 - 11011111:192-223 網絡數量:2^21 每個網絡中的主機數量:2^8-2 默認子網掩碼:255.255.255.0 私網地址范圍:192.168.0.0/16 -- 192.168.255.255/16 D類: 組播地址:224-239 E類: 科研
公共IP地址范圍
A類: 1.0.0.0到9.255.255.255 11.0.0.0到126.255.255.255 B類: 128.0.0.0到172.15.255.255 172.32.0.0到191.255.255.255 C類: 192.0.0.0到192.167.255.255 192.169.0.0到223.255.255.255
私有地址范圍
A類: 10.0.0.0到10.255.255.255 B類: 172.16.0.0到172.31.255.255 C類: 192.168.0.0到192.168.255.255
特殊地址
0.0.0.0 不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡。 255.255.255.255 限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機 127.0.0.1~127.255.255.254 本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的數據包。 224.0.0.0到239.255.255.255 組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒體程序 169.254.x.x 如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為主機分配這樣地址。
原創文章,作者:zhai796898,如若轉載,請注明出處:http://www.www58058.com/44148