小编又来了,前几篇博文,我们介绍了以太网的基础知识,从传输比特流的物理层,到数据链路层,再介绍到网络层,7层OSI模型已经介绍完了三层。今天呢,我们继续来介绍以太网传输层,如下介绍首先我们先看看传输层的作用:
---传输层的协议解决了端与端连接提供传输服务.
---这种传输服务分为可靠和不可靠的,其中TCP就是可靠传输、udp是不可靠传输.
---为端与端连接提供流量控制、差错控制、服务质量等管理服务.
其中在传输层主要常见的涉及到了协议主要有两种,一种TCP,一种是UDP。我们就先从TCP协议先来介绍。

备注1:传输层协议繁多,如:tcp、udp、tls、rtp、sctp、spx、atp、IL等.
备注2:对于APP开发者来说,如运行Linux/Android的系统,常见也就是传输层的协议,也就是常说的 Socket 网络编程 .
对于TCP协议,我们先看TCP是哪三个英文单词的缩写,Transmission Control Protocol (中文解释:传输控制协议.),它是一种面向连接,可靠的,基于字节流的传输层协议,TCP是基于IP的传输层协议.
了解了TCP协议的基本概念,我们接着看看TCP协议段格式:
备注:顺便普及一下包、帧、数据包、段、消息这个五个术语,这些都是用来表述数据的单位,大致区分如下:
---包可以说是全能性术语;
---帧用于表示数据链路层中包的单位;
---数据包是 IP 和 UDP 等网络层以上的分层中包的单位;
---段则表示 TCP 数据流中的信息;
---消息是指应用协议中数据的单位。

对于段格式的详细介绍如下:
1:源端口号:
---源端口号表示报文的发送端口,占16位。源端口号和源ip地址组合起来,可以标识报文的发送地址。
---目的端口号表示报文的接收端口,占16位。目的端口号和目的IP地址相结合,可以标识报文的接收地址
---序列号,TCP传输过程中,在发送端出的字节流中,传输报文中的数据部分的每一个字节都有它的编号。序号占32位,发起方发送数据时,都需要标记序号。
---确认号标识了报文接收端期望接收的字节序列。如果设置了ACK控制位,确认序号的值表示下一个准备接收的包的序号码。
---首部长度,该字段占4位,用来表示tcp报文的首部长度。
---保留字段,暂时没什么用。
---控制标志占6位,具体的标志位为URG,ACK,PSH,RST,SYS,FIN.(有6个标志位,每个标志位1bit,即只有0和1两种状态.)

---窗口大小,长度为16位,共两个字节,用来进行流量控制的。
---校验和长度位16位,共两个字节,对整个tcp报文段,即tcp头部和tcp数据进行校验和计算,接收端用于对收到的数据包进行验证。
---紧急指针,长度16位,共两个字节,是一个偏移量,和sn序号值相加表示紧急数据最后一个字节的序号。
注意:以上10项内容是TCP报文首部必需字段,也叫固有字段,长度为20字节。接下来就是可选项和填充部分。
介绍完TCP协议段格式,接下来我们继续看看TCP协议的传输过程:TCP的数据传输过程涉及三个阶段:建立连接(三次握手),数据传输,断开连接(四次挥手).
1:建立连接(三次握手):
TCP连接的建立是通过三次握手过程完成的,目的是确认双方的接收和发送能力是否正常,同时交换必要的参数,如序列号和窗口大小,为数据传输做准备。
---第一次握手:客户端发送一个SYN(同步)报文给服务器,并指定一个初始序列号。客户端进入SYN-SENT状态,等待服务器的响应。
---第二次握手:服务器收到SYN报文后,如果同意建立连接,则发送一个SYN-ACK(同步确认)报文作为响应。服务器同时也发送自己的初始序列号,并进入SYN-RECEIVED状态。
---第三次握手:客户端收到SYN-ACK报文后,发送一个ACK(确认)报文给服务器,确认收到服务器的SYN报文。此时,TCP连接建立,双方进入ESTABLISHED状态,可以开始数据传输。
2:数据传输:
在连接建立后,TCP进入数据传输阶段。数据在应用层被分割成数据段,然后在传输层被进一步分割成TCP报文段。每个TCP报文段包含序列号、确认号和其他控制信息。发送方将数据发送给接收方,并等待接收方的确认。如果发送方在一定时间内未收到确认,它将重传数据。
3:断开连接(四次挥手):
数据传输完成后,TCP连接需要被断开。断开连接的过程称为四次挥手,包括以下步骤:
---第一次挥手:一方(通常是客户端)发送一个FIN(结束)报文,请求断开连接。
---第二次挥手:另一方(通常是服务器)收到FIN报文后,发送一个ACK报文确认,并进入CLOSE-WAIT状态。
---第三次挥手:服务器发送一个FIN报文给客户端,请求断开连接。
---第四次挥手:客户端收到FIN报文后,发送一个ACK报文确认,然后进入TIME-WAIT状态。经过一段时间后,客户端进入CLOSED状态,连接完全断开。
通过以上对传输层TCP协议的简单介绍,小编相信攻城狮对TCP协议有了简单认识,后续小编也会基于对TCP协议传输的应用协议会一一介绍。
对了,介绍了TCP,下一篇猜一下小编会介绍什么,猜对了,下一篇进行UDP协议介绍。
最后,小编还是那句话:加油,预祝中国科技早日实现自主可控.
┏(^0^)┛.
本篇作者-品佳集团-思考帝
231

被折叠的 条评论
为什么被折叠?



