osi七層協議

2022-09-09 04:42:09 字數 4062 閱讀 4629

網際網路的本本質就是一系列的網路協議

也有稱為tcp/ip五層或四層協議

五層是將會話層和表示層,應用層同歸到應用層

每一層都有不同的裝置進行工作

每一層都有著不同的協議

使用者感知到的是最上一層的應用層,對於每一層來說,上層都是依賴於下層

物理層:基於電器之間的電訊號,高電壓為1,低電壓為0

資料鏈路層:將得到的電訊號進行分組

乙太網協議:ethernet規定:一組電訊號構成乙個資料報,即幀

每乙個資料幀包含包頭head和資料data兩部分

head:固定18個位元組,

資料型別:6位元組

data:最短46位元組,最長1500位元組

head + data:最短64位元組,最長1518位元組,超過長度分片傳送

採用多為ipv4版本,由32位二進位制表示,通常寫成4段十進位制,如 192.168.1.1(每個十進位制由8個二進位制表示)

範圍為:0.0.0.0 - 255.255.255.255

ipv6版本,是由128位二進位制組成,分成8段,每段包含4個十六進製制數(每個十六進製制是由4個二進位制表示),以:隔開

如  abcd:ef01:2345:6789:abcd:ef01:2345:6789

ipv6形式的位址前導的0是可以省略的,如 2001:0db8:0000:0023:0008:0800:200c:417a →  2001:db8:0:23:8:800:200c:417a

乙個ipv6位址中間可能包含很長的一段0,可以把連續的一段0壓縮為「::」。但為保證位址解析的唯一性,位址中」::」只能出現一次

如  ff01:0:0:0:0:0:0:1101 → ff01::1101

ipv6也可以相容ipv4,如 ::ffff:192.168.1.1  就是表示  192.168.1.1

如,ip位址172.16.10.1,如果已知網路部分是前24位,主機部分是後8位,那麼子網路掩碼就是11111111.11111111.11111111.00000000,寫成十進位制就是255.255.255.0

公有ip

d類位址是一種組播位址,d類位址的第乙個位元組以1110開始。目前d類位址被用在多點廣播(multicast)中

私有ip

只能在區域網中使用,不能在internet上使用

特殊ip

0.0.0.0不是乙個真正的ip位址,而是一切不確定的網路位址的集合,表示未知網路位址

例:172.16.10.1:10101100.00010000.00001010.000000001

255255.255.255.0:11111111.11111111.11111111.00000000

172.16.10.2:10101100.00010000.00001010.000000010

255255.255.255.0:11111111.11111111.11111111.00000000

這兩個ip位址通過與子網掩碼進行位與運算,得到的結果相同,則這兩個ip位址處於相同的子網

ip資料報:也分為head和data兩部分,整個ip資料報直接放在乙太網協議的data部分

head長度:20 — 60位元組

data長度:最長為65515位元組

而乙太網協議的data部分最長只有1500位元組,如果ip資料報超過這個長度,就要分片傳送

工作方式,每台主機的ip位址都是已知的

先判斷自己的ip位址和目標的ip位址是否處於同一子網,是則直接向目標ip發資料,不是則向閘道器ip發資料

傳送方式是:源mac --  目標mac --  源ip  --  目標ip   --  資料

目標mac用ff:ff:ff:ff:ff:ff代替

這個包會在傳送端的網內以廣播的形式傳播,所有主機接收後拆包,發現是自己的ip則返回自己的mac給傳送端

傳輸層:建立埠與埠之間的通訊,埠的範圍:0-65535,其中0-1023都是系統占用的埠號

tcp協議:可靠傳輸,包放在ip包的資料部分,tcp資料報沒有長度限制,但為了保證資料傳輸的效率,一般不超過ip資料報長度

udp協議:不可靠傳輸,包放在ip包資料部分,報頭占用8個位元組,最長65535位元組,正好放在乙個ip包內

tcp/ip協議中,tcp的三次握手和四次揮手

第一次握手:客戶端嘗試連線服務端,客戶端傳送乙個tcp的syn標誌位置為1的包,以及初始化序號(sequence number)為x

第二次握手:服務端接收syn包,並返回ack包確認應答,同時向客戶端傳送乙個syn包,並初始化(sequence number)為y

,syn標誌位和ack標誌位均為1的同時將確認序號(acknowledgement number)加1,即x+1

第三次握手:客戶端傳送確認包(ack) syn標誌位為0,ack標誌位為1.並且把伺服器發來ack的序號欄位+1,即y+1,放在確定字段(ack)中傳送給對方.並且在資料段放寫x+1

syn攻擊:在三次握手過程中,服務端傳送syn和ack包之後,狀態就變成了syn_recv

,在沒有接收到客戶端發回的確認ack包,是處於半連線狀態

而syn攻擊就是虛擬出大量不存在的ip位址,向服務端傳送syn包,伺服器收到包返回確認包,並等待客戶端確認,而客戶端是不存在的,服務端就會不停的發直至超時,這樣大量的資源就會被占用,造成網路擁堵

tcp協議解除連線需要傳送4個包,任何一方都可以發起結束,在socket程式設計中,任何一方執行close()操作都會發生揮手

補充:為什麼連線是三次握手,結束時四次揮手

這是因為服務端的listen狀態下的socket當收到syn報文的連線請求後,它可以把ack和syn(ack起應答作用,而syn起同步作用)放在乙個報文裡來傳送。

但關閉連線時,當收到對方的fin報文通知時,它僅僅表示對方沒有資料傳送給你了;

但未必你所有的資料都全部傳送給對方了,所以你可能未必會馬上會關閉socket,也即你可能還需要傳送一些資料給對方之後,再傳送fin報文給對方來表示你同意現在可以關閉連線了,

所以它這裡的ack報文和fin報文多數情況下都是分開傳送的。

應用層:使用者使用的應用程式

經過osi七層對資料進行封包和解包,傳送資料是封包過程,接收資料是解包過程

socket:應用層和傳輸層之間的乙個抽象層,它把一系列的tcp/ip協議封裝起來,並提供一組介面以供呼叫

osi七層模型**

OSI七層協議

應用層 表示層會話層 傳輸層網路層 資料鏈路層 物理層直接為應用程序提供服務,如電子郵件 web瀏覽器 虛擬終端等。協議 dhcp dns ftp gopher http imap4 irc nntp xmpp pop3 sip smtp snmp ssh telnet rpc rtcp rtp r...

osi七層協議

網際網路 物理鏈結裝置 網際網路通訊協議方便資料的傳輸,網際網路又稱為資訊高速公路網際網路協議按照功能不同分為osi七層或tcp ip五層或tcp ip四層 物理層 電訊號,二進位制 物理層由來 上面提到,孤立的計算機之間要想一起玩,就必須接入internet,言外之意就是計算機之間必須完成組網 物...

OSI七層協議

網路程式設計 網路程式設計其實研究的就是程式之間的資料通訊 要想實現網路資料互動的前提是必須要有物理連線層,除了有物理連線層介質之外還應該有一些能夠保證資料彼此無障礙互動的東西 標準 即osi協議。osi協議 osi七層協議即為 應用層 表示層 會話層 傳輸層 網路層 資料鏈路層 物理連線層 有時候...