传输层协议

前言

传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol )和 用户数据包协议UDP(User Datagram Protocol)

tcp

传输层协议

TCP端口号

传输层协议

TCP头部

这里着重了解三个特殊字符:
ack:确认位 ,0或者1 ,1表示发来的数据已确认接收无误,保证有效性
syn:同步位, 0或者1,1表示建立连接,表示要求你收到请求后答复
fin:结束位 ,0或者1,表示关闭连接,当链路线路终止的时候,为拆掉tcp三次握手,会发送一个fin的数据包
window:划动窗口, 一次性可以发送多少数据包 保证有效性
传输层协议

TCP建立连接的过程

注释:seq为***、syn为同步号

需要强调的是,***是基于自己上一个数据包的的***+1如主机A发的第一个包和第三个包,seq分别为a、a+1。ack是对方基于自己的***+1,如服务器A收到主机A的数据包,将其发来的seq变为ack并+1,变成a+1。

syn(同步位)只有在前两次建立连接的数据包才有,第三次是没有的

注:有时候抓包会看见***为0,是因为***原本可能是10000但是发送过来的数据是相对10000而言的,10000相对10000就是0,而10001相对10000就是1,这个需要相对了解一下
传输层协议

TCP传输过程

如下图,是分段发送,确认号是针对一些列数据包的,如下图没1500字节回一个确认包,若没收到则回复丢失的数据包丢失的数据包***。下次再从这个***进行重传。

传输层协议

TCP流量控制

如下图,主机A会根据服务器A丢失的数据段进行调整,保证效率和可靠性。
传输层协议

TCP关闭连接

如下图,当需要拆掉tcp连接时,各自向对方发送fin数据包让会话结束。
传输层协议

UDP

传输层协议##### UDP头部
传输层协议

UDP传输过程

如下图,udp 只能靠上层应用来实现流量控制,序列确认等。
传输层协议

UDP传输过程

由于udp是不可靠传输,但是处理效率高,常用语音等实时通信,例如:语音通信,即使对方没收到,也可以人为语言确认。
传输层协议

总结

1.TCP头部中的确认标识位有什么作用?
fin拆tcp连接,syn 同步、建立连接、 ack,表示发来的数据是否已确认接收无误
2.TCP头部中有哪些标识位参与TCP三次握手?
syn、ack、fin