程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linux下C編程:網絡編程之通信機制和體系結構模式

Linux下C編程:網絡編程之通信機制和體系結構模式

編輯:關於C語言

提到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 數據包和把數據包通過選定的網絡發送出去。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved