![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TCP/IP网络协议
文章平均质量分 90
yyyyyyyuande
这个作者很懒,什么都没留下…
展开
-
IPv6扩展头部 (三) 路由头部 Routing Header for IPv6
IPv6在我国发展算是早的,网上相关的资源也是比较多但是涉及实际的应用方面就比较少了。随着今年国家对IPv6的加大投入,估计未来一段时间IPv6会变的热门。在学校里老师对这一块没怎么讲,平常工作的时候也没啥接触。最近的项目开发涉及IPv6这一部分,产品需要支持IPv6协议,因此学习了相关的知识。在此分享一下,有错误的地方还请指出哈。这篇博客主要介绍IPv6扩展头部里的路由头部,结合报文具体分析...原创 2018-07-19 23:47:27 · 10792 阅读 · 3 评论 -
IPv6扩展头部 (一) 扩展头部格式、类型与扩展选项
之前几篇博客介绍了IPv6的扩展头部,包括分片头部和路由头部。接下来介绍一下IPv6扩展头部以及扩展选项的内容,可能会有这样的疑问,有了扩展头部怎么还需要扩展选项?扩展选项是干嘛用的?本篇博客就介绍相关内容。IPv6扩展头部 在IPv6中,那些由IPv4选项提供的特殊功能,通过在IPv6头部之后增加扩展头部实现。IPv4路由和时间戳功能都采用这种方式,其它功能(例如分片和...原创 2018-07-21 18:27:22 · 34897 阅读 · 1 评论 -
IPv6基础知识总结
最近在做IPv6的工作,基于Linux平台,主要内容涉及IPv6协议栈处理、报文转发相关的内容,做之前对IPv6的了解基本为零,平常基本不用。各方面收集了很多资料,取其精华笔记一下。内容简单,分为三个部分。1. IPv6首部格式2. IPv6地址分类3. IPv6地址格式 一. IPv6首部格式图1. IPv6首部格式首部固定长度40字节,包含8个字段...原创 2018-07-27 20:13:01 · 43949 阅读 · 0 评论 -
BFD (双向转发检测) 协议简介与开发
之前开发的BFD协议,正好有空介绍一下协议基础内容以及开发时候的注意事项。内容分为如下1. BFD背景简介2. BFD特点3. BFD报文格式4. BFD 状态机处理5. 开发注意事项一. BFD背景简介 为了保护关键应用,网络中会设计有一定的冗余备份链路,网络发生故障时就要求网络设备能够快速检测出故障并将流量切换至备份链路以加...原创 2018-07-27 21:03:18 · 20463 阅读 · 4 评论 -
tcp/ip 协议栈Linux源码分析二 IPv4分片报文重组分析二
继续接着上篇讲,之前我们说过,收到分片报文后首先会检查分片报文所占内存是否过大,如果超过阈值的话就要调用ip_evictor函数去释放一些旧的分片队列,关于如何释放分片队列资源上一篇已经总结完成,接下来来看下进一步的处理,即如何查找分片队列的,先看下代码: /* Lookup (or create) queue header */ /* 这里根据分片五元组(源地址、目的地址、IP ID,p...原创 2019-01-23 23:31:59 · 927 阅读 · 0 评论 -
tcp/ip 协议栈Linux源码分析一 IPv4分片报文重组分析一
内核版本:3.4.39之前因工作原因接触到了IPv4 报文重组这个话题,一直以来对这个重组流程不是很清楚,所以很多功能的实现都避开了分片报文的处理,一方面是因为重组比较复杂,另一方面是经验不多无从下手,最近几周抽空详细看了下内核源码关于IPv4重组的流程,这里简要说明下,有描述不对的地方还请指出。先简单描述下ipv4重组的流程:内核在传输层(L3层)收到分片报文后在传递给L4(TCP/UD...原创 2019-01-19 17:32:50 · 1759 阅读 · 0 评论 -
tcp/ip 协议栈Linux源码分析三 IPv4分片报文重组分析三
继续上篇,上次讲到了分片队列的查找操作,剩下的就是分片队列插入和重组两个部分了,这个也是分片重组的关键部分。将收到的分片插入到分片队列是由函数inet_frag_queue()函数完成,这个函数比较长,多看几遍就好了 :-)/* Add new segment to existing queue. *//* 添加一个新的片段到分片队列里面 */static int ip_frag_q...原创 2019-01-27 16:16:20 · 1201 阅读 · 1 评论 -
tcp/ip 协议栈Linux源码分析五 IPv6分片报文重组分析一
做防火墙模块的时候遇到过IPv6分片报文处理的问题是,当时的问题是netfilter无法基于传输层的端口拦截IPv6分片报文,但是IPv4的分片报文可以。分析了内核源码得知是因为netfilter的连接跟踪模块重组了IPv4分片报文,但是对于IPv6的分片报文没有重归组导致,自3.10.x版本后的内核修改了这一块,在PRE_ROUTING前netfilter重组了IPv6分片报文。之前写过几篇...原创 2019-05-15 08:52:00 · 2853 阅读 · 1 评论