
网络编程
文章平均质量分 79
IT_xiaoye
这个作者很懒,什么都没留下…
展开
-
网络编程---UDP协议解析以及UDP套接字编程实现
认识UDP协议 UDP协议全称是用户数据报协议[1],在网络中它与TCP协议一样用于处理数据包,但不同于TCP的是,UDP是一种无连接的协议。。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。 简单来说,U...原创 2018-05-26 13:15:21 · 2269 阅读 · 0 评论 -
TCP中的四个计时器
重传计时器(Retransmission Timer)当TCP发送报文后,就对此报文设置一个重传计时器,此时有两种情况在规定时间内成功收到对方的确认,就撤销该报文的重传定时器到了规定时间仍然未收到对方的确认,则认为该报文丢失,重新传送该报文,并将计时器时间复位坚持计时器(Persistent Timer)我们都知道TCP中有流量控制机制,当TCP的接收端宣布接收窗口为0时,发...原创 2018-07-30 12:05:13 · 958 阅读 · 2 评论 -
TCP提高性能的举措
滑动窗口对于每一个发送的数据段,都要给一个ACK确认应答,收到ACK后才可以发送下一个数据段,这样未免效率太差,所以TCP中引入了滑动窗口机制。 如上图所示,发送前4000字节数据的时候不需要收到任何回应,当收到一个ack后,滑动窗口就往后移动一个报文的长度,但是窗口大小是不变的窗口大小指的就是无需等待回应就可以发送数据量的最大值,上图中的窗口大小就是4000字节当发送完前4...原创 2018-07-06 01:31:56 · 550 阅读 · 0 评论 -
大量TIME_WAIT的解决方案
TIME_WAIT状态是主动断开连接的一方产生的,客户端处于TIME_WAIT状态的话问题不大,如果服务器产生大量TIME_WAIT状态的连接,就会大大降低服务器的响应速度等性能问题,根本原因是一些端口号以及socket地址被占用而得不到释放。方法一C/C++中提供了一个接口,如果服务器重启时需要对端口号以及socket地址进行复用,从而避免了TIME_WAIT状态#include &...原创 2018-07-05 14:46:26 · 4283 阅读 · 0 评论 -
TCP保证可靠性的举措
连接管理TCP是面向连接的,三次握手和四次挥手都是为了保证本次数据传送的可靠性,这里不做赘述 如果想了解具体的三次握手和四次挥手,请戳这里->TCP三次握手四次挥手详解序号保证数据段的按序到达TCP是面向字节流的,它对每一个字节都进行了编号,比如发送端发送了一个1~80字节的数据,接收端拿到数据段以后,就会回复一个ack为81的确认,表明81字节之前的数据都成功接...原创 2018-07-05 14:30:51 · 968 阅读 · 0 评论 -
TCP的三次握手与四次挥手详解
介绍TCP协议先来了解下TCP协议的报头信息原创 2018-07-01 21:18:36 · 467 阅读 · 1 评论 -
网络编程---服务器编程中CGI模式的运行机制
CGI概括: 定义 通用网关接口(Common Gateway Interface)是HTTP服务器与你的或其它机器上的程序 进行“交谈”的一种工具,其程序须运行在网络服务器上。 功能 绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具有交互功能。 运行环境 CGI程序在...转载 2018-06-16 17:46:41 · 600 阅读 · 0 评论 -
网络编程--IO多路复用之select,poll和epoll详解
什么是socket?什么是I/O操作?我们都知道unix(Linux)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流。在信息 交换的过程中,我们都是对这些流进行数据的收发操作,简称为I/O操作(input and output),往流中读出数据,系统调用read,写入数据,系统调用write。不过话...原创 2018-06-16 17:04:42 · 2381 阅读 · 0 评论 -
网络编程---select、poll、epoll服务器编写
select服务器#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h> ...原创 2018-06-16 16:08:24 · 561 阅读 · 0 评论 -
网络编程---多线程/多进程版TCP套接字编程
TCP\IP协议我之后会放在一起进行解释,因为这块较UDP来说比较复杂,我需要分成两三篇博客来分几个部分详谈,如TCP中的三次握手,四次回收,超时重传等,IP协议的底层通信,路由,MAC帧等,都会讲到,我尽量总结点详细一点,以免遗漏。这里我就只放上TCP套接字编程的代码,接口和一些注意的点在之前的TCP/UDP套接字原理中都有讲到,看不懂的请戳这里-&gt;链接大家研究代码的时候也可以与UDP...原创 2018-05-28 15:36:05 · 1062 阅读 · 1 评论 -
网络编程---TCP/UDP套接字编程原理
本篇介绍的是Linux下的网络编程,故有些接口是不适用于Windows的,但是具体概念和实现方法是大体一致的介绍网络编程套接字(socket)也是进程间通信的一种方式,但是不同于管道,消息队列,共享内存的是socket不仅可以实现本机内不同进程间的通信,也可以实现网络中两台不同主机间的进程通信。socket相当于是一个文件描述符,我们将数据写入socket中,再发到目标主机,目标主机接...原创 2018-05-24 20:17:13 · 2129 阅读 · 1 评论 -
Cookie和Session机制
会话跟踪会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。因为Http是无连接的,服务器并不能通过连接状态来确定用户信息,所以引入了Cookie和Session机制来确定用户,Cookie在客户端保存用户信息,Session在服务器保存用户信息。什么是Cookie和Session?Cookie机制:Cookie是客户端的解决方案,通过在客户端保存用户信息,方便下次访问某站点...原创 2018-07-28 11:01:11 · 367 阅读 · 0 评论