生活随笔
收集整理的這篇文章主要介紹了
网络和通信
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網絡
文章目錄
- 網絡
- 1:三次握手和四次揮手
- 2:可靠傳輸的保證
- 3:進程之間的通信方式
- 3:線程之間的同步方式
1:三次握手和四次揮手
- 客戶端發送帶有SYN標志的數據包,一次握手——服務器
- 服務端發送帶有 SYN/ACK標志的數據包,二次握手——客戶端
- 客戶端發送帶有ACK標志的數據包,三次握手——服務端
- 為什么要三次
- 第一次,client什么都不能確定,server確定了對方發送正常,自己接受正常
- 第二次,client確定了:自己發送,接受正常,對方兩項也正常,server確認了對方發送正常,自己接受正常
- 第三次:client確定了自己和他都正常,server也確定了
- 為什么傳回了ACK,還要SYN
- 四次揮手
- 客戶端發送一個FIN,用來關閉客戶端到服務器的數據傳送
- 服務區收到了這個FIN,發回一個ACK,確定序號為收到的序號+1,和SYN一樣,FIN將占用一個序號
- 服務器關閉與客戶端的連接,發送一個FIN給客戶端
- 客戶端發送ACK報文確定,并將確認序號設置為收到的序號+1
- 客戶端告訴服務器,我要關閉了
- 服務器收到了這個消息,說我收到了
- 服務器說,我關閉了
- 客戶端說,我也關閉了
- A:我沒啥說的了
- B:我知道了
- B:我說完了
- A:我也知道了
2:可靠傳輸的保證
3:進程之間的通信方式
- 管道/匿名管道,具有血緣關系的父子進程后者兄弟之間的通信
- 有名管道:先進先出,以磁盤文件的形式存在
- 信號:singal,通知某個進程某個事情已經發生
- 消息隊列:先進先出的原則,消息隊列實現消息的隨機查詢,
- 信號量:是一個計數器,多進程對共享數據的訪問
- 共享內存:多個進程可以訪問同一塊的內存空間,互斥鎖和信號量
- 套接字:客戶端和服務器之間通過網絡進行通信。
3:線程之間的同步方式
- 互斥量:mutex
- 信號量:semaphore
- 時間:wait/ notify
總結
以上是生活随笔為你收集整理的网络和通信的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。