寫在前面
提起計算機網路,想必給大家的印象就是協議,學了就忘,其實我也一樣,但是他的重要性,很是值得學習,不管你是學Java、Python、C++等,這門計網課都是很有必要學習的,最近通過閱讀一些書籍,文章等,對計網做一個系統的總結,希望可以幫助到大家,后續會持續更新,
計網的體系結構
在講解計網體系結構之前,我們先說一個問題,計網體系結構為什么要分層管理呢,分層的好處是什么呢?其實分層也就是為了好管理,每一層只需要負責本層的事情,層與層之間,只需要提供一個介面即可,這樣不僅提高了擴展性,而且也降低了維護成本,我們常見的體系結構有三種,分別是OSI體系結構、TCP/IP體系結構和五層體系結構,

那么問題來了,有這么多的體系結構,哪一種好呢,首先說說OSI體系結構,該體系結構是由國際標準化組織制定的標準,只能說,他分的挺詳細的,但是過于復雜而且不實用,再說說TCP/IP體系結構,該體系結構為了將不同網路介面互連,使得網路介面層并沒有規定什么具體的內容,所以不太適合去學習,于是來了個OSI和TCP/IP的結合體——五層體系結構,他綜合了二者的優點,在對這五層體系結構進行講解之前,先講解一下網路中常用的三種交換方式,
交換方式
首先我們需要搞明白,計算機之間的通訊,是如何實作資料交換的,其實有三種常見的交換方式,一、電路交換,二、報文交換,三、分組交換,

說起電路交換,要先說說電話機了,如果2臺電話機需要通信,需要一根電話線,而5臺電話機兩兩通信需要20根電話線,隨著電話機的增多,電話線成指數級別增加(n*(n-1)/2),也正是這個原因,出來了電路交換來解決此問題,

通過一個電話交換機來進行轉發,這樣就減少了不少的電話線,當然了,并不是所有的電話都是通過一個交換機來進行轉發的,其實是通過多個交換機互相協作才撥通的電話,

其中電路交換,需要經歷三個程序,首先是建立連接,其次是資料傳輸,最后是釋放連接(交換機之間是用中繼線連接的,是公用的),看似簡單的一個通話,中間可是經歷了不少歷程,所以聽到鈴聲響起,可不能輕易掛掉了,

報文交換的話,是不需要建立連接的,直接以報文的形式發送到相鄰節點的交換機,直到目的節點,目的節點通過查表進行轉發,報文的大小是沒有限制的,所以需要各個節點有較大的快取空間,

而分組交換就恰好能解決分組交換的需要較大快取空間的問題,把一個報文進行分組轉發,這樣各個節點就不用太大的快取空間了,而且分組之后,可以通過不同的路線傳輸資料,提高傳輸效率,魚和熊掌不可兼得,同時也引入了新的問題,就是當把一個報文進行分組之后,那么接受放怎么進行拼接呢,所以需要給分組加上首部標識,這樣以來,傳輸的資料量就有所增加了,不過相對其優點,這點缺點還是可以接受的,

發送訊息
介紹了三種交換方式,下面可以說說重頭戲了,也就是A給B發送一句“我喜歡你”為例,A代表瀏覽器,B代表服務器,當A發送請求的時候,首先通過應用層,應用層將資訊封裝成一個HTTP請求報文,交給傳輸層,

上圖是HTTP請求報文的通用格式,在我們互聯網中傳輸的時候的格式一般如下,

傳輸層加上TCP首部,封裝成TCP報文段(可用來區分應用行程并實作可靠傳輸),交給網路層,

網路層給TCP報文段加上IP首部,封裝成IP資料報(可在互聯網上傳輸,即被路由器轉發),交給資料鏈路層,

資料鏈路層添加首部和尾部,將其封裝成幀(可被目的主機接收,并檢查),資料鏈路層將幀交給物理層,

物理層將幀看作位元流,并添加前導碼,然后轉化為相應的信號在傳輸媒體上傳輸,

當碰到一個路由器之后,物理層首先去掉前導碼,將其交付給資料鏈路層,資料鏈路層去掉幀的首部和尾部,將其交付給網路層,網路層決議IP資料報的首部,決議其目的地址并進行轉發,網路層將IP資料報交給資料鏈路層,資料鏈路層添加首部和尾部,將其封裝成幀,資料鏈路層將幀交給物理層,物理層將幀看作位元流,并添加前導碼,

然后到達服務器,服務器從物理層開始決議,首先去掉前導碼,然后去掉首部尾部,然后去掉IP首部,然后去掉TCP首部,最后在應用層接收到HTTP請求報文,

應用層對HTTP請求報文進行決議,然后發出回應報文,報文內容:我們不合適(該程序與發送程序類似),

終究還是一個人扛下所有,,,
參考文獻
[1] 計算機網路自頂向下方法.陳銘 譯.機械工業出版社
[2] 湖科大教書匠.計算機網路微課堂.嗶哩嗶哩
寫在后面
這里通過一句“我喜歡你”,把資料在網路中的傳遞程序進行了一個描述,一些細節問題,后續章節會詳細介紹,我們下期再見~
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/263320.html
標籤:其他
