中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

平面設(shè)計(jì)可以做網(wǎng)站?深圳互聯(lián)網(wǎng)公司50強(qiáng)

平面設(shè)計(jì)可以做網(wǎng)站?,深圳互聯(lián)網(wǎng)公司50強(qiáng),杭州外貿(mào)網(wǎng)站建設(shè)公司排名,企業(yè)網(wǎng)站建設(shè)的必要性目錄 1. 理解源 IP 地址和目的 IP 地址 2.端口號(hào) 2.1端口號(hào)(port)是傳輸層協(xié)議的內(nèi)容 2.2端口號(hào)范圍劃分 2.3理解 "端口號(hào)" 和 "進(jìn)程 ID" 2.4理解 socket 3.傳輸層的典型代表 3.1認(rèn)識(shí) TCP 協(xié)議 3.2認(rèn)識(shí) UDP 協(xié)議 4. 網(wǎng)絡(luò)字節(jié)序 5. socket 編程接…

目錄

1. 理解源 IP 地址和目的 IP 地址

2.端口號(hào)?

2.1端口號(hào)(port)是傳輸層協(xié)議的內(nèi)容

2.2端口號(hào)范圍劃分

2.3理解 "端口號(hào)" 和 "進(jìn)程 ID"

2.4理解 socket

?3.傳輸層的典型代表

3.1認(rèn)識(shí) TCP 協(xié)議

3.2認(rèn)識(shí) UDP 協(xié)議

4. 網(wǎng)絡(luò)字節(jié)序

?5. socket 編程接口


1. 理解源 IP 地址和目的 IP 地址

IP 在網(wǎng)絡(luò)中, 用來標(biāo)識(shí)主機(jī)的唯一性
? 注意: 后面我們會(huì)講 IP 的分類, 后面會(huì)詳細(xì)闡述 IP 的特點(diǎn)
但是這里要思考一個(gè)問題: 數(shù)據(jù)傳輸?shù)街鳈C(jī)是目的嗎? 不是的。 因?yàn)閿?shù)據(jù)是給人用
的。 比如: 聊天是人在聊天, 下載是人在下載, 瀏覽網(wǎng)頁是人在瀏覽?
但是人是怎么看到聊天信息的呢? 怎么執(zhí)行下載任務(wù)呢? 怎么瀏覽網(wǎng)頁信息呢? 通過
啟動(dòng)的 qq, 迅雷, 瀏覽器。
而啟動(dòng)的 qq, 迅雷, 瀏覽器都是進(jìn)程。 換句話說, 進(jìn)程是人在系統(tǒng)中的代表, 只要把
數(shù)據(jù)給進(jìn)程, 人就相當(dāng)于就拿到了數(shù)據(jù)。
所以: 數(shù)據(jù)傳輸?shù)街鳈C(jī)不是目的, 而是手段。 到達(dá)主機(jī)內(nèi)部, 在交給主機(jī)內(nèi)的進(jìn)程,
才是目的。
但是系統(tǒng)中, 同時(shí)會(huì)存在非常多的進(jìn)程, 當(dāng)數(shù)據(jù)到達(dá)目標(biāo)主機(jī)之后, 怎么轉(zhuǎn)發(fā)給目標(biāo)
進(jìn)程? 這就要在網(wǎng)絡(luò)的背景下, 在系統(tǒng)中, 標(biāo)識(shí)主機(jī)的唯一性。


2.端口號(hào)?

2.1端口號(hào)(port)是傳輸層協(xié)議的內(nèi)容

  • 端口號(hào)是一個(gè) 2 字節(jié) 16 位的整數(shù);
  • 端口號(hào)用來標(biāo)識(shí)一個(gè)進(jìn)程, 告訴操作系統(tǒng), 當(dāng)前的這個(gè)數(shù)據(jù)要交給哪一個(gè)進(jìn)程來處理;
  • IP 地址 + 端口號(hào)能夠標(biāo)識(shí)網(wǎng)絡(luò)上的某一臺(tái)主機(jī)的某一個(gè)進(jìn)程;(互聯(lián)網(wǎng)中獨(dú)一無二的一個(gè)進(jìn)程),網(wǎng)絡(luò)通信的本質(zhì)就是進(jìn)程間通信,只是需要跨網(wǎng)絡(luò)。(進(jìn)程間通信要滿足的條件:1.兩個(gè)進(jìn)程具有獨(dú)立性(絕對(duì)的滿足) 2.兩個(gè)進(jìn)程間要看到一個(gè)公共資源:網(wǎng)絡(luò)),因此我們基于? ?IP+PORT 的通信 稱之為Socket通信
  • 一個(gè)端口號(hào)只能被一個(gè)進(jìn)程占用.且一個(gè)進(jìn)程可以綁定多個(gè)端口號(hào); 但是一個(gè)端口號(hào)不能被多個(gè)進(jìn)程綁定。


2.2端口號(hào)范圍劃分

0 - 1023: 知名端口號(hào), HTTP, FTP, SSH 等這些廣為使用的應(yīng)用層協(xié)議, 他們的
端口號(hào)都是固定的.
1024 - 65535: 操作系統(tǒng)動(dòng)態(tài)分配的端口號(hào). 客戶端程序的端口號(hào), 就是由操作
系統(tǒng)從這個(gè)范圍分配的.


2.3理解 "端口號(hào)" 和 "進(jìn)程 ID"

????????我們之前在學(xué)習(xí)系統(tǒng)編程的時(shí)候, 學(xué)習(xí)了 pid 表示唯一一個(gè)進(jìn)程; 此處我們的端口號(hào)也
是唯一表示一個(gè)進(jìn)程. 那么這兩者之間是怎樣的關(guān)系?
????????進(jìn)程 ID 屬于系統(tǒng)概念, 技術(shù)上也具有唯一性, 確實(shí)可以用來標(biāo)識(shí)唯一的一個(gè)進(jìn)
程, 但是這樣做, 會(huì)讓系統(tǒng)進(jìn)程管理和網(wǎng)絡(luò)強(qiáng)耦合(pid每次啟動(dòng)的時(shí)候都會(huì)發(fā)送變化,那么兩者之間有聯(lián)系,意味著網(wǎng)絡(luò)部分也要發(fā)送變化), 實(shí)際設(shè)計(jì)的時(shí)候, 并沒有選擇這
樣做。我們要實(shí)現(xiàn)解耦,系統(tǒng)就是系統(tǒng),網(wǎng)絡(luò)就是網(wǎng)絡(luò),所以引入了端口號(hào)。

? ? ? ? 但在系統(tǒng)中不是所有進(jìn)程都有端口號(hào),所有進(jìn)程都有pid,只有需要進(jìn)行網(wǎng)絡(luò)通信的進(jìn)程才有端口號(hào)。


理解源端口號(hào)和目的端口號(hào)
????????傳輸層協(xié)議(TCP 和 UDP)的數(shù)據(jù)段中有兩個(gè)端口號(hào), 分別叫做源端口號(hào)和目的端口號(hào).
就是在描述 "數(shù)據(jù)是誰發(fā)的, 要發(fā)給誰"


2.4理解 socket

  • 綜上, IP 地址用來標(biāo)識(shí)互聯(lián)網(wǎng)中唯一的一臺(tái)主機(jī), port 用來標(biāo)識(shí)該主機(jī)上唯一的一個(gè)網(wǎng)絡(luò)進(jìn)程
  • ?IP+Port 就能表示互聯(lián)網(wǎng)中唯一的一個(gè)進(jìn)程
  • 所以, 通信的時(shí)候, 本質(zhì)是兩個(gè)互聯(lián)網(wǎng)進(jìn)程代表人來進(jìn)行通信, {srcIp,srcPort, dstIp, dstPort}這樣的 4 元組就能標(biāo)識(shí)互聯(lián)網(wǎng)中唯二的兩個(gè)進(jìn)程
  • ?所以, 網(wǎng)絡(luò)通信的本質(zhì), 也是進(jìn)程間通信
  • 我們把 ip+port 叫做套接字 socket


?3.傳輸層的典型代表

????????如果我們了解了系統(tǒng), 也了解了網(wǎng)絡(luò)協(xié)議棧, 我們就會(huì)清楚, 傳輸層是屬于內(nèi)核
的, 那么我們要通過網(wǎng)絡(luò)協(xié)議棧進(jìn)行通信, 必定調(diào)用的是傳輸層提供的系統(tǒng)調(diào)用, 來
進(jìn)行的網(wǎng)絡(luò)通信


3.1認(rèn)識(shí) TCP 協(xié)議

此處我們先對(duì) TCP(Transmission Control Protocol 傳輸控制協(xié)議)有一個(gè)直觀的認(rèn)識(shí);
后面我們?cè)僭敿?xì)討論 TCP 的一些細(xì)節(jié)問題.
? 傳輸層協(xié)議
? 有連接
? 可靠傳輸(可靠性高)
? 面向字節(jié)流


3.2認(rèn)識(shí) UDP 協(xié)議

此處我們也是對(duì) UDP(User Datagram Protocol 用戶數(shù)據(jù)報(bào)協(xié)議)有一個(gè)直觀的認(rèn)識(shí); 后
面再詳細(xì)討論.
? 傳輸層協(xié)議
? 無連接
? 不可靠傳輸(但操作簡(jiǎn)單)
? 面向數(shù)據(jù)報(bào)
?


4. 網(wǎng)絡(luò)字節(jié)序

????????我們已經(jīng)知道,內(nèi)存中的多字節(jié)數(shù)據(jù)相對(duì)于內(nèi)存地址有大端和小端之分, 磁盤文件中的
多字節(jié)數(shù)據(jù)相對(duì)于文件中的偏移地址也有大端小端之分, 網(wǎng)絡(luò)數(shù)據(jù)流同樣有大端小端之
分. 那么如何定義網(wǎng)絡(luò)數(shù)據(jù)流的地址呢?

  • ?發(fā)送主機(jī)通常將發(fā)送緩沖區(qū)中的數(shù)據(jù)按內(nèi)存地址從低到高的順序發(fā)出;
  • ?接收主機(jī)把從網(wǎng)絡(luò)上接到的字節(jié)依次保存在接收緩沖區(qū)中,也是按內(nèi)存地址從低到高的順序保存;
  • ?因此,網(wǎng)絡(luò)數(shù)據(jù)流的地址應(yīng)這樣規(guī)定:先發(fā)出的數(shù)據(jù)是低地址,后發(fā)出的數(shù)據(jù)是高地址.
  • TCP/IP 協(xié)議規(guī)定,網(wǎng)絡(luò)數(shù)據(jù)流應(yīng)采用大端字節(jié)序,即低地址高字節(jié).
  • 不管這臺(tái)主機(jī)是大端機(jī)還是小端機(jī), 都會(huì)按照這個(gè) TCP/IP 規(guī)定的網(wǎng)絡(luò)字節(jié)序來發(fā)送/接收數(shù)據(jù);
  • 如果當(dāng)前發(fā)送主機(jī)是小端, 就需要先將數(shù)據(jù)轉(zhuǎn)成大端; 否則就忽略, 直接發(fā)送即可;

????????但后面是有了規(guī)定:網(wǎng)絡(luò)中通信,必須大端!?為使網(wǎng)絡(luò)程序具有可移植性,使同樣的 C 代碼在大端和小端計(jì)算機(jī)上編譯后都能正常運(yùn)
行,可以調(diào)用以下庫函數(shù)做網(wǎng)絡(luò)字節(jié)序和主機(jī)字節(jié)序的轉(zhuǎn)換。

? 這些函數(shù)名很好記,h 表示 host,n 表示 network,l 表示 32 位長(zhǎng)整數(shù),s 表示 16 位短整數(shù)。
? 例如 htonl 表示將 32 位的長(zhǎng)整數(shù)從主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序,例如將 IP 地址轉(zhuǎn)換后準(zhǔn)備發(fā)送。
? 如果主機(jī)是小端字節(jié)序,這些函數(shù)將參數(shù)做相應(yīng)的大小端轉(zhuǎn)換然后返回;
? 如果主機(jī)是大端字節(jié)序,這些函數(shù)不做轉(zhuǎn)換,將參數(shù)原封不動(dòng)地返回。


?


?5. socket 編程接口

socket 常見 API
?

C /
/ 創(chuàng)建 socket 文件描述符 (TCP/UDP, 客戶端 + 服務(wù)器)
int socket(int domain, int type, int protocol);
// 綁定端口號(hào) (TCP/UDP, 服務(wù)器)
int bind(int socket, const struct sockaddr *address,socklen_t address_len);
// 開始監(jiān)聽 socket (TCP, 服務(wù)器)
int listen(int socket, int backlog);
// 接收請(qǐng)求 (TCP, 服務(wù)器)
int accept(int socket, struct sockaddr* address,socklen_t* address_len);
// 建立連接 (TCP, 客戶端)
int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

sockaddr 結(jié)構(gòu)
????????socket API 是一層抽象的網(wǎng)絡(luò)編程接口,適用于各種底層網(wǎng)絡(luò)協(xié)議,如 IPv4、 IPv6,以及
后面要使用的 UNIX Domain Socket. 然而, 各種網(wǎng)絡(luò)協(xié)議的地址格式并不相同。

? IPv4 和 IPv6 的地址格式定義在 netinet/in.h 中,IPv4 地址用 sockaddr_in 結(jié)構(gòu)
體表示,包括 16 位地址類型, 16 位端口號(hào)和 32 位 IP 地址.
? IPv4、 IPv6 地址類型分別定義為常數(shù) AF_INET、 AF_INET6. 這樣,只要取得某
種 sockaddr 結(jié)構(gòu)體的首地址,不需要知道具體是哪種類型的 sockaddr 結(jié)構(gòu)體,就可
以根據(jù)地址類型字段確定結(jié)構(gòu)體中的內(nèi)容.
? socket API 可以都用 struct sockaddr *類型表示, 在使用的時(shí)候需要強(qiáng)制轉(zhuǎn)化成
sockaddr_in; 這樣的好處是程序的通用性, 可以接收 IPv4, IPv6, 以及 UNIX Domain
Socket 各種類型的 sockaddr 結(jié)構(gòu)體指針做為參數(shù);(這就是C語言版本的多態(tài),頭部結(jié)構(gòu)一致,因此可以接收不同的結(jié)構(gòu)體)
sockaddr 結(jié)構(gòu)

sockaddr_in 結(jié)構(gòu)
雖然 socket api 的接口是 sockaddr, 但是我們真正在基于 IPv4 編程時(shí), 使用的數(shù)據(jù)結(jié)
構(gòu)是 sockaddr_in; 這個(gè)結(jié)構(gòu)里主要有三部分信息: 地址類型, 端口號(hào), IP 地址
in_addr 結(jié)構(gòu)

in_addr 用來表示一個(gè) IPv4 的 IP 地址. 其實(shí)就是一個(gè) 32 位的整數(shù);
?

http://www.risenshineclean.com/news/44496.html

相關(guān)文章:

  • 廣州平臺(tái)網(wǎng)站建設(shè)seo排名優(yōu)化是什么
  • 東莞高端做網(wǎng)站百度權(quán)重查詢
  • 怎么做根優(yōu)酷差不多的網(wǎng)站濟(jì)南網(wǎng)絡(luò)推廣
  • 免費(fèi)手機(jī)網(wǎng)站制作鄭州建網(wǎng)站的公司
  • asp 網(wǎng)站源代碼電商平臺(tái)有哪些
  • 個(gè)人網(wǎng)站主頁模板黃桃圖片友情鏈接
  • 房地產(chǎn)公司 網(wǎng)站建設(shè)數(shù)據(jù)分析師要學(xué)什么
  • 珠海 網(wǎng)站建設(shè)深圳網(wǎng)絡(luò)營(yíng)銷推廣公司
  • 上海自適應(yīng)網(wǎng)站建設(shè)今日武漢最新消息
  • 成都專業(yè)網(wǎng)站建設(shè)優(yōu)化團(tuán)隊(duì)博為峰軟件測(cè)試培訓(xùn)學(xué)費(fèi)
  • 江西省政府辦公廳網(wǎng)站作風(fēng)建設(shè)網(wǎng)絡(luò)營(yíng)銷的方式和手段
  • 做一些網(wǎng)站犯法么個(gè)人網(wǎng)站設(shè)計(jì)作品
  • 建設(shè)工程服務(wù)平臺(tái)揚(yáng)州seo
  • 有沒有網(wǎng)站是免費(fèi)做店招圖片的5118關(guān)鍵詞工具
  • 溫州本地網(wǎng)站個(gè)人博客網(wǎng)頁制作
  • 如果只做p2p種子搜索網(wǎng)站今日小說搜索風(fēng)云榜
  • 做網(wǎng)站買域名就行了嗎網(wǎng)址之家
  • wordpress安裝路徑和站點(diǎn)地址的設(shè)置廣州seo公司排名
  • 廣告型網(wǎng)站怎么做站長(zhǎng)工具網(wǎng)址查詢
  • 怎么在一起做網(wǎng)站上拿貨開網(wǎng)站需要什么流程
  • 八面通網(wǎng)站建設(shè)nba排名最新賽程
  • 做網(wǎng)站的好處seo外鏈增加
  • 深圳做網(wǎng)站那家好正規(guī)網(wǎng)站建設(shè)服務(wù)
  • 協(xié)會(huì)網(wǎng)站制作百度網(wǎng)盤app官方下載
  • 太原網(wǎng)站推廣服務(wù)seo推廣seo技術(shù)培訓(xùn)
  • wordpress 騰訊云成都外貿(mào)seo
  • 網(wǎng)站建設(shè)公司起名百度廣告聯(lián)盟怎么賺錢
  • 聊城做網(wǎng)站最好的網(wǎng)絡(luò)公司哪里有永久免費(fèi)建站
  • 網(wǎng)站建設(shè)進(jìn)什么分錄百度賬號(hào)一鍵登錄
  • 政府網(wǎng)站建設(shè)意見權(quán)威發(fā)布