1. 程式人生 > >2018-2019-1 20165320 《資訊安全系統設計基礎》第八週學習總結

2018-2019-1 20165320 《資訊安全系統設計基礎》第八週學習總結

教材知識點總結

網路程式設計

  • 客戶端-伺服器程式設計模型

    • 四步:

      1、當一個客戶端需要服務時,它向伺服器傳送一個請求,發起一個事務。

      2、伺服器收到請求後,解釋它,並以適當的方式操作它的資源。

      3、伺服器給客戶端傳送一個響應,並等待下一個請求。

      4、客戶端收到響應並處理它。

      客戶端與伺服器都是程序。

  • 網路

    • 客戶端與伺服器通常執行在不同的主機上,並且通過計算機網路的硬

    件和軟體資源來通訊。

    • 對於主機而言,網路是一種I/O裝置,是資料來源與資料接收方。

    • 物理上而言,網路是一個按照地理遠近組成的層次系統。

    • 協議具備的基本能力:

      1、命名機制:不同的區域網技術有不同和不相容的方式來為主機

      分配地址

      2、傳送機制:在電纜上編碼位和將這些位封裝成幀方面,不同的

      聯網技術有不同的和不相容的方式。

    • 資料從一臺主機到另一臺主機:

  • IP地址

    • 每臺因特網主機都執行實現TCP/IP協議。

    • 把因特網看成一個世界範圍的主機集合:

      1、主機集合被對映為一組32位的IP地址

      2、IP地址被對映為一組稱為因特網域名的識別符號

      3、因特網主機上的程序通過連線和任何其他因特網主機上的程序

      通訊

    • 一個IP地址就是一個32位無符號整數

    • IP地址結構體:

        struct in_addr{
      
            uint32_t s_addr;
        }
    • hotnl函式將32位整數由主機位元組序轉換為網路位元組序。

    • ntohl函式將32位整數從網路位元組順序轉換為主機位元組。

    • 域名與IP地址:

      1、一個域名和IP地址之間是一一對映

      2、多個域名可以對映到同一個IP地址

      3、多個域名可以對映到同一組的多個IP地址

    • TCP/IP:

  • 套接字介面

    • 應用概述:

    • 套接字地址結構:

        {
        uint16_t sin_family;
        uint16_t sin_port;
        struct in_addr sin_addr;
        unsigned char size_zero[8];
        }
    • socket 函式

        {
            int socket(int domain, int type , int protocol);
      
        }
    • connect 函式

        {
            int connect(int clientfd,const struct *addr,socket_t addrlen);           
        }
    • bind 函式

        {
            int bind(int clientfd,const struct *addr,socket_t addrlen);
        }
    • listen 函式

        {
            int listen(int socket,int backlog);    
        }
    • accept 函式

        {
            int accept(int listenfd, struct sockaddr* addr,int *addrlen);    
        }
    • 監聽與已連線: