如何构建网络协议
这些协议采用分层的结构,每层协议实现特定功能,同时也需要依靠低层协议所提供的服务。
网络协议可以理解为三部分组成:
1、语法:通信时双方交换数据和控制信息的格式,是对通信时采用的数据结构形式的一种规定。
2、语义:由通信过程的说明构成,它规定了需要发出何种控制信息完成何种动作以及做出何种应答。
3、时序(同步):通信如何发起,再收到一个数据后,下一步要做什么。
HTTP协议是应用层协议,是浏览器和Web服务器通信时使用的协议,当浏览器访问服务器时,会向服务器发出请求报文,报文的语法格式:GET/HTTP/1.1。
“GET”的语义是要获取文件;“/”的含义是指要访问网站的主页;“HTTP1.1”表明浏览器使用的协议是HTTP1.1版本。
当Web服务器收到请求后,如果主页存在服务器的应答语法格式:HTTP/1.1 200 OK data data ……。200 是状态码,代表成功;OK是文字说明, data是文件数据。
如果主页不存在,服务器的应答是:HTTP/1.1 404 NOT Found ,告诉浏览器没有找到对应的文件。
不同主机上的同一层次称为对等层
每一层中实现功能的协议元素称为实体,实体既可以是软件,也可以是硬件。
对等层内的实体称为对等实体。
每一层都有特定的功能,使用下一层为它提供的服务,同时也为自己的高层提供服务。
数据传递过程
数据从发送端的最高层开始,层层向下,层层封装,直到发送方的最底层,转换为电磁信号后经过物理链路到达接收端的最底层,再层层向上,层层解封装,最后到达接收方的最高层,整个通信过程是垂直的
高层使用了低层的服务,低层向高层提供服务,高层通过低层提供的服务接口访问低层的服务。
数据的传递在概念上可以认为通信是水平的,数据高翔由对等层的一端直接到达了另一端。
通信的目的就是要实现对等层之间的水平通信,虽然事实上水平通信要依赖垂直通信来实现。
协议分层的优点:
1、每个层次都可以单独实现。
2、层次明确也更有利于标准化。
计算机网络体系结构
各个层次的所有协议也被称为协议栈
采用不同体系结构的两个网络之间很难通信
为使所有的网络都能互连互通,国际标准化组织ISO提出了开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称OSI参考模型。
1~3层称为低层功能(LLF):通信传送功能——网络和终端具备的功能
第4~7层称为高层功能(HLF):通信处理功能——终端具备的功能
TCP/IP协议体系
应用层:相当于OSI参考模型的应用层,具体的协议有超文本传输协议(HTTP)、文件传输协议(FTP)等。
运输层: TCP协议:为应用程序提供面向连接的可靠的通信,具有流量控制和拥塞控制的功能。 UDP协议:提供无连接的不可靠通信,但是效率较高。
互联网层:相当于OSI参考模型的网络层,要为数据找到一条正确的路到达目的地,主要的协议是IP。
网络接口层:相当于OSI参考模型的数据链路层和物理层。
TCP/IP的应用层
应用层协议为文件传输、电子邮件、远程登录、网络管理、Web浏览等应用提供了支持。有些协议的名称与以其为基础的应用程序同名。
TCP/IP的传输层
传输层的主要功能:提供进程间可靠的传输服务。
传输层包括TCP和UDP两种传输协议:
TCP是面向连接的传输协议。 在数据传输之前建立连接; 把报文分解为多个段进行传输,在目的站再重新装配这些段; 必要时重新传输没有收到或错误的段,因此它是“可靠”的。
UDP是无连接的传输协议。 在数据传输之前不建立连接; 对发送的段不进行校验和确认,因此它是“不可靠”的; 主要用于请求/应答式的应用和语音、视频应用。
TCP和UDP都用端口(port)号来设别应用层实体,以便准确地把信息提交给上层对应的协议(进程)。
TCP/IP的网络层
主要功能是把数据报通过最佳路径送到目的端。
- 寻址(IP地址)、路由选择、封包/拆包
网络层的核心协议 --- IP,提供了无连接的数据报传输服务(不保证送达,不保证序,不保证无错)
-传输前不需建立连接
-提高了传输效率
网络层是网络转发节点(如路由器)上的最高层。
-网络节点设备不需要传输层和应用层
网际层的其他重要协议:
ICMP(Internet Control Message Protocol)
传递控制信息
- 可达性测试
- 传送路由状态信息
- 超时通知
- 不可达通知
封装在IP中进行传输
ARP(Address Resolution Protocal)
为已知的IP地址确定相应的MAC地址
RARP (Reverse Address R二solution Protocal)
为已知的MAC地址确定相应的IP地址
IGMP(Internet Group Management Protocol)
多播组管理
TCP/IP的网络接口层
没有定义任何实际协议,仅定义了网络接口
任何已有的数据链路层协议和物理层协议都可以用来支持TCP/IP
典型的例子:
- Ethernet、Token Ring、HDHL、X.25、ATM
优点:适应性强、灵活
缺点:不能利用已存在的某些有用的功能
- TCP/IP总是认为其下层是不可靠的(尽管可能已经足够可靠)
TCP/IP协议栈
主机和路由器的协议栈
对于端系统(主机和服务器)而言,因为包括具体的网络应用,所以四层协议都具备。
对于通信子网中的分组交换设备(路由器),其作用是转发分组,并不关心高层数据,所以协议栈只包括下两层协议(互联网层和网络接口层)。
OSI参考模型和TCP/IP参考模型比较
相同之处:
1、两者都采用层次型的模型。
2、都以协议栈的概念为基础,且协议栈中的协议是彼此相互独立的。
3、两个模型中各层的功能大体相似。
不同之处:
1、服务、接口和协议这三个概念,OSI非常明确,TCP/IP没有区分三者间的差异。前者的协议隐蔽性比后者好,这有利于协议的更新。
2、OSI是模型在先协议在后,这意味着该模型具有通用性,而TCP/IP模型却相反,模型只有已有协议的一个描述,但未必适合其他的协议栈。
3、两种模型层的数目不同。
4、OSI的网络层同时支持面向连接和无连接服务,但远输层只支持面向连接服务。而TCP/IP的网络层只有一种无连接服务模式,但在远输层同时支持两种服务模式
5、TCP/IP较早就有较好的网络管理。OSI后来才考虑网管问题。