
读书笔记
文章平均质量分 77
SELF_IMPR小灰
人生最清晰的脚印,是印在最泥泞的路上
展开
-
《TCP-IP详解 卷2:实现》学习笔记—接口层分析
所谓接口,就是指在一个特定网络上硬件与设备驱动器之间的接口。BSD设计将网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口。1、ifnet结构结构ifnet中包含所有接口的通用信息。在系统初始化期间,分别为每个网络设备分配一个独立的ifnet结构。每个ifnet结构有一个列表,它包含这个设备的一个或多个协议地址。函数if_attach在系统初始化期间构造这个链表。if_addrlist指向这个接口的ifaddr结构列表。每个ifaddr结构存储一个要用这个接口通信的协议的地址信原创 2013-11-26 19:56:46 · 2691 阅读 · 0 评论 -
《TCP-IP详解 卷2:实现》学习笔记—mbuf的深入解析
下面将要经常会的遇到的四种不同类型的mbuf,它们依据在成员mh_flags中填写的不同标志M_PKTHDR和M_EXT而不同。1) 第一类mbuf的mh_flags等于0,mbuf只包含数据,在mbuf中有108字节的数据空间,指针mh_data指向这108字节缓存中的某个位置。2) 第二类mbuf的mh_flags值是M_PKTHDR,它指示这是一个分组首部,描述一个分组数原创 2013-11-26 18:55:55 · 3299 阅读 · 0 评论 -
C和指针 学习笔记—第3章
第三章 数据 1、变量的三个属性:作用域、链接属性和存储类型(这三个属性决定了一个变量的“可视性”(也就是它可以在什么地方使用)和“生命期”(它的值将保持多久))。原创 2013-09-01 11:28:24 · 1163 阅读 · 0 评论 -
《TCP-IP详解 卷1:协议》学习笔记(三)
四、ARP1、ARP地址解析过程以太网中,发送IP包前判断目标主机是否在同一子网,如果是同一子网,请求目标主机MAC,如果是不同子网,请求网关/下一跳MAC。源主机查看 ARP 缓存,是否存在要解析的IP—MAC的ARP映射表项。如果有,利用该表项对IP包进行封装并发送以太网帧。如果没有,则缓存该IP包,并建立ARP临时表项。以广播方式发送ARP请求报文。 ARP请求报文中的Sender IP和Sender MAC为源主机A的 IP地址和MAC地址,Target IP和Target MAC原创 2013-08-30 19:50:25 · 2016 阅读 · 0 评论 -
《TCP-IP详解 卷1:协议》学习笔记(二)
三、VLAN技术的研究1、首先说一下VLAN的概念,何为VLAN?VLAN(Virtual Local Area Network)即虚拟局域网,是一种通过将局域网内的设备逻辑地而不是物理地划分成一个个网段从而实现虚拟工作组的新兴技术。VLAN是为解决以太网的广播问题和安全性而提出的一种协议,它在以太网帧的基础上增加了VLAN头,用VLAN ID 把用户划分为更小的工作组,限制不同工作组原创 2013-08-30 09:19:03 · 2066 阅读 · 0 评论 -
《TCP-IP详解 卷2:实现》学习笔记—mbuf(存储器缓存)的结构
《TCP/IP详解 卷2:实现》的源码讲解主要来自4.4BSD-Lite,可以在网络上都能搜的到,然后可以安装个Source Insight ,结合代码,边学边体会。在学习代码的过程中,首先应该弄清最基本的数据结构,这样只有理解了最基本的框架,你才能更好的找到主线,否则无从下手的感觉,对于伯克利联网代码设计中,最重要也是最基本的一个概念就是存储器缓存,也即是mbuf。何为mbuf呢?mbuf的主要用途是保存在进程和网络接口间互相传递的用户数据。但mbuf也用于保存其他各种数据:源与目标地址、插口原创 2013-08-28 19:15:24 · 2287 阅读 · 0 评论 -
《TCP-IP详解 卷1:协议》学习笔记(一)
1、如何区别DIXV2帧和IEEE帧?由于二者在同一个局域网内是不能共存的。因此,IEEE允许现存的DIXV2网卡和网络设备到IEEE的标准设备的迁移。为了使设备可以识别使用的是哪种类型的帧,IEEE没有分配1536以下(十六进制为600)的数位协议类型代码。数据字段的最大值为1500字节。所以一台设备可以从源地址后的两个字节来判断是哪种类型的帧,如果值为1536(十进制)或更高则为类型字段,意味着是DIXV2帧,如果从源地址之后的2个字节小于1536,则可确定是长度字段,为IEEE802.3帧原创 2013-08-28 10:33:02 · 2407 阅读 · 2 评论 -
C和指针 学习笔记—第1-2章
C和指针这本经典著作,最近开始学习,然后想与大家共享下,希望共同进步!网络的力量是强大的,会碰撞出思想的火花来! 第一章 快速上手1、要从逻辑上删除一段C代码,更好的办法是使用#if指令:#if 0statements#endif在 #if 和 #endif 之间的程序段就可以有效地从程序中去除,即使这段代码之间原先存在注释也无妨2、关于scanf返回值的问题 scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#原创 2013-08-28 10:04:03 · 1392 阅读 · 0 评论