您当前的位置:首页 > 计算机 > 网络通信

路由交换03-----传输层协议

时间:12-20来源:作者:点击数:
传输层协议

传输层比较重要的两个协议是TCPUDP协议。

1.TCP

TCP是一种可靠的、面向连接的全双工传输层协议。

TCP的报文格式是这样的:

源端口(2字节):源主机应用程序使用的端口号。源端口和IP地址用作标识报文的返回地址。

目的端口(2字节):目的主机应用程序使用的端口号。

序号(4字节):seq序号,标识发送方向接收方发送的数据段的序号。

确认序号(4字节):Ack序号,接收方应答的序号,为接受到的序号+1。

头长度(4字节):表示i头部占4字节的数目。

URG:是否为紧急指针,0为不是,1为是。

ACK:请求或者应答连接,用于确认序号有效。

PSH:最快速度传输数据。

RST:重建会话。

SYN:同步连接序号,用于建立连接。

FIN:结束连接,为0是请求结束连接,为1是结束连接。

窗口大小(2字节):接收方告诉发送方想接收到的每个数据段的大小,可用于流量控制。

校验和(2字节):对头部和数据进行校验。

紧急指针:当URG为1时生效,表示这个数据是紧急数据,优先发送。

选项:用于记录路由或者时间戳之类的可选任务。

TCP传输数据分为三个过程:建立连接、传输数据、关闭连接。

建立连接的过程是一个三次握手的过程,首先,客户端发送一个标识为SYN,序列为seq=a的数据包,服务器端收到后,要对这个包进行确认,便回复一个SYNACKAck=a+1seq=b的数据包,客户端收到这个包之后,进行确认,回复一个ACKseq=a+1Ack=b+1的包,这样就建立连接了。

注意:ACK是标志位的,用于确认序号有效。Ack是确认序号,是seq+1

接着就开始传输数据。

数据传输结束后开始进行关闭连接,即TCP四次挥手。假设客户端想终止这个连接,于是发送一个数据包:FINACKseq=a,服务器端收到之后,进行确认回复ACKseq=bAck=a+1,确认完客户端的终止连接之后,服务器端再进行终止连接,向客户端发送数据包为:FINACKseq=bAck=a+1,客户端收到之后,知道服务器端也终止连接然后进行确认回复:ACKseq=a+1Ack=b+1,这样会话就关闭了。

2.UDP

UDP是一种不可靠的、无连接的传输层协议,他不像TCP一样需要三次握手四次挥手,UDP不需要事先建立连接,因此也无法保证数据的可靠。

UDP报文的头部是这样的:

源端口(2字节):初始化通信的端口号。

目的端口(2字节):接收方应用程序的地址接口。

UDP数据包长度(2字节):UDP头和数据的总长度。

校验和(2字节):数据包的头部和包内容的校验。

使用UDP发送数据时,应用程序需要提供报文到达确认、排序、流量控制等功能,UDP没有像TCP一样的重传机制,占用资源小,处理效率高。一般用来传输语音、视频等。

对比

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门