我们以一个常见的查看IP指令为出发点(ifconfig -a):

 

1、链路层是什么

链路层是指硬件层协议。也即网络所使用的硬件,比如:以太网(后文主要讨论对象),令牌环网,FDDI已经RS-232串行线路。

在上面的命令(ifconfig -a)结果中,硬件地址(MAC)为08:00:27:00:9c:59 (48bit),链路层主要的作用就是连接不同的两个硬件。

 

2、链路层的作用

1.为IP模块发送和接收IP数据报

2.为ARP模块发送和接收ARP应答

3.为RARP发送RARP请求和接收RARP应答

 

注意:

1.TCP/IP支持在不同链路层之间的传输

2.IP、ARP、RARP表示三个协议,后面的三个章节我们将描述这3个协议

 

3、具体链路层

3.1、RFC标准的链路层以及链路层实例以太网的封装格式:

 

3.2、对IP数据包的进一步封装SLIP和PPP协议:

在串行线路上对IP数据报进行简单的封装存在多种方式SLIP就是其中一种简单的形式,SLIP对IP数据报的封装形式:

            

由于SLIP只是对IP数据报进行简单的封装,所以依然存在较多的问题:

1.两端都需要对方的IP地址,不能将本端的IP告知另一端

2.封装格式中不存在类型字段,因此该封装具有特殊性

3.封装格式中不存在校验和

 

PPP协议是为解决SLIP的问题而提出的另一种对IP数据包封装格式:

 

3.3、减少逻辑操作的环回接口(Loopback Interface)描述:

环回接口(Loopback Interface)存在原因是为了减少在主机内部的数据传递(省略传输层(TCP,UDP),网络层(IP层))的逻辑操作。其具体的情况见最初命令(ifconfig -a)中的lo。

其判断的逻辑较为简单:

关于lookback interface的几个注意点:

1.传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入

2.传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身

3.任何传给该主机IP地址的数据均送到环回接口

 

3.4、最大传输单元(MTU)和路径MTU描述:

每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU。需要注意的是MTU只是逻辑限制(程序限制,一般限制为最优解),而不是固定值,使用netstat –i可以查看MTU(ifconfig –a同样可以)。

     

注意此处显示的MTU表示的是最大传输单元。路径MTU则是指两台相互通信的主机中路径最小的那个MTU。

 

 

Reference:

TCP/IP 协议:链路层概述的更多相关文章

  1. TCP/IP协议学习-1.概述

    目录 TCP/IP协议概述 分层 延伸知识 FTP例子 为什么需要网络层和传输层 TCP/IP的分层 封装 分用 总结 本文主要摘抄自书籍<TCP/IP详解卷一:协议>与TCP协议相关内容 ...

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

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

  3. TCP/IP协议详解概述

    TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...

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

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

  5. TCP/IP协议详解---概述

        工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...

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

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

  7. TCP/IP 笔记 - 链路层

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

  8. TCP/IP学习-链路层

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

  9. OSI七层模型和五层TCP/IP协议

    1.查公网ip的方法: windows,打开浏览器,访问百度,搜IP即可 linux:curl ifconfig.me 2.OSI七层模型 ==网络工程师:== 物理层 1层,通信介质的信号到数字信号 ...

  10. 【TCP/IP 协议】 TCP/IP 基础

    总结 : 通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后开始详细学习数据链路层的各种细节协议, 并作出笔记; 博客地址 : h ...

随机推荐

  1. Visual Studio的Web Performance Test提取规则详解(2)

    总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance T ...

  2. Windows下Eclipse连接hadoop

    2015-3-27 参考: http://www.cnblogs.com/baixl/p/4154429.html http://blog.csdn.net/u010911997/article/de ...

  3. GZFramwork数据库层《三》普通主从表增删改查

    运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...

  4. JavaScript为input/textarea自定义hover,focus效果

    <title>JavaScript为input/textarea自定义hover,focus效果</title> <script type="text/java ...

  5. iOS FMDB的使用

    简介: SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK 很早就支持了 SQLite,在使用时,只需要加入 libsqlite ...

  6. mac 显示set a breakpoint in malloc_error_break to debug 终端显示进程已完成怎么办?

    mac 终端显示 ,0x7fff73dbd300) malloc: *** error for object 0x7fce52d15100: pointer being freed was not a ...

  7. ReentRantLock使用

    synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候. 1.某个线程在等待一 ...

  8. Java简介

    命令行输入参数不是在代码中设置输入的,而是这样做:选中你java项目中的java---右击----Run As---Run Configurations---Arguments----填入参数(多个参 ...

  9. vue.js学习笔记之v-bind,v-on

    v-bind 指令用于响应地更新 HTML 特性 形式如:v-bind:href    缩写为    :href; v-on 指令用于监听DOM事件 形式如:v-on:click  缩写为 @clic ...

  10. 学习笔记Jmail收发邮件

    一.利用Jmail发送邮件  1/// <summary> 2/// 利用Jmail发送邮件 3/// </summary> 4private void SendMailByJ ...