Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40405
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-28 17:39
文章分类
文章存档

2015年(31)

我的朋友

分类: 嵌入式

2015-11-05 12:42:44

1.一些概念:
电路交换:仿电话交换,建立电路、传输数据再拆除电路。需要通信双方同时激活,双方之间的通信资源专用。
报文交换:交换机存储报文,在合适时间转发。
分组交换:将报文分组,分组前后添加信息标识分组,形成一个交换单位,便于交换机存储,分析和处理。

端系统:通信进程的主机
客户服务器模式C/S:服务由客户主动请求,由服务器提供,
对等模式P2P:两主机通信是地位平等,都可以起客户和服务器的作用。

速率:主机在信道上单位时间内传输的数据量
带宽:信号所占频带宽度
吞吐量:单位时间内通过信道、接口等网络的数据量
发送时延:发送开始到帧最后一个bit的时间,数据帧长度/信道带宽
传播时延:电磁波在信道中传播的时间=信道长度/信道中的传播速率
处理时延:分组首部分析、从分组提取信息、差错检测、寻找路由等的时间
排队时延:分组进出路由需要排队和等待转发的时间
时延带宽积:传播时延*带宽

实体:收发信息的进程或硬件
协议:对等实体(同一层)通信的行为规则的集合
服务:某层对其上层提供的操作
面向连接服务:虚电路,对等实体交换信息前先建立连接,结束后释放。可以连续向同一目的发送多个报文
面向无连接服务:数据报,证实交付,请求回答。
服务原语:相邻层的户服务可用原语和参数来表示,具体实现是通过系统调用,函数调用,系统调用,或操作系统内核提供的进程控制机制来完成。一般三个基本组成部分:原语名,原语类型,原语参数。
LISTEN:表示准备就绪。阻塞的系统调用,指定到有请求到来。服务器监听到有连接请求,就返回一个ack。
CONNECT:客户发送一个分组,请求连接。然后客户进程挂起到服务器返回应答。收到确认报文后,恢复运行。
DISCONNECT:终止当前连接

2.协议
要求:
语法:规定协议元素数据、控制信息的格式
语义:规定通信双方如何操作
同步:规定通信事件发生的顺序

分层原则:
有一个抽象的不同等级,设立一个相应的层次。
每一层的功能有确切定义。每层应该有建立和释放,流量控制,差错控制,分段和重装,复用和分用等。
层间接口要清晰,信息量要少。
层的数目要合适。功能划分明确,结构不复杂,

分层优点:
各层独立,了解接口,降低系统复杂度
灵活,一层内变更,接口不变,不会对相邻层产生影响
易于实现和维护
标准化

3.物理层:为数据链路层提供一个物理连接(建立,维持,释放),实现在物理媒体上透明地传送比特流(实际传送的bit没有变化)所需的各种功能。使接口按规定相互兼容。

3.1物理层:
数据终端设备:具有数据处理和转发能力的设备。
数据电路终接设备:DCE,在DTE和传输线路间提供信号转换和编码的功能,如调制解调器。
并行传输:多个信道上同时传送。
串行传输:一条信道上按顺序传送比特流。需要知道位宽,字符起始结束,帧起始结束。即位同步,字符同步,块同步。
同步传输:把块整体传送。收发器间的时钟同步,帧同步。
异步传输:用一个频率为传输比特率的n倍时钟(一般为16,串口就是这样的),在每一个比特的中心对接收信号采样,来确定字符中一个比特的状态。起始位和停止位极性不同。

规定4方面的特性:
机械:接口
电气:输出阻抗,输入阻抗,信号电平。平衡性,负载要求,速率,距离等
功能:各接口信号线功能定义
规程:相互关系,动作顺序,测试维护等

4.数据链路层:
4.1.屏蔽物理层,为网络层提供一个数据链路连接。通过检验、确认和反馈等进行无差错传输。按帧传输。

任务:将ip数据报封装成帧传给物理层,从物理层接上传的帧中提取ip数据报给网络层,如差错则丢弃。

功能:
链路管理:数据链路的建立,维持,释放
帧的封装和拆封:帧头尾,差错检测
帧定界:帧的边界确定
透明传输:控制信息和数据信息相同时,使接收端能区分。
差错检测:检验码,CRC,实现无比特差错的传输。


帧定界方法:
字节填充
比特填充
字节计数
非法编码:IEEE802.1采用这种方法,码元中点不发生电平变化。

4.2
ppp协议:工作在数据链路层,由三个部分组成
将ip数据报封装到串行链路的方法。
建立,配置合测试数据链路连接的控制协议LCP.
一组网路控制协议,每一个协议支持不同的网络层协议。

帧格式:
F A C 协议 信息 FCS 
F: 1字节 0x7F
A: 1字节 0xFF
C: 1字节 0x03
协议:2字节 
信息:长度:最长为1500字节,同步采用0比特插入删除,异步采用字节(0x7D)填充.
FCS:2字节(可协商为4字节),CRC帧检验序列,

电话拨号、宽带使用这个协议上网。

4.3MAC:
IEEE802将物理层划分为与传输媒体相关和无关的物理层特性的两个子层,将数据链路层划分为媒体接入控制MAC和逻辑链路控制LLC两个子层。

实际中,网络层ip下传的数据直接封装到mac帧中,不在关注LLC层。

媒体接入控制MAC:
逻辑链路控制LLC:统一封装成LLC帧。

MAC帧格式:
目的地址(6),源地址(6),上层协议类型(2), 数据(46~1500), FCS(4),
物理媒介上传送时加前导码7字节0XAA和1字节0XAB帧起始定界。
帧间要有间隙(大于9.6us),帧起始后的数据都属于这个帧,不用帧结束定界,也不需要字节填充来保证透明传输。

4.4CSMA/CD:
载波监听:先检查总线上是否有数据在发送。
多点接入:计算机多点的方式接入到总线上
冲突检测:发送数据的同时检测总线信号电压的变化。

冲突时间:
数据从A到B的时间是T,A发数据,
B在X(X A在T+X时感知冲突。发送强化冲突干扰信号(Tj),停止发送。
这个时间是2T+X+Tj

重传算法:
确定规避时间,就是争用期(以太网规定为51.2us)。
根据重传次数k,随机计算重传的推迟时间。
若重传次数k高于16时,丢弃该帧,向上层报告。

网络适配器:网卡,实现数据封装拆封,链路管理,曼特斯特编码和译码,数据缓冲等

4.5扩网
4.5.1集线器:物理层转发
4.5.2网桥:数据链路层。帧格式转换,传输速率转换,帧长度、帧的语义转换。

作用:扩展网络,不同拓扑和传输媒介的网络互连,过滤帧,故障隔离
问题:存储转发带来时延,mac层无流量控制可能会丢帧,用户大的情况会因广播风暴产生网络阻塞。

4.5.2.1透明网桥

洪泛法:向进入端口外的其他端口发送收到的帧。
逆向学习算法:按源地址找转发表,转发表中不存在就添加到转发表中。转发表中没有目的地址,则洪泛法发送
使用:避免环状网络。

4.5.2.2源路由网桥
发送帧源站负责路由选择。

确定路由:发一个探询帧,记录经历的路由,到达后按原路由返回。
好处:较好的使用冗余链路
缺点:兜圈子现象,增加主机负担。

4.5.3交换机
直通式:直接按目的mac确定转发接口转发
存储转发:缓存,进行差错检测过滤无效帧。
无碎片直通式:小于64B的帧过滤掉,
混合式:自适应,根据网络情况选择转发方式

5.网络层:为分组选择路由和交换结点,解决多段物理链路组成的数据链路的数据传输问题。
虚拟互联网:不同的网络协议与互联网协议转换。
提供的两种服务:虚电路服务和数据报服务
网际协议:

5.1
不同网络互连:
有相连的链路
合适的路由控制和数据交换
良好的服务机制如计费、状态报告等,
不更改任何网络结构,借助互连设备来协调和适配网络间的差异:寻址方式、分组长度、接入技术、路由选择技术、超时控制、差错控制、状态报告、用户接入控制、面向连接和无连接的服务、网络管理等

转发器:物理层
网桥:数据链路层
网络层:路由器
网络上层:网关

5.2
虚电路服务:先建立一个数据链路,数据报按确定的数据链路顺序到达。
数据报服务:分组携带目的信息,独立选择路由。

5.3
5.3.1
ip配套协议:

地址解析:ARP
逆地址解析:RARP

因特网控制报文协议:ICMP
网际组管理协议:IGMP

几种IP地址格式:
分类的ip地址,子网,变长子网,无分类编址,网络地址转换

ip数据报格式:
版本:4--->ipv4
首部长度:4字节的倍数
区分服务:优先权3位,D-->时延,T--->吞吐率,R--->可靠性,C--->低廉的路由,最后一位保留
总长度:首部和数据的总长度(分片后的)
标识:片标志
标志(3位):第一位不用,第二位DF=1表示允许分片,第三位MF=1该片不是数据报的最后一片
片偏移(13位):本片在数据报中的偏移,以8字节为单位
生存时间:经过路由后减一,为0时丢弃
协议:数据报所携带的数据所使用的协议编号,tcp-->6, udp--->17,
首部检验和:令此段为0,按反码加法对数据首部的每16位求和,然后取反写入检验和字段。接收端的处理:将接收到的首部中16位序列反码加法再加一次,所得的和为0,则保留,否则丢弃。
源ip:
目的ip:
选项:
数据:

5.3.2
互联网的分组转发:
按以下顺序,
A:ip数据报首部提取目的ip地址D得出主机网络地址N,
B:若N是路由直接相连的网络则直接交互,
C:查特定主机路由,若有D地址则转发
D:若表中有路由地址则转发到N
E:若有默认路由就转发,否则出错。

以上算法中,若划分子网,则要考虑子网掩码。若是采无分类编址,则要选择最长匹配的路由。


5.4路由协议
路由算法特点:
正确:能找到目的
简单:减少计算时间
适应:网络状态改变时能改变路由,使网络正常运行
稳定:通信量及拓扑变化,不至于发生震荡
公平:用户平等,流量平衡
最佳:实现路由算法的代价低。综合考虑跳数,时延,带宽,负载,可靠,开销等。

内部网关协议IGP:自治系统内部路由选择.有RIP,OSPF
外部网关协议EGP:两个自治系统内部使用不同路由信息选择协议.

5.4.1路由信息协议RIP:

距离向量:路由器保存自己到其他每个路由的跳数,直接相连为1。
距离向量算法:到目的网络的距离(最大为16)最短。使用的是udp协议
原理:路由器定时向相邻的路由广播自己的路由表。

每个表项有网络地址,距离和下一条路由器地址

距离向量算法过程:
收到相邻路由器X发送的RIP报文,进行操作
A:下一条地址改为X,将RIP报文所有表项的距离加1。
B:对修改后的RIP报文中的每一个表项进行操作:
路由表中没有网络地址N,则添加,继续处理下一条表项。否则,就查下一跳地址项。
若下一跳地址为X,就替换,继续处理下一条表项。否则查看距离选项。
若距离小,就更新,继续处理下一条表项。否则什么也不做

C:3分钟内没有收到相邻路由器的更新表,将相邻路距离设为16,即不可达。

存在问题:
规模:跳数限制15
更新:坏消息慢,好消息快

5.4.2开放最短路径优先OSPF

特点:
A:路由表更新时采用洪泛法向本自治系统中所有路由器发送路由信息。dijkstra最短通路算法计算出自己的路由表。链路状态用32位表示,增长速度不超过5s/次。
B:所有的路由维持一个链路状态数据库。与哪些路由器相邻及该链路的度量。
C:同一目的网络的多条相同代价路径,可以进行通信量分配。
D:仅在可靠的路由器之间交换链路信息
E:支持子网及无分类编址
F:采用ip传输。

问候分组:相邻链路每10秒交换一次,40秒没有收到相邻路由的问候分组则标记为不可达,需重新设计路由表
数据库描述分组:向邻站提供自己链路状态数据库中的所有链路状态项目的摘要信息
链路状态请求分组:向邻站请求发送某些链路状态项目的信息
链路状态更新分组:洪泛法向全网更新链路状态
链路状态确认分组:对链路更新分组确认。
5.4.3
外部网关协议:不同自治系统之间交换路由信息。
与邻站交换路由表。只有网络变换时才更新。
采用tcp传输。

5.5路由器
建立、维护、更新路由表,经路由选择把分组转发出去。

6.传输层:
传输层的代码运行在主机上,网络层的代码主要运行在路由器上。

端口区分主机上的通信进程。http ---tcp---80
ftp---tcp---21/20

6.1udp
6.1.1特点:
无连接,
努力交付,不可靠的传输。
面向报文,避免在ip层拆分,应用层选择合适长度。
没有拥塞控制。
首部8字节。

6.1.2报文格式:
源端口,目的端口,报文长度,检验和。

伪首部:源ip,目的ip,1字节0,1字节协议值17,udp报文长度。
检验和计算:伪首部添加到udp数据报,检验和字段置0,按16字节划分(如有需要添加全0字节),按16位反码求和。结果取反写入检验字段,去掉伪首部。

6.2tcp
6.2.1特点
面向连接。
虚链接,点到点。
可靠的交付,
全双工通信。
面向字节流
6.2.2报文格式

源端口(16)
目的端口(16)
序列号(32):第一个字节的序号
确认号(32):希望收到下一个数据字节的序号
数据偏移(4):首部长度,4字节的倍数
保留(6):
标志(6):URG=1紧急,ACK=1确认,PSH=1立即送往应用层,RST=1复位,SYN=1同步,FIN=1释放连接
窗口(16):接收端窗口大小
检验和(16):算法根udp一直,
紧急指针(16):URG=1时才有意义,指出紧急数据的末尾在报文段中的位置
选项和填充:

6.3
停等协议:
接收端:报文正确到达就返回确认。
发送端:一次一个分组,超时重传。

自动重传请求协议:
接收端:按序接收正确报文,返回确认或者只返回最后的一个正确的。
发送端:一次发多个分组,超时重传。

tcp序号确定:
即时确认:返回一个确认报文
累计确认:下一个报文中的捎带确认

发送端:超时重传
接收端:错误的就丢弃,收到重复的报文丢弃后要发确认,未按序的自行处理。可以使用SACK选项。

滑动窗口:在允许接收发送的窗口内,标识出已接收发送的和可以接收发送的分界。确认后调整窗口两边边界。

流量控制:
窗口为0时接收端发送窗口为0的确认,缓冲区有空间时发送不为0的报告。
发送端收到窗口为0的报文后停止发送,启动计时,超时就发一个探询报文要求给出窗口值。

重传控制:因报文丢失或损伤,发送端等待重传时间超时,就重新发送。

重传时间的设置:设置过长则网络空闲,过短则发生不必要的重传。需根据网络动态调整。

拥塞:对网络中某个资源要求超过其能力时整个网络性能下降。
拥塞控制:在拥塞发生前防止过多的报文进入网络或者使网络从拥塞中恢复。

6.4连接管理
三次握手建立连接:请求连接端发SYN+SN,目的端SYN+ACK+SN+AN,请求端再发ACK+SN+AN.

四次挥手释放连接:
第一次:先发端A发 FIN+SN(前面发送数据的最后一个字节加1),等待B确认。
第二次:端B收到,同意释放发送SYN,ACK,SN,AN。B不再接收A的数据报文。
第三次:此时B还可以向A发送数据.数据发完后发送FIN,ACK,SN,AN,等待A的确认释放
第四次:A发出确认ACK,AN,SN,

阅读(766) | 评论(0) | 转发(0) |
0

上一篇:线程

下一篇:linux通信--socket

给主人留下些什么吧!~~