網路基本協議

2021-12-29 20:40:50 字數 4068 閱讀 7402

1.概念

計算機與計算機之間通過網路實現通訊時事先達成的一種約定。兩台計算機只要遵循相同的協議就能夠實現通訊。網路也屬於程序間通訊,公共資源是網路,其本質是兩個程序通過網路進行收發資料。

2.多任務排程

作業系統採用cpu時間片輪轉機制,在多個程式間進行切換,合理排程,從而相當於使多個程式同時執行。

3.osi模型

iso制定了乙個國際標準osi。共分為了7層,使得複雜的網路協議變得更加簡單化。

應用層:針對特定應用的協議 表示層 會話層 傳輸層:管理兩個節點之間的傳輸,負責可靠傳輸。 網路層:位址管理與路由選擇,經過哪個路由傳遞到目標位址? 資料鏈路層:互連裝置之間傳送和識別資料幀 物理層:線路傳輸

4.位址

1)在同乙個通訊網路中,通訊主體位址具有唯一性、層次性(中國陝西),但mac位址不具有層次性。ip位址具有層次性。

2)mac位址:由裝置的製造廠商針對每塊網絡卡進行分別指定。mac位址一般會燒入到rom中。是資料鏈路的位址,識別同一鏈路中不同的計算機。

5.半雙工

只傳送或只接收的通訊方式。

6.全雙工

同一時間既可以發資料也可以接收資料,例如打**。

7.vpn

虛擬專用網路,用於連線距離較遠的地域。就可以瀏覽外網了。翻牆(梯子)。

8.socket

使用tcp或udp進行通訊時,會使用到套接字(socket)的api(應用程式設計介面)。

socket=ip+埠號。

9.埠號

1)用來識別同一臺計算機中進行通訊的不同應用程式。

2)網路任務程序才有埠號。

3)是傳輸層協議的內容。

4)乙個埠號只能被乙個程序占用。

5)乙個程序可以被多個埠號繫結,乙個埠號不能被多個程序繫結。收資料時不知道給哪個程序傳送。

6)識別乙個通訊:「源ip位址」、「目標ip位址」、「協議號」、「源埠號」、「目的埠號」。

可以使用netstat -n -t進行參看。

7)埠號分為知名埠號(0~1023)和作業系統動態分配的埠號。我們自己寫程式時,應該避開這些知名埠號。

cat /etc/services //可以檢視知名埠號

8.netstat檢視網路狀態的工具。

n:拒絕顯示名字,能顯示數字的全部轉換為數字

l:僅列出有在監聽的服務狀態

p:顯示建立相關鏈結的程式名

t:僅顯示tcp相關選項

u:僅顯示udp相關選項

9.檢視伺服器的程序idpidof 程序名

1.網絡卡

使計算機聯網的裝置,一台計算機想連線網路,必須有網絡卡(網路介面卡、網路介面卡)。網絡卡有時會被整合到計算機的主機板中,或者也可以單獨插入擴充套件槽使用。

2.中繼器

物理層上的延長網路的裝置,對減弱的訊號進行放大和傳送的裝置。

3.路由器

是連線網路和網路的裝置。可以將分組報文傳送給另乙個目標路由器位址。工作在網路層。連線兩個乙太網。

4.交換機

可以將區域網的網路碰撞減少。工作在資料鏈路層。用於互連相同型別的區域網。

1.arpanet

是全球網際網路的鼻祖。

2.tcp/ip於2023年誕生。

tcp/ip是利用ip進行通訊時所必須用到的協議群的統稱。

3.rfc(徵求意見表)

4.資料報

段:tcp資料流中的資訊。

資料報:ip和udp中的單位

幀:資料鏈路層中包的單位。

5.應用層

ssh、http、smtp、pop、ftp、html、dns(基於udp協議)、tftp(基於udp的簡單檔案傳輸協議)。

6.傳輸層

udp、tcp、

7.網路層

arp、ipv4、ipv6、

8.資料鏈路層

ppp1.特點

無連線、不可靠、面向資料報的一種協議。udp沒有真正意義的傳送緩衝區。udp具有接收緩衝區,但這個緩衝區不保證資料報的順序,當接收緩衝區滿了,在到達的資料報就會被丟棄。

2.udp首部

3.udp使用注意事項

udp協議首部中,有16的最大長度,也就是udp能傳輸的最大長度是64k(2的16次方),但我們可以在應用層手動的分包,多次傳送,並在接收端手動拼裝。

udp可以隨時傳送資料。

1.特點

面向連線、面向位元組流、可靠的資料段、屬於全雙工。其作用是對資料的傳輸進行乙個詳細的控制。tcp通過檢驗和、序列號、確認應答、重發控制、連線管理以及視窗控制等機制實現可靠性傳輸。

2.tcp首部

序列號

是指傳送資料的位置。

確認序號

指下一次應該收到的資料的序列號。說明已收到確認序號之前一位為止的資料。當傳送端收到這個確認序號時,就可以確認這個序號以前的資料都被正常接收。

4位首部長度

也叫資料偏移,表示tcp所傳輸的資料部分應該從tcp包的哪個位開始計算,相當於表示該tcp頭部有多少個32位bit(單位為4個位元組)。

①所以tcp頭部最大長度=(8+4+2+1)*4=60個位元組。

②如果tcp首部長20位元組,那麼4位首部長度可以設定為5,意味著tcp的首部是最一開始到20個位元組處,餘下為tcp資料。

保留

以後擴充套件時用。

6位控制位

urg:緊急指標是否有效。

ack:確認序號是否有效。

psh:使接收端應用程式立刻從tcp緩衝區中讀走。

rst:連線出現異常必須強制斷開連線,對方請求重新建立連線。攜帶此標識稱為復位報文段。

syn:請求建立連線,攜帶此標識稱為同步報文段。

fin:以後不再有資料傳送,希望斷開連線。

視窗大小

相當於接收方的緩衝區大小。

tcp不允許傳送超過此視窗大小的資料。

如果視窗為0,則表示可以傳送視窗探測,了解最新視窗大小。但這個資料必須是乙個位元組。

校驗和

tcp的校驗和無法關閉。

緊急指標

只有在urg控制位為1時有效。該欄位數值表示本報文段緊急資料的指標。

選項

其長度是可變的,最大長度為40個位元組。該欄位用於提高tcp的傳輸效能。

16位視窗大小一次往返時間最大只能傳送64k,但使用了該選項,就可以提公升至1個g。

簡單的文字協議 二進位制協議

寫網路程式躲不過協議,協議其實就是定義了訊息的格式,以及訊息是如何交換的。協議可簡單可複雜,複雜精密如tcp協議,簡單奔放如http的協議。這裡將我所接觸到的協議稍微總結一下,最後丟擲乙個個人設計的簡單通用的文字協議。設計乙個協議不是一件很容易的事情,尤其是當對設計的要求包含很好的描述性和可擴充套件...

C 串列埠通訊 文字協議資料解析

文字方式的資料比較容易分析。如果資料快取,可以考慮用stringbuilder。或是不快取也可以。文字格式資料大多有換行結尾。稍微修改即可。例如分析常見的nmea 0183格式的衛星座標資料gga。gpgga,121252.000,3937.3032,n,11611.6046,e,1,05,2.0,...

文字協議與二進位制協議的選擇

進行網路通訊時,我們經常糾結於到底使用什麼樣的協議傳輸資料,下面我談談應該怎麼選擇一種合理的協議格式。標準定義是這樣的 為計算機網路中進行資料交換而建立的規則 標準或約定的集合。網路協議至少包括三要素 語法 語法是使用者資料與控制資訊的結構與格式,以及資料出現的順序。語義 解釋控制資訊每個部分的意義...