一、OSI模型(open system interconnect)
? ? ? ? 開放系統互聯模型,分為7層
? ? ? ? 應用層:為網絡用戶提供各種服務,例如電子郵件、文件傳輸等;
? ? ? ? 表示層:為不同主機間的通信提供統一的數據表示形式。加密解密,壓縮;
? ? ? ? 會話層:負責信息傳輸的組織和協調,管理進程會話過程;
? ? ? ? 傳輸層:管理網絡通信兩端的數據傳輸,提供可靠或不可靠的傳輸服務。tcp、udp;
? ? ? ? 網路層:負責數據傳輸的路由選擇和網際互聯。ip;
? ? ? ? 鏈路層:負責物理相鄰(通過網絡介質相連)的主機間的數據傳輸,主要作用包括物理地址尋址、數據幀封裝、差錯控制等。該層可分為邏輯鏈路控制子層(LLC)和介質訪問子層(MAC);
? ? ? ? 物理層:純硬件,負責把主機中的數據轉換成電信號,再通過網絡介質(雙絞線、光纖、無線信道等)來傳輸。該層描述了通信設備的機械電氣功能等特性。有線傳輸短距離用網線,長距離用光纖。無線局域網民用2.4G-5G,無線廣域網叫蜂窩網絡;
二、TCP/IP模型
? ? ? ? 網際互聯模型,分為4層;
? ? ? ? 應用層:應用程序;
????????傳輸層:端口號,tcp,udp;
????????網絡層:IP地址;
????????接口層:網卡驅動;
三、dns域名解析服務
? ? ? ? 是一個服務器,記載網站對應的ip
? ? ? ? DHCP動態主機配置協議,分配ip地址;
? ? ? ? Windows:ipconfig;Linux:ifconfig;查看當前ip;
? ? ? ? 應用層:HTTP(超文本傳輸協議) TFTP FTP (文件傳輸協議)SNMP?DNS(域名解析服務) DHCP(動態主機配置協議)
? ? ? ? 傳輸層:TCP(傳輸控制協議)UDP(用戶數據報協議)
? ? ? ? 網絡層:IP ICMP(互聯網控制管理協議ping) RIP(最佳路徑) OSPF(最短路徑) IGMP(網絡組播協議)
? ? ? ? 接口層:ARP(地址解析協議,通過ip找MAC) RARP(逆向地址解析協議)
四、網絡基礎
? ? ? ? ip地址是網絡位加主機位;
? ? ? ? ip地址的分類:點分十進制?
? ? ? ? ? ? ? ? A類地址:超大規模型網絡
????????????????????????????????1.0.0.0-126.255.255.255
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 私有:10.0.0.0-10.255.255.255/127.0.0.1
? ? ? ? ? ? ? ? B類地址:中大規模型網絡
????????????????????????????????128.0.0.0-191.255.255.255
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 私有:172.16.0.0-172.31.255.255
? ? ? ? ? ? ? ? C類地址:中小規模型網絡
????????????????????????????????192.0.0.0-223.255.255.255
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 私有:192.168.0.0-192.168.255.255
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 靜態路由:
????????????????????????????????192.168.0.0代表網絡
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.0.1網關
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.0.255廣播
? ? ? ? ? ? ? ? D類地址:廣播和組播
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 224.0.0.0-239.255.255.255
? ? ? ? ? ? ? ? E類地址:實驗
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 240.0.0.0-255.255.255.255
五、配置網絡設置
? ? ? ? 1.ifconfig ensX X.X.X.X/24 up
????????ifconfig ens33 192.168.0.13/24 up //24:是從左往右數的1的個數,等價于255.255.255.0
? ? ? ? 臨時性的,虛擬機重啟會恢復
? ? ? ? 2.ping?
? ? ? ? 3.netstat -anp
六、網絡接口
? ? ? ? 1.socket :BSD socket 用于網絡通信的一組接口函數;
? ? ? ? 會得到打開網絡設備的文件描述符,叫套接字,socket api application interface;
? ? ? ? 2.ip地址+port端口
? ? ? ? ip地址用來找主機;port端口號用來找進程;
? ? ? ?port分為TCP port、UDP port范圍都是1-65535
? ? ? ? 約定1000以內的端口為系統使用。
3.網絡字節序-大端存儲
????????主機字節序:計算機是小端存儲的;
? ? ? ? 小端存儲:數據的低位放到存儲的低地址;
? ? ? ??ip地址和端口號需要大小端轉換一下;
七、UDP(用戶數據報)
? ? ? ? 1.特性:無鏈接,不可靠,大數據
? ? ? ? 2.socket
? ? ? ?#include <sys/types.h> ? ? ? ? ?/* See NOTES */
? ? ? ?#include <sys/socket.h>
? ? ? ?int socket(int domain, int type, int protocol);
? ? ? ? domain:AF_INET,ipv4互聯網;
? ? ? ? type:SOCK_DGRAM
? ? ? ? protocol:0
? ? ? ? 3.bind
? ? ? ? #include <sys/types.h> ? ? ? ? ?/* See NOTES */
? ? ? ? #include <sys/socket.h>
? ? ? ? int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
? ? ? ? sockfd標識符;addr地址結構體;addrlen結構體大小;
? ? ? ? 做地址和端口的大小端轉換:
? ? ? ? htons? ?//host to net short,端口轉換
? ? ? ? in_addr_t inet_addr(const char *cp);? ? ?//地址轉換
????????#include <sys/socket.h>
????????#include <netinet/in.h>
????????#include <arpa/inet.h>
? ? ? ? 4.recvfrom
? ? ? ? 接收函數,
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
? ? ? ? flags:0默認阻塞;MSG_DONTWAIT非阻塞,無數據則停止并設置error;MSG_PEEK窺探數據但不從緩沖區移除;MSG_WAITALL阻塞直到讀滿;
? ? ? ? 成功返回收到的字節;
? ? ? ? 5.sendto
? ? ? ? 發送函數
????????ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);
? ? ? ? 成功返回發出的字節數;