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数据)和作用的更多相关文章

  1. TCP/IP协议栈 -----链路层

    这节说一下链路层和ARP RARP协议 链路层: 在协议栈中链路层的目的有三个:1. 为IP模块发送或接受数据包 2.为ARP模块发送或接受ARP请求 3. 为RARP模块发送或接受RARP请求. 让 ...

  2. TCP/IP 笔记 - 链路层

    链路层的目的是为IP模块发送和接收IP数据报. 以太网和IEEE 802局域网标准 以太网指的是一套标准,有DEC.Intel公司和Xerox公司在1980年首次发布,并在1982年加以修订.第一个常 ...

  3. TCP/IP学习-链路层

    链路层: 路径MTU: 网络层: ifconfig netstat IP首部 网络字节序:大端字节序

  4. TCP/IP中最高大上的链路层简介(二)

    引言 对于程序猿来讲,似乎越接近底层,就越显得高大上.这也算是程序猿们的共同认知吧,虽然不是所有人.今天LZ就和各位一起探讨一下TCP/IP中最高大上的一层,也就是最底层的链路层. 这一层LZ了解的还 ...

  5. Go中链路层套接字的实践

    1. 介绍 2. 服务端 3. 协议头部 4. 客户端 5. 总结 1. 介绍 接上次的博客,按照约定的划分,还有一层链路层socket.这一层就可以自定义链路层的协议头部(header)了,下面是目 ...

  6. TCP/IP协议原理与应用笔记11:TCP/IP中地址与层次关系

    1. 网络中常用的地址: 2. TCP/IP中地址与层次关系 :

  7. TCP/IP中的传输层协议TCP、UDP

    TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...

  8. TCP/IP中你不得不知的十大秘密

    这段时间 有一点心很浮躁,不过希望自己马上要矫正过来.好好学习编程!这段时间我想好好地研究一下TCP/IP协议和网络传输这块!加油 一.TCP/IP模型 TCP/IP协议模型(Transmission ...

  9. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

随机推荐

  1. Scala 包

    包的绝对地址_root_.开始 如_root_.scala.collection.mutable.ArrayBuffer

  2. Android开发学习—— 消息队列

    ###主线程不能被阻塞* 在Android中,主线程被阻塞会导致应用不能刷新ui界面,不能响应用户操作,用户体验将非常差* 主线程阻塞时间过长,系统会抛出ANR异常* ANR:Application ...

  3. 关于Android中的三级缓存

    三级缓存的提出就是为了提升用户体验.当我们第一次打开应用获取图片时,先到网络去下载图片,然后依次存入内存缓存,磁盘缓存,当我们再一次需要用到刚才下载的这张图片时,就不需要再重复的到网络上去下载,直接可 ...

  4. iOS开发中的数学函数

    在iOS开发当中...我们往往会涉及到一些算法...为了节省一些时间...让APP很快地被开发出来...我们需要对各类函数有一定的了解...接下来...我把部分常用函数分享出来...希望能帮到大家.. ...

  5. React Native 之生命周期

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  6. yii2中如何使用modal弹窗之基本使用

    作者:白狼 出处:http://www.manks.top/yii2_modal_baseuse.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...

  7. ASP.NET MVC 5 04 - 控制器

    PS: 唉.本来这一篇前几天早就应该发了的,可是谁每月没有那么几天啊... 呵呵.开个玩笑.反正就是各种烦气,所以也就一直没上来继续发了. 年底了,摆正一下心态吧.好好干,整点钱,过年回家能跟亲朋好友 ...

  8. Storm UI 说明

    原文: http://blog.sina.com.cn/s/blog_5c51172c0102v26g.html

  9. nginx在linux下安装

    安装前先确认是否已经安装编译包和一些依赖包如果没有安装: yum install pcre* yum install openssl* yum install zlib yum install zli ...

  10. UVA10325 The Lottery(容斥原理)

    题意: 给n,m,和m个数(k1~km).求1~n中有多少个数不是(k1~km)中任意一数的倍数. 题解: 容斥模板题.反面考虑,a的倍数有n/a个:既是a,也是b的倍数,即lcm(a,b)的倍数有n ...