传输层的作用

传输层---数据段

源主机和目标主机之间可以提供可靠的数据传输和通信服务。

数据分段和重组。

发送方:上层应用程序传输的数据会被进行分段,每个数据段都有一个序列号,添加一定的控制信息。

接收方:在传输层把分段的数据进行重组,形成完整的数据。

连接管理:可以建立,维护以及终止源主机和目的主机之间的连接。tcpudp

可靠性保证:tcp,数据分段后的有序传递,数据丢失后的检测以及重传。数据的检测和纠错机制,确保传输过程中的数据完整和可靠性。

传输层的主要作用

1.数据分段,重组

2.连接管理

3.tcp是端到端的通信(tcp当中包含源端口和目的端口)

协议:数据通信过程中的规则和约定。以及交互方式。

tcp协议:

面对连接,端口到端口,建立通信。 进程:执行的代码就是进程。

程序:开发写好的代码,未运行的代码就是程序

服务:由进程提供的特定功能。

程到进程:两个执行起来的程序进行端口通信。

tcp全双工服务:数据可以在同一时间内双向传输。

tcp发送缓存和接收缓存,用来临时存储数据。

缓存:临时数据。

tcp:通信双方建立通信之前,必须要先建立连接。

udp:用户数据报协议,无连接。不保证传输可靠性。发送端不关心发送的数据是否能够到达目标主机。数据是否出错饿不在考虑范围之内。

收到数据的主机,也就是接收方,他也不会告诉发送方是否收到数据,

可靠性由上层协议进行保证,用户自定义。

主流的还是tcp:安全可靠,速度慢 udp:速度快,效率高,不安全。

tcp报文的字段

源端口:发送方的端口号

目的端口:接收方的端口号

flags(标志位)

URG:紧急位,当优先级较高的数据需要立刻通过的时候才会有紧急位,URG=1

ACK:确认位 只有ACK=1时,确认序列号字段才有效,如果=0无效

Ack:接收方期望收到发送方下一个报文段的第一个字节编号。接收方希望你发送下一次发的数据的第一个字节的编号为确认号,确认传输是否正常。

PSH:急迫位,立刻送达应用层 PSH=1

RST:重置位,当PST=1,通知重新建立TCP连接。

SYN:同步/连接位,需要建立的第一步,SYN=1

FIN:断开位,FIN=1,表示要断开连接。

SEQ:报文序号。

WIN:接收缓冲区的空闲空间。

三次握手,四次挥手

三次握手:

客户端:SYN=1

服务端:SYN=1 ACK=1

客户端:ACK=1

为什么不需要第一次确认?

两次确认已经分别确定了双方的序列号。已经知道双方是谁,不需要再进行第四次确认。

四次挥手:

pc1pc2要断开连接:

第一步:FIN=1 ACK=1 断开,确认

第二步:pc2ACK=1.确认是pc1

第三步:pc2FIN=1 ACK=1,我要和pc1断开,而且确认

第四步:pc1 ACK=1.确认断开。

为什么是四次挥手不是三次挥手?

防止另一端发送的数据,接收方还没有接收完毕,直接关闭,会导致数据丢失,所以要等待数据全部接收完毕的过程,然后才能断开连接,以保证数据的完整。

time wait4分钟,可以根据程序配置文件更改时间)

1.确保网络中所有分段已经传送完毕。避免影响后续的连接。

2.如果重新建立连接,就不需要再一次打开新的进程,直接使用之前的连接进程。

3.基于MSLtcp连接进程。可以在网络中存活的最长时间。超过这个时间,这个TCP连接进程将会被丢弃。120秒(2分钟)MAXimum Segment Lifetime

你可能感兴趣的:(网络)