- 博客(15)
- 资源 (3)
- 收藏
- 关注
转载 TCP可靠传输及流量控制系列六:TCP连接中的TIME_WAIT状态
TCP连接中的TIME_WAIT状态一、TIME_WAIT状态的必要性 上述四次握手描述的是客户段主动关闭,服务器被动关闭的流程,其一般过程如下:1、 客户端发送FIN报文段,进入FIN_WAIT_1状态。2、 服务器端收到FIN报文段,发送ACK表示确认,进
2011-09-13 10:07:57 889
转载 TCP可靠传输及流量控制系列五:TCP流量控制基本算法
TCP流量控制基本算法一、交互式数据流Nagle算法在一个Rlogin连接上客户一般每次发送一个字节到服务器,这就产生了一些41字节长的分组:20字节的IP首部、20字节的TCP首部和1个字节的数据。在局域网上这些小分组通常不会引起麻烦,因为局域网一般不会出现拥塞。但在广
2011-09-13 10:06:13 6874
转载 TCP可靠传输及流量控制系列一:FREEBSD中TCP定时器的基石
FREEBSD中TCP定时器的基石TCP连接中的七个定时器:连接建立定时器、重传定时器、延迟ACK定时器、持续定时器、保活定时器、FIN_WAIT_2定时器、TIME_WAIT定时器都是由两个定时器函数来实现的,一个函数没200ms调用一次(快速定时器);另一个函数每500m
2011-09-13 10:05:24 823
转载 TCP可靠传输及流量控制系列二:TCP连接中的七个定时器
TCP连接中的七个定时器TCP为每条连接建立了七个定时器。按照它们在一条连接生存期内出现的次序,简要介绍如下:1) “连接建立”定时器在发送SYN报文段建立一条新连接时启动。如果在75秒内没收到响应,连接建立将终止。2) “重传”定时器在TCP发送数据时设定。如果定时
2011-09-13 10:04:48 1188
转载 TCP可靠传输及流量控制系列三:重传时间RTO计算
RTO的计算1、数据结构TCP中用于计算重传时间RTO的数据结构定义在tcp协议控制块中。struct tcpcb {......./*动态计算的数据包发送确认的往返时间*/short t_rtt; /* round trip time *//*标记设
2011-09-13 10:04:09 1351
原创 LWIP之SOCKET的实现
Lwip协议栈的实现目的,无非是要上层用来实现app的socket编程。好,我们就从socket开始。为了兼容性,lwip的socket应该也是提供标准的socket接口函数,恩,没错,在src\include\lwip\socket.h文件中可以看到下面的宏定义:#if L
2011-09-13 10:02:53 1448
转载 LWIP之API_MSG结构及其实现
从上面一篇的socket实现来看,如果要评起到最关键作用的一个结构体,那么struct api_msg当之无愧。先看下它的定义:/** This struct contains a function to execute in another thread context a
2011-09-13 10:02:01 1176
转载 LWIP之TCP层发送相关
现在我们正式开始进入对TCP的研究,它属于传输层协议,它为应用程序提供了可靠的字节流服务。在LWIP中基本的TCP处理过程被分割为六个功能函数的实现:tcp_input(), tcp_process(), tcp_receive()【与TCP输入有关】, tcp_write(),
2011-09-13 10:01:26 988
转载 LWIP之TCP层接收相关
既然定了这么个标题,当然是要从socket的recv来讲了。这里主要涉及到lwip_recvfrom这个函数。它的大致过程是,先通过netconn_recv(sock->conn);从netconn的recvmbox中收取数据,在这里有个do_recv的调用,而do_recv又调
2011-09-13 10:00:46 936
转载 LWIP之IP层实现
这一部分的实现都是在ip.c文件中【src\cor\ipv4】,可以看到在这个文件中主要实现了3个函数,ip_input;ip_route;ip_output以及ip_output_if。下面分别来介绍它们。这些函数可以分成两大类:接收和发送。下面就先从发送开始,首先要说
2011-09-13 10:00:08 817
转载 LWIP的底层结构(物理层)
我们前面讲到说是ip层的发送和接收都是直接调用了底层,也就是设备驱动层的函数实现,在这里暂且称之为物理层吧。下面就接着ip层的讲,不过由于这里的设备驱动各平台的都不一样,为此,我们选择ARM9_STR91X_IAR这个Demo作为实例,该平台的网络设备驱动在\library\so
2011-09-13 09:59:24 677
转载 LWIP之SOCKET编程
前几天看了关于LWIP协议栈的实现和FREERTOS的基本原理。今天开始调试LWIP的socket通信,是基于freertos系统的ARM9_STR91X_IAR开发板。这是个现成的实例,由于lwip已经由freertos移植好了,而调试的目的就是实现在lwip上的socke
2011-09-13 09:58:49 2880
原创 TCP滑动窗口协议
TCP滑动窗口一、数据结构1、发送窗口struct tcpcb {....../* send sequence variables *//*最早的未确认过的序号*/tcp_seq snd_una; /* send unacknowledged *//*下一
2011-09-13 09:57:56 1728
原创 转载: 堆栈 堆与栈的区别
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,
2011-06-17 10:19:00 359
原创 Winsock笔记
Socket(套接字)◆先看定义:typedef unsigned int u_int;typedef u_int SOCKET;◆Socket相当于进行网络通信两端的插座,只要对方的Socket和自己的Socket有通信联接,双方就可以发送和接收数据了。其定义类似于文件句柄的定义。◆Socket有五种不同的类型:1、流式套接字(stream socket)定义:#de
2010-08-02 10:04:00 257
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人