網路間的通訊

2021-09-25 20:02:18 字數 2105 閱讀 5321

網路基礎知識

概念:

每台電腦在網路世界中都有乙個全球唯一的標識

實體地址

網絡卡上有全球上唯一的實體地址(mac),長度為482進製,通常由1216進製數表示(前六位是廠商編號,後六位是流水線號

檢視方式: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。同一主機上的程序通...

網路程式設計 程序間通訊(匿名管道)

匿名管道概述 匿名管道就是沒有名字的管道了,還有一種管道呢,叫做命名管道。在本地機器上可以使用匿名管道來實現父程序和子程序之間的通訊,這裡需要注意兩點,第一就是在本地機器上,這是因為匿名管道不支援跨網路之間的兩個程序之間的通訊,第二就是實現的是父程序和子程序之間的通訊,而不是任意的兩個程序。說了這麼...