題記:貌似生命又要進入一個轉折點了,因此須努力呀須努力,今天主要寫計算機相關的一些讀書筆記,寫的很泛,但願你們不甚厭煩。服務器
計算機網絡模型:網絡
概要:socket
國際標準組織中把網絡體系分爲了七層:物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層。可是在各生產廠家中,實際上通常分爲四層,也就是咱們常說的TCP/IP模型了:網絡接口層,網際層,傳輸層,應用層。網絡接口層就至關偏硬了,接觸的會相對來講少一些。spa
這裏先講兩個概念,端到端,點到點分別指的是什麼?操作系統
端到端通常指的是計算機應用程序到應用程序,能夠簡單的理解從端口到端口;而點到點就是電腦到電腦了。電腦是硬件,程序是軟件。因此在各個層次中,傳輸層是第一個端到端的,也就是進程到進程。計算機網絡
好了,這裏又提到了進程,那麼就有必要提線程。其實這兩個概念是操做系統中的。線程
進程是系統分配資源的基本單位,線程是Cpu執行的基本單位,線程擁有一些資源,可是很是很是的少,好比計數器之類的;一個進程能夠建立多個線程,各個線程相互協同工做能夠更好的提升用戶體驗,同時提升程序運行速度。具體能夠參考相關文章。blog
傳輸層是咱們進行打交道的層次了。最經典的socket就是此層了。排序
傳輸層及TCP UDP接口
UDP是用戶數據報協議,用戶和服務器之間無鏈接,客戶能夠利用一個數據報發給一個服務器後,立馬向另外的服務器發送數據。它不保證數據必定可以傳輸到,也不保證數據報可以按照必定的前後順序傳輸。
TCP是傳輸控制協議,提供了可靠的傳輸,由於它是面向鏈接的。鏈接的時候會有三次握手,斷開鏈接的時候會有四次揮手,這種確認機制保證了其可靠性,可是同時也註定了它的傳輸速度要低於UDP。TCP會有如下幾種機制:確認服務器或另外一端收到才繼續發,數據報會排序,流量控制(保證另外一端可以接受的過來)。
TCP鏈接的創建:三次握手
假設A是客戶端,B是服務器。
首先A向B發送一個鏈接請求,B收到請求後確認,並給A發送一個確認信號,A再一次對B確認。這樣三次握手就創建了。
那麼對於A來講,要發送數據須要作哪些工做呢?
首先創建一個socket也就套接字,裏面包括端口號,IP等基本信息,而後connect到B服務器,在send信息或者read信息,最後close.
反之,對於B也要作一系列的工做,才能保證運行的順利執行。
首先B創建一個socket套接字,而後bind(),而後再不斷的監聽是否有客戶鏈接進來listen,監聽完畢以後就要accept了。只有當accept以後才能進行send,read操做。最後就是close操做。
既然TCP要保證可靠的傳輸,那麼怎麼肯定數據發送完畢,而且雙方都關閉呢?
這裏就要講四次揮手了。
通常來講客戶端A主動向B發送一個關閉請求,B收到後進行確認,確認完畢後對A回覆一個確認信號,(注意此時的A要進入一段等待時間 要保證以前的信息B都能收到呀),過了一段時間以後,B向A報告收到的最後一個數據報的序列號N,A收到後,比照以前發送的數據報,若是的確是N。那麼A再向B發送確認信號。這樣,關閉就完成了。
網絡層:
傳統IP地址分爲A,B,C,D,E五類。
A類:最開始是0,網絡地址7位,主機地址24位
B類:最開始是10,網絡地址14位,主機地址16位
C類:最開始是110,網絡地址21位,主機地址8位
D類:最開始是1110,多目的廣播地址28位
E類:最開始是11110,保留
網絡地址轉換協議NAT。
主要把內網的IP轉換成全球公網的一個IP。
ARP協議:IP轉到MAC地址
RARP協議:MAC轉換到IP。
其餘協議好比ping,tracert,telnet,netstat等等。
版權全部,歡迎轉載,可是轉載請註明出處:瀟一
參考文獻:王道求職寶典