原创 iOS之錯誤總結收集

本文的主要目的是記錄收集在學習開發過程中遇到的錯誤,本文將會伴隨着不斷地學習過程進行實時更新: 1、duplicate symbol _OBJC_METACLASS_$_ 類名 in  原因: (1)在某個文件中包含了.m文件 (2)在同

原创 iOS中的堆和棧

對於iOS這種移動端的開發,程序員應該合理地管理內存,這樣才能讓應用更加靈活流暢地運行。在Andriod中,是由垃圾回收機制來處理在堆中的內存空間,而在iOS中,需要程序員手動操作在堆中間的內存空間,並進行內存的分配和釋放(ARC之後換做

原创 數據鏈路層—瞭解數據鏈路和幀

本文介紹數據鏈路的定義和幀的理解: 1、數據鏈路: 首先大家要明確的是,數據鏈路和鏈路是兩個不同的概念 (1)鏈路(link):從一個節點到另外一個節點(直接相連)的一段物理線路(包括了有線和無線) (2)數據鏈路(data link):

原创 數據鏈路層—簡介

本文介紹數據鏈路層的大概定義: 在物理層中,我們只關注單個比特的傳輸,但是在數據鏈路層中,我們將要關注怎麼去實現兩臺設備之間的“信息塊”通信。設備之間通過通信信道(Communication Channel)連接,通信信道我們可以大致理解

原创 運輸層—UDP

本文主要介紹用戶數據報協議UDP 用戶數據報協議UDP只是在IP協議上增加餓了很少的一點功能,複用和分用以及差錯檢測功能。UDP的主要特點由下面幾個: (1)UDP是無連接的(TCP是面向連接的) (2)UDP使用盡最大努力交付,不保證可

原创 運輸層—TCP

本文主要對TCP進行簡單的描述 TCP協議的主要特點有以下幾點: (1)TCP是面向連接的運輸層協議。應用程序在使用TCP協議之前,就必須要建立TCP連接。傳送數據完畢之後,必須釋放掉已經建立的TCP連接。其實有點像打電話,撥通電話,通話

原创 網絡層—路由選擇協議

本文將說明因特網中非常重要的路由選擇協議,具體的路由算法會用專門的文章進行說明   在因特網中的路由選擇協議是分層次的,也就是因特網將整個互聯網分爲許多較小的自治系統(autonomous system),簡稱爲AS,原因主要是這兩個方面

原创 數據鏈路層—三個基本問題

本文主要介紹數據鏈路層傳輸數據需要注意的最基本的三個問題  當我們需要傳輸數據的時候,我們應該這考慮:首先,將數據封裝成幀(幀是數據鏈路層的基本單位),考慮去怎麼封裝,才能讓接受端識別一個完整的幀,同時接收端讓所有數據都能順利傳輸,而不應

原创 iOS之Cocoa大招KVC鍵值編碼

在iOS編程中,KVC(Key Value Coding)鍵值編碼被稱爲Cocoa框架的大招,這是有一定道理的,KVC是底層的操作,它可以做到很多難以實現的操作,同時也可以使得代碼變得很簡單。本文通過對KVC的各種不同功能來進行說明: 新

原创 網絡層—IP地址的三種分類方式

本文主要介紹網絡層中的IP地址,其中有三種地址管理方法也將會詳細介紹說明 IP地址是給因特網上的每一個主機或者是路由器的每一個接口(注意是接口,而不是主機或者是路由器本身)分配的一個在全世界範圍中唯一的32位的標識符。IP地址是由ICAN

原创 運輸層—運輸層概述

本文主要對運輸層進行簡要說明 運輸層屬於面向通信部分的最高層,同時也是用戶功能中的最底層。從IP層來看,通信的兩端是兩個主機,IP數據報的首部標誌了兩個通信的主機的IP地址。但是使用“兩個主機進行通信”這種說法並不是很準確的。這是因爲,真

原创 網絡層—網際協議IP

本文主要大致介紹網際協議IP(Internet Protocol),通過本章的簡要說明,引導進入網際協議IP的深入學習。 對於計算機網絡,大家都知道TCP/IP協議體系是很重要的,那麼在網絡層,我們主要對IP協議進行詳細學習,與IP協議配

原创 網絡層—鏈路狀態路由算法

本文講述路由算法中的鏈路狀態路由,鏈路狀態路由的核心算法是Dijkstra算法,本文也會詳細描述 1979年以前ARPANET(Advanced Research Project Agency)一直使用的是距離矢量路由算法,但是在此之後便

原创 網絡層—ICMP

本文主要介紹ICMP(Internet Control Message Protocol)網際控制報文協議,對IP數據報進行差錯報告,提高交付的機會。         ICMP報文是在IP數據報裏面的,是作爲IP數據報中數據的一部分。IC

原创 網絡層—廣播路由選擇算法

不同於單播(點對點)通信的路由選擇協議,廣播路由選擇需要提供一種從源結點到網絡中的所有其他結點交付分組的服務。本文主要對廣播路由選擇算法進行詳細說明: 1、N次單播 如果有N個目的結點,那麼在源結點中就產生N個分組副本,然後將這N份分組傳