<再看TCP/IP第一卷>关于链路层的知识细节及相关协议
在TCP/IP协议族中,链路层的主要有三个目的:
(1)为IP模块发送和接受数据报
(2)为ARP模块发送ARP请求和接受ARP应答
(3)为RARP发送RARP请求和接受RARP应答
TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网,FDDI,及RS-232串行线等。
两个串行接口链路层协议:
SLIP:(Serial Line IP)它是一种在串行线路上对IP数据报进行封装的简单形式,SLIP适合用于家庭中每台计算机及都有的RS-232串行端口和告诉调制解调器接入Internet。
下面的规则描述了SLIP协议定义的帧格式:
(1)(来自上一层协议的)IP数据报以一个称作END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报的内容,大多数实现在数据报的开始处也传入一个END字符(如果有线路的噪声,那么END字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个错误的报文交给上层协议后,会因为其内容无效而被丢弃)
(2)如果IP报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它,0xdb这个特殊的字符被称作SLIP的ESC字符,但是它的值与ASCii码的ESC字符(0x1b)不同。
(3)如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来取代它。
SLIP是一种简单的帧封装方法,还有一些值得一提的缺陷:
(1)每一端必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。
(2)数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于SLIP,那么它就不能同时使用其它的协议。
(3)SLIP并没有加上数据帧的内容检验,如果SLIP传输的内容因为线路的噪声而发生了错误,这只能由上层的协议来发现(或者用新型的调制解调器可以检测并且纠正错误报文)
PPP:(Point-to-Point Protocol)点对点协议修改了SLIP协议中的所有缺陷,PPP包括以下三个部分:
(1)在串行链路上封装IP数据报的方法。PPP既支持数据为8和无奇偶检验的异步模式,还支持面向比特的同步连接。
(2)建立,配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。
(3)针对不同网络层协议的网络控制协议(NCP:Net Work Protocol)体系。
PPP协议的每一帧都以标志字符0x7e开始和结束,紧接着是一个地址字节,值始终是0xff,然后是一个值为0x03的控制字节,然后是协议字段,类似于以太网中的类型字段的功能。当它的值为0x0021时,表示信息字段是一个IP数据报,当它的值为0xc021时,表示信息字段时链路控制数据(LCP),当值为0x8021时表示信息字段是网络控制数据(NCP)。
由于结束和开始的标志字符是0x7e,因此当该字符出现的时候,PPP需要对它进行转义,在同步链路中,该过程是通过一种称作比特填充的硬件技术来完成的。在异步链路中,特殊字符0x7d用作转义字符,当它出现在PPP数据帧中的时候,那么紧接的字符的第六个比特要取其补码,具体过程如下:
(1)当遇到字符0x7e时,需连续传送两个字符0x7d和0x5e,以实现标志字符的转义。
(2)当遇到转义的字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。
(3)默认的情况下,如果字符的值小于0x20,一般都要进行转义。例如,遇到0x01时需连续传送0x7d和0x21两个字符。
与SLIP相似的是,由于PPP通常是用于低速的串行链路,因此减少每一帧的字节数可以降低应用程序的交互时延,利用链路控制协议,大多数的产品通过协商可以省略标志符和地址字段,并且把协议字段由2个字段减少到1个字节。如果我们把PPP的帧格式与前面的SLIP的帧格式进行比较就会发现,PPP只增加了额外的3个字节。
总的来说,PPP协议由以下这些优点:
(1)PPP支持在单根串行线路上运行多种协议,不只是IP协议
(2)每一帧都有循环冗余检验
(3)通信双方可以进行IP地址的动态协商(使用IP网络控制协议)
(4)连路控制协议可以对多个数据链路选项进行设置。
环回接口(loopback):
大多数的产品都支持环回接口,以允许运行同一台主机上的客户程序和服务器程序通过TCP/IP协议进行通信。A类网络号127就是为环回接口预留的,根据惯例环回地址为localhost。
一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所有网络层的逻辑操作。但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当IP数据报离开网络层时把它返回给自己。
最大传输单元(MTU):
不同的网络对数据的帧的长度有一个不同的限制,如果IP层有一个数据要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片,把数据报分成若干片,这样每一片都小与MTU。点到点的链路层(如SLIP和PPP)的MTU并非指的是网络媒体的物理特性。相反,它是一个逻辑限制,目的是为交互使用提供足够快的响应时间。
路径MTU:
当在同一个网络上的两台主机互相进行通信的时候,该网络的MTU是非常重要的,但是如果两台主机通信要经过多个不同的网络的时候,重要的不是两台主机所在的网络的MTU值,而是两台通信主机路径的最小MTU,它被称作路径MTU。
## 接下来几个简单的命令来看下我们的主机的信息吧:##
netstat -r 路由表,我的ip是192.168.1.108可以知道我们在是在C类地址下,网络号为43009,主机号为108,无子网,维护的路由表的默认路由是192.168.1.0即“1号主机”
netstat -i 网络接口 MTU如图所示 其中65536并不代表网络的MTU,IP数据报的总长度最大为0xffff及65536,这也是dos攻击的理论依据。
<再看TCP/IP第一卷>关于链路层的知识细节及相关协议的更多相关文章
- <再看TCP/IP第一卷>关于网络层及协议细节---IP协议
说到关于IP协议,就必须先说IP协议的两个特性: (一)不可靠性(unreliable) 不可靠性的意思是它不能保证IP数据报能成功地到达目的地,IP所能做的只是提供最好的传输服务,IP有一个简单的错 ...
- <再看TCP/IP第一卷>关于网络层及协议细节---IP协议(2)--移动IP及DHCP
题外话:本来想按照互联网的层级自下向上回顾这些协议的,但是今天实在得破个例,DHCP不得不说! 主机从一个网络迁移到另一个网络,那么IP编址的结构就要发生改变,当今主流有如下几种修改方案: (一)改变 ...
- <再看TCP/IP第一卷>关于网络层及协议细节---ICMP协议几个要注意的地方
在TCP/IP协议族中,ICMP协议是一个介于网络层和传输层中间的一个协议,许多材料都会认为ICMP是网络层的一个部分,但是ICMP协议的报头是被包裹在IP协议之中的,而UDP协议又可以被ICMP协议 ...
- <再看TCP/IP第一卷>TCP/IP协议族中的最压轴戏----TCP协议及细节
题外话:刚刚过去的半个月实在是忙得我喘不过来气,虽然手里还压着几个项目得在期末考试之前做完,但是想想还是更新一下随笔,稍微换个心情.另外小吐槽一下那些在博客园里原封不动抄书当随笔的人,唉真是....算 ...
- TCP/IP入门(1) --链路层
/** 本博客由汗青ZJF整理并发布, 转载请注明出处: http://blog.csdn.net/zjf280441589/article/category/1854365 */ TCP/IP体系结 ...
- [HTTP] tcp/ip详解 链路层 网络层 传输层 应用层
1.可以把七层协议简化成四层协议链路层 网络层 传输层 应用层 2.通过路由器连接的两个网络网络层ip提供的是一个逐跳协议,提供了一种不可靠的服务,中间有可能会丢传输层tcp在ip的基础上提供了可靠的 ...
- [计算机网络] 互联网协议栈(TCP/IP参考模型)各层的主要功能及相应协议
应用层:提供用户与网络间的接口.----HTTP.FTP.SMTP 运输层:进程到进程间的数据传输.---TCP.UDP 网络层:主机到主机之间的数据传输.---IP.选路协议 数据链路层:相邻结点之 ...
- 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造
在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...
- linux OSI七层模型、TCP/IP协议栈及每层结构大揭秘
学习Linux,就算是像小编我这样的小萌新,也知道OSI模型.什么?!你不知道!!! 好吧,这篇秘籍拿走,不谢~~~ 一.两个协议 (1)OSI 协议模型(7层)国际协议 PDU:协议数据单元对 ...
随机推荐
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 本章节你将学到: SP中工作流的新功能: 理解工作流管理服务 ...
- 地图之CLLocationManager的使用 定位功能使用
1.iOS8曾经使用CLLocationManager 1.导入头文件 <CoreLocation/CoreLocation.h> 2.创建位置管理者 CLLocationManager ...
- 【Excle数据透视】如何用含有单元格的数据来创建数据透视
取消合并单元格,填充相同内容项,然后创建数据透视表. 如下图:需要使用数据创建数据透视表 步骤一 开始→格式刷,然后对单元格区域G2:G15使用格式刷功能,保留合并单元格格式 步骤二 选中A2:A18 ...
- C# Excel
using System.IO;using System.Text;namespace iLIS.Common{ ///<summary> ///生成Excel文档内容 /// 存入工作流 ...
- IDEA小技巧-随时更新
© 版权声明:本文为博主原创文章,转载请注明出处 1.设置删除一行快捷键 File->Settings->keymap->Delete Line 2.设置代码提示快捷键 File-& ...
- 为备考二级C语言做的代码练习---辅导资料《C语言经典编程282例》--(1)
因为二级考试的时候用的C语言编译器是VC++6.0 真是日了狗了 用这个编译器 这是我第2个C编译器吧,第一个用的是啊哈C编译器..第二个是VS++6.0 然后在win下用VS2013感觉挺不错的 毕 ...
- java 表示当前时间的第二天的几点
Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.DAY_OF_YEAR, 1); ...
- c++引用返回值
引用作为函数的返回值时,函数的返回值能够理解为函数返回了一个变量(事实上,函数返回引用时,它返回的是一个指向返回值的隐式指针),因此,值为引用的函数能够用作赋值运算符的左操作数.另外,用引用返回一个函 ...
- YARN/MRv2 中基本术语介绍
YARN/MRv2是下一代MapReduce框架(见Hadoop-0.23.0),该框架完全不同于当前的MapReduce框架,它在扩展性,容错性和通用性等方面更出色,据统计,Yarn有超过15000 ...
- ubuntu系统安装好后一些基本软件的安装
preface: 由于某些原因重装了系统,原来在ubuntu下安装的一些软件又要又一次安装.稍微麻烦,整理下须要安装的步骤. #==================================== ...