TCP/IP网络分层模型
TCP/IP协议总共有4层,每一层都需要下层的支撑,同时也支撑着上层协议。
TCP/IP协议的分层模型中,总共氛围4层:
1. 链接层(link layer),负责在以太网、WIFI这样的底层网络上发送原始数据包,工作在网卡这个层次上,使用MAC地址标记网络上的设备,所以有时候也叫MAC层;
2. 网际层(网络互连层,internet layer),IP协议就处于这一层,在这一层使用IP地址取代MAC地址,把很多的局域网、广域网连接成一个虚拟的巨大网络,在这个网络里面寻找设备,只需要将IP地址再转换成MAC地址就可以了;
3. 传输层(transport layer),在这一层工作的协议是TCP,还有UDP,这个层的主要任务是保证数据包在IP地址之间可靠的传输。
TCP协议是有状态的协议,需要先于对方建立连接,才会发送数据,TCP会保证数据不丢失不重复。UDP协议相对简单,它是无状态的,无需完成建立连接就可以发送数据,但UDP不保证数据一定会发送到对方。除此之外,TCP的数据是连续的字节流,有先后顺序,先发送的数据包被接收成功,才会发送之后的数据包;而UDP则是发送分散的数据包,顺序发送,乱序接收。
4. 应用层(application layer),借助于下面三层提供的功能,应用层可以面向各种协议,包括HTTP、HTTPS等等。
OSI网络层次结构
OSI的全称是“开放式系统互联通信参考模型“(Open System Interconnection Reference Model),是由国际标准组织建立的,从上到下依次是:
区别于TCP/IP层级划分,OSI的优点在于:
两个分层的映射关系
从上图中可以看到,对应于TCP/IP协议的分层,ISO的分层关系:
TCP/IP协议栈的工作方式
当我们从一个机器上通过互联网发送数据到另外一台机器的时候,首先会将发送的数据按照HTTP协议进行包装,当数据到了TCP层的时候,会给数据包打一个TCP的头,再继续递交给下层,在IP层加上IP头,在MAC层加上MAC头。
数据在传输的过程中,在IP、MAC层会分别拆解IP头、MAC头信息,进行寻址,等数据到达目标机器的时候,会将TCP头、HTTP头进行拆解,将传输的内容展示给最终的用户。