一.網路協議
如果要理解Socket,要熟悉TCP/IP即傳輸控制協議/網間協議,定義了主機如何連入因特網,資料如何在它們之間傳輸的標準,
TCP/IP協議參考模型,把所有的TCP/IP系列協議歸類到四個抽象層中:應用層,傳輸層,網路層,資料鏈路層,每一抽象層建立在低一層提供的服務上,并且為高一層提供服務,
互聯網為什么分層?
層與層之間定好規則(就是介面),每一層做好自己的事,層可以內部演化,
協議:規范,遵守的規則
一共分為幾層?5層,下面具體分析一下這5層


物體層
物理連接,光纖/電纜等,傳遞的是0和1

鏈接層
規定一下0和1的解讀方式,
以太網
- 大概是一組信號當做資料包,成為幀-Head-data
- Head:描述資訊(發送者---接收者)
- Data:真實資料
- 資料必須是網卡到網卡的(每個網卡有Mac地址)
- 廣播一下,對著局域網的全部網卡都發一遍
互聯網是多個局域網組成的,局域網是子網路,
網路層
- 解決不同的計算機,在不同的局域網通訊問題,
- IPV4確定屬于哪個子網,獨立的IP比較貴的,每個計算機都有一個IP地址:192.168.1.1一共32位的
- 把幀里面data分成2塊(Head包括IP地址+長度,data真實資料)
- 幀長度是有限制的,如果超過,會拆成不同的包,每個包都有head和包序號
傳輸層
- 問題:電腦里面多個程式都使用網路,幀過來,到底給那個程式?得有個東西,告訴去給那個程式,(埠改閃亮登場了....)
- 保證:電腦上的某程式的資訊,發送到某個電腦上的某個程式,
- 埠:0~65535,其中0到1023系統用的,保證程式和程式進行交流
- 主機+埠=套件字(Socket),socket其實就是保證分布在不同電腦的程式互動,可以做網路應用程式開發
- UDP協議,把data拆分成head+data(head只放埠),不保證資料一定會被收到,特點:簡單,可靠
- TCP協議,資料的可達性,確保資料不丟失,確認程序,復雜版本的UDP,特點:負載低效,抵消更多資源,可靠,
應用層
http協議舉例,說明data資料里面的含義,指定data里面什么格式,什么意義,
二.網路通訊
推薦一個框架,跨平臺的
中文網站
https://www.supersocket.net/
Supersocket有三大物件:Session,AppServer,Commands
- Session:每個用戶的連接,就是一個Session
- AppServer:Socket服務器的實體
- Commands:客戶端回發資料的命令
客戶端發的資訊格式:CommandName+空格-+引數0+空格+引數1+空格+引數N+\r\n
服務端的處理:CommandName命令類來處理
心跳檢測機制:
- 用來檢測客戶端是否掉線,客戶端在線,間隔時間內服務器發送一個心跳包,服務器回傳應答,
- 如果心跳周期內,沒收到,服務器就認為你下線了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/500266.html
標籤:.NET技术
