计算机网络学习(3)
2015-05-31 22:46
441 查看
数据链路层
数据链路层使用信道主要有两种类型:点对点信道、广播信道。
数据链路的概念:物理线路+通信协议,以及实现这些的硬件和软件
点对点信道的数据链路层通信步骤:
(1)结点A把网络层发下来的IP包加上首部和尾部封装成帧;
(2)A把帧发送到B的数据链路层
(3)若结点B收到帧无差错,则从帧中提取出IP包,发送到网络层,否则丢弃这个帧
无论数据链路层用什么协议,有三个基本问题:封装成帧、透明传输、差错检测
1 封装成帧
MTU最大传送单元,帧的数据部分的长度上限
使用SOH(十六进制0x01)和EOT(0x04)作为帧的起始和结束。
2 透明传输
如果帧的数据中出现EOT或SOH,那么会导致帧检测的错误,无法进行透明传输,解决这个问题的方法就是遇到SOH或EOT时就在前面加ESC转义字符,遇到ESC就前面再加,这样在接收时会检测ESC来保证正确的接收数据。
3 差错检测
传输过程中bit1变成了0,0变成了1,就是bit差错,这就有了误码率的概念,误码率与信噪比相关,信噪比越高误码率越低。
实际通信链路,误码率不可能为0,所以传输时必须采用各种差错检测措施。
目前广泛使用的就是CRC校验。
经过CRC校验后的数据可以认为接收无差错,但是并没有向网络层提供“可靠传输“服务,所谓“可靠传输“就是,数据链路层发送端发什么,接收端就接收到什么,现在解决了bit错误,但还有可能出现传输错误,例如帧丢失、帧重复、帧失序,这些事CRC无法校验的。
OSI的观点是必须保证数据链路层是可靠传输的,这就在CRC的基础上加上帧编号、确认、重传机制,但是现在因特网不使用确认和重传机制,不要求链路层为上层提供可靠传输,因为这样开销太大,改正错误的任务由上层协议(例如TCP)来完成。
数据链路层使用信道主要有两种类型:点对点信道、广播信道。
数据链路的概念:物理线路+通信协议,以及实现这些的硬件和软件
点对点信道的数据链路层通信步骤:
(1)结点A把网络层发下来的IP包加上首部和尾部封装成帧;
(2)A把帧发送到B的数据链路层
(3)若结点B收到帧无差错,则从帧中提取出IP包,发送到网络层,否则丢弃这个帧
无论数据链路层用什么协议,有三个基本问题:封装成帧、透明传输、差错检测
1 封装成帧
MTU最大传送单元,帧的数据部分的长度上限
使用SOH(十六进制0x01)和EOT(0x04)作为帧的起始和结束。
2 透明传输
如果帧的数据中出现EOT或SOH,那么会导致帧检测的错误,无法进行透明传输,解决这个问题的方法就是遇到SOH或EOT时就在前面加ESC转义字符,遇到ESC就前面再加,这样在接收时会检测ESC来保证正确的接收数据。
3 差错检测
传输过程中bit1变成了0,0变成了1,就是bit差错,这就有了误码率的概念,误码率与信噪比相关,信噪比越高误码率越低。
实际通信链路,误码率不可能为0,所以传输时必须采用各种差错检测措施。
目前广泛使用的就是CRC校验。
经过CRC校验后的数据可以认为接收无差错,但是并没有向网络层提供“可靠传输“服务,所谓“可靠传输“就是,数据链路层发送端发什么,接收端就接收到什么,现在解决了bit错误,但还有可能出现传输错误,例如帧丢失、帧重复、帧失序,这些事CRC无法校验的。
OSI的观点是必须保证数据链路层是可靠传输的,这就在CRC的基础上加上帧编号、确认、重传机制,但是现在因特网不使用确认和重传机制,不要求链路层为上层提供可靠传输,因为这样开销太大,改正错误的任务由上层协议(例如TCP)来完成。
相关文章推荐
- cocos2d-x网络编程 连接php服务器笔记1
- iOS开发之runtime的运用-获取当前网络状态
- 计算机网络名词
- 流媒体技术之复习网络协议
- 网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.
- tcp
- 网络新闻评论观点挖掘系统实现
- 一.计算机网络概述
- TCP/IP 协议状态学习
- VMware中网络设置之host-only
- http怎么加入超时和代理
- 【计算机网络】读书笔记之《TCP/IP详解卷1》《图解TCP/IP》《计算机网络》三合一
- ubuntu中dns不能保存的问题
- 移植tcpreplay4.1.0
- Java实现-------网络蜘蛛
- Java实现-------网络蜘蛛
- [Python]网络爬虫(八):糗事百科的网络爬虫(v0.3)源码及解析(简化更新)
- 一个RCurl抓取美团网信息的实例
- tcpdump抓包
- Android应用开发:网络工具——Volley(二)