网络
文章平均质量分 74
Better_JH
这个作者很懒,什么都没留下…
展开
-
CRC校验与RARP协议
CRC(Cyclic Redundancy Check): 循环冗余检验。 CRC校验:广泛应用于数据链路层的差错检验技术,保证数据传输的可靠性。 CRC校验原理: 发送端:传送数据 M= 101001 冗余码即帧检验序列(FCS)的获得: 1、在CRC算法中,被除数有一个专有名称叫做生成多项式。 多项式P(X) = X³+X²+1表示除数P = 1101,多项式的位宽w=3(原创 2017-05-13 16:17:38 · 577 阅读 · 0 评论 -
I/O多路转接之poll
poll函数与select原理类似,只是poll没有为每个状态(可读、可写、异常)构造一个描述符集,而是构造了一个pollfd结构体数组,每个数组元素指定一个描述符编号以及对其关心的状态。 参数2:nfds 是nfds_t类型的参数,用于标记结构体数组fds的数组元素的总数量; 参数3:timeout是poll函数阻塞的时间,单位:毫秒; 1、0:poll 函数立即返回而不阻塞; 2、I原创 2017-06-10 14:31:37 · 416 阅读 · 0 评论 -
I/O多路转接之select
I/O多路转接有三种实现方式:select , poll ,epoll。今天我们来了解一下select函数实现I/O多路转接。 select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。 参数1:nfds是需要监视的最大的文件描述符值+1; 参数2:readfds是需要检测的可读文件描述符的集合;原创 2017-06-07 17:12:42 · 324 阅读 · 0 评论 -
基于UDP的socket编程
基于UDP(面向数据报)的socket编程,分为客户端和服务器端。 服务器端的流程如下: 1、创建套接字(socket) 2、将套接字绑定到一个本地地址和端口上(bind) 3、用返回的套接字和客户端进行通信(sendto/recvfrom) 4、返回,等待另一个客户请求。 5、关闭套接字。 客户端的流程如下: 1、创建套接字(socket) 2、和服务器端进行通信(sendto/原创 2017-06-02 21:50:47 · 583 阅读 · 0 评论 -
TCP建立连接与释放连接
TCP的建立连接:三次握手 A主机运行的是TCP客户程序,而B主机运行的是TCP服务器程序。最初两端都处于CLOSED(关闭)状态。A主动打开连接,B被动打开连接。B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(监听)状态,等待客户的连接请求。如有,则做出响应。 1、A的TCP客户进程先创建传输控制块TCB,然后向B发送连接请求报文,这原创 2017-06-01 13:51:07 · 592 阅读 · 0 评论 -
进程池&线程池原理及应用
一般我们是通过动态创建子进程(或子线程)来实现并发服务器的,但是会存在这样一些缺点: 1、动态创建进程(或线程)比较耗费时间,这将导致较慢的服务器响应。 2、动态创建的子进程通常只用来为一个客户服务,这样导致了系统上产生大量的细微进程(或线程)。进程和线程间的切换将消耗大量CPU时间。 3、动态创建的子进程是当前进程的完整映像,当前进程必须谨慎的管理其分配的文件描述符和堆内存等系统资源,否则子原创 2017-06-03 13:33:56 · 1367 阅读 · 0 评论 -
文件描述符的重定向:dup/dup2
dup/dup2:进行文件描述符的重定向即创建一个oldfd的副本。 dup:最低编号、未被使用的文件描述符是oldfd的一份拷贝。 dup2:newfd是oldfd的一份拷贝。 返回值:成功(newfd); 失败(-1)。 基于TCP的socket编程:http://blog.csdn.net/better_jh/article/details/72846264 以基于TCP的sock原创 2017-06-05 20:53:43 · 704 阅读 · 0 评论 -
基于TCP的socket编程
socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket(套接字)。 建立socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。 套接字之间的连接过程: 1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待原创 2017-06-02 19:52:22 · 979 阅读 · 0 评论 -
代理服务器与NAT
代理服务器:提供代理服务的电脑系统或其它类型的网络终端。 代理服务器(Proxy Server):所谓代理就是代而劳之的意思。代理服务器就是代理网络用户去取得网络信息,形象的说:它是网络信息的中转站,使得一个网络终端和另一个网络终端不直接进行相连,代理服务器代理网络用户去取得信息。主要工作在OSI的会话层中。代理服务器是一种网络实体,它又称为万维网高速缓存(Web cache)。代理服务器把最近的原创 2017-05-19 18:14:08 · 516 阅读 · 0 评论 -
TCP/IP协议中的端口号
TCP/IP协议中的端口号:标识本计算机应用层中的各个进程在和运输层交互时的层间接口,共有(0~65535)65536个。 端口的类别: 服务器端使用的端口号: 1、熟知端口号或系统端口号(Well Known Ports):从0到1023。它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯,分配给WWW服务,21端口分配给FTP服务等 。原创 2017-05-19 21:18:01 · 12368 阅读 · 1 评论 -
TCP报文首部的URG和PSH字段
TCP报文首部的URG和PSH字段 紧急URG(URGent):当URG=1时,表明紧急指针字段有效。发送应用进程就告诉发送方的TCP有紧急数据要传送。于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而紧急数据后面的数据仍是普通数据。 推送PSH(PuSH):当两个应用进程进行交互式的通信时,有时候一端的应用进程希望在键入一个命令后立即就能收到对方的响应。在这种情况下,TCP就可应使用推原创 2017-05-26 20:20:58 · 1003 阅读 · 0 评论 -
TCP连接与释放期间的四种定时器
—————————————————————————————————————————————- TCP连接与释放期间的四种定时器 1、重传计时器(retransmission timer):为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发生两种情况:若在计时器超时之前收到对报文段的确认,则撤销计时器;若在收到对特定报文原创 2017-05-26 20:17:02 · 867 阅读 · 0 评论 -
路由表条目生成算法
在Linux系统中可以使用route命令查看路由表: —————————————————————————————————————————– Destination:目的网络地址 ; Gateway:下一跳地址 ; Genmask:子网掩码 ; Iface:发送接口 ; *Flags:**U标志表示此条目有效(可以禁用某些条目);G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的原创 2017-05-26 20:02:13 · 456 阅读 · 0 评论 -
I/O多路转接之epoll
epoll是对select和poll的改进,表现在: 1、epoll保证了每个fd在整个过程中只会拷贝一次。 2、获取事件时,它无须遍历整个被监听的描述符集,只要遍历那些被内核I/O事件异步唤醒而加入就绪队列的描述符集合即可。 3、epoll所支持的fd上限是最大可以打开文件的数目,这个数字一般远大于2048,在1GB内存的机器上大约是10万左右,具体数目可以cat /proc/sys/fs/原创 2017-06-10 15:52:46 · 290 阅读 · 0 评论