网络
weijitao
这个作者很懒,什么都没留下…
展开
-
IO复用之select分析笔记
对于一次IO访问,例如read操作,数据会先被拷贝到操作系统内核缓存区,然后才从操作系统内核缓存区拷贝到应用程序的地址空间。它会经历两个阶段:1) 等待数据准备2) 将数据拷贝到用户进程中正是因为如此,Linux下面有5种IO模式◆阻塞型IO◆非阻塞型IO◆IO多路复用◆信号驱动◆异步IO使用场景IO复用是为了解决大量客户端访问问题而提出来的原创 2016-11-01 21:31:36 · 559 阅读 · 0 评论 -
Lwip ARP分析(1)
ARP全称是Address Resolution Protocol,地址解析协议。它是将32bit的IP地址解析成48bit的MAC地址。当一台机器向另外一台机器发生数据时,需要知道对端网卡的硬件地址(48 bit的MAC地址),才能将数据在硬件之间进行交互。ARP核心数据结构ARP缓存表是保证ARP高效运行的关键,ARP缓存表是由一个个的缓存表项组成的。ARP表项的数原创 2016-12-12 19:39:22 · 4337 阅读 · 0 评论 -
Lwip pbuf分析
在BSD中用mbuf结构体来管理网络上来的各种数据包,同样lwip中也有一个类似的结构体pbuf用来管理数据包。Pbuf结构体定义如下:struct pbuf { struct pbuf *next;原创 2016-12-06 21:53:32 · 15143 阅读 · 6 评论 -
Lwip内存管理
Lwip的动态内存管理机制有三种:◆glibc的内存分配策略◆内存堆(HEAP)分配策略◆内存池(POLL)分配策略Lwip的内存堆分配策略和glibc的内存分配策略只能从其中选择一种。/** * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library原创 2016-12-04 20:19:29 · 3568 阅读 · 0 评论 -
Lwip ARP分析(2)
查询ARP缓存Lwip中查询ARP缓存的函数etharp_query声明如下:err_t etharp_query(struct netif *netif,const ip4_addr_t *ipaddr,struct pbuf *q)原创 2016-12-13 21:54:08 · 1184 阅读 · 0 评论 -
Lwip拥塞控制
什么样的情况出现说明网络出现了拥塞?出现发送数据报文超时和收到3个重复的ACK。这两种情况都说明数据报文段有丢失的情况,我们假定由于报文损坏引起的丢失概率是很低的,因此出现报文丢失,就说明源主机和目的主机之间出现了拥塞。 TCP是一个可靠的协议,在发送数据后会启动一个超时重传定时器,如果超过RTO时间还未收到ACK,就会重传数据。重传会加重网络的负载,会导致更多的丢包和延迟,...原创 2018-03-06 20:32:43 · 2737 阅读 · 0 评论