国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

C#網絡編程系列一:網絡協議簡介

開發 后端
很多人寫網絡編程這快都沒有怎么講網絡中的協議,然而我覺得既然是網絡編程肯定要介紹下網絡編程中一些協議的,這樣可以讓更好的梳理網絡編程的知識的,所以我在這系列中會用兩個專題去講協議

 

因為這段時間都在研究C#網絡編程的一些知識, 所以在這里把我學習到的在這里和大家分享下的,這樣既可以達到分享的目的也可以讓大家監督我,如果有什么地方理解錯了,還請大家不吝賜教的。

很多人寫網絡編程這快都沒有怎么講網絡中的協議,然而我覺得既然是網絡編程肯定要介紹下網絡編程中一些協議的,這樣可以讓更好的梳理網絡編程的知識的,所以我在這系列中會用兩個專題去講協議,***個專題簡單介紹網絡分層以及各層之間如何通信的只是,第二專題將會介紹下應用層協議——Http協議,了解這個不僅對網絡編程有個理論基礎,也可以幫助更好地理解Web(Asp.net)的開發。

一、網絡分層

網絡上的計算機之所以可以互相通信,是因為它們之間都遵守互相都可以“認識”的互聯網協議(就如同人交流一樣,兩個人能夠交流,互相必須知道對象的語言),互聯網上的計算機互相通信又歸根于網絡中層與層之間的通信,OSI模型把網絡通信分成七層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層,對于開發網絡應用人員來說,一般把網絡分成五層,這樣比較容易理解。這五層為:物理層、數據鏈路層、網絡層、傳輸層和應用層(最頂層),下面是一張網絡分層的圖片(來源于網絡)

二、各層的協議

網絡中的計算機互相通信就是實現了層與層之間的通信,要實現層與層之間的通信,則各層都要遵守規則,這樣才能完成更好的通信, 我們就把它們之間遵守的規則就叫個“協議”,然而網絡上的五層之間遵守的協議不一樣,每層都有各自的協議。下面就由下至上的講述每層的協議

2.1 物理層協議

物理層是五層模型中的***層,物理層為計算機之間的數據通信提供了傳輸媒體和互連設備,為數據傳輸提供了可靠的環境,媒體包括電纜、光纖、無線信道等,互連設備指是計算機和調制解調器之間的互連設備,如各種插頭、插座等。該層的作用是透明的傳輸比特流(即二進制流),為數據鏈路層提供一個傳輸原始比特流的物理連接

2.2 數據鏈路層

數據鏈路層是模型中的第2層,該層對接受到物理層傳輸過來的比特流進行分組,一組電信號構成的數據包,就叫做"幀",數據鏈鏈路層就是來傳輸以"幀"為單位的數據包,把數據傳遞給上一層(網絡層),幀數據由兩部分組成:幀頭和幀數據,幀頭包括接受方物理地址(就是網卡的地址)和其他的網絡信息,幀數據就是要傳輸的數據體。數據幀的最長為1500字節,如果數據很長,就必須分割成多個幀進行發送。

2.3 網絡層

該層通過尋址(尋址地址)來建立兩個節點之間的連接,大家都知道我們的電腦連接上網絡后都一個IP地址,我們可以通過IP地址來確定不同的計算機是否在同一個子網路。如果我們的電腦連接上網絡后就有兩種地址:物理地址和網絡地址(IP地址),網絡上的計算機要通信,必須要知道通信的計算機“在哪里”, 首先通過網絡地址來判斷是否處于同一個子網絡,然后再對物理地址(MAC)地址進行處理,從而準確確定要通信計算機的位置。

在網絡層中有我們熟悉的IP協議(即規定網絡地址的協議),目前廣泛采用的是IP協議第四版(IPv4),這個版本規定,網絡地址由32位二進制位組成。我們可以自己配置IP地址也可以自動獲得的方式得到IP地址,Ip地址分成兩部分,前24位代表網絡,后8位代表主機號, 如192.168.254.1和192.168.254.2就處于同一個子網絡里,因為這兩個IP地址的前24位相同。

網絡層中以IP數據包的形式來傳遞數據,IP數據包也包括兩部分:頭(Head)和數據(Data),IP數據包放進數據幀中的數據部分進行傳輸。

2.4 傳輸層

通過MAC和IP地址,我們可以找到互聯網上任意兩臺主機來建立通信。然而這里有一個問題,找到主機后,主機上有很多程序都需要用到網絡,比如說你在一邊聽歌和好用QQ聊天, 當網絡上發送來一個數據包時, 是怎么知道它是表示聊天的內容還是歌曲的內容的, 這時候就需要一個參數來表示這個數據包是發送給那個程序(進程)來使用的,這個參數我們就叫做端口號,主機上用端口號來標識不同的程序(進程),端口是0到65535之間的一個整數,0到1023的端口被系統占用,用戶只能選擇大于1023的端口。

傳輸層的功能就是建立端口到端口的通信,網絡層就是建立主機與主機的通信,這樣如果我們確定了主機和端口,這樣就可以實現程序之間的通信了。我們所說的Socket編程就是通過代碼來實現傳輸層之間的通信。因為初始化Socket類對象要指定IP地址和端口號。

在傳輸層有兩個非常重要的協議:UDP 協議和TCP協議

采用UDP協議話傳輸的就是UDP數據包,同樣UDP數據包也由頭和數據兩部分組成,頭部分主要標識了發送端口和接受端口,數據部分就是具體的內容信息。同樣UDP數據包是放入IP數據包中的"數據"部分,IP數據包再放入數據幀中在網絡上傳輸。

由于UDP協議的可靠性差(數據發送后無法確定對方是否收到),所以又定義了一個可靠性高的協議——TCP協議,TCP協議采取了握手的方式要確保對方收到了數據。

2.5 應用層

應用層是模型中的最頂層,是用戶與網絡的接口,該層通過應用程序來完成網絡用戶的應用需求。該層的數據放在TCP數據包的數據部分,該層定義了一個很重要的協議——Http協議,我們一般的Web開發都是基于應用層的開發, 所以后面專題將會和大家介紹下Http協議。理解Http協議可以幫助我們理解Asp.net的請求響應模型以及幫助我們自定義發出請求和自定義服務器。

三、總結

現在通過一個簡單的訪問網頁的例子來說明網絡中的通信。

當我們在瀏覽器中輸入www.baidu.com時,這意味著瀏覽器要向百度發送一個網頁數據包,要發送數據包,需要知道對方的IP地址,這里我們只知道網址為www.baidu.com,卻不知道IP地址,此時應用層協議DNS協議會幫我們把網址解析為IP地址,此時會發送一個DNS數據包給DNS服務器,DNS服務器再做出響應來告訴我們百度的IP地址為220.181.111.147,這樣我們就知道百度(我們需要通信的主機)的IP地址。

應用層:

瀏覽網頁采用的是HTTP 協議,HTTP數據包會嵌入在TCP數據包中,此時我們發送的HTTP數據包內容為:

  1. GET http://www.baidu.com/ HTTP/1.1  
  2. Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*  
  3. Accept-Language: en-US  
  4. User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Zune 4.7; InfoPath.3; MS-RTC LM 8)  
  5. Accept-Encoding: gzip, deflate, peerdist  
  6. Proxy-Connection: Keep-Alive  
  7. Host: www.baidu.com  
  8. Cookie: BDSFRCVID=H1K_JgC2l434o0a3SlYrhIyDwFLxPM7C3J; H_BDCLCKID_SF=tJAt_C8htDv5HTuRj63D5JcH-UnLqMkDWaOZ0h8-aI-5MbAx-jb6hhFXM-r80nblBTbT2C3nthF0HPonHj8Bej5L3J; BAIDUID=C0E879D1A40237E70E9FA559D40EE0AC:FG=1; BDUT=w5n3C0E879D1A40237E70E9FA559D40EE0AC13914a661370; BDUSS=FEQVdNdjllMTYyYlRxY3ZZbW1hM2htemdqZFVJcWRLWmFBaEtqd1FoTDNXeE5SQUFBQUFBJCQAAAAAAAAAAAoqyysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwLjI2LjE5Ny43NwAAAADAxFInAAAAAPcNJlD3DSZQYV; BDRCVFR[eYjbPwSqvSs]=2g3v5sBI-NCpv4EILPoXi4WUvY; Hm_lvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756; Hm_lpvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756  
  9. X-P2P-PeerDist: Version=1.0 

傳輸層:

TCP數據包需要設置端口,接收方(百度)的Http端口默認是80,本機的端口是一個1024-65535之間的隨機整數,這里假設為1025,這樣TCP數據包由標頭(標識著發方和接收方的端口信息)+HTTP數據包,這樣TCP數據包再嵌入IP數據包中在網絡上傳送

網絡層:

IP數據包需要知道雙方的IP地址,本機IP地址假定為192.168.1.5,接受方IP地址為220.181.111.147(百度),這樣IP數據包由頭部(IP地址信息)+TCP數據包,

數據鏈路層:

IP數據包嵌入到數據幀(以太網數據包)中,以太網數據包需要知道雙方的MAC(物理地址),發送方為本機的網卡地址,接受方為網關192.168.1.1的MAC地址(通過ARP地址解析協議得到的)。這樣數據幀由頭部(MAC地址)+IP數據包組成。

經過多個網關的轉發到百度服務器220.181.111.147,服務器接受到發送過來的以太網數據包,然后再從以太網數據包中提取IP數據包——>TCP數據包——>HTTP數據包,***服務器做出"HTTP響應",再用TCP協議發回給客戶端(瀏覽器),瀏覽器同樣的過程讀取到HTTP響應的內容(HTTP響應數據包),然后瀏覽器對接受到的HTML頁面進行解析,把網頁顯示出來呈現給用戶,這樣就完成了一次網絡通信了。

后面一個專題將對HTTP協議進行詳細的介紹。

原文鏈接:http://www.cnblogs.com/zhili/archive/2012/08/11/NetWorkProgramming.html

【編輯推薦】

  1. C#網絡編程系列二:HTTP協議詳解
  2. C#網絡編程系列三:自定義Web服務器
  3. C#網絡編程系列四:自定義Web瀏覽器
  4. C#網絡編程系列五:TCP編程
  5. C#網絡編程系列六:UDP編程
  6. C#網絡編程系列七:UDP編程補充
  7. C#網絡編程系列八:P2P編程
  8. C#網絡編程系列九:類似QQ的即時通信程序
  9. C#網絡編程系列十:實現簡單的郵件收發器
責任編輯:張偉 來源: Learning hard的博客
相關推薦

2012-09-24 14:09:31

C#網絡協議C

2012-09-24 15:13:50

C#網絡協議TCP

2012-09-24 15:35:24

C#網絡協議UDP

2012-09-25 11:28:38

C#網絡協議UDP

2012-09-25 13:47:43

C#網絡協議P2P

2009-08-21 14:03:04

C#網絡編程

2012-09-25 14:06:28

C#網絡協議

2012-09-24 14:31:55

C#網絡協議C

2012-09-24 14:43:51

C#網絡協議C

2012-09-25 15:02:50

C#網絡協議

2024-03-04 18:49:59

反射C#開發

2015-09-06 10:54:29

HTTP網絡協議

2009-08-21 14:47:39

C#網絡編程

2009-08-21 17:19:36

C#網絡編程入門

2011-07-19 13:04:22

網絡協議網絡編程

2009-09-07 14:29:47

C# Socket編程C# Socket

2009-08-21 10:17:14

C#異步網絡編程

2019-09-18 20:07:06

AndroidTCP協議

2009-09-02 17:10:45

C#語言入門

2011-09-16 10:00:56

C++
點贊
收藏

51CTO技術棧公眾號

久久99国产精品久久久久久久久| 日韩午夜视频在线| 欧美丰满少妇xxxxx做受| 欧美va亚洲va香蕉在线| 亚洲国产精品影视| 日本片在线看| 国产精品网友自拍| 五月天国产一区| 天天色天天射综合网| 久久精品中文字幕免费mv| yellow91字幕网在线| 亚洲成人高清在线| 成人拍拍拍在线观看| 国产成人在线色| 欧美亚洲免费高清在线观看| 精品国产乱码久久久久久果冻传媒 | 欧美日韩国产探花| 91国产视频在线播放| 高清av不卡| 日日摸日日碰夜夜爽无码| 国产在线不卡一区| 一二三四视频社区在线| 99久久亚洲精品| 欧美洲成人男女午夜视频| 日韩免费电影| 51漫画成人app入口| 91麻豆精品国产自产在线| 国产91色在线观看| 老司机免费视频一区二区三区| 99视频在线| 99久久婷婷国产精品综合| 69久久久久久| 国产二区视频在线| 日韩在线第三页| 日韩免费福利电影在线观看| 中文字幕网在线| 国产黄色精品网站| 欧美老女人第四色| 国产美女视频一区二区三区 | 欧美在线中文字幕| 26uuu亚洲婷婷狠狠天堂| www.国产在线播放| 99视频超级精品| 96av在线| 另类欧美小说| 亚久久调教视频| 日本在线观看一区| 日韩大片一区二区| 玖玖精品在线| 亚洲视频电影图片偷拍一区| 男女在线视频| 日韩电影中文 亚洲精品乱码| 乱插在线www| 国产亚洲在线播放| 亚洲18在线| 美女少妇精品视频| 性人久久久久| 91精品国产综合久久男男 | 亚洲国产成人tv| 91精品国产91久久久久久一区二区| 国产丝袜不卡| 天堂一区二区在线免费观看| 亚洲国产欧美不卡在线观看 | 日韩国产一级片| 91视频国产观看| 亚洲四虎av| 精品国产精品自拍| 国产在线一区二区视频| 亚洲人成电影在线播放| 成人av综合网| 99国产高清| 国产黄色精品网站| 九色丨porny丨自拍入口| 色综合一区二区| 蜜桃视频在线观看播放| 欧美国产日韩一区二区三区| 99久久婷婷| 亚洲 欧洲 日韩| 国产精品丝袜一区| youjizz在线播放| 一色桃子一区二区| 蜜臀av免费一区二区三区| 久久久久久艹| 久久久久国产成人精品亚洲午夜| 日本啊v在线| 中文字幕日韩在线观看| 国产一区99| 精品国产三级a∨在线| 一级做a爱片久久| 性爽视频在线| 国产精品欧美日韩一区二区| 久久成人免费网站| 国产在线制服美女| 亚洲免费av网址| 国语产色综合| 8x8x华人在线| 色香蕉久久蜜桃| 国产一区二区三区免费在线| 国产视频一区二区不卡| 欧美高清在线一区| 欧美xxxx做受欧美88bbw| 日本精品va在线观看| 国内精品在线播放| 日本天堂在线| 欧美激情精品久久久久久| 久久不射网站| 久久久久久久一| 邻居大乳一区二区三区| 色爱av美腿丝袜综合粉嫩av| 欧美激情 亚洲a∨综合| 农村妇女精品一二区| 欧美xxxx在线观看| 香蕉综合视频| 中文字幕在线导航| 日韩理论片久久| 亚洲国产一区二区精品专区| 性欧美1819| 一区二区三区国产在线观看| 亚洲人成免费| 在线欧美成人| 久久久久国产视频| 久久99精品国产麻豆婷婷| yjizz视频网站在线播放| 国产成人精品综合| 久久男人中文字幕资源站| 欧美午夜大胆人体| 成人资源视频网站免费| 亚洲欧美视频一区| 大胆国模一区二区三区| 中文字幕一区二区中文字幕 | 中文字幕精品一区二区精品绿巨人 | 成人av婷婷| 男女日批视频在线观看| 欧美乱妇23p| 欧美激情电影| 男人天堂v视频| 91a在线视频| 久久精品一二三| 日韩成人在线电影| 免费看日本黄色| 精品一区二区三区电影| 日本va欧美va欧美va精品| 日本在线免费中文字幕| 成人av资源| 欧美曰成人黄网| 精品99视频| 二区三区在线观看| 欧美13一14另类| 欧美一二三区在线| 日本中文字幕一区二区视频| 亚洲欧美一区二区激情| 久久精品国产亚洲blacked| 欧美亚洲另类色图| 中文字幕一区二区精品| 成人综合激情网| 福利视频亚洲| 欧洲av无码放荡人妇网站| 欧美成年人网站| 亚洲国产精品成人综合 | 欧美军同video69gay| 色琪琪久久se色| 香蕉视频在线观看免费| 国产精品视频xxx| 大荫蒂欧美视频另类xxxx| 女人香蕉久久**毛片精品| 色视频在线观看免费| 成人欧美视频在线| 欧美高清www午色夜在线视频| 国产偷自视频区视频一区二区| 欧美69xxx| 一区二区三区视频在线播放| 日韩av在线网页| av在线一区二区三区| 澳门精品久久国产| 中文字幕第5页| 国产精品乱码| 日韩av一卡二卡| 久久只精品国产| 精品国内自产拍在线观看视频| 在线视频中文字幕久| 国产综合18久久久久久| 亚洲国产精品久久91精品| aaa亚洲精品| 精品国产精品国产偷麻豆| aⅴ在线视频男人的天堂| 亚洲视频电影| 综合欧美国产视频二区| 亚洲精品一二三| 亚洲免费观看| 久久久成人av毛片免费观看| 精品少妇无遮挡毛片| 国产精品日韩一区| 欧美日韩视频在线观看一区二区三区 | 精品国产18久久久久久洗澡| 热国产热中文视频二区| 国产久一道中文一区| 亚洲精品成a人在线观看| 岛国片av在线| 日韩av手机在线看| 欧美日韩不卡一区二区|