“协议” 即一种约定
网络通信协议――>网络通信中的数据的格式约定。
协议分层:一些组织为了能够实现网络互联,将复杂的网络通信环境,按照提供的不同的服务,使用的不同的协议接口划分为多层。
OSI七层模型(不实用)分为:应用层,表示层,会话层,传输层,网络层,链路层,物理层
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用;。
1.TCP/IP五层模型
分为:应用层,传输层,网络层,链路层,物理层
其中上层需要遵循下层的协议,下面四层的协议是网络早期设计的,上层应用需要下层所提供的网络来完成自己的需求.
1.1 分层
-
应用层:负责进程间的沟通;可自己定义,或者使用一些知名协议 -------HTTP;文件传输协议(FTP)等。网络编程主要就是针对应用层.
-
传输层:负责两台主机之间的数据传输, 能够确保数据可靠的从源主机发送到目标主机.;------- TCP/UDP协议,
-
网络层:负责地址管理与路由选择;转发设备–>路由器;--------IP协议(有源端IP,对端IP信息)。
-
链路层:负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.;-------ETH(以太网协议)–>有源端对端物理网卡信息。
-
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念集线器; --------以太网协议(ETH)。
假设在一个局域网(L A N)如以太网中有两台主机,二者都运行 F T P协议,图 1 - 2列出了该过程所涉及到的所有协议。
图1 - 2列举了一个 F T P客户程序和另一个 F T P服务器程序,在同一层上,双方都有对应的一个或多个协议进行通信。例如,某个协议允许 T C P层进行通信,而另一个协议则允许两个 I P层进行通信。在图1 - 2的右边,我们注意到应用程序通常是一个用户进程,而下三层则一般在(操作系统)内核中执行。尽管这不是必需的,但通常都是这样处理的,例如 U N I X操作系统。在图1 - 2中,顶层与下三层之间还有另一个关键的不同之处。应用层关心的是应用程序的细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,但它们要处理所有的通信细节。在图1 - 2中列举了四种不同层次上的协议。 F T P是一种应用层协议, T C P是一种运输层协议, I P是一种网络层协议,而以太网协议则应用于链路层上。 T C P / I P协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为 T C P / I P,但T C P和I P只是其中的两种协议而已。
eg:TCP/IP的分层:
- T C P和U D P是两种最为著名的运输层协议,二者都使用 I P作为网络层协议。虽然T C P使用不可靠的 I P服务,但它却提供一种可靠的运输层服务。
- U D P为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的息)。但是与 T C P不同的是, U D P是不可靠的,它不能保证数据报能安全无误地到达最终目的。
- I P是网络层上的主要协议,同时被 T C P和U D P使用。 T C P和U D P的每组数据都通过端系统和每个中间路由器中的I P层在互联网中进行传输。
- I C M P是I P协议的附属协议。 I P层用它来与其他主机或路由器交换错误报文和其他重要信息。尽管I C M P主要被I P使用,但应用程序也有可能访问它。
- I G M P是I n t e r n e t组管理协议。它用来把一个 U D P数据报多播到多个主机。
- A R P(地址解析协议)和 R A R P(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换 I P层和网络接口层使用的地址。
1.2 封装
应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都在上层数据的基础上加上自己的头部信息(有时也包含尾部信息),以实现该层的功能,这个过程就称为封装(原始数据在系统中通过层层封装描述的过程。)。
流程如下图所示:当应用程序用 T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图 下图所示。 T C P传给I P的数据单元称作 T C P报文段或简称为 T C P段(T C Ps e g m e n t)。 I P传给网络接口层的数据单元称作 I P数据报(IP datagram)。通过以太网传输的比特流称作帧(Fr a m e )。其中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。
1.3 分用
数据到达对端主机后,层层解析的过程。
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(D e m u l t i p l e x i n g),下图显示了该过程是如何发生的