`
kula
  • 浏览: 56214 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • highill: 在baidu上看了 HTML5与FLASH的斗争和前景分析.d ...
    html5和flash
  • interjc: 问题是html5的标准如何才能完全同意,不要到时候搞得群雄割据 ...
    html5和flash
  • evanmeng: 谷歌地图上早就可以利用点评网的数据显示某地周围的餐饮信息。但我 ...
    openapi 简介

tcp/ip详解 卷一 读书笔记 01

    博客分类:
  • soft
阅读更多
tcp/ip通常被认为是一个四层协议。
链路层
网络层
运输层
应用层

slip协议:serial line ip 协议.在串行线路上对ip数据包进行简单封装
协议格式:
一,slip协议定义了一个END特殊字符(0xc0),每段slip协议用END特殊字符开始(过滤噪音),
用END特殊字符结束.
二,如果ip数据包内存在END特殊字符(0xc0),用两个连续的字节0xdb和0xdc来取代
三,如果ip报文中存在ESC特殊字符(0xdb),用两个连续的字节0xdb和0xdd来取代
缺点
一,每一段都必须知道对方的ip地址,不能把自己的ip地址附加到协议中。
二,数据帧中没有类型字段,这样当一条线路使用了sip协议,无法使用其他协议
三,没有crc校验

cslip协议,压缩的slip协议。通过固化每一个tcp/ip分组数据帧的ip首部和tcp首部来实现压缩的目的

ppp协议:point-to-point protocal.点对点协议,用来改进slip协议的种种缺点.
分为三部分
一,在串型链路上封装ip数据报,即支持8位和无奇偶校验的异步模式,也支持面向比特的同步模式。
二,建立,配置及测试数据链路的链路控制协议(LCP:link Control Protocal),它准许通信双方进行协商,以确定不同的选项
三,针对不同网络层协议的网络控制协议(NCP:Network Control Protocal).

协议格式:
一,END字符(0x7e)开始 0x7e称为ppp协议的END字符
二,紧跟开始END字符的,是一个地址字节,值始终为0xFF
三,地址字节之后,是一个控制字节,值始终为0x03
四,接下来是协议字节。0x0021意味着ip数据包,0xC021意味着链路控制数据,0x8021意味着网络控制数据
五,信息体
六,CRC字段 循环冗余校验码
七, END字符(0x7e)结束

转义:
一,同步链路:
    通过一种称为比特填充(bit stuffing)的硬件技术来完成。
二,异步链路:
    特殊字符0x7d用作转义字符,当它出现在ppp数据帧中时,那么紧接的字符的第6个bit要取其补码,具体实现过程:
    1,当遇到字符0x7e时,需同时传递两个字符:0x7d和0x5e,以实现标志字符的转义。
    2,当遇到转义字符0x7d时,需连续传递两个字符,0x7d和0x5d,以实现转义。
    3,默认情况下,如果字符的值小于0x20,一般都要进行转义.(如控制字符)
优点:
一,ppp协议支持在单根串行线路上运行多种协议,不仅仅是ip协议。
二,每一帧都有循环冗余校验。
三,通信双方可以进行ip地址的动态协商。(使用ip网络控制协议)
四,能对tcp和ip报文首部进行压缩。
五,链路控制协议可以对多个数据链路选项进行设置。

最大传输单元MTU (Maximum Trasfer Unit)
链路层数据帧的长度有一个最大长度限制,这个限制被成为mtu.
如果数据帧长度大于mtu,就需要进行分片,使每一帧的数据包都小于mtu.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics