上個內容中,我們知道了只要是本地通信得廣播,而廣播不是邏輯(IP)地址對應的MAC地址,所以主要是將邏輯地址轉換成目標地址,這叫地址解析稱為ARP,還有一種是反向解析RARP,都是在本地網絡中完成的,邏輯IP地址分為兩個階段,前一段分為網絡地址,后一段分為主機地址,如何判定?用子網掩碼用來判斷那一部分是網絡位,那一部分是主機位,最重要的是子網掩碼是根據一個地址來獲取網絡地址的,IP地址和網關一定在同一網絡中,不然轉發不出去。
一個交換機可以連接不同的沖突域,而一個路由器可以連接不同的廣播域。
路由器有一張表,叫路由表,可以靜態和動態生成,動態生成的話意味著管理員就不用手動管理這張表,但學習和生成是需要一段時間,一旦條目發生改變,使得網絡在轉換另一種穩定的網絡之前,這個過程叫路由表的收斂過程,如果范圍比較大的話,其收斂的速度肯定很慢。
IP叫被路由協議,上面則叫路由協議。
MAC地址實現的是本地通信地址。
IP地址實現的是主機到主機的通信。
我們的操作系統是多認為的,既能上網,有能聊天,還能打游戲等,如果主機A要與IP7.1通信,7.1的服務器既要提供上網服務,又要提供聊天服務,也要提供打游戲服務,那么這些請求該怎么去響應,如何知道和7.1的進程去通信?為了標識那個進程和那個主機通信服務,那就還需要一個地址,這個地址除了IP地址以外,還得需要一個端口號的地址,比如說7.1上的80(簡稱7.1:80)就是網頁服務,然后7.1的100就是提供游戲服務,之后主機A就會打開一個端口7.1的端口服務進行通信,所以用端口來被識別同一主機上的不同進程,所以端口來標識進程與進程之間的通信的。
如果和WEB服務通信該如何知道端口?我們的端口的范圍為0-65535,對方的服務器的WEB接口到底在那個服務器上服務?端口和進程之間并沒有必然間的聯系,意味著工作在任意一端口,對于主機來講就像和WEB通信,該如何找?我們就事先有個規范,定義好(有個機構叫做名稱地址分配機構),如果用WEB服務,就必須使用那個端口,其它不行,80端口專門用于網頁服務,這個端口是可以改的,不過就是很麻煩,因為某些著名的服務都有固定的端口,客戶端使用的是隨機的,沒有使用的端口,80端口還得隨時監聽客戶端響應,這叫主動模式,但是端口和IP地址還是有關聯關系的,每個地址上有六萬多端口可以用,兩臺服務器同時用80端口并不沖突,因為IP不同,當前主機如何區別如何區別需要綁定起來,這叫做套接字,IP和端口綁定的一組就叫套接字。
什么是協議?就是擁有相同的功能和標準建立起來的。
OSI參考模型
共有七層,但常用的是TCP/IP模型,共有四層。OSI定義的很規范,但有缺陷,有很多功能,在兩個層次上都分別實現,比如數據包校驗在二層實現,在四層也要實現,同一種功能實現兩次不是一件好事,既浪費資源,又降低數據報文連接(生成速度),TCP/IP看上去不那么規范,但是它是能工作的模型,是現實中正用的模型。
在IP首部,共32位二進制,每8位一個片段,共4段,8個0到8個1,整個地址分為兩段,網絡段和主機段,為了標識不同的網絡,因此分了類別,分別標記網絡和主機地址的不同長度,常用的有A、B、C類
A類:只有一段標記網絡地址,后面三段標記為主機地址,這是包含主機范圍最多的的,是2^24-2。
B類:前兩段標記網絡地址,后面兩段標記為主機地址,它的主機范圍是2^16-2。
C類:前三段標記網絡地址,最后一段標記為主機地址,它的主機范圍是2^8-2。
如何區分是那一類的。
我們是靠第一段的數字來進行區別的,對于A類來講,首位是0,從8個0到01111111,首位是0,后位變化,但其中127用于回環所以有效范圍是1-126,B類地址從10開頭,范圍是128-191,10000000-10111111,共64個B類網絡,C類地址從110開頭11000000-11011111,范圍是:191-223,共32個C類地址。
ICANN(國際互聯網地址名稱分配機構)用來進行分配(包括注冊域名),事先預留出來的地址只能在內部使用,叫做私有地址,不能用在互聯網上,私有地址如下:
A類:10.0.0.0/8。
B類:172.16.0.0/16—172.31.0.0/16。
C類:192.168.0.0/24—192.168.255.0/24。
這些地址也不會在路由器上路由,作源地址也可以,但作為目標地址是接收不回來的報文,自己的IP與子網掩碼相與,得到網絡地址,目標IP與源IP的子網掩碼相與,如果不是一樣的,就是遠端地址。
目標地址是主機的話,稱之為主機路由,目標地址是網絡的話,稱之為網絡路由,一般來說選擇網絡時,是從最佳匹配作為選擇標準。
0.0.0.0是默認路由,如果條目中沒有匹配的目標地址的話,就走默認路由。
TCP傳輸層說明
在TCP/IP層中,網際層的上方就是傳輸層,整個網絡其實也是沙漏模型,底層是IP報文,下面可能屬于不同的二層網絡,對于IP來講統一要呈現IP形式,到IP這兒根據應用的不同還會分不同的協議,比如傳輸層有TCP和UDP協議,TCP叫傳輸控制協議,UDP叫用戶數據報協議,TCP和UDP功能不一樣。
TCP是有連接協議的。
UDP是無連接協議的。
TCP是有三次握手的,傳輸完成就拆除通道,而且是雙向拆除,如果不響應就自行拆除(前提發的報文無響應)
TCP首部—控制更多信息(共32位)
Source Port Number | 源端口 (16位) |
Destination Port Number | 目標端口 (16位) |
Sequence Number | 序列號 (32位) |
Acknowledgement Number | 確認號 (32位) |
Header Length | 首部長度 (4位) |
Reserred |
保留位 (6位,其實是3位)它的子集:URG、ACK、PSH、RST、SYN、FIN |
windows size | 窗口大小 (16位) |
TCP Checksum | TCP校驗和 |
Orgent Pointer | 緊急指針 (16位)1、指針有效 0、指針無效 |
Options | 選項 (32位) |
Data | 數據 (32位) |
原創文章,作者:劉 祥宇,如若轉載,請注明出處:http://www.www58058.com/60754