Linux下C編程:網路編程之通訊機制和體繫結構模式

來源:互聯網
上載者:User

提到Linux 作業系統,就不能不提到網路技術。Linux 系統本身就是一個網路的產物,它在網路上可以供人們自由下載,並得到修改和完善。。Linux 系統支援多種網路通訊協定,它的shell 還提供了強大的連網命令。這些優點使得Linux 為許多中小型的網路應用提供了完全的解決方案.

提到電腦網路,就不得不先介紹一下它的通訊機制和體繫結構模式。

1.通訊模式

所有的網路通訊的實現方式可以分為兩種:線路交換和包交換。

所謂線路交換,就是指傳輸時在發送端和接收端之間建立一個特定的線路串連,資料就可以在這條線路上傳輸。最常用的電話就是採用這種線路交換的技術。但是電腦網路採用的是包交換的方法。所有的電腦使用一個共同的網路連接,資料的發送端將要傳輸的資料分割成塊,而每個塊經過適當的處理(資料封裝)後形成一個資料包,包中有接收端的地址等必要資訊,並且每個包單獨傳輸。包中的資料並不是限定死的,只要保證資料的正確傳輸即可,具體應該定義哪些資訊,則與所使用的協議有關。

2.OSI 標準

OSI 標準就是開放系統互聯標準(Open System Interconnection),它是國際標準組織在1977 提出的一種參考模式。它定義的是一種七層通訊協定標準。具體分層結構和功能如下(從高到低):

(1)應用程式層

應用程式層是網路的最高層,也就是最接近使用者的一層。應用程式層裡包含了構築在各種通訊協定上的網路應用軟體,可以實現與使用者直接互動的功能。例如電子郵件和檔案傳輸程式等。

(2)展示層

展示層完成被傳輸資料的表示和解釋工作,它包含資料轉換和資料加密以及資料壓縮等。它的主要功能為:為使用者提供執行會話層服務原語的手段;提供描述複雜資料結構的方法;管理當前所需的資料結構集;完成資料的內部格式與外部格式間的轉換。

(3)會話層

會話層使用運輸層協議提供的可靠的端到端通訊服務,並增加一些使用者所需要的附加功能和建立不同機器上的使用者之間的資料交換。

(4)傳輸層

它是OSI 網路體繫結構中最核心的一層,它把實際使用的通訊子網與高層應用分開,提供發送端和接收端之間的高可靠低成本的資料轉送。TCP 和UDP 協議都屬於這一層。

(5)網路層

網路層主要對主機和網路之間的互動進行定義,它又被稱為通訊子網層,定義了在網路中傳輸的基本資料單元以及目的定址和選路的概念。IP 協議屬於這一層。

(6)資料連結層

資料連結層對下層傳來的資料進行打包封裝,將上層的資料分割成幀,它還完成流量控制和差錯處理的工作。

(7)物理層

物理層是OSI 的最底層,它規定傳輸媒體本身及與其相關聯的機械和電氣介面。這些介面和傳輸媒體必須保證發送和接受訊號的一致性。

TCP/IP 協議

TCP/IP 協議是一組在網路中提供可靠資料轉送和無串連資料服務的協議。其中提供可靠資料轉送的協議稱為傳輸控制通訊協定TCP,而提供無串連資料包服務的協議叫做網際協議IP。但是TCP/IP 協議並不是只有TCP 和IP 兩個協議,而是包含很多其他協議的一個網路通訊協定的集合。

TCP/IP 協議於1983年開始在ARPA網上運行,並於當年插入BSDUNIX 作業系統的核心,成為該作業系統的一部分。隨後TCP/IP 協議隨著UNIX 作業系統的普及而廣泛流行,逐漸成為使用最廣泛的協議。使用TCP/IP 協議的網路提供的主要服務有:電子郵件、檔案傳送、遠程登入、網路檔案系統、電視會議系統以及Mwsaic 和全球資訊網等。

TCP/IP 協議的體繫結構包含四層(從高到低):

(1)應用程式層

應用程式層包括網路應用程式和網路進程,是與使用者互動的介面,它為使用者提供所需要的各種服務,包括遠程登入、檔案傳輸和電子郵件等。它的作用相當於OSI 中的應用程式層及展示層和會話層。

(2)傳輸層

相當於OSI 中的傳輸層,它為應用程式提供通訊服務,這種通訊又叫端對端通訊。它有三個主要協議:傳輸控制通訊協定(TCP),使用者資料包協議(UDP)和互連網控制訊息協議(ICMP)。

TCP 協議 以建立串連高可靠性的訊息傳輸為目的,它負責把大量的使用者資料按一定的長度組成多個資料包進行發送,並在接收到資料包之後按分解順序重組和恢複使用者資料。它是一種連線導向的可靠的雙向通訊的資料流。

UDP 協議 提供無串連資料包傳輸服務,它把使用者資料分解為多個資料包後發送給接收方。它具有執行代碼小以及系統開銷小和處理速度快等優點。

ICMP 協議 主要用於端主機和網關以及互連網管理中心等地訊息通訊,以達到控制管理網路啟動並執行目的。ICMP 協議能發送出錯訊息給發送資料包的端主機,還有限制流量的功能。

(3)網路層

相當於OSI 的網路層,使用的協議是IP 協議。它是用來處理機器之間的通訊問題的,它接收傳輸層請求,傳輸某個具有目的地址資訊的分組。該層把分組封裝到IP 資料包中,填入資料包的頭部(包頭),使用路由演算法來選擇是直接把資料包發送到目標主機還是發給路由器,然後把資料包交給下面的網路介面層中的對應網路介面模組。

(4)網路介面層

相當於OSI 中的資料連結層和物理層。它負責接收IP 資料包和把資料包通過選定的網路發送出去。

查看全套文章:http://www.bianceng.cn/Programming/C/201212/34807.htm

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。