network protocol stack
文章平均质量分 93
ctthuangcheng
这个作者很懒,什么都没留下…
展开
-
Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过转载 2013-04-13 13:23:13 · 1711 阅读 · 0 评论 -
Linux环境下获取网卡连接状态
在嵌入式项目中,有时需要获取设备本身的一些运行信息,网口的连接状态就是其中之一,这还真不太好弄,网上查了一下资料,整理了一下,pIfName为网口名称,比如eth0,返回1为连接,0为断开。int getNetLinkStates(const char *pIfName){ int skfd; struct ifreq ifr; struct ethtool_value e转载 2013-05-10 16:59:01 · 2449 阅读 · 0 评论 -
Linux基本网络设置(IP配置等,网卡驱动缓存,网卡中断)
1.简单配置a.修改IP地址和掩码[html] view plaincopyprint?ifconfig eth0 192.168.0.100 netmask 255.255.255.0 b.修改网关,对于多网卡多网段的机器,需要配置一个默认网关[html] view plaincopyprint?route add def转载 2013-05-10 17:02:15 · 2416 阅读 · 0 评论 -
linux网桥浅析
什么是桥接?简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连的若干主机就能够通过交换机的报文转发而互相通信。如下图:主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、e原创 2013-05-12 00:17:12 · 3265 阅读 · 0 评论 -
linux网络报文接收发送浅析
对于linux内核来说,网络报文由网络设备来进行接收。设备驱动程序从网络设备中读取报文,通过内核提供的网络接口函数,将报文传递到内核中的网络协议栈。报文经过协议栈的处理,或转发、或丢弃、或被传送给某个进程。网络报文的发送与之相反,进程通过系统调用将数据送入网络协议栈,或者由网络协议栈自己发起报文的发送,然后协议栈通过调用网络接口函数来调度驱动程序,使其将报文传送给网络设备,从而发送出去。本原创 2013-05-11 19:55:45 · 3915 阅读 · 0 评论 -
linux IPv4报文处理浅析
在《linux网络报文接收发送浅析》一文中介绍了数据链路层关于网络报文的处理。对于接收到的报文,如果不被丢弃、不被网桥转发,会调用netif_receive_skb()提交给IP层;而对于IP层向外发送的报文,则通过调用dev_queue_xmit()提交给数据链路层。本文就以netif_receive_skb()和dev_queue_xmit()为起始,简要介绍一下报文在IP层的原创 2013-05-12 01:10:22 · 3004 阅读 · 0 评论 -
TCP发送源码学习(2)--tcp_write_xmit
一、tcp_write_xmit()将发送队列上的SBK发送出去,返回值为0表示发送成功。函数执行过程如下:1、检测拥塞窗口的大小。2、检测当前报文是否完全处在发送窗口内。3、检测报文是否使用nagle算法进行发送。4、通过以上检测后将该SKB发送出去。5、循环检测发送队列上所有未发送的SKB。static int tcp_write_xmit(struct sock *sk, unsigned转载 2014-12-28 00:15:41 · 3669 阅读 · 0 评论 -
TCP发送源码学习(3)--tcp_transmit_skb
一、tcp_transmit_skbstatic int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, gfp_t gfp_mask){ const struct inet_connection_sock *icsk = inet_csk(sk); struct转载 2014-12-28 00:18:17 · 2196 阅读 · 0 评论 -
linux TCP数据包封装在SKB的过程分析
在linux中 tcp的数据包的封装是在函数tcp_sendmsg开始的,在函数tcp_sendmsg中用到skb = sk_stream_alloc_skb(sk, select_size(sk, sg),sk->sk_allocation);分配了一个SKB(暂且称之为old_skb)而真正的发送的SKB并不是old_skb,而是在函数tcp_transmit_skb中新分配了一个skb(暂且转载 2014-12-27 23:38:53 · 1441 阅读 · 0 评论 -
Linux-2.6.25 TCPIP函数调用大致流程
插口层系统调用send sys_send sys_sendtosendto sys_sendto sock_sendmsgsendmsg sys_sendmsg sock_sendmsgwrite sys_write vfs_write file->f_op->write = do_sync_wr转载 2014-12-27 23:05:26 · 1379 阅读 · 0 评论 -
关于 linux中TCP数据包(SKB)序列号的小笔记
关于 SKB序列号的小笔记为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq 一直没有找到seq 不清楚在那里初始化了,就跟踪了分配SKB的函数 sk_stream_alloc_skb()还是没有找到,最后在函数skb_entail中找到:static inline void skb_entail(struct转载 2014-12-27 23:33:30 · 3353 阅读 · 0 评论 -
linux下内存的统计和内存泄露类问题的定位
在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此束手无策,本文通过对proc下进程相关的文件进行分析,精确评估系统消耗内存的大小,还可以对内存泄露类问题的解决提供一种定位手段。 Linux在内存使用上的原则是:如果内存充足,不用白不用,尽量使用内存来缓存一些文件,从而转载 2014-12-28 00:32:24 · 1256 阅读 · 0 评论 -
linux TCP头部的构造的简单分析
TCP的头部的构造是在函数tcp_transmit_skb()中进行的函数片段如下:/* Build TCP header and checksum it. */ th = tcp_hdr(skb); th->source = inet->inet_sport; th->dest = inet->inet_dport; th->seq = htonl(tcb->seq); th-转载 2014-12-27 23:45:39 · 1322 阅读 · 0 评论 -
linux TCP数据包重传过程----小结
于TCP/IP协议栈的TCP协议的重传功能是由在linux内核源码(net/ipv4/tcp_output.c)中的函数tcp_retransmit_skb()实现的代码如下:/* This retransmits one SKB. Policy decisions and retransmit queue * state updates are done by the caller. Re转载 2014-12-27 23:50:49 · 2119 阅读 · 0 评论 -
linux:关于Linux系统中 CPU Memory IO Network的性能监测
我们知道:系统优化是一项复杂、繁琐、长期的工作.通常监测的子系统有以下这些:CPUMemoryIONetwork下面是常用的监测工具Linux 系统包括很多子系统(包括刚刚介绍的CPU,Memory,IO,Network,等),下面这张图片很好的总结了 Linux 各个子系统以及监控这些子系统所需要的工具 上面的一点终结有助于自己全面学转载 2014-12-27 23:57:20 · 1603 阅读 · 0 评论 -
Linux内核--网络协议栈深入分析(三)--BSD socket和传输层sock
本文分析基于Linux Kernel 3.2.1原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7979838更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明Linux内核中协议族有INET协议族,U转载 2013-04-13 13:39:45 · 1790 阅读 · 0 评论 -
Linux内核--基于Netfilter的内核级包过滤防火墙实现
测试内核版本:Linux Kernel 2.6.35----Linux Kernel 3.2.1原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7572382更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明转载 2013-04-13 13:36:01 · 1829 阅读 · 0 评论 -
Linux内核--网络栈实现分析(七)--数据包的传递过程(下)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程转载 2013-04-13 13:28:32 · 1359 阅读 · 0 评论 -
Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7549340更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程转载 2013-04-13 13:31:47 · 1098 阅读 · 0 评论 -
Linux内核--网络栈实现分析(十一)--驱动程序层(下)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7555870更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程转载 2013-04-13 13:33:52 · 1321 阅读 · 0 评论 -
Linux内核--网络协议栈深入分析(二)--sk_buff的操作函数
本文分析基于Linux Kernel 3.2.1原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7972647更多请查看网络栈分析专栏http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明1、alloc_skb()函数转载 2013-04-13 13:38:12 · 1673 阅读 · 0 评论 -
Linux内核--网络栈实现分析(六)--应用层获取数据包(上)
本文分析基于内核Linux 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7541907更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程基于数据包的转载 2013-04-13 13:27:25 · 1405 阅读 · 0 评论 -
Linux内核--网络栈实现分析(八)--应用层发送数据(下)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7547826更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程转载 2013-04-13 13:29:46 · 1263 阅读 · 0 评论 -
Linux内核--网络栈实现分析(十)--网络层之IP协议(下)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7552455更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程转载 2013-04-13 13:33:04 · 1169 阅读 · 0 评论 -
Linux内核--网络协议栈深入分析(一)--与sk_buff有关的几个重要的数据结构
本文分析基于Linux Kernel 3.2.1原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7971463更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明几个月之前做了关于Linux内核版本1.2转载 2013-04-13 13:36:47 · 1721 阅读 · 0 评论 -
Linux内核--网络协议栈深入分析(四)--套接字内核初始化和创建过程
本文分析基于Linux Kernel 3.2.1原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7984238更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明1、系统初始化过程中会调用sock_init函数进行套转载 2013-04-13 13:41:12 · 1841 阅读 · 0 评论 -
Linux内核--网络协议栈深入分析(五)--套接字的绑定、监听、连接和断开
本文分析基于Linux Kernel 3.2.1原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7996528更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明1、套接字的绑定创建完套接字服务器端会转载 2013-04-13 13:42:52 · 1724 阅读 · 0 评论 -
Linux内核--网络栈实现分析(一)--网络栈初始化
本文分析基于内核Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7488828更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明以后的系列博文将深入分析Linux内核的网络栈实现原转载 2013-04-12 16:48:15 · 1491 阅读 · 0 评论 -
Linux内核--网络栈实现分析(二)--数据包的传递过程(上)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7492423更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过转载 2013-04-13 13:20:22 · 1297 阅读 · 0 评论 -
Linux内核--网络栈实现分析(四)--网络层之IP协议(上)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过转载 2013-04-13 13:24:45 · 1860 阅读 · 0 评论 -
Linux内核--网络栈实现分析(五)--传输层之UDP协议(上)
本文分析基于Linux Kernel 1.2.13原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/7532512更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过转载 2013-04-13 13:26:03 · 1317 阅读 · 0 评论 -
TCP发送源码学习(1)--tcp_sendmsg
一、tcp_sendmsg()函数分析:int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, size_t size){ struct iovec *iov; /*从通用的struct sock *sk得到struct tcp_sock *tp,其实只是一个强制类型转换,因转载 2014-12-28 00:07:48 · 1540 阅读 · 0 评论