OSI参考模型
OSI:开放式系统互联参考模型。该模型定义了不同计算机互联标准,是设计和描述计算机网络通信的基本框架。OSI模型将网络通信的工作分为七层
物理层:解决电信号的传输问题,定义电器规范,设备规范,物理接口等,研究对象为比特位,为两端设备提供原始比特流的传输通路。设备:集线器,网线,HUB,RJ45标准。
链路层:将下层比特位分帧(Frame),这些帧可以被识别,能进行物理地址(MAC地址)寻址和重发。设备:交换机,网桥,网卡。
网络层:将数据帧以包为单位分包,并为数据在节点之间的传输创建逻辑链路,并进行地址管理和路由选择。设备:路由器,防护墙,IP协议,OSFP。
传输层:提供应用程序进程之间的逻辑通信。建立进程之间连接,处理数据包错误和包次序等。出现了进程,TCP,UDP,进程和端口等概念
会话层:会话的访问验证和会话管理,会话断开连接的重连等。
表示层:数据加密解密,编码和解码,压缩和解压缩。
应用层:为操作系统或应用程序提供访问网络服务的接口。常见:FTP,HTTP,DNS,SSH,SNMP。
TCP/IP协议栈
TCP/IP 协议栈是一系列网络协议的总和,它是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。他和OSI七层模型的对比。
我们一般应用层处理数据,并不关心下部数据是如何进行封装和传输的。数据在传输时,应用层、传输层、网络层和链路层会对该数据进行包装并携带对应的首部,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。由此实现了两个应用层级的数据交互。
UDP协议
一种不可靠的数据报协议,直接向目的地址发送数据包,而不关心数据包是否可连接,包是否能到达,数据包在中途发生了丢失接受方无法察觉。DNS,DHCP底层都是基于网络UDP协议。
tcp协议
TCP是一种可靠的,发送和接收方双方面向连接的数据传输控制协议。保证了数据传输的可靠性是可控的。避免在传送过程中发生丢包后接收方数据缺失。
实现了这种可靠性的方式是:发送方将每一个数据包按序编号进行发送,接收方在每收到一个包,便向发送方发送对应的确认接收的ack应答包,发送包通过接收该ack应答来确定该包已经被接收。这种方式下无论是发送方的数据包丢失,还是接收方的ack确认包丢失,发送方都接收不到这个ack确认包,一段时间后,发送方会重新发送,直到这个包确认被接收。