网络分层模型及HTTP/TCP/IP/Socket介绍


网络分层模型及HTTP/TCP/IP/Socket介绍

文章插图
 
百度百科OSI(Open System Interconnect),即开放式系统互联 。一般都叫OSI参考模型,是ISO组织在1985年研究的网络互联模型 。该体系结构标准定义了网络互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层) 。
TCP/IP是一组用于实现网络互连的通信协议 。Internet网络体系结构以TCP/IP为核心 。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层(主机到主机)、传输层、和应用层 。
OSI参考模型与TCP/IP模型对比层次结构
相同之处:都采用了分层体系结构;不同之处:TCP/IP参考模型比OSI参考模型更简化 。
层次关系
相同之处:都是对等的层间通信;不同之处:TCP/IP参考模型比OSI参考模型层次更清晰简练 。
功能
在功能上,大致相同,在两个模型中,传输层及以上的各层都是为了通信的进程提供点到点、与网络无关的传输服务;TCP/IP参考模型比OSI参考模型有更好的网络管理功能 。
 
数据传输原理把TCP/IP模型的数据传输原理分成几个步骤:
(1) 当应用进程A的数据传送到应用层时,应用层为数据加上本层的控制报头后,将其组织成应用层的数据服务单元,然后向下传输到传输层 。
(2) 传输层收到该数据单元后,加上本层的控制报头,构成传输层的数据服务单元,该数据服务单元被称为报文(message) 。
(3) 传输层将报文传送到网络层时,由于网络层数据单元的长度有限制,因此,传输层的长报文将被分为若干个较短的数据段 。每个数据段再加上网络层的控制报头,就构成了网络层的数据服务单元,它被称为分组 。
(4) 网络层的分组传送到数据链路层时,加上数据链路层的控制信息后构成数据链路层的数据服务单元,它被称为帧 。
(5) 数据链路层的帧传送到物理层后,物理层将以比特流的方式通过传输介质传输出去 。当比特流到达目的结点主机B时,再从物理层依层上传,每层对其对应层的控制报头进行处理,将用户数据交给高层,最终将进程A的数据送给主机B的进程B,实现了数据的透明传输 。
在OSI参考模型中数据的传输和TCP/IP模型原理是完全一样的
实际上,不管是OSI参考模型还是TCP/IP模型,都是数据发送方的各层相当于将各自的控制信息添加到上层传来的数据上,然后一起打包继续向前传递,而数据接收方的各层则是将接到的数据包进行解压,去掉发送方对等层添加在数据上的控制信息,然后传递给上层,最终实现数据的传输 。
网络分层模型及HTTP/TCP/IP/Socket介绍

文章插图
 
相关概念
  • HTTP/HTTPS 应用层协议,还有FTP/TELNET/SMTP/DNS等 。
HTTP HyperText Transfer Protocal 超文本传输协议
【网络分层模型及HTTP/TCP/IP/Socket介绍】最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接 。从建立连接到关闭连接的过程称为“一次连接” 。
  • HTTPS Hyper Text Transfer Protocol over SecureSocket Layer
是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护 。
  • TCP/UDP 传输层协议
TCP 传送控制协议(Transmission Control Protocol)
TCP建立连接需要三次握手、释放连接需要四次握手
UDP 用户数据报协议(User Datagram Protocol)
网络分层模型及HTTP/TCP/IP/Socket介绍

文章插图
 
  • IP 网络层协议 提供了主机和主机间的通信
有了 IP,不同主机就能够交换数据 。但是,计算机收到数据后,并不知道这个数据属于哪个进程(简单讲,进程就是一个正在运行的应用程序) 。TCP 的作用就在于,让我们能够知道这个数据属于哪个进程,从而完成进程间的通信 。为了标识数据属于哪个进程,我们给需要进行 TCP 通信的进程分配一个唯一的数字来标识它 。这个数字,就是我们常说的端口号 。
  • Socket 是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口 。
传输层实现端到端的通信,因此,每一个传输层连接有两个端点 。那么,传输层连接的端点是什么呢?不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口 。传输层连接的端点叫做套接字(socket) 。根据RFC793的定义:端口号拼接到IP地址就构成了套接字 。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号) 。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23) 。


推荐阅读