TCP/IP中链路层的附加数据(Trailer数据)和作用
1.TCP/IP中链路层的附加数据是什么
在用wireshark打开报文时,链路层显示的Trailer数据就是附加数据,如图

2.如何产生
1.例如以太网自动对小于64字节大小的报文进行填充(未实验)。
2.使用链路层套接字写数据时,实际数据大小 > (ip头标示报文大小 + 链路层头部)
3.生存周期
测试:使用套接字发送带Trailerr数据的报文,看收端是否可以收到。
IP层SOCK_RAW套接字
1.内网 可以携带Trailerr数据
2.外网 丢包(路由器所为?)
链路层SOCK_PACKET套接字
1.内网 截断Trailer数据(交换机所为?)
2.外网 截断Trailer数据(交换机所为?)
4.作用
假设二层交换机下有2个设备A和B
1.增添了一条操作系统与外界通信的额外通道
试想下,怎么在协议不支持的情况下从A设备处获得B设备的系统时间?
在B设备向A设备发数据时(任何协议),把自己的系统时间写到附加数据中,A使用链路层套接字(比如tcpdump使用的套接字)获取链路层数据就可以对
附加数据做解析。
2.控制上层应用程序的行为
应用程序的行为被收到的报文所影响,应用程序收报文的大致流程如下:
网卡收到报文->内核处理->TCP/IP协议栈处理->上层应用
可见内核处理可以对报文进行篡改(例如iptables的mangle),来”欺骗“应用程序。
例如上层应用只对特定ip进行服务,比如1.1.1.1,如果是来自2.2.2.2的请求会被拒绝掉,不改变上层应用
行为的前提下,可以在内核处对报文进行修改,把2.2.2.2修改为1.1.1.1(当然,应用程序发包时内核也要把1.1.1.1修改为2.2.2.2)
而附加数据的作用是为这种报文修改提供策略或依据。
TCP/IP中链路层的附加数据(Trailer数据)和作用的更多相关文章
- TCP/IP协议栈 -----链路层
这节说一下链路层和ARP RARP协议 链路层: 在协议栈中链路层的目的有三个:1. 为IP模块发送或接受数据包 2.为ARP模块发送或接受ARP请求 3. 为RARP模块发送或接受RARP请求. 让 ...
- TCP/IP 笔记 - 链路层
链路层的目的是为IP模块发送和接收IP数据报. 以太网和IEEE 802局域网标准 以太网指的是一套标准,有DEC.Intel公司和Xerox公司在1980年首次发布,并在1982年加以修订.第一个常 ...
- TCP/IP学习-链路层
链路层: 路径MTU: 网络层: ifconfig netstat IP首部 网络字节序:大端字节序
- TCP/IP中最高大上的链路层简介(二)
引言 对于程序猿来讲,似乎越接近底层,就越显得高大上.这也算是程序猿们的共同认知吧,虽然不是所有人.今天LZ就和各位一起探讨一下TCP/IP中最高大上的一层,也就是最底层的链路层. 这一层LZ了解的还 ...
- Go中链路层套接字的实践
1. 介绍 2. 服务端 3. 协议头部 4. 客户端 5. 总结 1. 介绍 接上次的博客,按照约定的划分,还有一层链路层socket.这一层就可以自定义链路层的协议头部(header)了,下面是目 ...
- TCP/IP协议原理与应用笔记11:TCP/IP中地址与层次关系
1. 网络中常用的地址: 2. TCP/IP中地址与层次关系 :
- TCP/IP中的传输层协议TCP、UDP
TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...
- TCP/IP中你不得不知的十大秘密
这段时间 有一点心很浮躁,不过希望自己马上要矫正过来.好好学习编程!这段时间我想好好地研究一下TCP/IP协议和网络传输这块!加油 一.TCP/IP模型 TCP/IP协议模型(Transmission ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
随机推荐
- Android中的Libraries以及Order and Export的使用。
1Add JAR 从Eclipse的现有所有工程中,添加jar包到该工程下 2Add External JARs 从Eclipse外的其他的位置,添加jar包到该工程下 3Add Variable 增 ...
- Java之递归求和的两张方法
方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ ...
- 常见排序算法(附java代码)
常见排序算法与java实现 一.选择排序(SelectSort) 基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换:接着对不包括第一个记录以外的其他 ...
- 如何利用mount命令将另外一个linux服务器上的目录挂在到本机?
你先要在192.168.1.100上开启NFS服务并编辑/etc/exports文件: chkconfig --level 35 nfs on service nfs start vi /etc/ex ...
- Jsoup系列学习(1)-发送get或post请求
简介 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据. 官 ...
- 浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法
在我们使用scvmm2012的时候,经常会看到群集状态变成了这样 点开看属性后,我们发现是这样 . 发现了吗?Over-committed,如果翻译过来就是资源过载,或者说资源过量使用了,那么这个状态 ...
- Web site collections
Integration 伯乐在线 极客头条 Hacker News Stack Overflow RFC Search Security Python Hacker - Freebuf PrimalS ...
- MFC消息映射机制以及画线功能实现
---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...
- 斐波拉契数列(Fibonacci) 的python实现方式
第一种:利用for循环 利用for循环时,不涉及到函数,但是这种方法对我种小小白来说比较好理解,一涉及到函数就比较抽象了... >>> fibs = [0,1] >>&g ...
- xib和storyBoard哪些事之UIimage和按钮注意事项
1.uiimageView 和按钮比较特殊,可以只设置其x,y就可以. 2.可以设置其丝例,如1:1,或者当前图片的比例,这样保证不会变形,设置比例在自身上点击control拉个线,选择 3.在右侧就 ...