計算機網路當中的兩台計算機是如何進行通訊的?
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位元組序:cpu對記憶體當中的資料進行訪問的順序。在網路程式當中的一條資料當中存在乙個五元組:
src_ip, src_port , src_ip,dest_port, protocol(協議)
主機位元組序:當前計算機的位元組序,一般情況下,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開...