摘要: 在Linux下有五种I/O模型,分别为:阻塞、非阻塞、信号驱动、复用I/O和异步I/O. 而在复用I/O中,比较常见的就是select、poll和epoll. 本文主要介绍select模型. 一、select用法 如果大于0,则说明有事件就绪,便需要从参数中获取就绪的事件进行处理. 即使我把sele阅读全文
posted @ 2017-07-15 17:16 Linux专题站 阅读(5) 评论(0) 编辑
摘要: 网上查了很多资料,90%的代码运行后,用linux下ftp命令登录不了. 后来发现实验楼中有个项目是FTP服务器,于是不得已又花了400大洋买了会员,结果其代码运行后,ftp命令也登录不了,真TM坑!!!我的400大洋啊!!!!! 无奈,只能自己探索一番了! 一、抓包FTP连接过程 还好我有个服务器阅读全文
posted @ 2017-07-15 11:24 Linux专题站 阅读(2) 评论(0) 编辑
摘要: 一、重传计时器 TCP提供可靠机制,因此对于丢失的报文需要进行重传! 那么,发送一个数据出去之后,什么时候进行重传呢?用到了重传定时器. 在发送数据后,便立刻创建一个该报文段的重传定时器. 如果定时器还没结束,收到了确认报文,则撤销该定时器. 如果定时器结束,还没收到确认报文,则进行重发. 定时器时阅读全文
posted @ 2017-07-14 12:01 Linux专题站 阅读(2) 评论(0) 编辑
摘要: #!/bin/bash i=0 str='#' ch=('|' '\' '-' '/') index=0 while [ $i -le 25 ] do printf "[%-25s][%d%%][%c]\r" $str $(($i*4)) ${ch[$index]} str+='#' let i++ let index=i%4 sleep 0.1 done printf "\n" ...阅读全文
posted @ 2017-07-14 11:44 Linux专题站 阅读(3) 评论(0) 编辑
摘要: 在shell中,如果想获得一个命令的返回值,如果为整数,可以直接用$?获取其退出码. 但如果一条命令的返回值不是整数,怎么实现? 不得不提shell下的命令代换功能! 两种方式实现命令代换 假设我们某个变量需要获得当前时间,则可以这样实现: date=`date` echo $date 或者也可以这阅读全文
posted @ 2017-07-14 11:25 Linux专题站 阅读(4) 评论(0) 编辑
摘要: TCP的三次握手 TCP在建立连接时会进行三次握手,其过程如下: 1.首先client会向server发送SYN=1,ACK=0,请求建立链接,同时自身进入SYN_SENT状态. 2.当server收到client的请求后,如果client请求的端口为开启状态则,server会向client发送SY阅读全文
posted @ 2017-07-14 10:43 Linux专题站 阅读(4) 评论(0) 编辑
摘要: 本系列文章主要讲述自己如何从零开始研究,用C语言写一个Arp欺骗程序.(以记录过程为主,教程的话,有空开专题详谈.) 前言:今天已经搞了整整一天了,算是有点小成就,欺骗的核心代码非常简单,知道本机以及目标主机的mac地址,然后修改arp应答包即可. 但,作为一个工具,其用法总不能如下吧: Useag阅读全文
posted @ 2017-07-05 20:52 Linux专题站 阅读(45) 评论(0) 编辑
摘要: 为了解决这个问题之前,先复习一下TCP的报头. 一、TCP报头分析 第一行:从左到右表示16位源目标端口号与16位目地端口号,通过端口可以标识互联网上唯一的进程. 第二行:32位序号,用来保证数据的按序到达. 第三行:32位确认号,保证数据的完整性,如果没有收到确认,则进行重发. 第四行:4位首部长阅读全文
posted @ 2017-07-01 15:27 Linux专题站 阅读(9) 评论(0) 编辑
摘要: 一、概念 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL、Modem、集线器、交换机、路由器上用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。 逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从阅读全文
posted @ 2017-07-01 11:35 Linux专题站 阅读(3) 评论(0) 编辑
摘要: 信号的表示 我们知道linux下,可以通过kill命令向进程发送信号. 当进程收到信号,执行处理动作被称为递达; 当进程接收到信号,还未来得及处理被称之为未决(pending); 进程可以选择阻塞某个信号,当某个信号被阻塞(block)时,永远不会递达! 因此,与这三种处理相对应,在进程的pcb中,阅读全文
posted @ 2017-06-28 16:00 Linux专题站 阅读(9) 评论(0) 编辑