OSI七层协议模型
OSI七层模型包括应用层,表示层,会话层,传输层,网络层,数据链路层以及物理层。示意图如下所示:
应用层:由用户自己规定,规定各个应用之间消息传递的形式等,包括各机互访协议,分布式数据库协议等。常见的应用层协议有HTTP协议和FTP等。
表示层:在满足用户需求的基础上,尽可能的节省传输费用而设置的,比如传输压缩文件,jpeg或者加密文件等格式。数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。就好比是一台主机使用的是json格式编码,另外一台主机收到这些信息之后同样使用json格式解码。
会话层:用于建立和拆除会话。建立及管理会话。就好比我们每次打开一个新的浏览器访问同一个界面,就是新建了一个会话。
传输层:负责将来自会话层的消息传递给网络层,常见的传输层协议有TCP和UDP等协议。
网络层:规定通信网内的路由选择等方式,建立用户间的信息报传输设施。常见的网络层协议有IP,ICMP以及ARP等协议。
数据链路层:与建立数据传输链路相关。
物理层:规定一些机电性能,也包括工作方式如双工、单工或半双工,建立通信的启动和终止等。
理解和记忆:要想传输东西,我们是不是需要规定两个应用之间传输的请求和响应格式?那就是应用层负责的事情;接下来是不是需要规定传输格式?这就是表示层;然后需要会话层来建立会话;由传输层将数据包传输到网络层,然后通过数据链路来传输;最底层还需要物理层来规定一些物理硬件层面的东西。
总结:应用层->表示层->会话层->传输层->网络层->数据链路层->物理层
四层模型
TCP/IP协议
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP协议是一系列网络协议的总称,是网络通信的基本骨架。TCP/IP协议模型在OSI七层模型的基础上,通过合并的方式,简化为四层,分别为应用层,传输层,网络层以及链路层。
我们通常的应用程序都工作在应用层,当各个应用之间通信时,传输层的TCP模块负责给HTTP数据添加TCP头部等信息;网络层的IP模块负责给HTTP数据添加IP头部等信息;链路层添加以太网首部等信息,并且通过电信号来传输数据包;然后数据包会依次经过对方的链路层,网络层,传输层以及应用层,实现数据的通信。
IP协议:
IP协议制定了一套网络地址,也就是IP地址,根据IP协议能够区分两台主机是否同属一个网络(子网)。
ARP协议(地址解析协议):
根据IP地址获取MAC地址,将目标的IP地址在链路层进行包装,生成以太网数据包,在同一个子网内进行广播出去,各个主机拿到IP地址和自己的IP地址对比,若一样,则返回自己的MAC地址。注意,MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间。
路由协议:
ARP的寻址必须是在同一个子网内,我们可以通过IP协议来确定是否是同一个子网。如果不是同一个子网,则通过网关将数据包多次转发到对应的子网中,完成这个路由协议的物理设备就是路由器。
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
五层协议
.(1)应用层:为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
(2)传输层:为进程提供通用数据传输服务。包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。
(3)网络层:为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
(4)数据链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
(5)物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。