天天看點

十二.linux網絡程式設計之網絡通信相關概述一.網絡通信概述二.網絡通信基礎知識1三.網絡通信基礎知識2

文檔:十二.linux網絡程式設計之網絡通信相關概述...

連結:http://note.youdao.com/noteshare?id=183c1dffb25c93efeb79b68611fa10f4&sub=9A186925C22A49CF933350A85217C078

一.網絡通信概述

1、從程序間通信說起:

網絡域套接字socket,網絡通信其實就是位于網絡中不同主機上面的2個程序之間的通信。

2、網絡通信的層次

(1)硬體部分:網卡

(2)作業系統底層:網卡驅動

(3)作業系統API:socket接口

(4)應用層:低級(直接基于socket接口程式設計)

(5)應用層:進階(基于網絡通信應用架構庫)

(6)應用層:更進階(http、網絡控件等)

3、本部分學習方法

(1)重點1:掌握網絡通信的架構層次和基本原理

(2)重點2:掌握socket及其相關函數的使用

(3)重點3:掌握伺服器和用戶端程式通信的方法

二.網絡通信基礎知識1

1、OSI 7層網絡模型

(1)7層名字和順序要記住,有時候筆試題目經常遇到。

十二.linux網絡程式設計之網絡通信相關概述一.網絡通信概述二.網絡通信基礎知識1三.網絡通信基礎知識2
層次 說明 功能/協定
應用層 應用程式及借口,類似于公司的老闆 提供應用程式的借口FTP telnet http pop3等
表示層 對資料進行轉換,加密和壓縮 将上層的資料進行轉換和編譯壓縮為标準的檔案,如jpg,gif,ascii碼等
會話層 建立,管理和終止會話
傳輸層 提供可靠的端到端的封包傳輸和差錯控制,實質上就是負責建立連接配接的 TCP UDP 建立可靠和非可靠連接配接将上層的資料進行分段處理
網絡層 将分組從源端傳送到目的端,提供網絡互聯 實質上就是提供路由尋址(IP協定)将上層分段的資料進行打包
資料鍊路層 将分組資料封裝成幀,提供節點到節點的傳輸 幀就是本地區域網路中傳輸資料的一個單元,負責在區域網路内部的點對點的尋址
實體層 在媒體上傳輸比特 就是底層的鍊路媒體的規範
  • 層與層之間互相獨立又互相依靠
  • 上層依賴于下層,下層為上層提供服務

2、網卡

(1)計算機上網必備硬體裝置,CPU靠網卡來連接配接外部網絡

(2)串轉并裝置(網卡接收資料實際是串行方式,但他的實體裝置是采用并行方式)

(3)資料幀封包和拆包

(4)網絡資料緩存和速率适配

3、集線器(HUB)

(1)信号中繼放大,相當于中繼器

(2)組成區域網路絡,用廣播方式工作。

(3)注意集線器是不能用來連接配接外網的

4、交換機

(1)包含集線器功能,但更進階

(2)交換機中有位址表,資料包查表後直達目的通信口而不是廣播

(3)找不到目的口時廣播并學習

集線器與交換機的差別??

1.從OSI體系結構來看,集線器屬于OSI第一層實體層裝置,而交換機屬于OSI的第二層資料鍊路層裝置。也就意味着集線器隻是對資料的傳輸起到同步、放大和整形的作用,對資料傳輸中的短幀、碎片等無法進行有效的處理,不能保證資料傳輸的完整性和正确性;而交換機不但可以對資料的傳輸做到同步、放大和整形,而且可以過慮短幀、碎片等。 

2.從工作方式來看,集線器是一種廣播模式,也就是說集線器的某個端口工作的時候,其他所有端口都能夠收聽到資訊,容易産生廣播風暴,當網絡較大時網絡性能會受到很大的影響。而交換機就能夠避免這種現象,當交換機工作的事後,隻有送出請求的端口和目的端口之間互相相應而不影響其它端口,是以交換機就能夠隔離沖突與病有效的抑制廣播風暴的産生。 

5、路由器

(1)路由器相當于有2個網卡,一個對内做網關、一個對外做節點。

(2)路由器的主要功能是為經過路由器的每個資料包尋找一條最佳路徑(路由)并轉發出去。其實就是區域網路内電腦要發到外網的資料包,和外網回複給區域網路内電腦的資料包。

(3)路由器對内管理子網(區域網路),可以在路由器中設定子網的網段,設定有線端口的IP位址,設定dhcp功能等,是以區域網路的IP位址是路由器決定的。

三.網絡通信基礎知識2

1、DNS(Domain Name Service 域名服務)

(1)DNS是一種組織成域層次結構的計算機和網絡服務命名系統,它用于TCP/IP網絡。

它所提供的服務是用來将主機名和域名轉換為IP位址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。

十二.linux網絡程式設計之網絡通信相關概述一.網絡通信概述二.網絡通信基礎知識1三.網絡通信基礎知識2

(2)我們通路一個網站的流程是:先使用IP位址(譬如谷歌的DNS伺服器IP位址為8.8.8.8)通路DNS伺服器(DNS伺服器不能是域名,隻能是直接的IP位址),查詢我們要通路的域名的IP位址,然後再使用該IP位址通路我們真正要通路的網站。這個過程被浏覽器封裝屏蔽,其中使用的就是DNS協定。

2、DHCP(dynamic host configuration protocl,動态主機配置協定)

(1)每台計算機都需要一個IP位址,且區域網路内各電腦IP位址不能重複,否則會位址沖突。

(2)計算機的IP位址可以靜态設定,也可以動态配置設定

(3)動态配置設定是區域網路内的DHCP伺服器來協調的,很多裝置都能提供DHCP功能,譬如路由器。

(4)動态配置設定的優勢:友善接入和斷開、有限的IP位址得到充分利用

3、NAT(network address translation,網絡位址轉換協定)

(1)IP位址分為公網IP(internet範圍内唯一的IP位址)和私網IP(内網IP),區域網路内的電腦使用的都是私網IP(常用的就是192.168.1.xx)

(2)網絡通信的資料包中包含有目的位址的IP位址

(3)當區域網路中的主機要發送資料包給外網時,路由器要負責将資料標頭中的區域網路主機的内網IP替換為目前區域網路的對外外網IP。這個過程就叫NAT。

(4)NAT的作用是緩解IPv4的IP位址不夠用問題,但隻是類似于打更新檔的形式,最終的解決方案還是要靠IPv6。

(5)NAT穿透簡介

P2P下載下傳:點對點下載下傳(迅雷)

在NAT上打洞,借助伺服器去連接配接兩個區域網路,令兩台内網電腦相連的技術就是NAT技術

4.IP位址分類(IPv4)

  • (1)現在的IP網絡使用32位位址,以點分十進制表示,如172.16.0.0。位址格式為:IP位址=網絡位址+主機位址 或 IP位址=主機位址+子網位址+主機位址。
  • (2)為了便于尋址以及階層化構造網絡,每個IP位址中32位實際包含2部分,分别為:網絡位址和主機位址
  • (3)IP位址根據網絡位址的不同分為5種類型,A類位址、B類位址、C類位址、D類位址和E類位址。 
  • A類IP位址 

一個A類IP位址由1位元組的網絡位址和3位元組主機位址組成,網絡位址的最高位必須是“0”, 位址範圍從1.0.0.0 到126.0.0.0。可用的A類網絡有126個,每個網絡能容納1億多個主機。 

  • B類IP位址 

一個B類IP位址由2個位元組的網絡位址和2個位元組的主機位址組成,網絡位址的最高位必須是“10”,位址範圍從128.0.0.0到191.255.255.255。可用的B類網絡有16382個,每個網絡能容納6萬多個主機 。 

  • C類IP位址 

一個C類IP位址由3位元組的網絡位址和1位元組的主機位址組成,網絡位址的最高位必須是“110”。範圍從192.0.0.0到223.255.255.255。C類網絡可達209萬餘個,每個網絡能容納254個主機。 

  • D類位址用于多點廣播(Multicast)。 

D類IP位址第一個位元組以“lll0”開始,它是一個專門保留的位址。它并不指向特定的網絡,目前這一類位址被用在多點廣播(Multicast)中。多點廣播位址用來一次尋址一組計算機,它辨別共享同一協定的一組計算機。 

  • E類IP位址 

以“llll0”開始,為将來使用保留。 

繼續閱讀