1. 程式人生 > >Android網路程式設計面試題集

Android網路程式設計面試題集

網路程式設計

TCP與UDP有什麼區別?

  1. TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,即傳送資料之前不需要建立連線
  2. TCP提供可靠的服務。也就是說,通過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付
  3. TCP面向位元組流,實際上是TCP把資料看成一連串無結構的位元組流;UDP是面向報文的UDP沒有擁塞控制,因此網路出現擁塞不會使源主機的傳送速率降低(對實時應用很有用,如IP電話,實時視訊會議等)
  4. 每一條TCP連線只能是點到點的;UDP支援一對一,一對多,多對一和多對多的互動通訊
  5. TCP首部開銷20位元組;UDP的首部開銷小,只有8個位元組
  6. TCP的邏輯通訊通道是全雙工的可靠通道,UDP則是不可靠通道

簡單介紹一下TCP三次握手與四次分手過程?

TCP用三次握手(three-way handshake)過程建立一個連線,使用四次分手 關閉一個連線。

三次握手與四次分手的流程如下所示:

三次握手

  • 第一次握手:建立連線。客戶端傳送連線請求報文段,將SYN位置為1,Sequence Number為x;然後,客戶端進入SYN_SEND狀態,等待伺服器的確認;
  • 第二次握手:伺服器收到SYN報文段。伺服器收到客戶端的SYN報文段,需要對這個SYN報文段進行確認,設定Acknowledgment Number為x+1(Sequence Number+1);同時,自己自己還要傳送SYN請求資訊,將SYN位置為1,Sequence Number為y;伺服器端將上述所有資訊放到一個報文段(即SYN+ACK報文段)中,一併傳送給客戶端,此時伺服器進入SYN_RECV狀態;
  • 第三次握手:客戶端收到伺服器的SYN+ACK報文段。然後將Acknowledgment Number設定為y+1,向伺服器傳送ACK報文段,這個報文段傳送完畢以後,客戶端和伺服器端都進入ESTABLISHED狀態,完成TCP三次握手。 完成了三次握手,客戶端和伺服器端就可以開始傳送資料。以上就是TCP三次握手的總體介紹。

四次分手

  • 第一次分手:主機1(可以使客戶端,也可以是伺服器端),設定Sequence Number和Acknowledgment Number,向主機2傳送一個FIN報文段;此時,主機1進入FIN_WAIT_1狀態;這表示主機1沒有資料要傳送給主機2了;
  • 第二次分手:主機2收到了主機1傳送的FIN報文段,向主機1回一個ACK報文段,Acknowledgment Number為Sequence Number加1;主機1進入FIN_WAIT_2狀態;主機2告訴主機1,我“同意”你的關閉請求;
  • 第三次分手:主機2向主機1傳送FIN報文段,請求關閉連線,同時主機2進入LAST_ACK狀態;
  • 第四次分手:主機1收到主機2傳送的FIN報文段,向主機2傳送ACK報文段,然後主機1進入TIME_WAIT狀態;主機2收到主機1的ACK報文段以後,就關閉連線;此時,主機1等待2MSL後依然沒有收到回覆,則證明Server端已正常關閉,那好,主機1也可以關閉連線了。

三次握手與四次分手也是個老生常談的概念,舉個簡單的例子說明一下。

三次握手

例如你小時候出去玩,經常玩忘了回家吃飯。你媽媽也經常過來喊你。如果你沒有走遠,在門口的小土堆上玩泥巴,你媽媽會喊:"小新,回家吃飯了"。你聽到後會迴應:"知道了,一會就回去"。媽媽聽 到你的迴應後又說:"快點回來,飯要涼了"。這樣你媽媽和你就完成了三次握手的過程。

相關推薦

Android網路程式設計試題

網路程式設計TCP與UDP有什麼區別?TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,即傳送資料之前不需要建立連線TCP提供可靠的服務。也就是說,通過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付TCP面向位元組

Linux的網路程式設計試題彙總

1:tcp和udp的區別 2:流量控制和擁塞控制的實現機制 3:滑動視窗的實現機制 4:多執行緒如何同步。 5:程序間通訊的方式有哪些,各有什麼優缺點 6:tcp連線建立的時候3次握手的具體過程,以及其中的每一步是為什麼 7:tcp斷開連線的具體過程,其中每一步是為什麼那麼做

常見的網路程式設計試題

http://www.360doc.com/content/14/0724/21/1073512_396828405.shtml 1:tcp和udp的區別 TCP:是面向連線的流傳輸控制協議,具有高可靠性,確保傳輸資料的正確性,有驗證重發機制,因此不會出現丟失或亂序

java網路程式設計試題(一)

1、tcp和udp的區別  TCP:是面向連線的流傳輸控制協議,具有高可靠性,確保傳輸資料的正確性,有驗證重發機制,因此不會出現丟失或亂序。 UDP:是無連線的資料報服務,不對資料報進行檢查與修改,無須等待對方的應答,會出現分組丟失、重複、亂序,但具有較好的實時性,UDP

java網路程式設計試題

1.網路程式設計時的同步、非同步、阻塞、非阻塞? 同步:函式呼叫在沒得到結果之前,沒有呼叫結果,不返回任何結果。非同步:函式呼叫在沒得到結果之前,沒有呼叫結果,返回狀態資訊。阻塞:函式呼叫在沒得到結果

Android試題

頁面 nts 可見 集成 培訓課程 繼續 ide imp 進入 前幾天整理了Java面試題集合,今天再來整理下Android相關的面試題集合.假設你希望能得到最新的消

android精妙試題

1、繪製Activity和Fragment生命週期流程圖,並以對比圖形式展示。 Activity生命週期圖: Fragment生命週期圖:        兩者對比圖: 2、如何避免OOM異常 OOM(out o

全面升級Android面試之Asynctask試題

1.Asynctask究竟是什麼?我們為什麼要使用它? 我們知道,Android應用的主執行緒(UI 執行緒)肩負著繪製使用者介面和及時響應使用者操作的重任,為了避免“使用者點選按鈕後沒反應”這樣的糟糕使用者體驗,我們就要確保主執行緒時刻保持著較高的響應

全面升級Android面試之fragment試題

1.Fragment為什麼被稱為第五大元件 答:Fragment比Activity更節省記憶體,其切換模式也更加舒適,使用頻率不低於四大元件,且有自己的生命週期,並且必須依付於Activity 2.Activity建立Fragment的方式 靜態建立具體步

Java多線程(二) —— 線程安全、線程同步、線程間通信(含試題

err 線程等待 共同點 -c java多線 能夠 空間 而不是 不一致 一、線程安全 多個線程在執行同一段代碼的時候,每次的執行結果和單線程執行的結果都是一樣的,不存在執行結果的二義性,就可以稱作是線程安全的。 講到線程安全問題,其實是指多線程環境下對共享資源的訪問可能會

Java試題(五)

足夠 advice 面試題 有一個 了解 framework ons switch 多個 三、開源框架 什麽是mybaties? Mybaties是支持普通sql查詢,存儲過程和高級映射的優秀持久層框架。Mybaties消除了幾乎所有的jdbc代碼和參數的手

Java試題(六)

ssi location 寫法 lac boa net struts2的 語言 rtu 以下為框架補充部分: Struts 2中,Action通過什麽方式獲得用戶從頁面輸入的數據,又是通過什麽方式把其自身的數據傳給視圖的? Action從頁面獲取數據有三種方式:

Java試題(四)

clu error col edi servlet對象 動態 解決方法 原來 highlight 二. Java Web基礎部分 在js中如何創建一個對象? var p1={name:”tom”,”age”

第3章 Android基礎相關試題

sch str adapt div 再次 點擊 相關 發現 amp 1、Activity問題講解   a) Activity的生命周期     1.Activity的4種狀態       running / paused / stopped / kil

Android網路程式設計 --斷點續傳下載檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Java試題(51-70)

分享一個大神的人工智慧教程!http://blog.csdn.net/jiangjunshow Java程式設計師面試題集(51-70) 摘要:這一部分主要講解了異常、多執行緒、容器和I/O的相關面試題。首先,異常機制提供了一種在不打亂原有業務邏輯的前提下,把程式在執

Java試題(86-115)

分享一個大神的人工智慧教程!http://blog.csdn.net/jiangjunshow Java程式設計師面試題集(86-115) 摘要:下面的內容包括Struts 2和Hibernate的常見面試題,雖然Struts 2在2013年6月曝出高危漏洞後已經顯得江河日

Java試題(136-150)

分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow Java程式設計師面試題集(136-150) 摘要:這一部分主要是資料結構和演算法相關的面試題目,雖然只有15道題目,但是包含的資訊量還是很大的,很多題目背後的解題思路和

Java試題(116-135)

分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow Java程式設計師面試題集(116-135) 摘要:這一部分講解基於Java的Web開發相關面試題,即便在Java走向沒落的當下,基於Java的Web開發因為擁有非常成熟