網路基礎知識
概念:
每台電腦在網路世界中都有乙個全球唯一的標識 實體地址
網絡卡上有全球上唯一的實體地址(mac),長度為48位2進製,通常由12位16進製數表示(前六位是廠商編號,後六位是流水線號)檢視方式:ipconfig /all 注意:ip位址替代實體地址,更容易記憶
埠號
作用:區分電腦上的程序描述:電腦上的每乙個應用程式想執行必須佔乙個埠號。並且埠號同時間只能被乙個應用程式占用。每一台電腦上一共有65536個埠,
埠的範圍是
0~65535
。一般0~1023
被一些其他應用已經占用,因此我們一般從
1024
開始指定埠
網路協議
網路協議就是為了能讓計算機網路中進行資料交換而建立的規則、標準 網際網路上有上百種協議,但是最重要的兩個協議是tcp 協議和ip 協議,因此我們將上百種協議統稱為tcp/ip 協議族。tcp/ip協議族,根據協議的功能的不同抽象成了4 層
應用tftp,http,snmp,ftp,smtp,dns,telnet
傳輸tcp,udp
網路ip,icmp,ospf,eigrp,igmp
資料鏈路slip,cslip,ppp,mtu 畫**析資料傳輸過程
tcp:面向連線(建立連線的過程,斷開連線的過程),更安全,不容易丟包,但是效率低,
打**(接通之後
)
建立連線(三次握手/四次握手):客戶端與伺服器的連線。斷開連線(四次揮手):客戶端與伺服器的斷開連線第一次握手:是客戶端向服務端準備好資源。
第二次握手:服務端資源準備好了並且服務端問客戶端資源有沒有準備好了。
第三次握手:客戶端資源也準備好了。接下來才真正的發生資料。
第一次握手:客戶端告訴服務我不會給你傳送資料了
第二次握手:服務端告訴客服端我收到你的訊息了
第三次握手:服務端給客戶端發資料我也不會給你傳送訊息了
第四次握手:客戶端給服務端說我知道了
套接字通訊
接受方form socket import *
udsocket=socket(af_inet,sock_dgram)
#給socket物件繫結乙個ip位址和埠號t
updsocket.bind(("10.10.89.238".7777))
while true:
# 接收訊息
#recvfrom(1024):代表能接收1024個位元組的資訊
message=udpsocket.recvfrom(50000)
#檢視接收到的資訊的格式:返回的是乙個元組
(訊息內容,(傳送方的ip,傳送方的埠號))
#print(message)
#利用
docker容器間網路通訊
我們都知道,同主機同網路下的容器可以通過容器的網橋來進行通訊,但是不同網路的容器不能通訊。原因是什麼呢?參考 這個帖子,我自己做了實驗,記錄一下 檢視主機ip 是否開啟 sysctl net.ipv4.ip forward。既然已經開啟,且各個網橋都連線在主機上,為什麼不能ping通 我們看一下ip...
程序間的通訊與執行緒間通訊
程序間通訊 ipc,interprocess communication 是指在不同程序之間傳播或交換資訊。ipc的方式通常有管道 包括無名管道和命名管道 訊息佇列 訊號量 共享儲存 socket streams等。其中 socket和streams支援不同主機上的兩個程序ipc。同一主機上的程序通...
網路程式設計 程序間通訊(匿名管道)
匿名管道概述 匿名管道就是沒有名字的管道了,還有一種管道呢,叫做命名管道。在本地機器上可以使用匿名管道來實現父程序和子程序之間的通訊,這裡需要注意兩點,第一就是在本地機器上,這是因為匿名管道不支援跨網路之間的兩個程序之間的通訊,第二就是實現的是父程序和子程序之間的通訊,而不是任意的兩個程序。說了這麼...