OSI模型與TCP/IP協議棧

     OSI模型:

    使用OSI模型的意義:

     簡化教學
     加快發展速度
     確保技術的互操作性
     簡化模塊化設計
     標準化接口
     降低復雜性

   OSI 網絡模型分層

    
————————-   |
7      應用層           |         網絡進程訪問層:為應用程序進程提供網絡服務?
————————–
6      表示層           |          數據表示:   
————————–
5      會話層           |          端連接:  建立、管理和終止在應用程序的會話
————————-
4       傳輸層          |         傳輸問題:確保數據傳輸的可靠性(負責網段–> 可靠性)?
————————–
3        網絡層         |         數據傳輸:1路由數據包2.選擇傳遞數據最佳路徑3.支持邏輯尋址(數據包–> 路由)
————————–
2       數據鏈路層    |         訪問介質:定義了如何格式化數據以便鏡像傳輸以及如何控制對網絡訪問(幀–>mask) ?
————————–
1       物理層          |           二進制傳輸 :為啟動、維護及關閉物理鏈路定義了電氣等規范和功能規范(位–》二進制傳輸)
————————-

數據在網絡流動的方向如圖:

        發生方:數據封裝

OSI模型與TCP/IP協議棧

        接收方:數據解封

OSI模型與TCP/IP協議棧

     關于PDU和PUD在OSI各層的不同稱呼:
     PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位
    物理層的PDU是數據位bit
    數據鏈路層的PDU是數據幀frame
    網絡層的PDU是數據包packet
    傳輸層的PDU是數據段segment
    其他更高層次的PDU是消息message

    TCP/IP 協議棧

    最早發源于美國國防部(縮寫為DoD)的因特網的前身ARPA網項目,1983年1月1日,TCP/IP取代了舊的網絡控制協議NCP,成為今天的互聯網和局域網的基石和標準,由互聯網工程任務組負責維護
    1.TCP/IP 協議棧 共定義了四層
TCP/IP協議棧

—————————-

1.    應用層              |

—————————–
2.    傳輸層              |      
—————————–
3.    Internet層        |
—————————–
4.    網絡訪問層       |
———————- ——

   2. Internet 協議特征
?運行于OSI 網絡層
?面向無連接的協議
?獨立處理數據包
?分層編址
?盡力而為傳輸
?無數據恢復功能

   3. 傳輸層  tcp和UTP的特性:

    TCP的特性:

TCP特性
a.工作在傳輸層面向連接協議
b.全雙工協議
c.半關閉
d.錯誤檢查
e.將數據打包成段,排序
f.確認機制
g.數據恢復,重傳

h.流量控制,滑動窗口
i.擁塞控制,慢啟動和擁塞避免算法

    關于TCP包頭圖:
    OSI模型與TCP/IP協議棧

源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時刻只能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口是用16位表示的,可推算計算機的端口個數為2^16個
?序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由于序列號由32位表示,所以每2^32個字節,就會出現序列號回繞,再次從0 開始
?確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我希望你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號
?數據偏移:表示TCP報文段的首部長度,共4位,由于TCP首部包含一個長度可變的選項部分,需要指定這個TCP報文段到底有多長。它指出TCP 報文段的數據起始處距離TCP 報文段的起始處有多遠。該字段的單位是32位(即4個字節為計算單位),4位二進制最大表示15,所以數據偏移也就是TCP首部最大60字節
?URG:表示本報文段中發送的數據是否包含緊急數據。后面的緊急指針字段(urgent pointer)只有當URG=1時才有效
?ACK:表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有當ACK=1時,前面的確認號字段才有效。TCP規定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段
?PSH:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間。如果為1,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩沖區中
?RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,然后再重新建立連接?;蛘哒f明上次發送給主機的數據有問題,主機拒絕響應,帶RST標志的TCP報文段稱為復位報文段
?SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1,帶SYN標志的TCP報文段稱為同步報文段
?FIN:表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已經發送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結束報文段
?窗口大小:表示現在充許對方發送的數據量,也就是告訴對方,從本報文段的確認號開始允許對方發送的數據量
?校驗和:提供額外的可靠性
?緊急指針:標記緊急數據在數據字段中的位置
?選項部分:其最大長度可根據TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長為:(2^4-1)*4-20=40字節
常見選項:

    關于端口:

    a.0-1023:系統端口或特權端口(僅管理員可用) ,眾所周知,永久

分配給固定的系統應用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
    b.1024-49151:用戶端口或注冊端口,但要求并不嚴格,分配給程序注冊為某應用使用,1433/tcp(SqlServer),1521/tcp(oracle),
3306/tcp(mysql),11211/tcp/udp(memcached)
49152-65535:動態端口或私有端口,客戶端程序隨機使用的端口
其范圍的定義:/proc/sys/net/ipv4/ip_local_port_range


    TCP/IP協議棧和ISO參考模型的分層的對應關系如圖:

    OSI模型與TCP/IP協議棧    

原創文章,作者:m25Chronos,如若轉載,請注明出處:http://www.www58058.com/85138

(0)
m25Chronosm25Chronos
上一篇 2017-08-20
下一篇 2017-08-20

相關推薦

  • CentOS 7, lamp (php-fpm);(Blog 15)

    要求:
    (1) 三者分離于三臺主機;
    (2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
    (3) xcache

    2017-12-20
  • 第一周課程練習

    1、描述計算機的組成及其功能。 計算機由硬件、操作系統、軟件三大部分組成。 硬件包括核心CPU(大腦處理中心)、必備電源(心臟動力來源)、硬盤(倉庫)內存(中轉站)、主板(協調)、網卡、聲卡、顯卡、風扇、光驅、顯示器、鼠標、鍵盤、麥克風音箱,閃存、藍牙等。  計算機五大組成部分及功能。   運算器:     …

    Linux干貨 2016-08-15
  • Linux網站架構系列之Mysql—-部署篇

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1321079   MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于Oracle公司。MySQL所使用的SQL語言是用于…

    Linux干貨 2015-04-01
  • 高級文件系統管理1

    本部分內容主要講述了高級文件系統的管理,包括設定文件系統配額,設定和管理軟RAID設備,配置邏輯卷,設定LVM快照和btrfs文件系統。其中文件系統配額和軟RAID在企業中使用的頻率并不很高,作為熟練即可,而邏輯卷的創建和LVM快照是非常重要的內容,必須精通并完全理解其原理。至于btrfs文件系統是新興的一種技術,作為了解即可。 一、知識整理 1、文件系統配…

    Linux干貨 2016-08-29
  • linux初步

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理命令 文件管理有哪些命令:ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail等,下面我們就來詳細的說一下(只說常用的,不是命令全部) (1). ls 命令 1 2 3 4 5 6…

    Linux干貨 2017-01-22
  • ansible的入門使用手冊

    ansible1

    2018-01-15
欧美性久久久久