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. android MVP设计模式!

    实现原理: MainActivity 用来更新UI,和显示业务逻辑的结果! LoginPresenterCompl 用来处理 业务逻辑 ILoginPresenter 业务处理类抽象出来的接口 ILo ...

  2. iOS App 不支持http协议 App Transport Security has blocked a cleartext HTTP (http://)

    目前iOS已经不支持http协议了,不过可以通过info.plist设置允许 App Transport Security has blocked a cleartext HTTP (http://) ...

  3. KeySpaceNotification 键空间通知

    KeySpaceNotification 键空间通知 1.Redis键淘汰机制简介 在Redis中,内存的大小是有限的,所以为了防止内存饱和,需要实现某种键淘汰策略.主要有两种方法,一种是当Redis ...

  4. Linux shell脚本编程(一)

    Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...

  5. HTML中使图片居中显示

    注:imageId为图片id<style type="text/css"> #imageId{ display:block; position:relative; ma ...

  6. Masonry和FDTemplateLayoutCell 结合使用示例Demo

    我们知道,界面布局可以用Storyboard或Xib结合Autolayout实现,如果用纯代码布局,比较热门的有Masonry.SDAutoLayout,下面的简单demo,采用纯代码布局,实现不定高 ...

  7. WPF 自定义IconButton

    自定义一个按钮控件 按钮控件很简单,我们在项目中有时把样式封装起来,添加依赖属性,也是为了统一. 这里举例,单纯的图标控件怎么设置 1.UserControl界面样式 <UserControl ...

  8. 使用Proj库进行大地坐标转空间坐标、投影坐标的一个示例

    最近研究了proj库的使用,自己写了一个小demo,仅供参考. void demoPROJ() { const char* wgs84 = "+proj=tmerc +ellps=WGS84 ...

  9. 我的操作系统复习——I/O控制和系统调用

    上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...

  10. 如何使用DotfuscatorPro_4.9对软件进行加密

    DotfuscatorPro_4.9可以防止你的.NET软件被反编译,可以在一定程度上防止你的软件被反编译.现在很多软件都有被反编译的现象,虽然不能做到百分百的防范,但是你至少可以先做些技术上的处理, ...