李洪強經典面試題146-網絡

李洪強經典面試題146-網絡

 

網絡

http請求方式?

一般,HTTP的請求方式有3種,分別是:POST、GET、HEAD。POST和GET方法是用於數據發送的。html

POST:它將要發送的數據單獨放在一個流中進行發送,而不是附加在URL地址後面,這樣作的好處是這些數據不會出如今URL地址中。程序員

GET:它將要發送的數據直接添加在URL後面,如:www.sina.com.cn?username=""&password="",這樣的好處是能夠直接將數據加在URL後,而不需在用另外的流來發送這些數據,可是缺點也顯而易見,它將用戶的信息顯示出來了。web

HEAD:它是請求資源的元數據方法。在具體的應用中,我暫時還沒遇到過,也不去對它進行研究,須要是在學習。面試

Http定義了與服務器交互的不一樣方法,最基本的方法有?

  • URL全稱是資源描述符,咱們能夠這樣認爲:一個URL地址,它用於描述一個網絡上的資源,而HTTP中的GET,POST,PUT,DELETE就對應着對這個資源的查,改,增,刪4個操做。編程

  • GET通常用於獲取/查詢資源信息,而POST通常用於更新資源信息。json

socket編程簡述

它是基於TCP/IP協議,Socket就是一個能夠連通網絡上不一樣計算機程序之間的管道,把一堆數據從管道的A端扔進去,則會從管道的B端(也許同時還能夠從C、D、E、F……端冒出來)。管道的端口由兩個因素來惟一確認,即機器的IP地址和程序所使用的端口號。數組

Socket能夠支持數據的發送和接收,它會定義一種稱爲套接字的變量,發送數據時首先建立套接字,而後使用該套接字的sendto等方法對準某個IP/端口進行數據發送;接收端也首先建立套接字,而後將該套接字綁定到一個IP/端口上,全部發向此端口的數據會被該套接字的recv等函數讀出。如同讀出文件中的數據同樣。瀏覽器

TCP/IP的socket提供下列三種類型套接字。 流式套接字、數據報式套接字、原始式套接字。安全

客戶端編程步驟:服務器

1:加載套接字庫,建立套接字(WSAStartup()/socket());



2:向服務器發出鏈接請求(connect());



3:和服務器端進行通訊(send()/recv());



4:關閉套接字,關閉加載的套接字庫(closesocket()/WSACleanup())。

經常使用第三方庫:1,Asyncsocket庫

asihttp代碼原理,異步請求的原理,異步請求最大數目,爲何只能這麼多?

ASIHTTPRequest是一個簡易使用的類庫,經過包裝CFNetwork API 來簡化 和服務器端的通信. 它編寫的語言是Objective-C 可以應用於Mac OS X and iPhone 平臺的應用程序.

異步: 請求經過事件觸發->服務器處理(這是瀏覽器仍然能夠做其餘事情)->處理完畢這個數量是跟cpu有關的,併發性取決於cpu核數,每一個核只能同時處理一個任務.4核cpu理論上能夠併發處理4個任務,若是按http來算就是4個請求,可是cpu是搶佔式資源,因此通常來講併發量是要根據任務的耗時和cpu的繁忙度來計算4個左右只是個經驗值你開10個短耗時的任務和幾個長耗時任務的效率是不一樣的。

JSONKit、SBJson、TouchJSON和原生的區別?

JSONKit、SBJson、TouchJSON(性能從左到右,越右越差,主要就是性能上的差異)

App須要加載超大量的數據,給服務器發送請求,可是服務器卡住瞭如何解決?

1> 設置請求超時
2> 給用戶提示請求超時
3> 根據用戶操做再次請求數據

HTTP的通訊的 發送請求、接收響應 包含哪些內容?OC中是怎樣實現的?

  1. 請求:一個請求包含如下內容:
  2. 請求行:包含了請求方法、請求資源路徑、HTTP協議版本
    GET /XXServer/resources/images/1.jpg HTTP/1.1
  3. 請求頭:包含了對客戶端的環境描述、客戶端請求的主機地址等信息

    • Host: 192.168.1.105:8080 // 客戶端想訪問的服務器主機地址
    • User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0
      // 客戶端的類型,客戶端的軟件環境
    • Accept: text/html, / // 客戶端所能接收的數據類型
    • Accept-Language: zh-cn // 客戶端的語言環境
    • Accept-Encoding: gzip // 客戶端支持的數據壓縮格式
    • 請求體:客戶端發給服務器的具體數據,好比文件數據
    • OC中請求NSURLRequest
    • 發送給服務器的請求包含:
    • 請求行: 包含了請求方法、請求資源路徑、HTTP協議版本
    • 請求頭: 對客戶端的環境描述、客戶端請求的主機地址等信息
    • 請求體: 客戶端發給服務器的具體數據
    • 默認超時時常:60s
    • 響應:
    • 一個響應包括:
    • 狀態行:包含了HTTP協議版本、狀態碼、狀態英文名稱 HTTP/1.1 200 OK
    • 響應頭:包含了對服務器的描述、對返回數據的描述
    • Server: Apache-Coyote/1.1 // 服務器的類型
    • Content-Type: image/jpeg // 返回數據的類型
    • Content-Length: 56811 // 返回數據的長度
    • Date: Mon, 23 Jun 2014 12:54:52 GMT // 響應的時間
    • 實體內容:服務器返回給客戶端的具體數據,好比文件數據
    • OC中響應用NSURLRespose:返回給客戶端的迴應包含:

      • 狀態行 : 包含了HTTP協議版本、狀態碼、狀態英文名稱
      • 響應頭 : 包含了對服務器的描述、對返回數據的描述
      • 實體內容:服務器返回給客戶端的具體二進制數據

      • 經常使用屬性: expectedContentLength (下載時返回文件的長度)

        suggestedFilename(建議保存的文件名)

http 的post與get區別與聯繫,實踐中如何選擇它們?

  GET POST
用途 從服務器上獲取數據 向服務器傳送數據提交方式
服務器解析 Request.QueryString獲取變量的值 Request.Form獲取提交的數據
數據大小 最大1024字節 無限制
安全性 URL中能看到提交的數據 隱藏在請求頭中

知道TCP/UDP嗎?說說關於UDP/TCP的區別?

  • UDP: 是用戶數據報協議: 主要用在實時性要求高以及對質量相對較弱的地方,但面對如今高質量的線路不是容易丟包除非是一些擁塞條件下, 如流媒體
  • TCP: 是傳輸控制協議:是面鏈接的,那麼運行環境必然要求其可靠性不可丟包有良好的擁塞控制機制如http ftp telnet 等
  TCP UDP
發送與接收 安全送達 只管發送
創建鏈接 是(三次握手) 否(有數據包,無需鏈接)
數據大小 無限制 每一個數據報64k
可靠性 可靠 不可靠
速度 慢(三次握手才能完成鏈接 快(無需鏈接)
應用 流媒體 qq

什麼是三次握手與四次揮手?

  • 三次握手實現的過程:

    • 第一次握手:創建鏈接時,客戶端發送同步序列編號到服務器,並進入發送狀態,等待服務器確認
    • 第二次:服務器收到同步序列編號,確認並同時本身也發送一個同步序列編號+確認標誌,此時服務器進入接收狀態
    • 第三次:客戶端收到服務器發送的包,並向服務器發送確認標誌,隨後連接成功。
    • 注意:是在連接成功後在進行數據傳輸。
  • 四次揮手:

    • 第一次: 客戶端向服務器發送一個帶有結束標記的報文。
    • 第二次:服務器收到報文後,向客戶端發送一個確認序號,同時通知本身相應的應用程序:對方要求關閉鏈接
    • 第三次: 服務器向客戶端發送一個帶有結束標記的報文。
    • 第四次: 客戶端收到報文後,向服務器發送一個確認序號。連接關閉。

分析json、xml的區別?json、xml解析方式的底層是如何處理的?

  1. Json與xml的區別:

    • 可讀性方面:基本相同,xml的可讀性比較好
    • 可擴展性方面:都具備很好的擴展性
    • 編碼難度方面:相對而言:JSON的編碼比較容易
    • 解碼難度:json的解碼難度基本爲零,xml須要考慮子節點和父節點
    • 數據體積方面:json相對於xml來說,數據體積小,傳遞的速度跟快些
    • 數據交互方面:json與JavaScript的交互更加方面,更容易解析處理,更好的數據交互
    • 數據描述方面:xml對數據描述性比較好
    • 傳輸速度方面:json的速度遠遠快於xml
  2. JSON底層原理:

    • 遍歷字符串中的字符,最終根據格式規定的特殊字符,好比{}號,[]號, : 號 等進行區分,{}號是一個字典 的開始,[]號是一個數組的開始, : 號是字典的鍵和值的分水嶺,最終乃是將json數據轉化爲字典,字典中值多是字典,數組,或字符串而已。
  3. XML底層原理:

    • XML解析經常使用的解析方法有兩種:DOM解析和SAX解析。
    • DOM 採用創建樹形結構的方式訪問 XML 文檔,而 SAX 採用的事件模型。
    • DOM 解析把 XML 文檔轉化爲一個包含其內容的樹,並能夠對樹進行遍歷。
    • 使用 DOM 解析器的時候需 要處理整個 XML 文檔,因此對性能和內存的要求比較高。
    • SAX在解析 XML 文檔的時候能夠觸發一系列的事件,當發現給定的tag的時候,它能夠激活一個回調方法,告訴該方法制定的標籤已經找到。
    • SAX 對內存的要求一般會比較低,由於它讓開發人員本身來決定所要處理的tag。特別是當開發人員只須要處理文檔中所包含的部分數據時,SAX 這種擴展能力獲得了更好的體現。
    1. (補充)其餘解析方式有自定義二進制解析,就是按字節去解析,電話會談就是如此,還能夠是字符串之間用特殊符號鏈接的數據,將此數據用特殊符號能夠分割成所用數據。

http和scoket通訊的區別?socket鏈接相關庫,TCP,UDP的鏈接方法,HTTP的幾種經常使用方式?

  1. http和scoket通訊的區別:
    • http是客戶端用http協議進行請求,發送請求時候須要封裝http請求頭,並綁定請求的數據,服務器通常有web服務器配合(固然也非絕對)。 http請求方式爲客戶端主動發起請求,服務器才能給響應,一次請求完畢後則斷開鏈接,以節省資源。服務器不能主動給客戶端響應(除非採起http長鏈接技術)。iphone主要使用類是NSUrlConnection。
    • scoket是客戶端跟服務器直接使用socket「套接字」進行鏈接,並無規定鏈接後斷開,因此客戶端和服務器能夠保持鏈接通道,雙方均可以主動發送數據。通常在遊戲開發或股票開發這種要求即時性很強而且保持發送數據量比較大的場合使用。主要使用類是CFSocketRef。

通訊底層原理(OSI七層模型)

  • OSI簡介:OSI採用了分層的結構化技術,共分七層,物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。

    • 物理層:主要定義物理設備標準,如網線的接口類型、光纖的接口類型、各類傳輸介質的傳輸速率等。它的主要做用是傳輸比特流(就是由一、0轉化爲電流強弱來進行傳輸,到達目的地後在轉化爲一、0,也就是咱們常說的數模轉換與模數轉換)。這一層的數據叫作比特。

    • 數據鏈路層:定義瞭如何讓格式化數據以進行傳輸,以及如何讓控制對物理介質的訪問。這一層一般還提供錯誤檢測和糾正,以確保數據的可靠傳輸。

    • 網絡層::在位於不一樣地理位置的網絡中的兩個主機系統之間提供鏈接和路徑選擇。Internet的發展使得從世界各站點訪問信息的用戶數大大增長,而網絡層正是管理這種鏈接的層。

    • 傳輸層:定義了一些傳輸數據的協議和端口號(WWW端口80等),如:TCP(傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,數據量大的數據),UDP(用戶數據報協議,與TCP特性偏偏相反,用於傳輸可靠性要求不高,數據量小的數據,如QQ聊天數據就是經過這種方式傳輸的)。 主要是將從下層接收的數據進行分段和傳輸,到達目的地址後再進行重組。經常把這一層數據叫作段。

  • 會話層:經過傳輸層(端口號:傳輸端口與接收端口)創建數據傳輸的通路。主要在你的系統之間發起會話或者接受會話請求(設備之間須要互相認識能夠是IP也能夠是MAC或者是主機名)

  • 表示層::可確保一個系統的應用層所發送的信息能夠被另外一個系統的應用層讀取。例如,PC程序與另外一臺計算機進行通訊,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC),而另外一臺則使用美國信息交換標準碼(ASCII)來表示相同的字符。若有必要,表示層會經過使用一種通格式來實現多種數據格式之間的轉換。

  • 應用層:是最靠近用戶的OSI層。這一層爲用戶的應用程序(例如電子郵件、文件傳輸和終端仿真)提供網絡服務。

all people seem to need date processing這一句話的意思是全部的人彷佛都須要處理數據

   
Application all
Presentation people
Session seem
Transport to
Network need
Data date
Physical processing

設計一套大文件(如上百M的視頻)下載方案

  • NSURLSession

  • 支持斷點下載,自動記錄中止下載時斷點的位置

  • 遵照NSURLSessionDownloadDelegate協議
  • 使用NSURLSession下載大文件,被下載文件會被自動寫入沙盒的臨時文件夾tmp中
  • 下載完畢,一般須要將已下載文件移動其餘位置(tmp文件夾中的數據被定時刪除),一般是cache文件夾中
  • 下載步驟:

    • 設置下載任務task的爲成員變量

      @property (nonatomic, strong) NSURLSessionDownloadTask *task;
      • 獲取NSURLSession對象

        NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc] init]];

      • 初始化下載任務任務

        self.task = [session downloadTaskWithURL:(此處爲下載文件路徑URL)];

      • 實現代理方法

        /*每當寫入數據到臨時文件的時候,就會調用一次該方法,一般在該方法中獲取下載進度/
        -(void)URLSession:(NSURLSession )session downloadTask: (NSURLSessionDownloadTask )downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
        {

        // 計算下載進度 CGFloat progress = 1.0 * totalBytesWritten / totalBytesExpectedToWrite;

        }

        /*任務終止時調用的方法,一般用於斷點下載/
        -(void)URLSession:(NSURLSession )session downloadTask:(NSURLSessionDownloadTask )downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes
        {

        //fileOffset:下載任務停止時的偏移量

        }

        /*遇到錯誤的時候調用,error參數只能傳遞客戶端的錯誤/
        -(void)URLSession:(NSURLSession )session task:(NSURLSessionTask )task didCompleteWithError:(NSError *)error
        { }

        /*下載完成的時候調用,須要將文件剪切到能夠長期保存的文件夾中/
        -(void)URLSession:(NSURLSession )session downloadTask:(NSURLSessionDownloadTask )downloadTask didFinishDownloadingToURL:(NSURL *)location
        {

        //生成文件長期保存的路徑 NSString *file = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:downloadTask.response.suggestedFilename]; //獲取文件句柄 NSFileManager *fileManager = [NSFileManager defaultManager]; //經過文件句柄,將文件剪切到文件長期保存的路徑 [fileManager moveItemAtURL:location toURL:[NSURL fileURLWithPath:file] error:nil];

        }

      • 操做任務狀態

        /*開始/繼續下載任務/
        [self.task resume];

        /*暫停下載任務/
        [self.task suspend];

HTTP協議的特色,關於HTTP請求GET和POST的區別?

HTTP協議的特色:
- HTTP超文本傳輸協議,是短鏈接,是客戶端主動發送請求,服務器作出響應,服務器響應以後,連接斷開。HTTP是一個屬於應用層面向對象的協議,HTTP有兩類報文:請求報文和響應報文。 - HTTP請求報文:一個HTTP請求報文由請求行、請求頭部、空行和請求數據4部分組成。 - HTTP響應報文:由三部分組成:狀態行、消息報頭、響應正文。

即時聊天App不會採用的網絡傳輸方式

A UDP
B TCP 
C HTTP D FTP 參考答案:D 理由:FTP是文件傳輸協議,是File Transfer Protocol的簡稱,它的做用是用於控制互聯網上文件的雙向傳輸,所以必定不會是即時聊天使用的;UDP是面向無鏈接的傳輸層協議,數據傳輸是不可靠的,它只管發,無論收不收穫得;TCP是面向鏈接的,可靠的傳輸層協議;HTTP是超文本傳輸協議,對應於應用層,而HTTP是基於TCP的。

在App中混合HTML5開發App如何實現的。在App中使用HTML5的優缺點是什麼?

在iOS中,一般是用UIWebView來實現,固然在iOS8之後可使用WKWebView來實現.有如下幾種實現方法: 經過實現UIWebView的代理方法來攔截,判斷scheme是不是約定好的,而後iOS調用本地相關API來實現: - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 在iOS7之後,能夠直接經過JavaScripteCore這個庫來實現,經過往JS DOM注入對象,而這個對象對應於咱們iOS的某個類的實例。更詳細請閱讀: OC JavaScriptCore與js交互 WKWebView新特性及JS交互 Swift JavaScriptCore與JS交互 能夠經過WebViewJavascriptBridge來實現。具體如何使用,請你們去其它博客搜索吧! 優缺點: iOS加入H5響應比原生要慢不少,體驗不太好,這是缺點。 iOS加入H5能夠實現嵌入別的功能入口,可隨時更改,不用更新版本就能夠上線,這是最大的優勢。

介紹一下XMPP?有什麼優缺點嗎?

XMPP(Extensible Messaging and Presence Protocol,前稱)是一種以XML爲基礎的開放式實時通訊協議,是 經由互聯網工程工做小組(IETF)經過的互聯網標準。簡單的說,XMPP就是一種協議,一種規定。就是說,在網絡上傳 東西,要創建鏈接,TCP/IP鏈接,創建後再傳東西,而XMPP就是規定你傳的東西的格式。XMPP是基於XML的協議。 優勢 開放: XMPP協議是自由、開放、公開的,而且易於瞭解。 並且在客戶端 、 服務器 、 組件 、 源碼庫等方面,都已經各自有多種實現。 標準: 互聯網工程工做小組( IETF )已經將Jabber的核心XML流協議以XMPP之名,正式列爲承認的實時通訊及Presence技術。 而XMPP的技術規格已被定義在RFC 3920及RFC 3921 。 任何IM供應商在遵循XMPP協議下,均可與Google Talk實現鏈接。 證明可用: 第一個Jabber(如今XMPP)技術是Jeremie Miller在1998年開發的,如今已經至關穩定;數以百計的開發者爲XMPP技術而努 力。 今日的互聯網上有數以萬計的XMPP服務器運做着,並有數以百萬計的人們使用XMPP實時傳訊軟件。 分散式: XMPP網絡的架構和電子郵件十分相像;XMPP核心協議通訊方式是先建立一個stream,XMPP以TCP傳遞XML數據流,沒有 中央主服務器。 任何人均可以運行本身的XMPP服務器,使我的及組織可以掌控他們的實時傳訊體驗。 安全: 任何XMPP協議的服務器能夠獨立於公衆XMPP網絡(例如在企業內部網絡中),而使用SASL及TLS等技術的可靠安全性,已自 帶於核心XMPP技術規格中。 可擴展: XML 命名空間的威力可以使任何人在覈心協議的基礎上建造定製化的功能;爲了維持通透性,常見的擴展由XMPP標準基金會 。 彈性佳: XMPP除了可用在實時通訊的應用程序,還能用在網絡管理、內容供稿、協同工具、文件共享、遊戲、遠程系統監控等。 多樣性: 用XMPP協議來建造及佈署實時應用程序及服務的公司及開放源代碼計劃分佈在各類領域;用XMPP技術開發軟件,資源及支持的 來源是多樣的,使得使你不會陷於被「綁架」的困境。 缺點 數據負載過重: 隨着一般超過70%的XMPP協議的服務器的數據流量的存在和近60%的被重複轉發,XMPP協議目前擁有一個大型架空中存在的 數據提供給多個收件人。 新的議定書正在研究,以減輕這一問題。 沒有二進制數據: XMPP協議的方式被編碼爲一個單一的長的XML文件,所以沒法提供修改二進制數據。 所以, 文件傳輸協議同樣使用外部的 HTTP。 若是不可避免,XMPP協議還提供了帶編碼的文件傳輸的全部數據使用的Base64 。 至於其餘二進制數據加密會話 (encrypted conversations)或圖形圖標(graphic icons)以嵌入式使用相同的方法。

NSURLConnection的幾個經常使用的代理?

  • NSURLConnectionDownloadDelegate :可以實現監聽下載進度!可是下載以後,找不到下載好的文件!
  • NSURLConnectionDataDelegate 是針對數據下載提供的方法!須要注意的是,須要本身實現監聽進度的業務邏輯!
  • 利用 NSURLConnection 的異步回調進行文件下載:
    • 若是是小文件下載,問題不大! 能夠直接使用異步回調進行下載
    • 若是使用異步回調的方法進行大文件下載,則會出現內存暴漲的狀況!
  • 內存暴漲的緣由: 大文件下載以後,默認是放在內存中的,因此下載的文件越大,越耗費內存.
  • 存在的缺點: 使用異步回調實現文件,沒法監聽下載進度!而且對於大文件下載,會形成內存暴漲!
  • 基於以上兩點,通常,在進行文件下載的時候,使用代理回調監聽下載進度!而且在下載文件的時候,手動管理內存!

NSURLConnection&NSURLSession的區別?

  • 雖然 NSURLConnection 在 iOS 9.0 中已經被廢棄,可是做爲資深的 iOS 程序員,必需要了解 NSURLConnection 的細節,
    • NSURLSession: 用於替代 NSURLConnection
    • 支持後臺運行的網絡任務
    • 暫停、中止、重啓網絡任務,再也不須要 NSOperation 封裝
    • 請求可使用一樣的配置容器
    • 不一樣的 session 可使用不一樣的私有存儲
    • block 和代理能夠同時起做用
    • 直接從文件系統上傳、下載

XML是什麼? XML與HTML的區別?

  • XML的簡單使其易於在任何應用程序中讀寫數據,這使XML很快成爲數據交換的惟一公共語言,雖然不一樣的應用軟件也支持其它的數據交換格式,但不久以後他們都將支持XML,那就意味着程序能夠更容易的與Windows,Mac OS,Linux以及其餘平臺下產生的信息結合,而後能夠很容易加載XML數據到程序中並分析他,並以XML格式輸出結果。
  • XML去掉了以前令許多開發人員頭疼的SGML(標準通用標記語言)的隨意語法。在XML中,採用了以下的語法:
    • 任何的起始標籤都必須有一個結束標籤。
    • 能夠採用另外一種簡化語法,能夠在一個標籤中同時表示起始和結束標籤。這種語法是在大於符號以前緊跟一個斜線(/),例如<tag/ >。XML解析器會將其翻譯成<tag></tag>。
    • 標籤必須按合適的順序進行嵌套,因此結束標籤必須按鏡像順序匹配起始標籤,例如this is asamplestring。這比如是將起始和結束標籤看做是數學中的左右括號:在沒有關閉全部的內部括號以前,是不能關閉外面的括號的。
    • 全部的特性都必須有值。
    • 全部的特性都必須在值的周圍加上雙引號。
  • XML與HTML的設計區別是:XML的核心是數據,其重點是數據的內容。而HTML 被設計用來顯示數據,其重點是數據的顯示。
  • XML和HTML語法區別:HTML的標記不是全部的都須要成對出現,XML則要求全部的標記必須成對出現;HTML標記不區分大小寫,XML則 大小敏感,即區分大小寫。

網絡圖片處理問題中怎麼解決一個相同的網絡地址重複請求的問題?

利用字典(圖片地址爲key,下載操做爲value)

sip是什麼?

1> SIP(Session Initiation Protocol),會話發起協議 2> SIP是創建VOIP鏈接的 IETF 標準,IETF是全球互聯網最具權威的技術標準化組織 3> 所謂VOIP,就是網絡電話,直接用互聯網打電話,不用耗手機話費

TCP/IP四層模型

  • TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇。TCP/IP協議簇分爲四層,IP位於協議簇的第二層(對應OSI的第三層),TCP位於協議簇的第三層(對應OSI的第四層)。

  • 應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網絡遠程訪問協議(Telnet)等。

  • 傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,而且肯定數據已被送達並接收。

  • 互連網絡層:負責提供基本的數據封包傳送功能,讓每一塊數據包都可以到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。

  • 網絡接口層:對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數據。

文章若有問題,請留言,我將及時更正。

相關文章
相關標籤/搜索