Cong's Blog.

网络协议简记

字数统计: 2.5k阅读时长: 8 min
2019/08/21 Share

网络协议简介

网络协议(protocol)是一种特殊的软件,是计算机网络实现其功能的最基本机制。网络协议的本质是规则,即各种硬件和软件必须要遵循的共同守则。网络协议并不是一套单独的软件,它融合于其他所有的软件系统中,因此可以说,协议在网络中无所不在。网络协议遍及OSI通信模型的各个层次,从我们非常熟悉的TCP/IP、HTTP、FTP等等协议。

OSI和TCP/IP 模型

OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
OSI七层模型结构
TCP/IP模型:物理层、数据链路层、网络层、传输层、应用层。
OSI模型和TCP/IP模型对比:

OSI模型各层作用简介

1.物理层:
为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接。所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路。
2.数据链路层:
在物理层提供比特流服务的基础上,将比特信息封装成数据帧Frame,起到在物理层上建立、撤销、标识逻辑链接和链路复用以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址。建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,同时为其上面的网络层提供有效的服务。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
3.网络层:
网络层也称通信子网层,是高层协议之间的界面层,用于控制通信子网的操作,是通信子网与资源子网的接口。在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将解封装数据链路层收到的帧,提取数据包,包中封装有网络层包头,其中含有逻辑地址信息源站点和目的站点地址的网络地址。
网络层协议的代表包括:IP、IPX、OSPF等。
网络层主要功能是基于网络层地址(IP地址)进行不同网络系统间的路径选择。
4.传输层
传输层的数据单元是由数据组织成的数据段(segment)这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。
传输层获得下层提供的服务包括:
·发送和接收正确的数据块分组序列,并用其构成传输层数据;
·获得网络层地址,包括虚拟信道和逻辑信道。
传输层向上层提供的服务包括:
·无差错的有序的报文收发;
·提供传输连接;
·进行流量控制。
传输层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务,所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。
传输层协议的代表包括:TCP、UDP、SPX等。
传输层的主要功能是从会话层接收数据,根据需要把数据切成较小的数据片,并把数据传送给网络层,确保数据片正确到达网络层,从而实现两层数据的透明传送。
5.会话层:
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层、表示层、应用层构成开放系统的高3层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等。会话层同样要担负应用进程服务要求,而运输层不能完成的那部分工作,给运输层功能差距以弥补。主要的功能是对话管理,数据流同步和重新同步
6表示层:
表示层向上对应用层提供服务,向下接收来自会话层的服务。表示层是为在应用过程之间传送的信息提供表示方法的服务,它关心的只是发出信息的语法与语义。表示层要完成某些特定的功能,主要有不同数据编码格式的转换,提供数据压缩、解压缩服务,对数据进行加密、解密。例如图像格式的显示,就是由位于表示层的协议来支持。
7.应用层:
网络应用层是通信用户之间的窗口,为用户提供网络管理、文件传输、事务处理等服务。其中包含了若干个独立的、用户通用的服务协议模块。网络应用层是OSI的最高层,为网络用户之间的通信提供专用的程序。应用层的内容主要取决于用户的各自需要,这一层设计的主要问题是分布数据库、分布计算技术、网络操作系统和分布操作系统、远程文件传输、电子邮件、终端电话及远程作业登录与控制等。至2011年应用层在国际上没有完整的标准,是一个范围很广的研究领域。在OSI的7个层次中,应用层是最复杂的,所包含的应用层协议也最多,有些还在研究和开发之中。 [2]
应用层为操作系统或网络应用程序提供访问网络服务的接口。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP、DNS等。

数据帧流动

数据流动

HTTP协议

HTTP协议简介:

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP传输工作流程

HTTP协议主要特点:

1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
5、支持B/S及C/S模式。即浏览器/服务器、客户端/服务器模式。

##URL和URI的区别
URI:HTTP使用统一资源标识符来传输数据和建立连接,包含了用于查找某个资源的足够信息
URL基本结构
协议://域名:端口//目录//?传递的参数
URI:一般指的是计算机或主机上一个文件的具体路径。

HTTP请求方法

HTTP请求头

HTTP 状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

1xx:指示信息–表示请求已接收,继续处理

2xx:成功–表示请求已被成功接收、理解、接受

3xx:重定向–要完成请求必须进行更进一步的操作

4xx:客户端错误–请求有语法错误或请求无法实现

5xx:服务器端错误–服务器未能实现合法的请求
常见的状态码:
200: OK 服务器成功处理了请求,
301: 重定向,请求的URL已移走(永久)
302: 临时跳转的意思
304: 未修改,客户的缓存资源是最新的,要客户端使用缓存(服务端执行了GET,但文件未变化)400: 访问的页面域名不存在或者请求错误;1、bad request意思是“错误的请求”;2、invalid hostname意思是”不存在的域名”
403: 禁止,请求被服务器拒绝了
404: 未找到资源5
500: 内部服务器错误,服务器遇到一个错误,使其无法为请求提供服务

HTTP报文的常见请求头和常见响应头

常见的请求头:
常见请求头


常见的响应头:
常见的响应头

CATALOG
  1. 1. 网络协议简介
  2. 2. OSI和TCP/IP 模型
    1. 2.1. OSI模型各层作用简介
    2. 2.2. 数据帧流动
  3. 3. HTTP协议
    1. 3.1. HTTP协议简介:
    2. 3.2. HTTP协议主要特点:
    3. 3.3. HTTP请求方法
    4. 3.4. HTTP 状态码
    5. 3.5. HTTP报文的常见请求头和常见响应头