这节说一下链路层和ARP RARP协议

链路层: 在协议栈中链路层的目的有三个:1. 为IP模块发送或接受数据包 2.为ARP模块发送或接受ARP请求 3. 为RARP模块发送或接受RARP请求。
让我们看一下最常用的以太网链路层封装格式

这里可以看到以太网协议头部有类型字段 来表明是IP 还是 ARP RARP数据包,尾部还有CRC校验码。

环回接口:localhost 127类的地址,一个传给环回接口的数据包不能再网络中出现,一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所有网络层的逻辑操作。但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当I P数据报离开网络层时把它返回给自己。

抓包看一下

machine:~/Desktop$ ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.087 ms --- 192.168.1.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.039/0.062/0.087/0.024 ms
machine:~/Desktop$ ping 127.127.0.166
PING 127.127.0.166 (127.127.0.166) 56(84) bytes of data.
64 bytes from 127.127.0.166: icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from 127.127.0.166: icmp_seq=2 ttl=64 time=0.087 ms --- 127.127.0.166 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.039/0.065/0.092/0.024 ms machine:/home/# tcpdump -i lo -n -vv dst host 127.127.0.166
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
12:48:25.733216 IP (tos 0x0, ttl 64, id 26614, offset 0, flags [DF], proto ICMP (1), length 84)
127.0.0.1 > 127.127.0.166: ICMP echo request, id 2676, seq 1, length 64

127类地址都是localhost本身,ping 主机自己的IP时也可以收到回环接口,广播的话也能接收到。127类地址主要用于测试一下协议和应用层服务器。
以太网和8 0 2 . 3对数据帧的长度都有一个限制,其最大值分别是
1 5 0 0和1 4 9 2字节。链路层的这个特性称作M T U,最大传输单元。不同类型的网络大多数都有一个上限。如果I P层有一个数据报要传,而且数据的长度比链路层的 M T U还大,那么 I P层就需要进行分片( f r a g m e n t a t i o n) ,把数据报分成若干片,这样每一片都小于 M T U。

TCP/IP协议栈 -----链路层的更多相关文章

  1. TCP/IP中链路层的附加数据(Trailer数据)和作用

    1.TCP/IP中链路层的附加数据是什么 在用wireshark打开报文时,链路层显示的Trailer数据就是附加数据,如图 2.如何产生 1.例如以太网自动对小于64字节大小的报文进行填充(未实验) ...

  2. TCP/IP 协议栈4层结构及3次握手4次挥手

    TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输.TCP/IP 协议采用4层结构,分别是应用层.传输层.网络层和链路 ...

  3. TCP/IP 笔记 - 链路层

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

  4. TCP/IP学习-链路层

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

  5. 渣渣小本求职复习之路每天一博客系列——TCP/IP协议栈(5)

    前情回顾:一篇短短的博客明显不能满足TCP和UDP这两个饥渴的汉子,而且还被应用协议占了一小半的篇幅.在昨天结束之后,相信大家都基本对TCP/IP协议栈的轮廓有一个大概的印象了,能够对整体有所把握. ...

  6. linux OSI七层模型、TCP/IP协议栈及每层结构大揭秘

    学习Linux,就算是像小编我这样的小萌新,也知道OSI模型.什么?!你不知道!!! 好吧,这篇秘籍拿走,不谢~~~ 一.两个协议 (1)OSI 协议模型(7层)国际协议    PDU:协议数据单元对 ...

  7. TCP/IP协议栈概述及各层包头分析

    TCP/IP协议栈中各层包头的分析 Protocol列表示的是该数据包最高层对应的协议,Length列表示该包的长度(包括从底层的协议到最高层的协议,其中包头一般是,链路层14字节,IP20字节,TC ...

  8. 【转】TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  9. [转]为何TCP/IP协议栈设计成沙漏型的

    http://m.blog.csdn.net/blog/dog250/18959371 前几天有人回复我的一篇文章问,为何TCP/IP协议栈设计成沙漏型的.这个问题问得好!我先不谈为何它如此设计,我一 ...

随机推荐

  1. LINUX 笔记之常用打包压缩命令

    1.将所有.jpg文件打成一个名为all.tar的包 tar -cf all.tar *.gif 2.将所有.gif文件追加到all.tar tar -rf all.tar *.gif 3.更新原来t ...

  2. [Linux 使用(2)] 64位Linux下安装jboss-as-7.1 以及jdk1.7

    一.软件的下载 jdk下载地址:    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.h ...

  3. hack查询地址

    悲催的IE! http://browserhacks.com/

  4. LeetCode 18. 4Sum (四数之和)

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  5. 读书笔记-你不知道的JS上-函数作用域与块作用域

    函数作用域 Javascript具有基于函数的作用域,每声明一个函数,都会产生一个对应的作用域. //全局作用域包含f1 function f1(a) { var b = 1; //f1作用域包含a, ...

  6. 使用SimpleXML解析xml文件数据

    最近工作要求从一个XML文档中批量读取APK应用数据,自然想到用SimpleXML.经过一段时间摸索,终于成功解析,现在将思路以及代码做下记录: xml文件格式大致如下: <?xml versi ...

  7. [译]ASP.NET Core 2.0 部分视图

    问题 如何在ASP.NET Core 2.0中使用部分视图来重用页面的公共部分? 答案 新建一个空项目,在Startup中添加MVC服务和中间件: public void ConfigureServi ...

  8. Web前端性能优化全攻略[转载]

    1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests) 作为第一条,可能也是最重要的一条.根据 Yahoo! 研究团队的数据分析,有很大一部分用户访问会因为这一条而取得最 ...

  9. J1002.JavaFX简介

    引言 2008年12月05日,SUN发布了JavaFX第一个正式版本,以期望Java在UI端能够更好地应用于开发富客户端的互联网应用(Rich Internet Cliet). 2011年发布的Jav ...

  10. linux 更新源miss问题

    1.之前新装的linuxMint 执行 apt-get install vim 安装失败 发现原因是源更新失败导致,后来执行apt-get update 发现老是获取失败,查了google总结出以下解 ...