精华内容
下载资源
问答
  • TCP协议是TCP/IP体系中一个非常复杂的协议,在4/5/7层网络模型中属于传输层的协议,主要有以下几个特点: 1.面向连接:通信双方在传输数据之前必须通过三次握手建立连接,数据传输结束需要经过四次挥手来关闭连接...

    1.TCP协议简介

    TCP协议是TCP/IP体系中一个非常复杂的协议,在4/5/7层网络模型中属于传输层的协议,主要有以下几个特点:
    
    1.面向连接:通信双方在传输数据之前必须通过三次握手建立连接,数据传输结束需要经过四次挥手来关闭连接。
    
    2.提供可靠的交付:满足四个要求。无差错、无丢失、无重复、无失序
    
    3.基于字节流:这一点挺重要,与UDP的面向报文不同,TCP的传输是基于字节流	的。
    在4/5层网络模型中传输层的上层是应用层,应用层的传递是报文,所以TCP这一特性将会导致,
    无法保留应用层的报文段原有边界。不管应用层传递的报文长度有多长,TCP都将会以字节为单位按序存储在TCP缓存中,
    等待合适的机会将其发送出去。每次以多长的单位来发送数据则由发送窗口值以及拥塞窗口值来决定。
    UDP则不同,UDP发送的报文长度完全是由应用层进程决定的。
    下面插入一张TCP "基于字节流"的概念图(图1.1)来帮助大家理解。
    
    4.只支持一对一通信,不支持多播(Multicast)和广播(Broadcast)。TCP的每一条连接有且只有一条端点,是端到端的通信,因此TCP只支持一对一的通信,无法像UDP一样支持多播和广播的交互通信。介绍一个小知识点:端点指的是套接字,用于标识网络中的唯一一个进程,因此由ip地址跟端口号组成。
    
    5.全双工通信:一个TCP连接的两端的进程都允许发送数据和接收数据。各自都拥有发送缓存和接收缓存,发送缓存用于临时存放从应用层交下来的数据,接收缓存用于临时存放网络层交付上来的数据。
    
    TCP的应用挺广泛,应用层的HTTP、Talent、FTP、SMTP均是采用了TCP的连接。
    

    在这里插入图片描述 图1.1 TCP "基于字节流"的概念图

    2. TCP报文段的首部格式

    TCP报文段的首部包含固定部分和可选部分,固定部分长度是20字节,可选部分长度最多可达40字节。首部格式图如下:
    在这里插入图片描述
    首部固定部分如下(共占20字节):

     (1).源端口和目的端口各占16位,用于指定双方的端口号。
     (2).序号占32位,取值范围0-2的32次方 -1,用于标记发送方发送的每一个字节,序号可以循环使用。
     (3).确认号占32位,取值范围0-2的32次方 -1,用于标记期望收到的下一个字节的编号。
     (4).数据偏移占4位。该字段表明了报文段中数据部分距离报文开始位置有多长,也就是指明了报文中首部的长度,该字段中每一个"1"值代表4字节,
     而报文段最小头部长度为20字节,所以数据偏移的取值最小为5,TCP报文的头部最大取值为60字节,因此数据偏移最大的取值为15。在报文段头部中固定部分占20字节,所以可选部分(选项和填充部分)最大长度为40字节。
     (5).保留占6位,作为保留目前未使用,置为0.
     (6).控制位占6位,分6种类型。
     	*URG(URGent,紧急):当URG=1时,表示报文中有紧急数据,紧急数据的大小由后面的紧急指针字段指定,因此这两个字段需要配合使用。TCP会将紧急数据插入到发送缓存即将要发送的数据之前,无需排队。
     	*ACK(ACKnowledgment,确认):当ACK=1时,确认字段有效,TCP规定建立连接之后,所有的报文段中ACK置为1。
     	*PSH(PuSH,推送):当PSH=1时,发送方的TCP会立即创建一个报文段发送出去,同时接收方收到PSH=1的报文段时会立即将其交付到上层的应用层,无需等待合适的时机。
     	*RST(ReSet,复位):有两种情况RST会置为1:主机崩溃等原因造成TCP连接出错,用RST释放原先连接并建立一个新的连接;拒绝一个非法的TCP报文段或拒绝打开或释放一个连接。除此之外RST都置为0。
     	*SYN(SYNchronization,同步):同步位SYN用于建立连接的过程,无论是连接建立的请求或是接收报文段都需要将SYN置为1。
     	*FIN(FINis,终止):终止位FIN用于TCP释放连接的过程。由于连接建立之后,无论哪一方都可以发送请求,所以释放连接也需要两个方向。不管哪一个方向释放连接,FIN都置为1,只要FIN=1,将消耗一个序号。
     (7).窗口占16位,取值范围0-2的16次方 -1, 单位是字节。该字段用于告诉发送方自己的接收窗口值的大小,该字段是随着缓存窗口的大小而动态变化的,下面会有详细的讲解,暂时大体介绍一下。
     (8).检验和占16位, TCP首部校验和计算三部分:TCP首部+TCP数据+TCP伪首部,用于TCP差错检测,伪首部共有12字节,包含IP首部的一些字段,有如下信息:32位源IP地址、32位目的IP地址、8位保留字节(置0)、
     8位传输层协议号(TCP是6,UDP是17)、16位TCP报文长度(TCP首部+数据)。 伪首部是为了增加TCP校验和的检错能力:通过伪首部的目的IP地址来检查TCP报文是否收错了、通过伪首部的传输层协议号来检查传输层协议是否选对了。
     (9).紧急指针占16位,需要配合URG紧急位,在URG=1时有效,支出紧急数据的字节数。
    

    3. TCP可靠传输的实现

    1.滑动窗口机制介绍:

    a.TCP是面向字节流的,因此TCP双方各自维护一个以字节为单位的滑动窗口,用来保证双方的收发一致性。假设滑动窗口的大小是20字节,则表示一次只允许发送或接受20字节。
    
    b.如果不存在滑动窗口机制,发送方就不知道接收方的容纳能力,如果接收方的接收缓存已经满了,存储了部分字节数据未及时向应用层发送,而此时发送方并不清楚,还会一直发送数据给接收方,接收方此时无法接收数据,数据包将会丢失,造成网络资源的浪费。
    第二点,网络中存在很多主机,在同一时刻存在很多TCP连接,如果所有的发送方都可以无限制的发送数据,会导致同一时刻有大量的报文段涌入网络中,从而形成网络的堵塞,所以窗口机制非常有必要,如图2.2所示是窗口值的交互。
    
    c.图2.2可知发送方发送完报文段之后需要等待接收方的确认,如果因为网络原因发送方没有收到接收方的确认会一直等待,不进行下一次数据的发送,这样就会形成死锁,解决办法是重传计时器机制,TCP的发送方会设置一个定时器,超过限定的最大时延会重传报文,
    重传超时时间(RTO),RTO一般设定为比一次交互往返时间(RTT)多一些。
    
    d.如果接收方的窗口值很大,但是发送方发送时机不合适,导致每次只有少量数据需要发送,这会倒是传输效率极低,解决办法是Nagle算法,发送方接收到应用层的数据之后放入缓存,先发送一个一字节的报文试探网络拥堵,在收到一字节报文确认之后再将缓存中数据组装成一个TCP报文(MSS长度)发送出去,
    -利用了一个往返交互来让发送方积累足够的字节数据。
    
    e.如果接收方的窗口值rwnd很小,则发送方每次发送很小的数据,这一现象成为”糊涂窗口综合征",解决办法:禁止发送方发送只有一字节的窗口通知,让接收方等待一会儿,知道接收缓存的空闲空间足够接收一个最大长度的报文段或达到缓存空间的一半,再通知发送方发送窗口报文。保证传输效率。
    

    图2.2窗口控制示例图3.1.1窗口控制示例

    2.序号和确认号机制

    a.TCP是面向字节流传输而非面向报文,因此对于应用层交下来的数据,TCP会对其进行拆分或者合并。TCP的序号和确认号机制是实现可靠传输服务的保障。
    
    b.TCP一次发送多少数据是由很多因素决定的,比如发送缓存已占用空间、最大报文段长度MSS,发送窗口接收窗口的大小等。
    
    c.发送方进行数据发送时会消耗一个序号,也就是该批次数据中字节序号最小的,接收方收到数据之后,确认位ACK置为1,回发一个确认字号ack,
    用于标识接下来需要接收的开始序号,如图3.2.2所示。
    

    在这里插入图片描述 图3.2.2序号和确认号机制

    3.重传计时器机制

    	a.TCP对发送的每一个报文都设定一个计时器来限定报文发送的最大时延(RTO),超过RTO没有接收到确认就会重发该报文,当然重发的报文 如果是接收方已经收到了,就会丢弃,不会导致接收方报文重复的问题。
    	
    	b.超时重传时间RTO的确定,由往返时间(RTT)决定,通常RTO比RTT多一些。
    

    RTO的计算步骤:

    在这里插入图片描述

    4.流量控制

    接收流量控制:

    a.接收流量控制的目的是为了控制发送方的发送速率,是的接收方来得及接收。
    
    b.发送缓存用于接收应用层的数据,进行分组合并等转为字节流存入发送缓存中,但并不是发送缓存中的数据都会被发送,
    最终决定发送什么数据是由发送窗口决定的,发送窗口中存在两部分数据,一部分是已发送等待确认的,一部分是未发送的。
    我们只需要控制发送窗口的大小就能控制流量,而控制发送窗口的是由接收方来决定的。
    
    c.接收缓存中存储了已经接收的数据,由于应用层的处理能力的限制,接收缓存中的数据可能存在很多滞留,导致接收窗口的空间被压缩,
    如果此时继续接收大量数据会造成丢失。因此接收方需要与发送方进行沟通,将接收方的窗口大小告知发送方,随时调整发送的数据量,
    换句话说,只要保证接收方的接收窗口不小于发送方的发送窗口就实现了流量的控制。
    

    网络流量控制(即拥塞控制):

    a.前面介绍的接收流量控制属于一对TCP连接的端到端的问题,属于局部。对于整个网络而言存在大量的TCP连接,因此也存在拥塞控制,目的是防止过多的数据涌入网络造成网络拥塞,这是全局的问题。
    
    b.RFC2581对TCP的拥塞控制提出了四种算法:慢开始(Slow-Start)、拥塞避免(Congestion Avoidance)、快重传(Fast Retransmit)、快恢复(Fast Recovery)
    
    c.拥塞窗口(cwnd)是发送端根据网络拥塞决定的窗口值。接收窗口(rwnd)是接收方的接收能力。
    发送窗口的上限=min{rwnd,cwnd}
    d.传输轮次:假设传输轮次n的cwnd=m,则传输轮次所经历的时间是将m个报文段全部发出去的时间,所有报文段发送确认总共花费时间。
    
    e.慢开始:慢开始算法是在第一轮次发送数据时,将cwnd置为1,发送一个报文段,每收到一个报文段将cwnd加1,一个轮次会发送多个报文段,每个报文段都会加1,因此为指数增长方式,只是开始慢,很快就会达到一个较高的值。因此引入了另外一种算法拥塞避免算法。
    
    f.拥塞避免算法:用于制止cwnd的指数增长方式,加入一个条件慢开始门限ssthresh,当cwnd<ssthresh时,采用慢开始算法,当cwnd>=ssthresh时,采用新的算法拥塞避免算法,该算法是将每个轮次的cwnd加1,不管改轮次多少报文段都只加1,是线性增长。
    新的cwnd的取值,本次cwnd<ssthresh慢开始算法,如果2*cwnd小于ssthresh则新cwnd取值2*cwnd,否则取值ssthresh;本次cwnd>=ssthresh拥塞避免算法,则新cwnd取值cwnd+1.
    仍然可能出现拥塞,如果出现拥塞将采用新的慢开始算法,此时ssthresh取值拥塞是cwnd的1/2。其他的照旧。
    
    g.快重传算法:前面两种算法可以有效的解决网络拥塞,但是存在一个问题。如何判断网络拥塞?发送端发送报文如果确认报文迟迟未收到,即触发了超时,发送端超时计时器实现。
    举例:发送方发送了按序m1,m2,m3,m4,接收方没收到m3,收到了m1,m2,m4。m1,m2发送了确认报文,但是m4是失序的所以不确认依然发送m2确认报文,
    此过程中相继收到了m5,m6,所以网络没有堵塞只是m3缺失,如果此时m3依然在发送缓存中排队,时间一长会触发超时机制,超时机制触发网络拥塞,导致慢开始算法的启动,很糟糕。。
    快重传算法就是解决这个问题避免触发超时,只要发送方收到对同一报文的三个确认将会立即重发该报文,不必等待。如图4.1快重传示意图
    
    h.快恢复算法:如g所示,在传输的过程中出现了m3的丢失,虽然不是网络拥塞但是这个问题也不能小觑,一定是存在网络问题才导致的报文段丢失,所以只要出发快重传算法就会出发快恢复算法,
    此时快恢复算法是为了稳妥而产生的,将慢开始门槛ssthresh调整为上面第三次报文确认时cwnd的1/2,将下一轮的cwnd调整为新的ssthresh,之后开始进入拥塞避免算法阶段。如图4.2快恢复示意图。
    

    在这里插入图片描述图4.1快重传示意图

    在这里插入图片描述图4.2快恢复示意图

    至此TCP协议的基础知识就写完了,涵盖面非常广里面有很多小知识点,纯手打!!下篇文章仔细的讲解TCP三次握手,四次握手/四次挥手/两个二次握手

    展开全文
  • HTTP协议是基于请求响应的协议,那么在传输中就会有标识等,像其他协议一样,HTTP协议也有属于自己的报头,因为它是基于请求响应的,所以报头分为请求报头,响应报头。 以下就是请求报头与响应报头的格式: 在请求...

    <start>

    在TCP/IP协议栈中,HTTP协议处于应用层,它在最顶层进行数据报转发给应用进程,它是最靠近用户的那一层。它的默认端口号为80。

    HTTP协议是基于请求响应的协议,那么在传输中就会有标识等,像其他协议一样,HTTP协议也有属于自己的报头,因为它是基于请求响应的,所以报头分为请求报头,响应报头。

    以下就是请求报头与响应报头的格式:

    在请求报头中分三到四部分,因为正文部分可能是没有的,但是前三部分是一定存在的。在请求行中,分为请求方法,url,http版本号三部分。请求方法有很多种,但是在当前很多浏览器中支持最广泛的就是GET/POST这两种方法。

    url 叫做统一资源定位符,用来表示从因特网上得到的资源位置和访问这些资源的方法。

    空行是报头与有效载荷分隔的符号,必须存在。

    正文则是根据请求方确定。

    响应报头主要分为状态行,响应报头,空行和响应正文四部分,与请求报头相似,响应正文也可存在可不存在。

    状态行分为HTTP版本号,状态码,以及状态码解释。目前常用的版本号为HTTP/1.1,状态码则分为五类,

    1XX,2XX,3XX,4XX,5XX。404很常见,它表示请求的资源无法找到,通常显示为Not Found。而这个Not Found就叫做状态码解释。

    空行同样是响应报头与有效载荷的分隔符。

    HTTP协议定义了浏览器如何向www服务器请求文档,以及服务器如何把文档传送给浏览器。HTTP报文通常使用下层的TCP次协议连接传送。它本身是无连接的,虽然使用了TCP连接,但是在每次发http报文之前不需要建立连接,并且它是无记录的,每次发送都需要重新建立连接,由此非常浪费时间与资源,因此发布http/1.1版本,它使用持续连接,保持服务器在发送响应的一段时间后能够保持这条连接。

    比较重要的一点是需要弄清当在链接栏输入一个域名或者IP地址点击回车之后发生了哪些事情。

    • 首先浏览器会解析链接栏里的URL
    • 浏览器请求DNS服务帮忙解析URL的IP地址
    • 当DNS解析出IP地址后就会返回给浏览器
    • 浏览器会对该IP地址的服务器提出 建立TCP连接
    • 服务器同意建立,浏览器发出HTTP请求,告诉对方我要以什么方式取什么资源
    • 服务器同意请求并给出响应,将资源发送给浏览器
    • TCP连接关闭
    • 浏览器将正文显示给用户

    这一大串看起来繁琐的动作就是在点击浏览器之后后台所做的一切。

    理解还需进一步加深,才能更好的理解浏览器一起服务器的工作方式。

    <end>

    展开全文
  • ICMP(INTERNET CONTROL MESSAGE PROTOCOL,网络控制报文协议),经常在一些计算机网络面试和笔试中遇到,下面我们就看看技术之瞳上... A、应用层 B、网络层 C、数据链路层 D、传输层 分析:  ICMP协议是TCP/IP协议

      ICMP(INTERNET CONTROL MESSAGE PROTOCOL,网络控制报文协议)经常在一些计算机网络面试和笔试中遇到,下面我们就看看技术之瞳上两道关于ICMP的笔试题。

      技术之瞳 阿里巴巴技术笔试心得习题2.2:
      TCP/IP模型体系结构中,ICMP协议属于(B)
      A、应用层 B、网络层 C、数据链路层 D、传输层

      分析:
      ICMP协议是TCP/IP协议族的一个子协议,协议号为1,封装在IP报文内部的,一般不把其作为高层协议。它一般用于IP主机和路由器之间传递控制消息,通过 IP 包传送的 ICMP 信息主要用于涉及网络操作或错误操作的不可达信息。 ICMP 包发送是不可靠的,所以主机不能依靠接收 ICMP 包解决任何网络问题。
      ICMP不象TCP或UDP有端口,但它确实含有两个域:类型(type)和代码(code)。而且这些域的作用和端口也完全不同。Ping用到的是ICMP协议,不是端口。
      由于它封装在IP报文中,很显然属于网络层。

      技术之瞳 阿里巴巴技术笔试心得习题2.3:
      以下对网际控制协议(ICMP)描述中正确的是(ACD)
      A、ICMP封装在IP数据报的数据部分
      B、ICMP消息的传输是可靠的
      C、一般不把ICMP作为高层协议,而只作为IP必需的一个部分
      D、ICMP一般用于在Internet上进行差错报告

      分析:
      只有B选项是错误的,ICMP消息的传输是不可靠的,其它选项看第一题的分析描述。

    展开全文
  • 蓝牙协议栈及HCI三线串口传输控制

    千次阅读 2010-07-05 15:56:00
    其中Transport Layer(UART/USB)层以下的协议通常都由蓝牙芯片集成,而传输层以上的协议则视芯片的不同而有所不同,以此原则蓝牙芯 片分成了以下几种:TI公 司的蓝牙芯片BRF6150属于右边的芯片,所以其高级应用的...

    蓝牙协议包括多层协 议栈,如下图。

     

    其中 Transport Layer UART/USB )层以下的协议通常都由蓝牙芯片集成,而传输层以上的协议则视芯片的不同而有所不同,以此原则蓝牙芯 片分成了以下几种:

     

    TI 公 司的蓝牙芯片 BRF6150 属于右边的芯片,所以其高级应用的软件工作量将会较大,控制核心的程序需要实现高层的协议,要达到 很好的兼容性有难度。但如果要作专用的蓝牙设备,则可以去除大部分复杂的协议,降低成本。

    底层模块是蓝牙技术的核心模块,所有嵌入蓝牙技术的设备都必须包括底层模块。它主要由链路管理层 LMP Link Manager Protocol )、基带层 BB Base Band )和射频 RF Rodio Fraquency )组成。其功能是:无线连接层( RF )通过 2.4GHz 无需申请的 ISM 频段,实现数据流的过滤和传输;它主 要定义了工作在此频段的蓝牙接收机应满足的需求;其带层( BB )提 供了两种不同的物理链路(同步面向连接路 SCO Synchronous Connection Oriented 和异步无连接链路 ACL Asynchronous Connection Less ),负责跳频和蓝牙数据及信息帧的传输,且对所有类型的数据包提供了不同层次的前向纠错码 FEC Frequency Error Correction )或循环沉余度差错校验 CTC Cyclic Redundancy Check ); LMP 层负责两个或多个设备链路的建立和拆除及链路的安全和控制,如鉴权和加密、控制和协商基带包的大小 等,它为上层软件模块提供了不同的访问入口;蓝牙主机控制器接口 HCI Host Cntroller Interface )由基带控制器、连接管理器、控制和事 件寄存器等组成。它是蓝牙协议中软硬件之间的接口,提供了一个调用下层 BB LM 、状态和控制寄存器等硬件的统一命令,上、下两个模块接口之间的消息和数据的传递必须通过 HCI 的解释才能进行。 HCI 层 以上的协议软件实体运行在主机上,而 HCI 以下的功能由蓝牙设备来完 成,二者之间通过传输层进行交互。

    下文仅对 BRF6150 HCI 传输层的控制作一阐述。

    三线 UART 传输层用于实现主机和蓝核 之间的数据传输,该层只是数据流经的通路,进行 HCI 命令、事件、 ACL 、同步数据包传输,不对数据流进行任何的编解码。文档内容主要包括 SLIP 层、帧头、数据完整性检验、可靠包、错误包、链路建立、电源控制、帧溢出控制、硬件配置、推荐参数等 几部分内容。

    数据包的建立是分两步实现的,第一是给每个 HCI 数 据包加一个头,表示数据包的有效载荷,接着将数据包按 SLIP 协议进行构建。 SLIP 层将不可靠的字节数据流转化为不可靠的包数据流,它在每个包的开头和结尾加一个字节 0xC0 ,同时将数据包中的 0xC0 转 化为 0xDB 0xDC 两个字节,将包内的 0xDB 转 化为 0xDB 0xDD 。解码过程可以想象。

    每个包有 4 个字节的包头

    //序列码 3//确认码 3//数据完整性校验 1//可靠包1//包类型4//有效载荷 12//

     

    当是不可靠包时,发送时序列码为 0 ,接收 时忽略。每个新的可靠包的序列码都等于前一个可靠包的序列码 +1 ,重新传输的数据包将用上次的 序列码。

    确认码必须被设置为下一个将接收到的可靠包的序列码。

    当一个 16bit CCITT_CRC 数据完整性校验被附加在有效载荷之后时,这一位置 1

    可靠包位为 1 ,则序 列码和包内数据有效,接收端必须确认接收到的数据,为 0 相反。

    UART 传 输层可以传输 4 HCI 包,分别是 HCI 命令包、 HCI 事件包、 HCI ACL 数据包、 HCI

    同步数据包 HCI 命令包只能由主机发往蓝牙设备, HCI 事 件包只能从蓝牙芯片发出,其它两个包则是双向的。 HCI 包译码无法区分这 4 种包,所以采用包类型来区分。包类型数据对应如下图。

     

    HCI 命令包、 HCI 事 件包、 HCI ACL 数据包总是作为可靠包传输。 HCI 同 步数据包只有当 HCI 同步流控制打开时才作为可靠包传输。

    有效载荷是包内有效数据,不包括包头和完整性校验数据。

    头校验是可选的,规则较复杂,还晕。

    可靠包:

    主机和蓝牙都有检测包内数据是否正确的规则,包头和校验、 SLIP 有效载荷校验(数据个数为去掉 0xC0 , 并将 0xDB 0xXX 转换后的个数)、数据完整性校验(可选)、无序包校验。

    当可靠包被接收后,必须进行确认。当一个包准备好发出时,该包的确认码应当是最近预期的数值,若有预 期要求发送确认码,但没有数据包需要发送,则设备可以发送一个确认包,确认包是不可靠包,包类型、有效载荷数据、序列码都设为 0 。一个可靠包只有在确认后才可以再发送。

    非可靠包:

    要传递非可靠包必须遵循一定的规则。非可靠包的包头的可靠包位、序列码应当是 0 ,其它的与可靠包一样设置。非可靠包若无效则将被忽略。

    链路建立:

    链路建立必须先被执行,以保证序列码、波特率、以及芯片被正确设置。链路建立是通过包含未初始化、已 初始化、激活三种状态的状态机实现的。第一次传输之前链路是出于未初始化状态,需要 4 条信息 来建立,蓝牙设备在未初始化状态下只发送 SYNC 信息,不管收到任何信息都被忽略, 然后回复 SYNC ,直到收到 SYNC RESPONSE 后进入已初始化状态,已初始化状态蓝牙设备周期发送 CONFIG ,若收到 SYNC 信息则回复 SYNC RESPONSE ,若收到 CONFIG RESPONSE 后进入激活状态,这 4 条信息 数据完整校验标志应设为 0

    进入激活状态后,若收到 CONFIG 信息则回复 CONFIG RESPONSE ,收到 CONFIG RESPONSE 则忽略。若收到 SYNC 则 认为对应设备被复位,则复位自身的上层协议栈并进入未初始化状态以重启链路建立过程。在激活模式下,第一个包的序列码和确认码应当是 0 。这 4 种信息的包格式都是 15

    电源控制:

    蓝牙设备进入激活模式后,任何一方都可能需要进入节能模式,这种情况下,可以采用链路控制包来相互通 知。节能模式下操作包括睡眠、叫唤、已醒三个信息。三者之间的关系可以想象。

    帧溢出控制:

    SLIP 数据流中的 SLIP ESCAPE 参数之后可以加入软件流控,这是在链路配置信息中可商议选择的。软件流被使能后,标准的 XON/XOFF 0x11/0x13 )将会被用来控 制数据的流通,而数据包中的 0x11 0x13 将会用 0xDB 0xDE 0xDB 0xDF 代替(设计中应 该不用)。如果流控制没有被使能的话,则 0x11 0x13 不需要被转换。流控应该由类似 HCI 流 控的通道协议提供,采用标准的序列码、确认码。

    硬件配置:

    硬件连接与普通串口没有不同,如果采用硬件流控,则可以将 RTS CTS 信号加入。

    推荐参数:

    时间上的参数与波特率相关,确认、重新发送等必须在合适的时间进行。

    附录:

    L2CAP Logical Link Controller and Adaptation Protocol. This protocol supports higher level protocol multiplexing, packet segmentation and reassembly,and the conveying of quality of service information. 即:逻辑链路控制及适配协议,该协议支持高层协议多路,包分割和组合,以及服务信息 的品质传输。 是蓝牙协议栈的核心组成部分,也是其它协议实 现的基础。它位于基带之上,向上层提供面向连接和无连接的数据服务。它主要完成数据的拆装、服务质量控制、协议的复用、分组的分割和重组(Segmentation And Reassembly )及组提取等功能。L2CAP 允许高达64KB 的数据分组。

    ACL Asynchronous ConnectionLess: the links used by Bluetooth technology to send data. These links are also important to voice systems because SCO (voice) links can only be set up after an ACL (data) link has been set up between two devices to allow them to exchange control and configuration data. 即:异步无连接链路,是蓝牙用于发送数据的链路,只有在设备之间的 ACL (数据)链路建立起来传输控制和配置数据后, SCO (声音)链路才可以被建立。

    AFH Adaptive Frequency Hopping, an enhancement in the Bluetooth v1.2 adopted by the SIG in November 2003. AFH co-ordinates the frequency used by Bluetooth and other 2.4GHz radio devices such as WiFi, to reduce the likelihood of interference. 即频率适配,用于自动调整同频段的各个设备,以尽可能减少接口。

    SCO Synchronous Connection Oriented link. One of the 2 Bluetooth data link types defined.A synchronous (circuit-switched) connection for reserved bandwidth communications, e.g. voice, between two devices created on the LMP level by reserving slots periodically on a physical channel. This type of link is used primarily to transport SCO packets (voice data). SCO packets do not include a CRC and are never retransmitted. It primarily supports time-bounded information like voice. (Master to single slave.) SCO links can be established only after an ACL link has first been established. See also ACL. 面向同步连接链路,是基带层提供的两个数 据链路之一,一个用于两个设备间的保留的带宽通信如音频通信同步连接 是在 LMP 层的物理通路保留时间槽上创建的,(晕) 。这种链路主要用于传输 SCO 音 频数据包, SCO 数据包不包括 CRC 并 且不会被重新传输,它主要处理有时限的类似音频的信息。主对单从 SCO 链 路只有在 ACL 链路被建立以后才可以建立。

    eSCO extended Synchronous Connection Oriented channels, as specified in Bluetooth v1.2 (November 2003), are error checking voice channels that allow the retransmission of corrupted voice data. As data rates can be negotiated via eSCO, the overall high quality-of-service connection is improved. 面向扩展同步连接通道,用于重新传输被打断的音频数据,数据速率可以通过 eSCO 进行商议,从而提高连接可靠性。

    RFCOMM Serial Cable Emulation Protocol based on ETSI TS 07.10. 是一个仿真有线链路的无线数据仿真协议,符合ETSI 标 准的TS 07.10 串口仿真协议。它在蓝牙基带上仿真RS-232 的 控制和数据信号,为原先使用串行连接的上层业务提供传送能力。

    SDP Service Discovery Protocol. It is a Bluetooth defined protocol for provided for or available through a Bluetooth device. Essentially provides a means for applications to discover which services are available and to determine the characteristics of those available services. 服务发现协议,用于提供一种发现哪种服务可用及其特性的方法。

    HS Headset

    DUN Dial-Up Networking

    FHS Frequency Hopping Synchronization. This a special control packet revealing, among other things, the BD_ADDR and the clock of the source device. It contains 144 info bits and a 16-bit CRC code. The payload is coded with a rate 2/3 FEC which brings the total payload length to 240 bits. The FHS packet covers a single time slot. See also Bluetooth packet types.

    FHSS Frequency Hop Spread Spectrum: a modulations technique which spreads data across the entire transmission spectrum by transmitting successive data on different channels ("hopping").

    展开全文
  • IOS协议

    2016-09-09 18:24:34
    以下协议中,那个协议与其他协议是属于同一类() 正确答案: B 你答案: E (错误) FTP ICMP TELNET SMTP DNS 网络:IP协议、ICMP协议、ARP协议、RARP...
  • TCP/IP协议集与HTTP协议

    2017-06-28 09:42:16
    HTTP协议就属于TCP/IP协议家族中的一员 两台机器之间该如何通信呢,就需要制定各种各样的协议了 TCP/IP协议按照层次分为以下四层。应用层、传输层、网络层、数据链路层。一个层只负责一个层次的问题,如果出问题了...
  • http协议理解

    2019-09-14 07:00:56
    http属于TCP/IP中一员,TCP/IP协议是一个协议集合,统称为TCP/IP。TCP/IP协议族中有一个重要概念是分层,TCP/IP协议按照层次分为以下四层。应用层、传输层、网络层、数据链路层. IP协议作用在于把各种...
  • 基于C#http协议开发

    千次阅读 2012-05-09 16:05:55
    在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。浏览Web时,浏览器通过HTTP协议与Web服务器交换信息。这些信息(文档)类型格式由MIME定义。 HTTP协议具有以下的特点: HTTP按客户/服务器...
  • TCP 和 UDP 协议属于 TCP/IP 协议栈的传输层,应用程序之间的信息互通,它们功不可没,比如应用层的 HTTP 协议基于 TCP,DNS 协议基于 UDP。 TCP 协议为可靠的面向连接的协议,UDP 协议为不可靠的无连接的协议,为...
  • http协议详解

    2019-08-12 19:54:28
    HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式 HTTP主要有以下几个特点: 1. 支持客户端/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送...
  • TCP/IP协议

    2018-03-19 18:27:14
    通常使用网络(包括互联网)是在 TCP/IP ...TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。把 TCP/IP 层次化是有好处。比如,如果互联网只由一个协议统筹,某个地方需要改变设计...
  • TCP协议属于TCP/IP协议的传输层协议,有以下几个特点。 TCP是面向连接运输层协议。 每一条TCP连接只能点对点 TCP提供可靠交付服务 TCP提供全双工通讯 面向字节流。 TCP是面向连接的传输层协...
  • 1、什么是TCP/IP  我们HTTP协议就属于TCP/IP协议家族中一员,了解HTTP协议再整个网络流程中地位,也能更加充分理解HTTP协议。 TCP/IP协议是一个协议集合。...应用层、传输层、网络层、数据链路层。
  • HTTP协议简介

    2010-05-06 20:08:00
    在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。浏览Web时,浏览器通过HTTP协议与Web服务器交换信息。这些信息(文档)类型格式由MIME定义。 HTTP协议具有以下的特点: HTTP按客户/服务器模式...
  • 网络协议(三)UDP

    2017-04-14 20:56:17
    UDP(User Datagram Protocol):用户数据报协议属于传输层协议。 1、udp是无连接不可靠数据报协议。其具有以下特性: (1)无连接,即发送数据前不需要建立连接; (2)尽最大努力交付,即不保证可靠交付; ...
  • 什么是区块链 Layer 0 扩容

    万次阅读 2019-03-18 14:45:03
    根据互联网架构的 OSI 模型,网络协议分为以下 7 层。 在 OSI 模型中,1-4 层被称为底层协议,5-...进行端口间数据包传输的 TCP 和 UDP 协议属于第四层的传输层协议进行逻辑寻址的 IPv6 协议属于第三层的网络层。 ...
  • Internet控制信息协议(ICMP),在结构上是属于传输层的,但在实际的功能上它是属于网络层的,是IP层的组成部分。ICMP协议为IP数据报提供传输过程中遇到的路由和传送错误报告。 ICMP消息在以下几种情况发送:当数据...
  • Visual C# HTTP协议开发

    2012-04-01 14:56:11
    在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。浏览Web时,浏览器通过HTTP协议与Web服务器交换信息。这些信息(文档)类型格式由MIME定义。 HTTP协议具有以下的特点: HTTP按客户/服务器...
  • 目录数据链路使用点对点信道数据链路数据链路和帧数据链路层协议的三个问题封装成帧透明传输差错检测点对点协议PPPPPP协议特点PPP协议应满足需求PPP协议的组成PPP协议的帧格式各字段意义字节填充零比特填充...
  • canopen协议中文翻译版

    2017-09-13 21:37:29
    CANopen 支援网络管理、设备监控及节点间通讯,其中包括一个简易的传输层,可处理资料分段传送及其组合。一般而言数据链结层及物理层会用CAN来实作。除了 CANopen 外,也有其他通讯协定(如EtherCAT)实作 ...
  • 什么是FTP

    2019-10-05 21:13:29
    FTP(File Transfer Protocol,文件传输协议)是用于在网络上进行文件传输的一套标准协议,它属于网络传输协议的应用。它最主要功能是在服务器与客户端之间进行文件的传输。这个协议使用是明文传输。 FTP...
  • 数据链路层属于计算机网络。数据链路使用信道主要有以下两种类型: (1)点对点信道 (2)广播信道。 点对点信道常用点对点协议PPP。 数据链路和帧 “链路”和"数据链路"并不是一回事 链路:是从一个结点...
  • 1.客户端与服务器端链接建立: 1.1 客户端与服务器端通过http协议之间传输内容: ...http协议的传输经过 应用层/传输层/网路层/链路层 以下是http协议在传输报文时所经过过程: 报文传递过程: 1.IP协议的传递过程:
  • 网编

    2019-09-24 15:02:12
    一下哪些协议是应用层的协议 应用层 http https ftp snmp 传输层 tcp udp 四层路由器 四层交换机 网络层 ip 路由器 三层交换机 数据链路层 arp 交换机 网卡 物理层 面试 tcp和udp的区别 # tcp :面向连接的 可靠的 ...
  • 物理是TCP/IP协议的最底层,但并不意味着这一是实体,不是指具体的传输媒体,物理要尽可能屏蔽掉不同传输媒体和通信手段差异,为它上层提供数据通讯服务 数据通信基础知识 信道 信道和电路并不一样,...
  • TCP/IP家族小秘密

    2019-03-04 16:51:30
    TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。 应用层:应用层决定了向用户提供应用服务时通信活动。 传输层:提供处于网络连接中两台计算机数据传输。 网络层:规定路径,运输...
  • 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛一种网络... TCP/IP 协议族里重要一点就是分层,按层次分为以下4层:应用层、传输层、网络层 、数据链路层。  层次化好处是,各...
  • C2C 2以下属于?B2B?模式的是 多选 A?销售方控制的?B2B B?购买方控制的?B2B C?中间商控制的?B2B D?第三方控制的 B2B 3TCP?和?IP?分别属于 的协议 A?网络层传输层 B?网络层网络层 C?传输层网络层 D?传输层传输层 4以下...
  • JAVA 网络编程

    2018-11-26 15:23:23
    TCP/IP协议族按层次分别分为以下四层:应用层、传输层、网络层和数据链路层。 应用层 应用层决定了向用户提供应用服务时通信活动 FTP(文件传输协议)、 http( 超文本传输协议)、 ssh(远程登录)、telnet ...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

以下属于传输层的协议是