1. 程式人生 > >TCP/IP 網路協議

TCP/IP 網路協議

TCP/IP :
      TCP/IP:在網路通訊中,TCP/IP是主流協議()
      應用層:使用者自定義的協議(HTTP,EMAIL,),用於使用者之間資料的傳送
      傳輸層:(傳輸控制:TCP,UDP)負責點對點之間連線建立,傳輸控制協議的指定()
      網路層:用於查詢路由(查詢)
      網路介面層:將二進位制轉換為資料幀。
      注:幀就是網路發達單位

TCP/IP著名協議:
        ARP:(實體地址:MAC地址)獲取同一物理網張嘴的MAC(32位)地址
        IP:負責主機和網路之間定址(每一個主機都有一個對應的網路編號和主機號)
        網路號:就是某一網路的編號(地名:湖北省武漢市江夏區XXXC27棟)
        主機號:C27(代表某一網路地址的某臺主機)
        IP:  網路+主機號    (IPV4:4段點分十進位制  192.168.8.73)
        乙太網絡劃分:
                A:【網路號】【[主][機][號]】
                     [0-------]【主機號】 ~   [01111111]【主機號】
                     0.0.0.0 ~ 127.255.255.255
                注:127.0.0.1 是本機地址
                B:【[網路][號]】【[主機][號]】
                   【[10-----][--------]】
                     最小網路號【10000000 000000】   128.0.主機號
                     最大網路號:[1011111111 11111111] 191.255.主機號
                C:【[網][絡][號]】【[主機號]】
                    【110----- -------- --------】【主機號】
                     網路號:
                     最小:11000000 00000000 00000000[主機號] 192.0.0.
                     最大:11011111 11111111 11111111【主機號】223.255.255.    
                D:廣播地址   
                E:保留地址
        劃分子網:財務:8人   教學:35人    學生:44人
            193.8.7.1   ----190.8.7.254        
        子網數 --> 3個   主機號:44      北京傳送資訊給董老師:193.8.7.129
            193.8.7. 【[--][-----]】
           財務: 193.8.7.【[01]-------】
           教學:193.8.7.【[11]------】
           學生:193.8.7.[[10]------]

       UDP:面向無連線,不安全,不可靠的傳輸協議。    (寫信,發簡訊)
           傳送訊息時,不需要對方連線,不需要關心對方是否能收到
           [源主機][目的主機][0][協議][UDP長度+]

       TCP:面向有連線,安全,可靠的傳輸協議。         (快遞)
           [源埠][目的埠][順序][確認號][TCP頭長URG、ACK,][視窗大小][校驗和][緊急指標][可選項][資料]
           埠號:為了區分某主機下的某應用程式而設定的一個編號   HTTP:80      
           人類:  地址:湖北省武漢市江夏區XXXC27
                人名:董老師  收
           機器:  地址:192.168.8.73
                埠:2425
               Short port;  [0-65535]
           注:<128為常用埠  HTTP:80>
       網路位元組序:為了防止不能電腦採用的高/低儲存問題,故裝置一種位元組序
           1234567   ----- 1234567

       TCP是面向連線的      (Transmission Control Protocol,傳輸控制協議)
       UDP是面向無連線的  (User Datagram Protocol,使用者資料包協議)
       當IP包通過路由將資料傳輸到目的地時,會根據TCP或UDP包頭中的源埠和目的埠資訊,請求和獲取不同的應用。也就是說,不管TCP還是UDP,都含有網路服務必須的源埠和目的埠資訊,以建立和實現網路傳輸服務。這時,你的疑問就來了:既然都用於傳輸,為何要搞兩個不同的協議呢?這就需要從網路中不同服務的需求來談起。
       在網路中,有些服務,如HTTP、FTP等,對資料的可靠性要求較高,在使用這些服務時,必須保證資料包能夠完整無誤的送達;而另外一些服務,如DNS、即時聊天工具等,並不需要這麼高的可靠性,高效率和實時性才是它們所關心的。根據這兩種服務不同的需求,也就誕生了面向連線的TCP協議,以及面向無連線的UDP協議。
       這裡的連線(Connection)和無連線(Connectionless)是網路傳輸中常用的術語,它們的關係可以用一個形象地比喻來說明,就是打電話(TCP)和寫信(UDP)。
       打電話時,一個人首先必須撥號(發出連線請求),等待對方響應,接聽電話(建立了連線)後,才能夠相互傳遞資訊。通話完成後,還需要結束通話電話(斷開連線),才算完成了整個通話過程。寫信則不同,你只需填寫好收信人的地址資訊,然後將信投入郵局,就算完成了任務。此時,郵局會根據收信人的地址資訊,將信件送達指定目的地。

       伺服器:                                                
           1、建立套接字(開啟網絡卡)1、建立套接字(開啟網絡卡)                                 
                 int  socket(網路族,控制協議,0)
           TCP/IP:AF_INET
                 控制協議:TCP( SOCK_STREAM)  UDP( SOCK_DGRAM)
                 預設值:0
                 返回值:檔案的描述符
            2、繫結地址
                 bind(int,struct sockaddr_int*)
            3、收/傳送資訊
                 recvfrom
                 sendto()
            4、結束 
                 close();
        客戶端:
            1、建立套接字(開啟網絡卡)1、建立套接字(開啟網絡卡)        
            2、收/傳送資訊    
            3、結束