2018-2019-1 20165320 《資訊安全系統設計基礎》第八週學習總結
阿新 • • 發佈:2018-11-25
教材知識點總結
網路程式設計
客戶端-伺服器程式設計模型
四步:
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); }
監聽與已連線: