文檔:十二.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層名字和順序要記住,有時候筆試題目經常遇到。
層次 | 說明 | 功能/協定 |
應用層 | 應用程式及借口,類似于公司的老闆 | 提供應用程式的借口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就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。
(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”開始,為将來使用保留。