1. 程式人生 > >新華三軟體開發面經

新華三軟體開發面經

直接走的社招。

面試流程,筆試-1面-2面。

內容C的基礎知識,實參形參,指標,大部分都是16進位制的題,最後一個print 記憶體dump函式。新華三主要還是看你的程式設計思維還有看學校,本身進去難度不大。

面試的內容,講解了交換機的工作原理,各種TCP/IP 協定的相關內容。一些自己準備的內容直接粘過來了,有需要的道友可以多瞭解下。

TCP的擁塞控制
1.  擁塞:即對資源的需求超過了可用的資源。若網路中許多資源同時供應不足,網路的效能就要明顯變壞,整個網路的吞吐量隨之負荷的增大而下降。
    擁塞控制:防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制所要做的都有一個前提:網路能夠承受現有的網路負荷。擁塞控制是一個全域性性的過程,涉及到所有的主機、路由器,以及與降低網路傳輸效能有關的所有因素。
    流量控制:指點對點通訊量的控制,是端到端正的問題。流量控制所要做的就是抑制傳送端傳送資料的速率,以便使接收端來得及接收。
    擁塞控制代價:需要獲得網路內部流量分佈的資訊。在實施擁塞控制之前,還需要在結點之間交換資訊和各種命令,以便選擇控制的策略和實施控制。這樣就產生了額外的開銷。擁塞控制還需要將一些資源分配給各個使用者單獨使用,使得網路資源不能更好地實現共享。
2. 幾種擁塞控制方法
    慢開始( slow-start )、擁塞避免( congestion avoidance )、快重傳( fast retransmit )和快恢復( fast recovery )。
2.1 慢開始和擁塞避免
    傳送方維持一個擁塞視窗 cwnd ( congestion window )的狀態變數。擁塞視窗的大小取決於網路的擁塞程度,並且動態地在變化。傳送方讓自己的傳送視窗等於擁塞。
    傳送方控制擁塞視窗的原則是:只要網路沒有出現擁塞,擁塞視窗就再增大一些,以便把更多的分組傳送出去。但只要網路出現擁塞,擁塞視窗就減小一些,以減少注入到網路中的分組數。

TCP的流量控制
1. 利用滑動視窗實現流量控制
    如果傳送方把資料傳送得過快,接收方可能會來不及接收,這就會造成資料的丟失。所謂流量控制就是讓傳送方的傳送速率不要太快,要讓接收方來得及接收。
    利用滑動視窗機制可以很方便地在TCP連線上實現對傳送方的流量控制    

設A向B傳送資料。在連線建立時,B告訴了A:“我的接收視窗是 rwnd = 400 ”(這裡的 rwnd 表示 receiver window) 。因此,傳送方的傳送視窗不能超過接收方給出的接收視窗的數值。請注意,TCP的視窗單位是位元組,不是報文段。TCP連線建立時的視窗協商過程在圖中沒有顯示出來。再設每一個報文段為100位元組長,而資料報文段序號的初始值設為1。大寫ACK表示首部中的確認位ACK,小寫ack表示確認欄位的值ack

多執行緒(英語:multithreading),是指從軟體或者硬體上實現多個執行緒併發執行的技術。具有多執行緒能力的計算機因有硬體支援而能夠在同一時間執行多於一個執行緒,進而提升整體處理效能。具有這種能力的系統包括對稱多處理機、多核心處理器以及晶片級多處理(Chip-level multithreading)或同時多執行緒(Simultaneous multithreading)處理器。

CPU頻率,就是CPU的時鐘頻率,簡單說是CPU運算時的工作的頻率(1秒內發生的同步脈衝數)的簡稱。單位是Hz。它決定計算機的執行速度。

RIP
  RIP(Routing Information Protocol)是距離向量型的一種路由協議,廣泛用於LAN。 
4.1.廣播路由控制資訊 
  RIP將路由控制資訊定期(30s一次)向全網廣播,由於可能丟包,因此RIP規定等待5次,如果等了6次(180S)仍未收到路由資訊,才會真正關閉連線。 
  過程: 
  1).30S一次,將自己所知道的路由資訊廣播出去。 
  2).將已知的路由資訊經過一跳之後繼續廣播。 
  3).以此類推,逐步傳播路由資訊。
4.2.根據距離向量確定路由 
  RIP基於距離向量演算法決定路徑,距離的單位為“跳數”,跳數是指所經過的路由器的個數。RIP希望儘可能少通過路由器將資料包轉了到目標IP地址。根據距離向量生成距離向量表,再抽出較小的路由生成最終的路由控制表。
4.3.使用子網掩碼時的RIP處理 
  RIP雖然不交換子網掩碼資訊,但可以用於使用子網掩碼的網路環境。採用RIP進行路由控制的範圍內必須注意兩點: 
  1).因IP地址的分類而產生不同的網路地址時 
  2).構造網路地址長度不同的網路環境時
4.4.RIP中路由變更時的處理 
  RIP的基本行為可歸納為如下兩點: 
  1).將自己所知道的路由資訊定期進行廣播 
  2).一旦認為網路被斷開,資料將無法流過此路由器,其他路由器也就可以得知網路已經斷開。 
  不過,這兩點不論哪種方式都存在一些問題。 
  如:在非環路的情況下,路由器A將網路A的連線資訊傳送給路由器B,路由器B又將自己掌握的路由資訊在原來的基礎上加1跳後傳送給路由器A和路由器C,假定這時路由器A與網路A的連線發生了故障。路由器A雖然覺察到自己與網路A的連線已經斷開,無法將網路A的資訊傳送給路由器,但它會收到路由器B曾經獲知的資訊,這就使得路由器A誤認為自己的資訊還可以通過路由器B到達網路A。 
  像這樣收到自己發出去的訊息,這個問題被稱為無限計數。為了解決這個問題可以採取以下兩種方法: 
  1).最長距離不超過16.由此即使發生無限計數的問題,也可以從時間上進行控制 
  “距離為16”這個資訊只會被保留120秒,一旦超過這個時間,資訊將會被刪除,無法傳送,這個時間由一個叫垃圾收集計時器的工具進行管理。 
  2).規定路由器不再把所收到的路由器由訊息原路返還給傳送端,這也被稱作水平分割(Split Horizon)
  然而這咱方法對有些網路來說是無法解決問題的,在網路本身就有環路的情況下。為了解決這個問題,人們提出了”毒性逆轉“和”轉發更新“ 
  毒性逆轉:指當網路中發生鏈路被斷開的時候,不是不再發送這個訊息,而是將這個無法通訊的訊息轉播出去,即發一個距離為16的訊息。 
  觸發更新:指當路由資訊發生變化時,不等待30S而是立刻傳送出去的一種方法。 
  有了這兩種方法,在鏈路不通時,可以迅速傳送訊息以使路由資訊儘快收斂。 
  在一個具有眾多環路的複雜的網路環境中,路由資訊想要達到一個穩定的狀態是需要花一段時間,為了解決這個問題,必須明確地掌握網路結構,在瞭解究竟哪個鏈路斷開後再進行路由控制非常重要。為此,可以採用OSPF.
4.5.RIP2 
新的特點: 
  1).作用多播 
  2).支援子網掩碼 
  3).路由選擇域 
  4).外部路由標誌 
  5).身份驗證金鑰

三次握手要會畫。 大概如此,做的東西偏底層。整個公司感覺氛圍還可以,比不上一線網際網路,依舊是個不錯的選擇。