这两周我继续学习CCSDS协议栈中位于传输层较低位置的SCPS-TP协议,并且复习了TCP/IP体系中的TCP协议和UDP协议,通过学习和对比两个体系的协议,加深了我对SCPS-TP协议的认识和理解。

我们知道,无论是TCP/IP协议体系还是CCSDS协议体系,传输层都是非常重要的,他提供给上层可靠的传输性能,这些传输性能包括了差错控制、拥塞控制、重传机制等。尤其对于CCSDS体系中,数据链路层与网络层没有能够像TCP协议体系中那样拥有ARQ等类似的协议,也就是说,CCSDS协议体系中,传输层以下的底层协议提供给上层的仅仅是不可靠的,快速的传输性能(这与CCSDS协议环境有非常大的关系,我之前的总结提到过CCSDS主要用于空间传输,包括地面基站与卫星,卫星与卫星之间。他们的传输延时非常大)。所以,向应用层提供可靠传输的重任就在传输层上,而TP协议又是CCSDS传输层中关键的一环。

上次的总结中,我仅仅是通过通读协议后对一些印象深刻的点进行了描述,这次我讲从总体方面来说明TP协议。TP协议中主要描述了相当于TCP体系中的TCP协议和UDP协议。而从文章的篇幅来看,TP协议又主要针对了TCP协议,UDP协议在协议中只有一页纸。首先,我就简单介绍TP-UDP协议,CCSDS中的UDP协议,也是针对面向无连接不可靠的协议,协议提供一种快速的传输模式,它继承了所有TCP-UDP协议中的所有特性与方式。另外TP-UDP协议中还针对TCP-UDP协议进行了扩展,加入了优先级管理机制(通过网络层服务原语执行,即网络层的NP协议需要有为上层提供优先级管理的业务)。接下来,介绍TCP协议,在TP协议里,在最开头的地方强调了TP协议继承了大部分TCP协议的特性,并通过CCSDS协议的协议环境进行了适当的修改从而得到了TP协议。最重要的几点就是:

1) 连接管理:大家都知道,TCP协议是一种面向连接的传输协议,所以在进行可靠的端到端传输之前要进行连接建立,在传输结束之后要进行连接断开。在这里TCP协议执行的是3次握手的机制,而TP协议只是进行简单的应答机制来进行连接的管理,即2次握手。另外,在发送初始序列SYN时,TP协议增加了扩展功能域,扩展的这些功能能够在不同的环境下更好的进行服务。

2) 数据传输:这个方面,主要是向读者们介绍了TP协议是如何在数据传输的过程中处理乱序,错帧,重传等的问题(这些方面的文字是在标准协议TCP协议中找不到的内容,也就是针对于TCP协议修改的内容)。基本的内容介绍就是增加了传输过程中的几个极限参数,通过这些参数与系统定时器的配合来进行工作的(R1,R2,BE1,BE2)。

3) 错误恢复:与TCP协议的内容基本一致,关于拥塞控制的一些算法全部继承了TCP协议;但是在一些特殊情况中,他对算法进行了改进。

4) 其他:包括SCPS-TP 头部压缩:介绍了一些关于TP协议中头部压缩的内容和格式(为了节省传输带宽与时间)。多重传输前向纠错、SNACK选项内容(这个内容看完完全没看懂,不知道是干什么的。)

接下来两周的时间还需要对于TP协议的重点内容:连接管理,数据传输和错误恢复内容通过TCP协议的相关内容进行对比分析。加深理解。

                                                                        转:张宇

TP/TCP/UDP的更多相关文章

  1. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  2. TODO:Golang语言TCP/UDP协议重用地址端口

    TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...

  3. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.2

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  4. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.0.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  5. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  6. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  7. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  8. 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  9. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

随机推荐

  1. 数据恢复:AMDU数据抽取恢复

    今天我们通过一则真实的案例来认识oracle 自带工具AMDU,无需将磁盘组mount即可实现数据分析,轻松进行数据恢复.某日,我们收到了一则香港用户ASM破坏案例,请求数据恢复.灾难描述:这则案例是 ...

  2. Oracle体系结构之Oracle静态监听配置模板

    1.监听程序配置:[oracle@localhost admin]$ vim listener.ora# listener.ora Network Configuration File: /u01/a ...

  3. Python requests 301/302/303重定向(跨域/本域)cookie、Location问题

    今天使用request的get方法获取一个网站的登录页信息,结果使用charles抓包的时候发现该网站登录页303(重定向的问题),网上查了很多资料,原因如下: 一.cookie 原因:利用reque ...

  4. GET、POST编码问题

    GET请求.POST经常会出现中文乱码的问题,最好约定前后端的编码,一般为UTF-8.但是这里面也是有坑的. 后端设置编码为UTF-8的推荐方式: SpringMVC配置过滤器: <filter ...

  5. vue 中 命名视图的用法

    今天主要记录  vue中命名视图的用法 先奉上官网网址:https://router.vuejs.org/zh/guide/essentials/named-views.html 一般情况下,一个页面 ...

  6. 查看crontab的日志记录定位定时任务问题

    1.linux 看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察 2.unix 在 /var/spool/cron/tmp文件中,有croutXXX0 ...

  7. Biorhythms(中国剩余定理)

    http://shuxueshi.jie.blog.163.com/blog/static/13611628820104179856631/ 这篇博客写的很棒! #include<stdio.h ...

  8. spring用注解简化bean配置

    组件扫描: <context:component-scan base-package="com"/> 容器启动后如果发现配置文件有上面的标签会自动扫描对应的包及子包,如 ...

  9. random随机数应用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Twitter OA prepare: Two Operations

    准备T家OA,网上看的面经 最直接的方法,从target降到1,如果是奇数就减一,偶数就除2 public static void main(String[] args) { int a = shor ...