国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 網(wǎng)絡(luò)編程基礎(chǔ)概念總結(jié)

網(wǎng)絡(luò)編程基礎(chǔ)概念總結(jié) 時(shí)間:2018-08-15      來(lái)源:未知

基本概念

【1】基礎(chǔ)知識(shí)

【2】網(wǎng)絡(luò)體系結(jié)構(gòu)

(1)OSI開(kāi)放系統(tǒng)互聯(lián)模型

(2)TCP/IP協(xié)議族的體系結(jié)構(gòu):

【3】TCP和UDP

【4】Socket

【6】其他概念

【1】基礎(chǔ)知識(shí)

1)計(jì)算機(jī)與網(wǎng)絡(luò)發(fā)展的7個(gè)階段

1、批處理(20世紀(jì)50年代):是指實(shí)現(xiàn)將用戶每個(gè)數(shù)據(jù)裝入卡帶或者磁帶。并有計(jì)算機(jī)按照一

定的順序讀取,是用戶所要執(zhí)行的這些程序和數(shù)據(jù)能夠一并批量得到處理的方式。2、分時(shí)系統(tǒng)(20世紀(jì)60年代):是指多個(gè)終端(包含鼠標(biāo)、鍵盤(pán)、顯示器等輸入

輸出設(shè)備組

成,最初還包括打印機(jī))與一臺(tái)計(jì)算機(jī)連接,允許多個(gè)用戶同時(shí)使用一臺(tái)計(jì)算機(jī)的

系統(tǒng)。

特性:多路性、獨(dú)占性、交互性和及時(shí)性。

3、計(jì)算機(jī)之間的通信(20世紀(jì)70年代)

4、計(jì)算機(jī)網(wǎng)絡(luò)的產(chǎn)生(20世紀(jì)80年代)

5、互聯(lián)網(wǎng)的普及(20世紀(jì)90年代)

6、以互聯(lián)網(wǎng)技術(shù)為中心的時(shí)代(2000年)

7、從“單純建立連接”到“安全建立連接”(2010年)

2)早期的ARPAnet使用網(wǎng)絡(luò)控制協(xié)議

(Network Control Protocol,NCP)

不能互聯(lián)不同類(lèi)型的計(jì)算機(jī)和不同類(lèi)型的操作系統(tǒng),沒(méi)有糾錯(cuò)功能

3)網(wǎng)絡(luò)體系結(jié)構(gòu)

指網(wǎng)絡(luò)的層次結(jié)構(gòu)和每層所使用協(xié)議的集合

4)通信協(xié)議

1、協(xié)議:一組控制數(shù)據(jù)通信的規(guī)則。三要素:①語(yǔ)法(包括數(shù)據(jù)格式、編碼及信號(hào)電平等)②

語(yǔ)義(包括用于協(xié)議和差錯(cuò)處理的控制信息)③時(shí)序(包括速度匹配和排

序)。

2、標(biāo)準(zhǔn):一致同意的規(guī)則。分類(lèi):①事實(shí)上的標(biāo)準(zhǔn):實(shí)際情況或者習(xí)慣②合法標(biāo)準(zhǔn):法律或者

規(guī)章制度

3、標(biāo)準(zhǔn)化組織:緩慢發(fā)展:ISO:國(guó)際標(biāo)準(zhǔn)化組織;ITU-T:國(guó)際電聯(lián)-電信標(biāo)準(zhǔn)

部;ANSI:美

國(guó)國(guó)家標(biāo)準(zhǔn)化局;IEEE:電氣電子工程師協(xié)會(huì)(主要是以太網(wǎng)、局域網(wǎng)方面

的);

EIA:電子工業(yè)協(xié)會(huì)(物理傳輸標(biāo)準(zhǔn)、光釬傳輸)。快速發(fā)展:論壇:幀中繼

論壇、

ATM論壇;管理機(jī)構(gòu):FCC 聯(lián)邦通信委員會(huì)。Internet標(biāo)準(zhǔn):RFC

【2】網(wǎng)絡(luò)體系結(jié)構(gòu)

(1)OSI開(kāi)放系統(tǒng)互聯(lián)模型

1)ISO(國(guó)際標(biāo)準(zhǔn)化組織)制定了一個(gè)國(guó)際標(biāo)準(zhǔn)OSI(開(kāi)放式通信系統(tǒng)互聯(lián)參考模型,),對(duì)通信系統(tǒng)

進(jìn)行了標(biāo)準(zhǔn)化。(理想模型,實(shí)際只有四層)

2)OSI模型將通信協(xié)議中必要的功能分成了7層,每個(gè)分層都接收有它下一層所提供的特定

服務(wù),并

且負(fù)責(zé)為自己的上一層提供特定的服務(wù)。上下層之間進(jìn)行交互時(shí)所遵循的約定叫做“接口”。同一

層之間的交互所遵循的約定叫做“協(xié)議”。

3)7層通信

1、應(yīng)用層:指定特定應(yīng)用的協(xié)議(比如發(fā)送和接受文件的軟件按鈕,發(fā)送者輸入“早上好”并附

上收件人,按下發(fā)送按鈕,接受者收到信息會(huì)將其存儲(chǔ)在硬盤(pán)或者非易失

存儲(chǔ)器

(數(shù)據(jù)不會(huì)因?yàn)閿嚯姸鴣G失的一種存儲(chǔ)設(shè)備)上,這些都是在應(yīng)用層上

的)。應(yīng)用

程序:FTP、E-mail、Telnet

2、表示層:設(shè)備固有數(shù)據(jù)格式和網(wǎng)絡(luò)標(biāo)準(zhǔn)數(shù)據(jù)格式的轉(zhuǎn)換(接受者和發(fā)送者如果使用的郵件客

戶端不一樣,那么就會(huì)出現(xiàn)問(wèn)題,如何實(shí)現(xiàn)用戶之間的通信,那么就需要

在表示層

來(lái)起作用,使得在不同的客戶端上擁有相同的網(wǎng)絡(luò)格式)。數(shù)據(jù)格式定

義、數(shù)據(jù)轉(zhuǎn)

換/加密

3、會(huì)話層:通信管理,負(fù)責(zé)建立或者斷開(kāi)通信連接(發(fā)送者一次性發(fā)送5份郵件,那么接受者如

何接受,是一次性接受所有的文件然后斷開(kāi)連接還是沒(méi)接受一次就斷開(kāi),

然后在此

進(jìn)行,發(fā)送者同理)。建立通信進(jìn)程的邏輯名字與物理名字之間的聯(lián)系4、傳輸層:管理兩個(gè)節(jié)點(diǎn)(互聯(lián)的網(wǎng)絡(luò)中斷)之間的數(shù)據(jù)傳輸。負(fù)責(zé)可靠傳輸

(確保數(shù)據(jù)被可

靠地傳送到目標(biāo)地址)(確保發(fā)送者和接受者之間的通信,會(huì)話層負(fù)責(zé)決

定建立連

接和斷開(kāi)連接的時(shí)機(jī),而傳輸層進(jìn)行實(shí)際的建立和斷開(kāi)處理)。差錯(cuò)處

理/恢復(fù),流

量控制,提供可靠的數(shù)據(jù)傳輸

5、網(wǎng)絡(luò)層:地址管理與路由選擇,作用:在網(wǎng)絡(luò)相互連接的環(huán)境中,將數(shù)據(jù)從發(fā)送端主機(jī)發(fā)送

到接受端主機(jī)。數(shù)據(jù)分組、路由選擇

6、數(shù)據(jù)鏈路層:互連設(shè)備之間傳送和識(shí)別數(shù)據(jù)幀。數(shù)據(jù)組成可發(fā)送、接收的幀

7、物理層:以“0”、“1”代表的電壓的高低、燈光的閃滅。界定連接器和網(wǎng)絡(luò)的規(guī)格。傳輸物理信

號(hào)、接口、信號(hào)形式、速率

(2)TCP/IP協(xié)議族的體系結(jié)構(gòu):

1、應(yīng)用層: TFTP,HTTP,SNMP,F(xiàn)TP,SMTP,DNS,Telnet

2、傳輸層: TCP,UDP

3、網(wǎng)絡(luò)層: IP,ICMP,RIP,OSPF,BGP,IGMP 傳輸單位為分組

4、網(wǎng)絡(luò)接口與物理層: SLIP,CSLIP,PPP,ARP(解析mac地址),RARP,MTU ISO2110,

IEEE802.1,EEE802.2

備注: IP(Internetworking Protocol)網(wǎng)間協(xié)議

TCP(Transmission Control Protocol)傳輸控制協(xié)議

UDP(User Datagram Protocol)用戶數(shù)據(jù)報(bào)協(xié)議 SMTP(Simple Mail Transfer Protocol)簡(jiǎn)單郵件傳輸協(xié)議 HTTP(Hypertext Transfer Protocol) 超文本傳輸協(xié)議 FTP(File Transfer Protocol)文件傳輸協(xié)議 ARP(Address Resolution Protocol)地址解析協(xié)議

TCP/IP協(xié)議是根據(jù)OSI模型發(fā)展而來(lái)的,(實(shí)際應(yīng)用的結(jié)構(gòu))

TCP:用來(lái)檢測(cè)網(wǎng)絡(luò)傳輸中差錯(cuò)的傳輸控制協(xié)議。IP:專(zhuān)門(mén)負(fù)責(zé)對(duì)不同網(wǎng)絡(luò)進(jìn)行互聯(lián)的互聯(lián)網(wǎng)協(xié)議IP吧

【3】TCP和UDP

TCPUDP

(Transmission Control Protocol)(User Datagram Protocol)

即傳輸控制協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議

共同點(diǎn)同為傳輸層協(xié)議

不同點(diǎn)有連接,可靠無(wú)連接,不保證可靠

是一種面向連接的傳輸層協(xié)議,它能提供

高可靠性通信是一種面向連接的傳輸層協(xié) 是不可靠的無(wú)連接的協(xié)議。在數(shù)據(jù)發(fā)送前,因

描述議,它能提供高可靠性通信(即數(shù)據(jù)無(wú)誤、為不需要進(jìn)行連接,所以可以進(jìn)行高效率的數(shù)

數(shù)據(jù)無(wú)丟失、數(shù)據(jù)無(wú)失序、數(shù)據(jù)無(wú)重復(fù)到據(jù)傳輸。

達(dá)的通信)

發(fā)送小尺寸數(shù)據(jù)(如對(duì)DNS服務(wù)器進(jìn)行IP地址

適合于對(duì)傳輸質(zhì)量要求較高,以及傳輸大 查詢(xún)時(shí))在接收到數(shù)據(jù),給出應(yīng)答較困難的網(wǎng)量數(shù)據(jù)的通信。在需要可靠數(shù)據(jù)傳輸?shù)膱?chǎng) 絡(luò)中使用UDP。(如:無(wú)線網(wǎng)絡(luò))適合于廣適用情況 合,通常使用TCP協(xié)議QQ等即時(shí)通訊軟件播/組播式通信中。MSN/QQ/Skype等即時(shí)通的用戶登錄賬戶管理相關(guān)的功能通常采用 訊軟件的點(diǎn)對(duì)點(diǎn)文本通訊以及音視頻通訊通常

TCP協(xié)議 采用UDP協(xié)議流媒體、VOD、VoIP、IPTV等網(wǎng)絡(luò)多媒體服務(wù)中通常采用UDP方式進(jìn)行實(shí)時(shí)

數(shù)據(jù)傳輸

【4】Socket

1)概念:

是一個(gè)編程接口

是一種特殊的文件描述符 (everything in Unix is a file)

并不僅限于TCP/IP協(xié)議

面向連接 (Transmission Control Protocol - TCP/IP)

無(wú)連接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange

- IPX)

2)socket類(lèi)型

發(fā)送緩沖區(qū)16K

接收緩沖區(qū)85K(默認(rèn))使用getsockopt獲取使用setsockopt

設(shè)置

3)分類(lèi):

1、流式套接字(SOCK_STREAM)

提供了一個(gè)面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無(wú)差錯(cuò)、無(wú)重

復(fù)的發(fā)

送且按發(fā)送順序接收。內(nèi)設(shè)置流量控制,避免數(shù)據(jù)流淹沒(méi)慢的接

收方。

數(shù)據(jù)被看作是字節(jié)流,無(wú)長(zhǎng)度限制。

--->TCP

2、數(shù)據(jù)報(bào)套接字(SOCK_DGRAM)

提供無(wú)連接服務(wù)。數(shù)據(jù)包以獨(dú)立數(shù)據(jù)包的形式被發(fā)送,不提供無(wú)

差錯(cuò)保證,

數(shù)據(jù)可能丟失或重復(fù),順序發(fā)送,可能亂序接收。

--->支持UDP,也支持其他的傳輸協(xié)議,并非為UDP設(shè)計(jì)。3、原始套接字(SOCK_RAW)

可以對(duì)較低層次協(xié)議如IP、ICMP直接訪問(wèn)。

【5】IP地址

1)查看指令: linux:ifconfig windows:ipconfig

2)概念:

IP地址是Internet中主機(jī)的唯一標(biāo)識(shí)

IP地址為32位(IPv4)或者128位(IPv6)

每個(gè)數(shù)據(jù)包都必須攜帶目的IP地址和源IP地址,路由器依靠此信息為數(shù)據(jù)包選擇路

IPV4的表示形式:常用點(diǎn)分十進(jìn)制形式,如192.168.8.222,最后都會(huì)轉(zhuǎn)換為一個(gè)32位的無(wú)符號(hào)整數(shù)。

3)IP地址分類(lèi)(基于IPV4地址的前八位)

A類(lèi) 0000 0000 - 0111 1111 0.x.x.x - 127.x.x.x

(8bit網(wǎng)絡(luò)號(hào) 24bit主機(jī)號(hào))2^24 - 2 (全0和全1不可用)

B類(lèi) 1000 0000 - 1011 1111 128.x.x.x - 191.x.x.x

(16bit網(wǎng)絡(luò)號(hào) 16bit主機(jī)號(hào))2^16 - 2

C類(lèi) 1100 0000 - 1101 1111 192.x.x.x - 223.x.x.x

(24bit網(wǎng)絡(luò)號(hào) 8bit主機(jī)號(hào))2^8 - 2

D類(lèi) 1110 0000 - 1110 1111 224.x.x.x - 239.x.x.x 表示組播

地址

(不做網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的劃分)

E類(lèi) 1111 0000 - 1111 1111 240.x.x.x - 255.x.x.x 屬于保留測(cè)試

(剩余部分)

127.x.x.x 表示主機(jī)地址(本機(jī)回環(huán)地址)127.0.0.1(不經(jīng)過(guò)網(wǎng)卡,網(wǎng)卡不能夠抓取數(shù)據(jù)包)

192.168.x.x 表示局域網(wǎng)IP地址

0.0.0.0 本機(jī)地址自適配,會(huì)自動(dòng)填寫(xiě)網(wǎng)卡對(duì)應(yīng)的IP地址

192.168.8.x

192.168.8.0 表示網(wǎng)段或者網(wǎng)絡(luò)地址

192.168.8.255 表示廣播地址

4)子網(wǎng)掩碼:可以表示當(dāng)前IP地址的最大連接的主機(jī)的個(gè)數(shù),用于子網(wǎng)劃分 mask & IP地址留下的就是網(wǎng)絡(luò)號(hào)(通常情況下 )

~mask & IP地址留下的就是主機(jī)號(hào)

A類(lèi):255.0.0.0 2~242^24

B類(lèi):255.255.0.02~16 2^16

C類(lèi):255.255.255.02~8 2^8

首先根據(jù)網(wǎng)絡(luò)號(hào)進(jìn)行查找,找到相應(yīng)的群,然后根據(jù)主機(jī)號(hào)找到對(duì)應(yīng)的具體IP主機(jī)。

5)局域網(wǎng)地址:

A類(lèi):10.xxx.xxx.xxx

B類(lèi):172.16.xxx.xxx ~ 172.31.xxx.xxx

C類(lèi):192.168.xxx.xxx

【6】其他概念

1)網(wǎng)關(guān):作內(nèi)外網(wǎng)隔離(兩張網(wǎng)卡)NAT內(nèi)外網(wǎng)映射

2)DNS:域名解析服務(wù)

(114.114.114.114)中國(guó)電信域名服務(wù)

(223.5.5.5)(223.6.6.6)阿里云域名服務(wù)

(8.8.8.8)谷歌域名服務(wù)

3)DDNS:動(dòng)態(tài)域名解析服務(wù)(花生殼)

第一次域名查詢(xún) 網(wǎng)關(guān)會(huì)向域名服務(wù)器 查詢(xún),之后網(wǎng)關(guān)會(huì)把IP地址寫(xiě)到自己的DNS映射。

DNS劫持:修改網(wǎng)關(guān)對(duì)應(yīng)的DNS映射表,將映射網(wǎng)址修改到其他的釣魚(yú)網(wǎng)站。4)端口號(hào) :(在/etc/services文件內(nèi)查看已經(jīng)被占用的端口號(hào))

為了區(qū)分一臺(tái)主機(jī)接收到的數(shù)據(jù)包應(yīng)該轉(zhuǎn)交給哪個(gè)進(jìn)程來(lái)進(jìn)行處理,使用端口號(hào)來(lái)

區(qū)別

端口號(hào)一般由IANA (Internet Assigned Numbers Authority) 管理分類(lèi):

眾所周知端口:1~1023(1~255之間為眾所周知端口,256~1023端口通常由UNIX系統(tǒng)占用)

web服務(wù)器(80)

已登記端口:1024~49151 騰訊客戶端(8080)

動(dòng)態(tài)或私有端口:49152~65535

一般設(shè)置為 6666 7777 8888 9999 10000 10001 TCP和UDP各有一套端口號(hào)。

5)字節(jié)序

不同類(lèi)型CPU的主機(jī)中,內(nèi)存存儲(chǔ)多字節(jié)整數(shù)序列有兩種方法,稱(chēng)為主機(jī)字節(jié)序

(HBO):

小端序(little-endian) - 低序字節(jié)存儲(chǔ)在低地址

將低字節(jié)存儲(chǔ)在起始地址,稱(chēng)為“Little-Endian”字節(jié)序,Intel、AMD等采用的是這種方式;

大端序(big-endian)- 高序字節(jié)存儲(chǔ)在低地址

將高字節(jié)存儲(chǔ)在起始地址,稱(chēng)為“Big-Endian”字節(jié)序,由ARM、

Motorola等所采用

如何測(cè)試主機(jī)字節(jié)序:

方法1:使用指針

方法2: 使用file命令,file a.out 其中LSB的L代表小端存儲(chǔ)

方法3:使用共用體

網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)必須按網(wǎng)絡(luò)字節(jié)序,即大端字節(jié)序

6)#include

①in_addr_t inet_addr(const char *cp); 將點(diǎn)分十進(jìn)制IP地址轉(zhuǎn)化為網(wǎng)絡(luò)字節(jié)序的整型數(shù)據(jù)

②char *inet_ntoa(struct in_addr in); 將網(wǎng)絡(luò)字節(jié)序的整型數(shù)據(jù)轉(zhuǎn)化為點(diǎn)分十進(jìn)制IP地址

例子:inet_addr("192.168.8.189");

③uint32_t htonl(uint32_t hostlong);將主機(jī)字節(jié)序轉(zhuǎn)化為網(wǎng)絡(luò)字節(jié)序

④uint16_t htons(uint16_t hostshort);

⑤uint32_t ntohl(uint32_t netlong);將網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)化為主機(jī)字節(jié)序

⑥uint16_t ntohs(uint16_t netshort);

7)MAC地址,多用于局域網(wǎng)。根據(jù)MAC地址,當(dāng)用戶連入網(wǎng)絡(luò)時(shí),網(wǎng)關(guān)會(huì)生成MAC映射表,用于數(shù)據(jù)傳輸。

上一篇:Linux下網(wǎng)絡(luò)編程實(shí)現(xiàn)UDP,還有大量實(shí)例

下一篇:進(jìn)程和線程關(guān)系及區(qū)別

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專(zhuān)線:010-82525158 企業(yè)培訓(xùn)洽談專(zhuān)線:010-82525379 院校合作洽談專(zhuān)線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部