知识点 2: Libnet概述及使用本质:也是使用了原始套接字。概念:专业的构造和发送网络数据包的开发工具包是个高层次的 API 函数库,允许开发者自己构造和发送网络数据包跟原始套接字相比:(重要)1、libnet组包简单2、libnet发送时可选择指定网卡或者自动搜索,但是需要初始化网络环境。特点:1、隐藏了很多底层细节,省去了很多麻烦;如缓冲区管理、字节流顺序、校验和计算等问题,使开发者把重心
知识点 1: Libpcap概述及使用本质:就是封装了原始套接字的一套函数,可以捕获网络数据。跟原始套接字相比:(重要)1、原始套接字不可指定网卡,但是libpcap可以。2、原始套接字可通过创建时第三个参数进行简单过滤,libpcap可以更加具体的过滤。作用:1、捕获各种数据包列如:网络流量统计2、过滤网络数据包列如:过滤掉本地上的一些数据,类似防火墙3、分析网络数据包列如:分析网络协议,数据的
知识点4:原始套接字发送数据包网络出口结构体:发送数据包流程:(重要)#include <stdio.h> #include <strings.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/ether.h> //ETH_P_ALL #include <
知识点1:原始套接字概述跟其他套接字对比:流式套接字只能收发TCP 协议的数据数据报套接字只能收发UDP 协议的数据原始套接字可以收发任意协议数据包。创建套接字:int socket(PF_PACKET, SOCK_RAW, protocol) 功能: 创建链路层的原始套接字 参数: protocol:指定可以接收或发送的数据包类型 ETH_P_IP:IPV4 数据包
知识点1:防火墙概述 防火墙理论上是需要的,但是对于某些病毒或者木马程序想防也防不住。防火墙概念:被定义成一个或一组设备,它在网络之间执行访问控制策略。 防火墙的分类 硬件防火墙(一个仅有防火墙功能的硬件)、软件防火墙(360)防火墙布置:知识点2:linux防火墙iptablesiptables作用:就是在linux内设置网络数据包的进出规则管理规则:三张数据表,将每条规则放到数据表中,链式管理
知识点5:跨局域网通信-复杂版DNS协议:根据pc输入的域名去dns服务器找到域名所对应的web服务器ip。HTTP协议:获取web服务器html文档内容步骤1:新增两台服务器,给dns服务器设置ip,netmask及网关,并且配置dns步骤2:给web服务器设置ip,netmask,网关,配置http步骤3:给主机设置dns服务器测试:知识点6:分析数据包
安装软件Packet TracerPacket Tracer 是由 Cisco 公司发布的一个辅助学习工具,提供了设计、配置、排除网络故障网络模拟环境可以直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况步骤2:了解软件知识点2:局域网通信(集线器)集线器特点:1、收到数据包全部广播转发。2、工作在物理层。通信过程:1、只要有ping命令,产生ICMP数据
知识点1:http协议概述HTTP:超文本传输协议一种详细规定了浏览器和万维网(www)服务器之间互相通信的规则,通过因特网传送万维网(html)文档的数据传送协议。特点:1、是基于tcp的,工作在应用层。2、支持 C/S 架构,tcp的函数http都可用。3、简单快速:客户向服务器请求服务时,只需传送请求方法和路径 ,常用方法:GET、POST4、无连接:限制每次连接只处理一个请求.4、无状态:
知识点4:TCP并发服务器(线程版)#include <stdio.h> #include <string.h> #include <unistd.h> #include <pthread.h> #include <sys/socket.h>//socket和connect和recv.... #include <sys/wait.
知识点3:TCP并发服务器(进程版)要求:可以同时被多个客户端连接,且同时通信。#include<stdio.h> #include<string.h> #include<unistd.h> #include<signal.h> #include <sys/socket.h>//socket和connect和recv.... #inclu
知识点1:TCP概述TCP:传输控制协议Transmission Control Protocol。特点:1、工作在传输层,是面向连接的流式协议。2、通信之前需要建立连接(三次握手),通信之后需要释放连接(四次挥手)。3、可靠、出错重传、且每收到一个数据都要给出相应的确认。4、服务器被动链接,客户端是主动链接5、跟udp相比丢包率低,但是效率低。架构:知识点2:TCP编程API#include 1
练习:编写tftp客户端,实现上传文件#include<stdio.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include <sys/socket.h> #include <sys/types.h> #include <sys/sta
知识点1:TFTP概述TFTP:简单文件传送协议 最初用于引导无盘系统,被设计用来传输小文件特点: 1、基于 UDP 协议实现(使用udp套接字,使用udp编程函数,udp的cs架构tftp同样使用。)2、不进行用户有效性认证数据传输模式:octet:二进制模式netascii:文本模式mail:已经不再支持知识点2:TFTP工作过程1、服务器在 69 号端口等待客户端的请求2、服务器若批准此请求
知识点5:UDP多播5.1 多播概念: 数据的收发仅仅在同一分组中进行 5.2 多播的特点: 1、多播地址标示一组接口(224.0.0.0-239.255.255.255) 2、多播可以用于广域网使用 3、在 IPv4 中,多播是可选的5.3多播地址:(每一个D类ip都是一个多播组ip)224.0.0.1------>01:00:5e:00:00:01 224.255.0.1-----》01
练习:跨主机实现qq聊天。#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> #include <arpa/inet.h> #include <sys/socket.h>
知识点:UDP编程3.1得到套接字socket 作用 提供不同主机上的进程之间的通信socket 特点 1、socket 也称“套接字” 2、是一种文件描述符,代表了一个通信管道的一个端点 3、类似对文件的操作一样,可以使用 read、write、close 等函数对 socket 套接字进行网络数据的收取和发 送等操作 4、得到 socket 套接字(描述符)的方法调用 socket() soc
知识点1:编程准备1.1字节序概念:是指多字节数据的存储顺序。分类:小端格式:将低位字节数据存储在低地址大端格式:将高位字节数据存储在低地址网络字节序全部大端!!!测试主机字节序:(不确定)字节序转换:(重要)#include 主机字节序-》网络字节序(大端)uint16_t htons(uint16_t hostint16); 功能: 将 16 位主机字节序数据转换成网络字节序数据 uint32
知识点3:重要 的地址3.1MAC地址标识设备,类似于身份证号,且理论上全球唯一。组成:以太网内的 MAC 地址是一个 48bit 的值。3.2 IP地址+子网掩码IP 地址是一种 Internet 上的主机编址方式,也称为网际协议地址. IP地址和子网掩码全部都是32位数据。注意:子网掩码是由连续的1和0组成。3.2.1IP 组成,由{网络 ID,主机 ID}两部分组成子网 ID:IP 地址中由
知识点1:计算机网络发展史1、最早网络:电路交换网。特点:1、建立链接->使用链接->释放链接2、物理通路被通信双方独占2、第一代网络对计算机网络的要求1、不是为了打电话2、结构简单,可靠的传输数据3、能够连接不同种类的计算机4、所有网络节点同等重要5、必须有冗余的路由3、第二代网络可以实现区域与区域通信。(三级结构)4、第三、四代网络(TCP/IP)更加标准化,更加高效,更加智能。知
知识点:特殊进程孤儿进程概念:父进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程(Orphan Process)由系统进程(init)1号进程接管。避免:父进程调用wait或者waitpid。僵尸进程:概念进程终止,父进程尚未回收,子进程残留资源(PCB)存放于内核中,变成僵尸(Zombie)进程。避免:有危害父进程调用wait或者waitpid。#include <sys
知识点:回收资源-进程等待#include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status); 功能:阻塞等待任意一个子进程结束,如果任意一个子进程结束了,此函数会回收该子进程的资源。 参数: status : 进程退出时的状态信息。 返回值: 成功:已经结束子进程的进程号 失败
知识点:进程创建#include<sys/types.h> #include<unistd.h> pid_t fork(void); pid_t vfork(void); 功能:在一个原有进程中创建新进程。 返回值: <0说明进程创建失败 =0说明是新进程(子进程) >0 说明父进程使用fork函数得到的子进程是父进程的一个复制品,它
知识点1:进程概述进程概念及与程序区别:进程:1、程序的执行实例。2、动态的程序:1、存储在磁盘或者其他设备上的可执行文件(a.out)。2、静态的进程控制块:(保存进程的信息)进程号:(标识进程)一个程序至少是一个进程,也可以有多个进程。进程用进程号标识。进程号pid_t,非负整数进程号的范围:0~32767。系统上的进程可用ps查看。并行与并发:(多任务实现)宏观上看,并行和并发都是多任务同时
知识点:文件的阻塞特性【注意】阻塞与非阻塞是对于文件而言的,而不是指read、write等的属性。1、管道文件,设备文件,网络套接字文件,标准输入默认都是无数据时阻塞,缓冲区慢了写阻塞。2、普通文件读写无阻塞。案例:验证read堵塞是根据文件本身来说的。#include <stdio.h> #include <string.h> #include<sys/types.
知识点:系统调用概念:系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。应用程序状态:用户态:在无系统调用及访问内核资源时程序都是用户态。内核态:有系统调用及访问内核资源时程序都是内核态。状态切换实现:中断。与库函数区别:系统调用:open,read ,write,close库函数:fopen,fread,fwrite,fclose区别:1、库函数和系统调用关系:一种是有系统
知识点:程序结构if语法格式一: if [条件1]; then 执行第一段程序 else 执行第二段程序 fi 格式二: if [条件1];then 执行第一段程序 elif [条件2];then 执行第二段程序 else 执行第三段程序 fi案例:注意:1、if,elif后边有空格2、[]两边有空格#! /bin/bash rea
知识点5:子shell分类:1、childshell:(不复制父shell的资源的)开启方式:终端上执行(./和指定解释器)脚本;bash命令。2、subshell(复制父shell的资源的)开启方式:由()开启。知识点6:条件测试语法:test condition 或[ condition ] 注意:[ condition ] condition两侧有空格文件测试-e 是否存在 -d 是目录
知识点:变量语法普通变量变量定义(不要给类型,变量命名:数字字母下划线,数字不能开头 )。变量赋值(=前后不能给空格)只读变量(不能修改)清除变量#! /bin/bash echo "这是一个window编写的脚本" #定义普通变量 num=10 echo "普通num=$num" num=100 echo "修改之后num=$num" #清除变量 unset num echo "清除之后num=
知识点1:shell概述1、命令解释器(应用程序)交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能2、脚本语言。可以定义变量,有运行结构。跟其他语言(c/c++)区别:脚本直接执行,不需要编译。其他语言需要编译脚本一般结构简单。知识点2:shell分类1、系统自带的脚本/etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行
知识点:Qt定时器使用1、定时器对象实现定时#include "mainwindow.h" #include "ui_mainwindow.h" #include <QTimer> #include <QDebug> #include <QString> MainWindow::MainWindow(QWidget *parent) : QMainWin
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号