** 亲爱的用户,打开微信,搜索公众号:“风云说通信**”,帮忙点点免费的广告,即可免费阅读该文章哦~~
1. 网络协议
1.1 什么是网络协议
网络协议:network protocol。是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
协议规定了通信实体之间所交换的消息的**格式、意义、顺序**以及针对收到信息或发生的事件所采取的**动作(action)**
协议规范了网络中所有信息发送和接收过程:
- 语法(Syntax)- 数据与控制信息的结构和格式- 信号电平
- 语义(Semantics)- 需要发出何种控制信息- 完成何种动作以及做出何种响应- 差错控制
- 时序(Timing)- 事件顺序- 速度匹配
1.2 为什么需要网络协议
网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同。因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。就像我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信
举个例子:
通过上面的例子,“王五”就是那个“网络协议”,为不同数据端提供一个桥梁,使得不同的数据端能够进行正常通信。张三说客家话,李四说粤语,并且彼此不懂对方的语言。这种情况下,两人交流就是鸡同鸭讲,谁也不知道对方在说什么。如果此时,来了一个人王五既可以讲客家话也能讲粤语,他就可以作为张三和李四的“桥梁”,将张三的话翻译成粤语给李四,将李四的话翻译成客家话给张三。*
1.3 一次请求都需要用到哪些协议
- 传输数据 - 网络层的IP层协议。首先如何知道对应的机器的地址?通过IP可以确认具体的机器
- 找到目标机器后 - 传输层的TCP层协议。需要知道该机器上哪个程序接收本次请求?通过端口可以确定具体的程序
- 确定程序后,区分请求 - 应用层的RPC协议。如何区分不同的请求呢?如果将每个请求关联对应的响应呢?通过消息id区分
- 以上这些最后是由物理层的光缆、电缆、无线信道等支持的,如何控制信号在物理层之上的传递,还需要PPP协议、ARP协议等。
1.4 常见的计算机网络体系结构
OSI体系结构(7层)
是理论上的国际标准,但是在生产商的真正生产应用过程中,利用的是
TCP/IP体系结构(4层)
。而为了方便教学,我们又将网络接口层,分成了数据链路层和物理层,被称为
原理体系结构(5层)
。
原理体系中各个层要解决的问题:
- 物理层:解决在各种传输媒体上传输0和1的问题
- 数据链路层:解决分组在一个网络(或一段链路)上传输的问题
- 网络层:解决分组在多个网络上传输(路由)的问题
- 运输层:解决进程之间基于网络的通信问题
- 应用层:解决通过应用程序的交互来实现特定网络应用的问题
1.5 不同层的协议简介
版权归原作者 风云说通信 所有, 如有侵权,请联系我们删除。