數據通信-TCP/IP

1.TCP/IP概述

TCP/IP參考模型

                   

TCP/IP協議簇

TCP/IP協議簇是Internet的基礎,也是當今最流行的組網形式。 TCP/IP是一組協議的代名詞,包括許多別的協議,組成了TCP/IP協議簇。 TCP/IP協議並不完全符合OSI的七層參考模型,後者是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。 TCP/IP通訊協議採用了4層的層級結構,每一層都依賴它的下一層所提供的網絡來完成自己的需求。

TCP/IP參考模型各個層次的功能

應用層:爲用戶提供所需要的各種服務或系統應用接口 例如:FTP、Telnet、DNS、SMTP等

主機到主機層:建立、維護和取消一次端到端的數據傳輸過程,控制傳輸節奏的快慢,調整數據的排序等等

因特網層:定義IP地址;路由選擇;實現數據從源到目的地的轉發過程

網絡接入層:(數據鏈路層和物理層)

各層具有代表性的協議:

應用層:HTTP     80 超文本傳輸協議,提供瀏覽網頁服務

              Telnet     23 遠程登陸協議,提供遠程管理服務

              FTP     20、21 文件傳輸協議,提供互聯網文件資源共享服務

              SMTP     25 簡單郵件傳輸協議,提供互聯網電子郵件服務

              POP3      110 郵局協議,提供互聯網電子郵件服務

              TFTP     69 (UDP) 簡單文件傳輸協議,提供簡單的文件傳輸服務

主機到主機層:

               TCP(傳輸控制協議)屬於面向連接的網絡協議,面向連接,可靠傳輸,流控及窗口機制,使用TCP的應用:web瀏覽器(http),文件傳輸(FTP)等。

                UDP(用戶報文協議)屬於無連接的網絡協議,無連接,不可靠傳輸,盡力而爲的傳輸,使用UDP的應用:域名系統(DNS),視頻流;IP語音(VoIP)

               TCP報文格式:

                 端口號範圍1~65535;1~1024保留的端口號是well-know的,1024以後是可以自定義的端口號就是在IP地址後面跟着的數字192.168.12.23:80

               Scource port(源端口) Destination port(目的端口)Sequence number(***) Acknowledgement number(確認號)這兩個是實現TCP可靠傳輸的根本。Window(滑動窗口的大小),Checksum(校驗和),Control bits(控制位)

                UDP報文格式:

           

            TCP連接建立(三次握手)關注三個字段(seq,ack,ctl(控制位))

       

               seq是自己的***,ack是用來確認對端的***,ctl=SYN(SYN:同步序列編號(Synchronize Sequence Numbers)。是TCP/IP建立連接時使用的握手信號。在客戶機和服務器之間建立正常的TCP網絡連接時,客戶機首先發出一個SYN消息,服務器使用SYN+ACK應答表示接收到了這個消息,最後客戶機再以ACK消息響應。)

                ack=1表示我收到你的數據了,並且請你發送***爲1的數據

                TCP連接斷開(四次揮手)

               

                      TCP滑動窗口機制(由接收方來控制發送方發送數據的大小)

                        

因特網層:網絡層也叫Internet層 負責將分組報文從源端發送到目的端 網絡層作用 爲網絡中的設備提供邏輯地址 負責數據包的尋徑和轉發 

                協議:

              

                ARP協議(Address Resolution Protocol):解析出目標IP地址對應的MAC地址。 維護ARP映射(IP地址與MAC地址的對應關係)的緩存。不安全,不可靠,由於接收端不做任何確認,可能導致接收端的消息泄露(ARP劫持)。可以再終端輸入ARP -a來查看Ip地址對應的MAC地址

                

            dst表示目標 MAC地址,全F表示廣播的數據幀。

         IP報文格式

      

            Version(版本) Header(IP頭的長度)  Priority&Type of Service(qos服務質量) Total Length(本文總長度)Identification(分片) Fragment offset(分片)Flags(特殊標誌)   Time to live (TTL防環,出錯發送ICMP消息) Protocol (協議號告訴數據是什麼報文)  Header checksum(頭校驗和判斷數據是否損壞)

           因特網層工具:

           Ping(ICMP) Ping是網絡設備、Windows、Unix和Linux平臺上的一個命令,其實是一個小巧而實用的應用程序,該應用基於ICMP(Internet Control Messages Protocol)協議。 Ping常用於探測到達目的節點的網絡可達性。

            Traceroute/Tracert:幫助我們找出從自己本地到目標節點之間所穿越的每一臺路由器的IP地址,有利於分析數據行走路徑。

         參考模型:

摘自:https://www.bilibili.com/video/av37359658