標籤:分享圖片 超過 上網 三次 揮手 pytho 計算 這不 源地址
一、Linux作業系統
1、unix是目前世界上最穩定,安全的系統。是分時作業系統,多個聯機終端和採用多道技術。
2、開源代表代表公開,所有人可以編輯查看,但不代表免費。
3、伺服器要的是效能,穩定,效率,不間斷運行。故LINUX更能勝任,WINDOW不行,運行久了就會很卡。
4、橋接:用交換器的方式上網,相當於在區域網路內多增加一台電腦連網。
5、虛擬記憶體一般設為實體記憶體的1.5-2倍,但不超過8G。實體記憶體大於4G就足以運行目前幾乎所有程式了,沒必要設定虛擬記憶體了。
二、網路基礎之OSI五層協議
1、網路通過電腦底層物理介質(網線,交換器,網卡等),由一個統一標準的互連網協議連結起來。
2、OSI五層含義:物理層相當於字母,資料連結層相當於單詞、網路層相當於句子、傳輸層相當於文法、應用程式層才是實際的對話交流。
3、乙太網路協議規定:一組電訊號構成一個資料包,稱為幀。每一資料幀分成:前序HEAD和資料DATA兩部分。
其中前序head固定18位元組,包含:寄件者地址(源地址),佔6位元組、接收者地址(目標地址),佔6位元組、資料類型,佔6位元組。就類似信件的發送和接收者地址和信件是用什麼語言寫的。
資料data最短46位元組,最長1500位元組),具體包含資料包的具體內容,就類似信件的本文。
head+data=最短64位元組,最長1518位元組。超過了就分區發送。
4、網路傳輸串流程:通過網路裝置(無線電波,電纜,光纖,雙絞線)基於高低電頻,實現資料在終端物理層間的傳輸;然後再資料連結層對資料進行分組,轉換成十進位資料,進而轉換成人類語言。
資料連結層定義了一個乙太網路協議,乙太網路協議規定了資料的分組方式,乙太網路規定所有想要連網的機器都要有網卡。到這一步實現了區域網路內的廣播式交流。
然後在網路層通過IP地址和MAC地址找到目標電腦。
然後再傳輸層基於連接埠(TCP/UDP,每個應用軟體都有一個連接埠號碼,0-1024是給系統用的連接埠)找到接收軟體(因為通訊是應用軟體之間的通訊。)
然後到應用程式層:基於可自行定義的HTTP、FTP協議。其實就類似通過郵局之間的投遞信件。
5、MAC地址:就是前序head包含的源地址和目標地址的由來。乙太網路協議規定每台連入internet的裝置都必須要又一個網卡,發送端和接收端的地址其實就是網卡的地址,即MAC地址。
一個人的體貌特徵就是MAC, 而通訊地址+人名相當於IP地址可以進一步類比,通訊地址是IP中的網路地址部分,人名相當於IP中的主機號部分你今天可以到這個國家, 明天可以到那個城市,通訊地址(IP網路地址部分)就會變化,也可以到派出所改名字(IP主機號部分), 但一個人的體貌特徵(MAC)永遠不會變, 整容(修改MAC)不在討論之列, 它唯一標識了你這個人。如果郵件的是寄給“上海市X區Y街道Z幢M室 小明收”,最後郵件送達M室(IP所在網路)的時候, 因為小明家裡可能不止一個人(多台裝置在同一個broadcast網路裡),快遞員會問, ”誰叫小明, 你有一封信”, 然後小明說"我是小明", 郵遞員把郵件給到小明手中。還是沒看出這個過程中體貌特徵(MAC)起到了什麼作用? 當小明說“我是小明”的時候, 郵遞員已經把“小明”這個名字和小明這個人體貌特徵聯絡起來了, 所以他會把信交到到小明的手中, 而沒有放到這個家裡的其他人的手中。
6、通訊時,資料轉送流程:發送資料包的時候:在應用程式層產生資料,在傳輸層封裝上前序:寄件者和接收者的MAC地址,傳送到網路層並加上IP地址,再到資料連結層加上MAC地址,然到物理層打碎成電腦可識別的位元據。
接收資料包的時候:對方物理層收到的是位元據,資料連結層去除乙太網路頭MAC地址,再網路層去掉IP,傳輸層去掉連接埠,然後到應用資料層。
三、網路基礎之上網過程
1、DHCP伺服器是分配動態IP地址的,IP地址是租用的。電腦沒開機前是沒有IP地址的,每次開機分配的IP地址都不一樣。就和你去旅遊一樣,今天在中國,明天可能在美國了。
2、DNS:網域名稱解析服務。比如開啟百度網址,可以開啟IP地址,或更方便點直接開啟www.baidu.com. (後面有一個點,叫根網域名稱,通常省略)網域名稱。COM叫頂級網域名稱,baidu叫下頂層網域。不過在輸入欄位名訪問時,還是得讓DNS轉換成IP地址。
3、訪問網站時,DNS先訪問本地DNS和緩衝DNS,如果有直接返回解析結果,如果沒有則訪問根DNS。
DNS分本地DNS、緩衝DNS和根DNS。而如果要訪問根DNS,則速度慢。
4、DNS查詢走的是UDP協議(只管發送,最大有效傳輸資料量只有500多節,所以根DNS伺服器只有13台)9台在美國,一台在日本,1台在瑞典,2台在歐洲。
四、三向交握和四次揮手
1、應用軟體產生的資料到了傳輸層後,找到了接收軟體後,但這不是目的,最終目的是與之通訊。
2、TCP的三向交握和四次揮手:
通訊時的三向交握:
A、用戶端先要發一個請求到伺服器,請求會打上一個標誌位SYN(代表用戶端要建立一條到伺服器的連結,連結是以標準協議發送的)同時發送seq=x,然後伺服器返回ACK=x+1,表示同意,然後用戶端能和伺服器能對話了。同理伺服器對用戶端發送進行同樣的請求,這樣伺服器就能和用戶端也能對話,這樣雙向通路就建立好了。
SYN seq=y表示伺服器想用戶端發送對話請求,ACK=X+1表示伺服器同意用戶端的對話請求。ACK=y+1表示用戶端同意伺服器的對話請求。然後準備吧訊息通過網卡發送給目標電腦,此時工作於應用程式層,處於使用者態,ACK x+2表示伺服器收到用戶端發來的訊息,然後切換到核心態,由網卡發送出去。所以ACK x+2是切換使用者態到核心態的訊號。然後同時清除用戶端上的緩衝。
B、UDP協議只管發送,發送後就清除緩衝(因為緩衝佔用的是記憶體),不管對象存不存在,萬一斷網了,對方收不到資料,顯得不可靠,所以要結合TCP協議,TCP得等對方確認收到訊息後才清除緩衝。
取消連結時的4次揮手:
A、資料發送完了得取消連結,不然佔用網路資源。
B、用戶端資料轉送完後,發送斷開請求(標誌位為FIN)給伺服器,然後伺服器返回ACK確認,這條線就斷開。伺服器和用戶端斷開也同理。就是四次握手了。
C、中斷連線時,四次不能合并為3次。因為用戶端資料傳完時,伺服器的資料轉送並不一定就斷開了。
python全棧學習記錄--3(2018.1.13) 電腦基礎知識