Linux 網路基礎簡介

2021-10-04 01:17:01 字數 2546 閱讀 7063

計算機網路當中的兩台計算機是如何進行通訊的?

port:在一台主機當中唯一 標識乙個程序

協議分層就是一種封裝,對不同的服務或者協議進行封裝osi參考模型,注意osi模型只是乙個為制定標準而提高的概念性框架並進行未具體實現。

osi七大分層:【物數網傳會表應】物理層 ,資料鏈路層,網路層,傳輸層,會話層,表示層,應用層  。其中上面3層面向的是資訊處理,下面4層面向資料通訊。

分為:物理層,資料鏈路層,網路層,傳輸層,應用層,

應用層:負責應用程式之間的資料溝通。程式設計師就是工作在這一層的,負責業務資料的接收,處理,傳送。

下面是傳輸過程: 

1.出發點不同

osi是作為國際標準而制定的,不得不兼顧各方,考慮各種情況,從而使得osi相對比較複雜,協議的數數量和複雜性都遠高於tcp/ip。tcp/ip 協議是為軍用網arpa net 設計的體系結構,一開始就考慮了 一些特殊要求,如可用性、殘存性、安全性、網路 互聯性以及處理瞬間大批資訊的能力等。tcp/ip是最早的網際網路協議 ,它的發展順應社會需求,在實踐中不斷改進與完善,有成熟的產品和市場,為人們所廣泛接受。

2. 對以下問題的處理方法不相同

a.作用:在網路上唯一標識一台主機

b.ipv4版本的ip位址,在核心當中就是乙個uint32_ t-->42億,採用點分十進位制的方式來表示ip位址。例如 192.168.0.1 ; 用點分割的每乙個數字表示乙個位元組, 範圍是 0 - 255。

c.源ip位址和目的ip位址

d.ipv6   :  16位元組的整數,2的128次方。   ipv6天生不向下相容ipv4。因為兩者的ip協議的報頭格式不同

在一台主機當中標識乙個程序

本質: uint16_ _t 埠的範圍0-65535,其中0~ 1023是知名埠, 80--http mysql--3306 oracle---1521

使用:網路當中的程式,通訊的時候,都是需要使用埠進行通訊

客戶端和服務端,是乙個相對的概念,是一 個邏輯上的概念

服務埠在提供服務時必須繫結自己的port。

那為什麼不使用pid作為請求與在主機當中查詢程序的標準?

這是由於每次程序關閉或者重啟會導致該次啟動pid和下次不一樣,這樣就對使用者訪問造成了困擾。

在網路程式中存在兩種埠:源埠src_port 目的埠dest_port

在網路程式當中的一條資料當中存在乙個五元組:

src_ip, src_port , src_ip,dest_port, protocol(協議)

位元組序:cpu對記憶體當中的資料進行訪問的順序。

主機位元組序:當前計算機的位元組序,一般情況下,x86_64機器都是小端機器。

網路位元組序:大端位元組序,是網路的通訊標準。

那麼什麼是大端小端嘞?怎麼判斷乙個機器是大端還是小端嘞?

用**驗證大小端: 

#includeint main()

c.a = 1;

if(c.b == 1)

printf("小端\n");

else

printf("大端\n");

return 0;

}

執行結果是 1說明是小端機器

大小端機器需要進行通訊的時候,都是需要遵循網路位元組序(大端位元組序),小端機器進行網路通訊時需要進行大小端轉換,如果主機位元組序是大端的就不需要轉換。

#include

//這裡 h:host 主機  to:轉換   n: network   l:long 32位  s: short 16位

uint32_t htonl(uint32_t hostlong);//將32位主機位元組序的資料轉換為網路位元組序

uint16_t htons(uint16_t hostshort);//將16位主機位元組序的資料轉換為網路位元組序

uint32_t ntohl(uint32_t netlong);//將32位網路位元組序的資料轉換為主機位元組序

uint16_t ntohs(uint16_t netshort); //將16位網路位元組序的資料轉換為主機位元組序         

Linux基礎 Linux簡介

linux 發音 l n ks lin ks 是一種自由和開放原始碼的類unix作業系統。該作業系統的核心由林納斯 托瓦茲在1991年10月5日首次發布在加上使用者空間的應用程式之後,成為linux作業系統。linux也是自由軟體和開放源 軟體發展中最著名的例子。只要遵循gnu 通用公共許可證 gp...

網路基礎 TCP協議簡介

tcp協議全稱 傳輸控制協議 顧名思義,要對資料的傳輸有乙個詳細的控制。tcp協議段格式 1.16位埠號 port number 源埠號和目的埠號 2.32位序號 sequence number 第乙個 序號值被初始化為某個隨機值isn initial sequence number tcp報文是位...

Linux系統基礎簡介

一 linux是什麼 linux作業系統最初是在1991年10月份由芬蘭赫爾辛基大學的在校生linus torvalds所發布,最初被發布的linux 0.0.2版本因其高質量的 與開放源 迅速引起了一大批黑客的加入,而今雖然有數百計的linux發布版,但都依然統一使用linus torvalds開...