【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

现代数字通信技术让我们的生活发生了彻底地改变,而通信协议无疑是这一改变的始作俑者。硬件有自己的通信协议,比如pci总线、usb总线、i2c总线等等。软件也有自己的协议栈,无线的3gpp、gprs,有线的tcp/ip协议栈、atm协议等等。基于物理层的协议,很大程度是由芯片完成的,但是涉及到交换路由、数据传输、业务处理,则很大程度上是由软件负责的。协议栈看上去复杂,但是它所使用的技术都是一些基本技术,熟悉这些常用的技术和方法有利于我们在后面的开发中能够高效的利用这些协议。那么,下面我们就要看看,实现协议栈需要怎样的一些基本技术。

(1)状态机

状态机是协议栈使用最多的一种方法。当协议处于不同的状态的时候,就会对不同的报文内容作出不同的处理方法。

(2)定时器

计时器也是协议栈经常使用的方法。通常协议本身在某段时间内需要收到对端发送的响应报文,如果没有收到报文我们就认为通信失败。因此,我们完全可以通过设定定时器的方法,在一段时间之后判断当前的报文有没有发送成功。

(3)重发机制

因为网络的链路状态是十分复杂的,所以不同的协议对报文的响应时间是不同的。只要协议本身允许,一段时间内的重发都是可以的。

(4)校验和

为了验证报文在传输的过程中0和1没有发生改变,在报文中添加校验和也是十分必要的。这种校验方法很多,奇偶校验、crc校验都是可以的。当然,至于具体使用哪种方法需要根据rfc标准来判断。

(5)报文排序

在tcp/ip协议层中,ip层作用就是分片和路由的功能。我们知道有的时候发送的报文是很长的,所以有必要对这些报文进行排序处理。在传输中,我们需要确认所有的报文都能正确地得到传输和处理。

(6)字节序

x86的cpu是高地址高数据,而powerpc是低地址高数据。而报文中的内容需要的是低地址高数据,所以在处理的时候需要十分小心。

(7)其他的基本技术

7.1 互斥                                       传输涉及到多线程的设计

7.2 链表                                        链表是模块设计中的基本结构

7.3 最小生成树算法                      ospf中需要涉及到基本的图论算法

7.4 rfc标准                                   rfc是我们一切工作的准绳

7.5 开源软件                               开源软件可以帮助我们快速熟悉相关的开发工作

7.6 调试日志                               调试日志有助于我们对故障快速进行定位

随想录(协议栈的基本技术)相关推荐

  1. 2021年大数据ELK(一):集中式日志协议栈Elastic Stack简介

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.简介 二.ELK 协议栈介绍及体系结构 三.集中式日志协议栈 ...

  2. mac 思科 链路聚合_TCP/IP协议栈-之-数据链路层分析

    数据链路层 一.数据链路层的概述 1.1 概述 数据链路层是TCP/IP协议栈的第二层! 数据链路层的传输单元:帧(也就是传输单位) 1.2 帧结构 帧结构分析如下: 帧结构的构成:MAC子层 + 上 ...

  3. TCP/IP 协议栈4层结构及3次握手4次挥手

    TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输.TCP/IP 协议采用4层结构,分别是应用层.传输层.网络层和链路 ...

  4. Linux TCP/IP协议栈笔记

    数据包的接收 作者:kendo Kernel:2.6.12 一.从网卡说起 这并非是一个网卡驱动分析的专门文档,只是对网卡处理数据包的流程进行一个重点的分析.这里以Intel的e100驱动为例进行分析 ...

  5. 【124】排球基本技术

    排球基本技术 1.基本技术的概念 是指在规则允许的条件下,运用人体解剖和运动生物力学的原理,所采用的合理击球和完成击球动作的其他配合的总称. 2.排球技术的特点 (1)完成动作时间短促: (2)完成技 ...

  6. OSI七层 TCP/IP四层 TCP/IP协议栈: 不同的通信协议的大集合

    应用层: 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 表示层: 数据的表示.安全.压缩.(在五层模型里 ...

  7. 为什么我们使用Linux内核的(网络)协议栈?

    1,内核态协议栈可以为多个网络应用服务,用户态协议栈就不行.比如DPDK,它会将网卡从内核unbind,然后自己独占. 2,内核态协议栈提供了丰富的协议支持/调试手段,稳定性也经过时间的检验.反观用户 ...

  8. TCP/IP 协议栈及 OSI 参考模型详解--云平台技术栈04

    导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的tcp/ip和网络! 来源:王东裕 http://wangdy.blog.51cto.com/3845563/1588379 OS ...

  9. 【建站系列教程】3、建站基本技术介绍

    [建站系列教程]3.写网页基本技术介绍 摘要 html.css.js jQuery ui框架 bootstrap jQuery-ui vue的ui 后端 采用ajax 或者 php cookie也可以 ...

最新文章

  1. 【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )
  2. CODEVS 1172 Hankson 的趣味题
  3. linux命令管理GPT分区,Linux磁盘管理GPT分区教程
  4. 近期资料分享汇总,还不快来看看你漏了哪份没拿?
  5. Wicket模型的干净方法
  6. ICON素材|装饰图标设计的技巧
  7. [转]tensorflow中的gather
  8. Dart基础-控制流程与异常处理
  9. XXXfragment that is not a fragment错误,fragment认不出来
  10. wps显示ntko签章服务器,ntko-系统内装有OFFICE和WPS,如何让IE加载NTKOOFFICE时以office打开文件而不是以WPS打...
  11. HTML语言可以编写静态网页吗,使用html开发静态网页 html静态网页设计大作业
  12. php怎么画五星红旗,php基于GD库画五星红旗的方法
  13. 从百草园到三味书屋感想
  14. 物联网卡无法激活使用的原因
  15. 一家VC支持企业的发展轨迹——了解每次融资后股权和期权的变化,以及股份是如何被稀释的【转载】...
  16. 第3选择-解决所有难题的关键思维,种下好的种子避免落入钻石交易
  17. chapter04_聪明的表设计
  18. 2020.7 Hexo手把手教程(还带视频教程)
  19. AutoCAD .Net开发指南第4部分关于标注和公差的内容翻译完了!
  20. 电脑恢复删除文件及注册表实现

热门文章

  1. CentOS6.x安装mongodb3.4.x
  2. JavaScript:Array属性方法
  3. 大型网站系统架构分析
  4. AJAX验证jsp页面验证码
  5. 提示illegal reference to data member'CPMAgentManageDlg::m_matrixMatrixSt'in a static member function
  6. RS232通信之C++实现---PC端
  7. PYTHON SOCKET编程简介
  8. MyEclipse中将项目的编码从默认GBK改变为默认UTF-8
  9. 【转】SQL SERVER 开窗函数简介
  10. AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式