TCP/IP协议族之链路层(二)
TCP/IP学习记录,如有错误请指正,谢谢!!!
TCP/IP协议族之链路层(二)
链路层是最底层协议,主要有三个目的:
1. 为IP模块发送和接收IP数据报
2. 为ARP模块发送ARP请求和接收ARP应答
3. 为RARP发送RARP请求和接收RARP应答。
TCP/IP支持多种不同的链路层协议,这取决于硬件。如:以太网、令牌环网、FDDI(光纤分布式数据接口)及RS232串行线路等。
以太网链路层协议
以太网这个术语一般指数字设备公司(Digital Equipment Corp.)、英特尔公司(Intel Corp.)和Xerox公司在1982年联合公布的一个标准,是当今TCP/IP采用的主要局域网技术,采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection),速率为10Mb/s,地址为48bit。
串行接口链路协议(SLIP: Serial Line IP 和PPP: Point to Point Protocol)
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地址。
2. 数据帧中没有类型字段,如果一条串行线路用于SLIP,那么它不能同时使用其它协议。
3. 没有在数据帧中加上校验和,如果出错只能通过上层协议来发现。
PPP修改了SLIP的缺陷,包括以下三部分
1. 在串行链路上封装IP数据报的方法。PPP既支持数据为8位和无奇偶检验的异步,还面向比特链接。
2. 建立、配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。
3. 针对不同网络层协议的网络控制协议(NCP: Network Control Protocol)体系。当前RFC定义的网络层有IP、 OSI网络层、 DECnet以及AppleTalk。
PPP数据帧格式
每一帧都以0x7e开始和结束,紧接着一个地址字节,值始终是0xff,然后是一个值为0x03的控制字节,接下来是协议字段,0x0021表示信息是一个IP数据报,0xc021表示信息是链路控制数据,0x8021表示信息是网络控制数据。CRC字段是循环冗余检验码。
由于标志字符的值是0x7e,字段出现该字符时需要转义,具体过程如下:
1. 当遇到0x7e,需连续传送两个字符:0x7d和0x5e,实现标志转义。
2. 当遇到0x7d,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。
3. 默认情况下,如果字符的值小于0x20(比如,一个ASCII控制字符),一般都要进行转义。(例如,遇到字符0x01时需连续传两个字符0x7d 和 0x21(这时正好是0x01第六个比特取补码后变为1,而前面两种情况均把它变为0)。
PPP较SLIP的优点
1. PPP支持在单根串行线路上运行多种协议,不只是IP协议。
2. 每一帧都循环冗余检验。
3. 通信双方可以进行IP地址的动态协商(使用IP网络控制协议)。
4. 与CSLIP相似,对TCP和IP报文首部进行压缩。
5. 链路控制协议可以对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加3个字节。
最大传输单元MTU
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节,链路层这个特性称作MTU。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU不大,那么IP层就需要进行分片,把数据报分成若干片,这样每一片都小于MTU。
TCP/IP协议族之链路层(二)的更多相关文章
- Android网络编程系列 一 TCP/IP协议族之链路层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RA ...
- Android网络编程系列 一 TCP/IP协议族之网际层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 网际层包括:IP.ICMP.IGMP 以及处在网际层实际工作在链路层的 ARP 和 RARP等等协议. 1.IP协议 互联网 ...
- TCP/IP协议学习(六) 链路层详解
学习知识很简单,但坚持不懈却又是如此的困难,即使一直对自己说"努力,不能停下"的我也慢慢懈怠了... 闲话不多说,本篇将讲述TCP/IP协议栈的链路层.在本系列第一篇我讲到,TCP ...
- Android网络编程系列 一 TCP/IP协议族之传输层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 传输层中有TCP协议与UDP协议. 1.UDP介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,U ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- 网络基础之TCP/IP协议族
一.TCP/IP协议族 1.什么是协议? 计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等.而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议. 协议中存在各种各样 ...
- OSI模型和TCP/IP协议族(三)
TCP/IP协议族 TCP/IP协议族的开发要比OSI模型更早,因此TCP/IP协议族的分层结构无法准确地与OSI模型一一对应.原始的TCP/IP协议族定义为建立再硬件基础上的四个软件层,不通过目前T ...
- <TCP/IP原理> (二) OSI模型和TCP/IP协议族
1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...
- TCP/IP知识总结(TCP/IP协议族读书笔记二)
接下来,总结一下网络层的协议,IP,ARP,RARP,ICMP,IGMP.当我们在网络传输的过程中,把分组交付到主机或路由器需要两级地址:物理地址和逻辑地址.而且我们需要能够把物理地址映射成为相应的逻 ...
随机推荐
- ArcGIS DataStore手册——入门篇
第一章:ArcGIS DataStore入门 1.ArcGIS DataStore简介 ArcGIS DataStore是ArcGIS10.3推出来的一个全新的组件,它是一个关系型数据库管理系统,用于 ...
- Java中由Calendar类获取的月、天和小时的简单处理
在Java中,Calendar是日期处理的一个重要的类.但是,我们使用Calendar获取的月份,天,小时等可能需要进行简单的处理才能满足我们的需要.比如,月份范围是0-11,而我们可能需要的是1-1 ...
- 排序算法积累(2)----sort排序
转载:http://blog.csdn.net/sunshangjin/article/details/40296357 想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数so ...
- webpack2-webpack.config.js配置
写在前面: 了解更多:https://github.com/miaowwwww/webpack-learn 贴一个webpack.ocnfig.js 的配置属性表 一.代码分割: 1.插件 Comm ...
- $.on()方法和addEventListener改变this指向
jQuery $.on()方法和addEventListener改变this指向 标签(空格分隔): jQuery JavaScript jQuery $.on() jq的绑定事件使用$([selec ...
- np.arrange用法
np.arange()经常用,其用法总结如下: np.arange(0,60,2) 生成从0到60的步距为2的数组,其中0为初始值,60为终值,2步距, np.arange(60) 生成从0到59的默 ...
- January 22 2017 Week 4 Sunday
Dare and the world always yields. 大胆挑战,世界总会让步. Try it if you dare. If you want to change, if you wan ...
- Intellij IDEA Organize Imports
使用Eclipse进行开发时,我喜欢用Ctrl + Shift + O快捷键管理Java类的导入,它可以导入所需的Java类,去除不需要的Java类. Eclipse的Organize Imports ...
- 警告: Request method 'POST' not supported的原因之一
警告: Request method 'POST' not supported是经常遇到的,这里记录一下我经常遇到的一种情况,以免忘记. 我使用拦截器拦截所有请求,然后列出不拦截的请求.有时候由于自己 ...
- 绘图、Core Animation与硬件架构
原文地址:http://blog.csdn.net/wzzvictory/article/details/11180241 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wan ...