校招面試之——網路相關
最近校招季,特把自己面試中遇到的問題整理整理,以鞏固自己的知識。
對於網路這塊,面試官一般喜歡問的是ISO/OSI參考模型和TCP/IP協議族方面的知識,下面我們就來看看吧。
首先,我們先給出它們的結構圖
注意:圖中有一個Hardware層,圖中顯示它和OSI模型中的物理層(Physical)相對應,其實嚴格意義上說,它是不屬於TCP/IP協議族中的一員的,這個層次包括網線的制式,網絡卡的定義,負責網路的傳輸。
OSI
Open System Interconnection,即開放式系統互聯。OSI先有模型,後有協議,先有標準,後進行實踐。且OSI只是一種理想的模型,並沒有真正使用。
TCP/IP
TCP/IP則是先有協議和應用再提出了模型,且是參照的OSI模型。TCP/IP現已被廣泛使用,已成為網路互聯實際上的標準。
TCP:Transmission Control Protocol,傳輸控制協議
IP:Internet Protocol Address,網際協議地址
UDP:User Datagram Protocol,使用者資料報協議
TCP/IP協議中各個層次的功能
- 應用層:為使用者提供各種需要的服務,例如FTP,Telnet,DNS,SMTP。
- 傳輸層:為應用層實體提供端到端的通訊功能。該層定義了兩種主要的協議:TCP(傳輸控制協議)和UDP(使用者資料報協議)。TCP提供的是一種可靠的、面向連線的資料傳輸服務,UDP提供的是不可靠的、無連線的資料傳輸服務。
- 網際互聯層:主要解決主機到主機的通訊問題。其中最重要的一個協議是IP協議(網際協議),它提供的是一種不可靠、無連線的資料報傳輸服務。
- 網路介面層:與OSI模型中的資料鏈路層和物理層相對應。
TCP和UDP的區別
TCP提供了一種可靠的資料傳輸服務,TCP是面向連線的。利用TCP通訊的兩臺主機首先要經歷一個“撥打電話”的過程,等到通訊準備結束後才開始傳輸資料,最後結束通話。UDP是直接把資料發出去,而不管對方是不是在收信,就算是UDP無法送達,也不會產生ICMP差錯報文。
一個TCP資料的傳送過程
- 雙方建立連線。
- 傳送方給給接收方TCP資料報,然後等待對方的確認TCP資料報。如果在一定的時間內沒有收到確認資料報,就重新發送剛才傳送的資料報;如果收到了,就傳送下一個資料報。
- 接收方等待發送方的資料報,如果得到資料報並檢驗無誤,就傳送ACK(確認)資料報,並等待下一個TCP資料報的到來,直到接收到FIN資料報(傳送完成資料報)。
- 終止連線。
TCP連線的建立和終止
連線的建立
在建立連線的時候,客戶端首先向伺服器申請開啟某一埠,然後服務端發回一個ACK報文通知客戶端請求報文收到,客戶端收到確認報文後再次發出確認報文確認剛才服務端發出的確認報文自己收到。至此,連線的建立完成,這也叫做“三次握手”。
結束連線
TCP有一個特別的概念叫做half-close,這個意思是說TCP的連線是全雙工連線(可以同時傳送和接收)。因此在關閉連線的時候,必須關閉傳和送兩個方向上的連線。當要結束連線的時候,客戶端給伺服器一個FIN為1的TCP報文,然後伺服器返回給客戶端一個確認ACK報文,並且傳送一個FIN報文,當客戶端回覆ACK報文後,連線就結束了。這就是“四次握手”。
TCP協議是如何保證傳輸的可靠性的
將資料擷取為合理的長度
應用資料被分割成TCP認為最適合傳送的資料塊,應用資料產生的資料報長度將保持不變。
超時重發
當TCP發出一個報文後,它會啟動一個定時器,等待目的端的確認報文發回。如果在定時器時間內沒有收到確認報文,那它就會重新發送這個報文。
目的端對於收到的報文,做出確認響應
當目的端收到報文後,它將傳送一個確認報文。這個確認不是立即傳送,一般會延遲幾分之一秒(要對包作完整校驗)。
目的端檢驗出包有錯,丟棄報文段,不給出確認響應,等待重傳。
目的端收到報文後,會對報文的完整性作校驗(主要是防止傳輸過程中資料的丟失或更改),如果檢驗有差錯,TCP就會捨棄此報文段,並且不會做出確認響應,等待另一端的重傳。
對失序資料進行重排交給應用層。
因為TCP報文是作為IP資料報(IP提供的是不可靠傳輸)來傳送的,而IP報的的到達順序可能會失序。因此TCP將對收到的資料進行重新排序然後才交給應用層。
對於重複資料,丟棄重複資料
由於IP資料報可能會重複,TCP必須丟棄重複的資料。
TCP可以進行流量控制,防止較快主機致使較慢主機的緩衝區溢位
TCP連線的每一方都有固定大小的緩衝區,TCP接收端只允許另一端傳送接收端緩衝區能接納的資料。(流量控制協議:可變大小的滑動視窗協議)
相關推薦
校招面試之——網路相關
最近校招季,特把自己面試中遇到的問題整理整理,以鞏固自己的知識。 對於網路這塊,面試官一般喜歡問的是ISO/OSI參考模型和TCP/IP協議族方面的知識,下面我們就來看看吧。 首先,我們先給出它們的結構圖 注意:圖中有一個Hardware
【校招面試 之 C++】第1題 為什麽優先使用構造函數的初始化列表
初始化 校招 操作 struct st2 使用 mage div 賦值運算 1.首先看一個例子: #include<iostream> using namespace std; class Test1 { public: Test1() // 無參
【校招面試 之 C++】第4題 拷貝構造函數被調用的3個時機
舉例 inf 操作符 -c 接收 clu 分享圖片 his 校招 1、被調用的3個時機: (1)直接初始化或拷貝初始化; (2)將一個對象作為一個實參傳遞,形參采用非指針或非引用的對象進行接收時; (3)函數的返回值是一個非指針或者非對象被接收時。 2、舉例說明: #
【校招面試 之 C/C++】第20題 C++ STL(二)之Vector
小時 可用 修改 ret cap push sta enc 指向 1、vector的動態增長 當添加元素時,如果vector空間大小不足,則會以原大小的兩倍另外配置一塊較大的新空間,然後將原空間內容拷貝過來,在新空間的內容末尾添加元素,並釋放原空間。vector的空間動
【校招面試 之 劍指offer】第9-2題 用兩個隊列實現一個棧
實現 bsp ont 入隊 out == end nbsp img #include<iostream> #include<queue> using namespace std; // 對於出棧解決的思路是:將queue1的元素除了最後一個外全部放
【校招面試 之 劍指offer】第10-3題 矩陣覆蓋問題
com 重疊 inf space return idt alt 我們 class 題目:我們可以使用2??1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用8個2??1的小矩形無重疊地覆蓋一個2??8的大矩形,共有多少種方法? 分析:當放第一塊時(假定從左邊開始)可以橫著放,
【校招面試 之 劍指offer】第16題 數值的整數次方
iostream 面試 直接 lse cpp sin 校招 ack 整數次方 方法1:直接求解,但是要註意特殊情況的處理:即當指數為負,且底數為0的情況。 #include<iostream> using namespace std; template<
校招面試之終結篇
整理的校招面試題如下,希望對即將畢業的小夥伴有所幫助~ 1、java基礎 Java基礎型別有哪些 String是不是基本資料型別 static關鍵字和final關鍵字的含義 ++i和i++ volatile的理解 synchronized是阻塞式同步 hash
一名2018年應屆生的美團前端校招面試之旅
從17年秋招開始我便向美團投了簡歷,也參加了線上筆試,但是輸的很慘淡,筆試沒過後,來繼續在武漢找了家小公司實習。春招開啟之際,我嘗試過投了鬥魚(沒有獲得面試機會),小紅書(筆試沒過),360(拿到了實習offer以及技術經理承諾的好好表現就能轉正的口頭承諾)等等。當然,這其中還有美團,我於18年3月22日參加
校招面試之Java web部分
以下內容轉載自某老師整理筆記。有需要的可以看一下 1.0 HTTP請求的GET與POST方式的區別 1)get用來請求資源,post用來提交資源 2)get引數在url上
校招面試之——Java容器
最近校招季,特把自己面試中遇到的問題整理整理,以鞏固自己的知識。 Java中對於容器有兩大類儲存方式,一種是單元素存放,還有一種就是key-value這種有關聯的雙元素存放了。對於Java中的容器,有下列的結構圖可以參照: Collection (用來存放獨
校招面試知識點複習之計算機網路
1、電路交換與分組交換 電路交換特點:資源會被預留 電路交換分為:頻分多路複用以及時分多路複用 優點:可以為一個通話保證特定數量的端到端頻寬 缺點:效率低 分組交換特點:資源不會被預留 優點:效率高 今天的因特網就是分組交換的典範!
淺談2019蘇寧易購校招面試
昨晚面了(視訊面試)蘇寧易購(2019校招),全程跟不上面試官的的節奏,總結起來就是四個字,一臉懵逼....... 大概提前了半個小時進入了視訊面試的房間,剛好面試官也上線了,然後就比約定時間早了半個小時開始面試,具體的一些面試問題如下
2018屆校招面試知識點
2018屆校園招聘面試知識點總結如下: 1、 full gc(虛擬機器相關) 2、 hashmap(原始碼級別) 3、 單例模式寫法(每種寫法的優劣) 4、 Java與C++(區別,相似) 5、 Shiro(具體工作流程
校招面試記錄貼
騰訊sng 一面 1 海量文字去重 https://www.cnblogs.com/maybe2030/p/5203186.html 2 最長公共子串 3 negative sampling 和 分層softmax http://www.cnblogs.com/pinar
Java 校招面試 Google 面試官親授
第1章 課程引言校招主要考察的是基礎知識和程式設計能力,介紹校招總體大致錄取率。詳細介紹本課程的學習目標,課程安排,最後演示谷歌線上筆試。 1-1 _導學1-2 校招錄取率和線上筆試1-3 從一道谷歌線上筆試開始第2章 作業系統本章從作業系統最常見的問題,程序vs執行緒入手,講解其記憶體結構。講解儲存的層次
Java 校招面試大全
面試準備 HBase HBase 基礎結構 1. HMaster HMaster 是 HBase 主/從叢集架構的的中央節點; HMaster 將 Region 分配給 RegionServer,協調 RegionServer 的負載並維護叢集狀
2018校招面試隨筆
今年4月底入職當前網際網路公司,有幸參加了公司2018校招,負責某java崗初試的一面或者二面(初試一輪或者兩輪看情況的)。第一次參與校招,持續兩天,今天剛忙完,晚上躺在床上竟有點睡不著,想反思下這兩天的操作,文筆不佳,想到啥寫點啥。 連續的面試下來,感覺被考驗的既是校招生,也是自己。來面試的不乏名校
2018校招 多益網路 人工智慧及大資料研發工程師 面經
8月中投的內推,人工智慧及大資料研發工程師,9月初做了筆試,筆試感覺難度還可以,做完顯示筆試通過,等了大概一週收到視訊面試的郵件和簡訊。 郵件上寫著面試時間20分鐘,最後面了30分鐘多點。 1.一上來,自我介紹常規操作 2.講一下簡歷上寫的論文做的是什麼 3.概
java面試之專案相關面試題目(未完待續)
1.你說說你做的最好的專案? 要重點介紹到①專案是做什麼?②用到那些技術?③整個專案中最大的亮點是?核心部分④遇到bug是怎麼解決的? 例如: 我認為我做的最好的專案是 創辦了螞蟻課堂it線上教學