OSI网络模型的实现
引言
上篇说了,OSI(Open System Interconnect)即开放式系统互联。一般称之为OSI参考模型,1985年ISO(国际标准化组织)组织研究的网络互联模型。所以OSI是一种参考模型,是一个概念,并没有可实现的接口。TCP/IP可以说是OSI的一种实现。
1、TCP/IP介绍
1.1、TCP/IP是四层还是五层?
先看下面的对比图:
一般书中都会说是四层模型,但是一般网上或者一些教学视频上都会说五层。因为OSI是国际化标准参考模型,所以把链路层分为数据链路层和物理层来讲解更容易让人接受。并且TCP/IP模型对网络层的下层并不关心。
1.2、TCP/IP协议栈
TCP/IP协议栈中较重要的协议我以及用红色标注。接下来本文重点讲解TCP协议。
2.、TCP(传输控制协议)简介
➢面向连接的、端到端的、可靠的、基于字节流的传输层通信协议 ➢将应用层的数据流分割成报文段并发送给目标节点的TCP层 ➢数据包都有序号,对方收到则发送ACK确认,未收到则重传 ➢使用校验来检验数据在传输过程中是否有误
3、TCP报文格式
发送端端口号,16位。
接收端端口号,16位。
sequence number,32位。用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
数据偏移,4位。指出TCP报文段的数据起始处距离报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的。
5.保留:6位 。下面有6个控制位说明本报文段的性质。
标志(Flags):6位。共6个,如下:
URG :紧急指针标志
ACK :确认序号标志
PSH : push标志
RST :重置连接标志
SYN :同步序号,用于建立连接过程
FIN : finish标志,用于释放连接
滑动窗口,16位。用于建立连接时,协商发送速度。TCP流量控制的一个手段
校验和,16位。一个端到端的校验和,由发送端计算,然后由接收端验证。其目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动。如果接收方检测到校验和有差错,则TCP数据段会被直接丢弃。
紧急指针,16位。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号。因此这个字段是紧急指针相对当前序号的偏移量。当Flags的URG位1时,此字段生效。出现紧急情况时,把它作为带外数据提前发送。
5、总结
在TCP协议中,标志位是重点,三次握手和四次挥手都是通过6个标志+序号+确认号来完成的。
做积极的人,而不是积极废人!
往期文章
点个「在看」!