网络协议简介

Posted nxjblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络协议简介相关的知识,希望对你有一定的参考价值。

网络层次模型

在介绍网络协议之前,先简单梳理下网络层次模型的结构(OSI网络7层模型-概念型框架)。

(1)应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,WWW,NFS,SMTP等。

(2)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASII格式,发送方将把文本从发送方的字符集转换成标准的ASII后发送数据。在接收方将标准的ASII转换成接收方计算机的字符集。示例:加密,ASII等。

(3)会话层:他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。

(4)传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。

(5)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

(6)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

(7)物理层:OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

备注:而在计算机网络中是没有表现层和会话层的,所以是五层模型

TCP(Transmission Control Protocol,传输控制协议)→传输层协议

TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协议。TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。

TCP的特点有:

(1)TCP是面向连接的运输层协议

(2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的

(3)TCP提供可靠交付的服务

(4)TCP提供全双工通信。数据在两个方向上独立的进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。

(5)面向字节流。面向字节流的含义:虽然应用程序和TCP交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅是一连串的无结构的字节流。

IP(Internet Protocol,网际互连协议)→网络层协议

IP主要包含三方面内容:IP编址方案、分组封装格式及分组转发规则。

IP分组的转发规则

路由器仅根据网络地址进行转发。当IP数据包经由路由器转发时,如果目标网络与本地路由器直接相连,则直接将数据包交付给目标主机,这称为直接交付;否则,路由器通过路由表查找路由信息,并将数据包转交给指明的下一跳路由器,这称为间接交付。路由器在间接交付中,若路由表中有到达目标网络的路由,则把数据包传送给路由表指明的下一跳路由器;如果没有路由,但路由表中有一个默认路由,则把数据报传送给指明的默认路由器;如果两者都没有,则丢弃数据包并报告错误。

IP分片

一个IP包从源主机传输到目标主机可能需要经过多个不同的物理网络。由于各种网络的数据帧都有一个最大传输单元(MTU)的限制,如以太网帧的MTU是1500;因此,当路由器在转发IP包时,如果数据包的大小超过了出口链路的最大传输单元时,则会将该IP分组分解成很多足够小的片段,以便能够在目标链路上进行传输。这些IP分片重新封装一个IP包独立传输,并在到达目标主机时才会被重组起来。 [1]

IP分组结构

一个IP分组由首部和数据两部分组成。首部的前20字节是所有IP分组必须具有的,也称固定首部。在首部固定部分的后面是一些可选字段,其长度是可变的。

IP所提供的服务大致可归纳为两类

1.IP信息包的传送。  

2.IP信息包的分割与重组。

UDP(User Datagram Protocol)用户数据报协议→传输层协议

(1)UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议。在传输过程中没有流量控制和确认机制,数据报可能会丢失,延迟,乱序到达信宿。

(2)UDP只是提供了利用校验和检查数据完整性的简单差错控制。

(3)UDP支持一对一、一对多、多对一和多对多的交互通信。

(4)它的协议头比较简单,只有8字节,比TCP的20字节首部开销要小很多。

技术图片

 

 Length占用2个字节,标识UDP头和数据的长度和。

Checksum : 校验和,包含UDP头和数据部分。

HTTP(HyperText Transfer Protocol,超文本传输协议)

HTTP是一个应用层协议,虽然在2015年已推出HTTP/2版本,并被主要的web浏览器和web服务器支持。但目前使用最广泛的还是HTTP/1.1版本。

它的主要特点可概括如下:

(1)支持客户/服务器模式。

(2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

(3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

(4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。为了解决这个问题, Web程序引入了Cookie机制来维护状态。

(5)另外,HTTP请求报文和响应报文都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。

 

 

OSI网络7层模型(概念型框架)()

以上是关于网络协议简介的主要内容,如果未能解决你的问题,请参考以下文章

专题一:网络协议简介

网络编程的基本概念,TCP/IP协议简介

网络协议简介

RL-TCPnet网络协议栈简介

https网络编程——HTTPS简介以及SSL协议详解

网络程序模型与应用层其他协议简介