随想录(协议栈的基本技术)

本文介绍了实现通信协议栈所需的基本技术,包括状态机、定时器、重发机制等,并详细阐述了这些技术在协议栈中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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 调试日志 调试日志有助于我们对故障快速进行定位



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值