一、语言:
C 、 C++和STL、python、go、 java
shell、lua、perl
二、网络协议:
网络访问的整个过程: https://www.cnblogs.com/dapaitou2006/p/6637900.html
网络协议总结: https://www.cnblogs.com/dapaitou2006/articles/6524009.html
1. 基础协议
a. ISO/OSI七层、 TCP/IP四层、详述每一层 、每一层有哪些协议
https://blog.csdn.net/guoguo527/article/details/52078962
https://www.cnblogs.com/gdayq/p/5797645.html
b. 以太数据包,各层包头(ETH头、IP头、TCP/UDP头)
https://www.cnblogs.com/qishui/p/5437301.html
ETH头的组成?ip类型0x0800 \ arp类型0x0806
(eth head:14字节,eth crc:4字节,eth帧数据46~1500字节,所以最小eth帧长度是64字节
ip head:20字节,
tcp head : 20字节,
udp head:8字节,)
c.
应用层协议:使用tcp协议的应用层服务:HTTP、FTP、Telnet、POP3、SMTP
使用udp协议的应用层服务:BOOTP、DHCP、TFTP
同时使用tcp/udp协议的应用层服务:DNS
传输层协议:TCP、UDP
网络层协议:IP, ICMP, IGMP、ARP, RARP
链路层协议:FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
d、传输层TCP和UDP:
TCP\UDP比较? 他们有优点和缺点是什么?
TCP\UDP头部是几个字节长度?画出大概的头部结构?
TCP建立连接三次握手过程、断开连接四次挥手过程
建立连接时为什么需要第三次握手?
为什么建连时是三次握手、断连时是四次?
TCP建连和断连包含的状态?
断连过程中TCP的TIME_WAIT状态需要等待2MSL,为什么要?
TCP滑动窗口和超时重传 http://www.cnblogs.com/luoquan/p/4886345.html
e、网络层IP协议:
IP头部,多长,画出ip头部。
ipv4和ipv6 https://www.cnblogs.com/dapaitou2006/p/5911414.html
g、HTTP协议
h、FTP协议
i、ICMP
j、IGMP
K、ARP\RARP
2. 路由交换原理
交换原理: 二层交换
vlan
三层交换 深入剖析三层交换机工作过程
路由协议:RIP OSPF ISIS BPG https://www.cnblogs.com/dapaitou2006/p/6638318.html
NAT协议: https://www.cnblogs.com/dapaitou2006/p/5911418.html
三张表(MAC地址表、ARP表、路由表): https://www.cnblogs.com/dapaitou2006/p/6391472.html
3. 安全相关
1.netfilter/iptables 原理
2.DOS与DDOS攻击的区别:DOS即拒绝服务攻击,其目的是计算机或网络无法提供正常的服务。
攻击过程:攻击者向被攻击服务器发送大量的带有虚假ip的服务请求,被攻击者在接收到请求 后返回确认信息,等待攻击者确认,此过程需要TCP的三次交换。由于攻击者发送的请求信 息是虚假的,所以被攻击服务器无法接受到信息确认,一直处于等待状态,而分配给这次请 求的资源却始终没有被释放。当被攻击者等待一定的时间后,连接会因超时而被断开,这是 攻击者再次发送新的虚假信息请求,就这样最终服务器资源被耗尽,直到瘫痪。
DDOS:分布拒绝式攻击,它是在DOS基础上进行的大规模,大 范围的攻击模式,DOS只是单机和单机之间的攻击模式,而DDOS是利用一批受控制的僵尸主 机向一台服务器主机发起的攻击,其攻击的强度和造成的威胁要比DOS严重很多,更具破坏 性。
常见的dos攻击有:死亡之ping、sysflood、UDP泛洪、IP欺骗
3、SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
三、linux编程基础:
进程和线程
进程空间
进程间通信
线程创建和线程同步
信号
用户态和内核态通信
多路复用poll、select、epoll : https://www.cnblogs.com/dapaitou2006/p/5911424.html
linux 5中IO模型以及同步异步、阻塞非阻塞 https://www.cnblogs.com/dapaitou2006/p/6547887.html
四、数据结构:
数组和链表比较: https://www.cnblogs.com/dapaitou2006/articles/6527773.html
单链表基本操作:https://www.cnblogs.com/dapaitou2006/articles/6524018.html
双链表的基本操作:https://www.cnblogs.com/dapaitou2006/articles/6527723.html
栈--用单链表实现栈:https://www.cnblogs.com/dapaitou2006/articles/6527742.html
队列--用单链表实现队列:https://www.cnblogs.com/dapaitou2006/articles/6527736.html
--用栈实现队列:https://www.cnblogs.com/dapaitou2006/articles/6527758.html
树(二叉树) : https://www.cnblogs.com/dapaitou2006/articles/6527918.html
哈希表实现: https://www.cnblogs.com/dapaitou2006/p/6644921.html
优先队列(二叉堆):略
五、算法:
1. 排序算法
冒泡、插入、选择、希尔、归并、快速、堆排序、桶排序、多路归并
https://www.cnblogs.com/dapaitou2006/articles/6527687.html
2.查找算法:
二分查找 、特殊二分查找 https://www.cnblogs.com/dapaitou2006/p/6528836.html
3. 其他
LRU 略
六、linux常用操作
a. vi技巧 https://www.cnblogs.com/dapaitou2006/p/6649109.html
b. gcc常用命令 https://www.cnblogs.com/dapaitou2006/p/6648051.html
c. 进程管理常用命令 https://www.cnblogs.com/dapaitou2006/p/6648727.html
d. gdb常用命令 https://www.cnblogs.com/dapaitou2006/p/6647820.html
e. linux常用命令 https://www.cnblogs.com/dapaitou2006/p/6649106.html