传输层总结梳理

来个小结

这一节最重要的是两个协议,TCP,UDP

TCP—>安全,面对对象建立连接,传输速度慢
UDP—>不安全,但是传输速度快,无连接

UDP里边没有三次握手和四次挥手

TCP的封装格式

image.png

最重要的记住他有源端口目的端口以及6个控制位
tcp里边有6个flag 标志位 -----》双方沟通的时候使用
urgent 紧急位: 0 1 如果是1的话,就代表很紧急
ack 确认位: 1 ----》*
push 急迫位:就是推!不让停留。通知接收端立即将数据提交给用户进程,不在缓存中停 留,等待更多的数据。
reset 重置位: 1 表示2台机器需要重新建立连接
syn 同步位: sync 1 表示需要和别人建立连接 —》*
fin 终止位: finish 1 表示想和别人断开 —》*

TCP的工作原理

TCP(传输控制协议)是一种可靠的、面向连接的协议,用于在计算机网络上传输数据。它通过以下步骤工作:

  1. 建立连接:在通信的两个端点之间建立连接前,首先进行三次握手。发送端发送一个连接请求报文段,接收端收到后回复一个确认报文段,发送端再发送一个确认报文段。

  2. 可靠传输:TCP使用序列号和确认来提供可靠的传输。发送端将数据分成较小的块(称为报文段)并添加序列号,接收端收到后发送确认。如果发送端在一定时间内没有收到确认,它将重新发送数据。

  3. 拥塞控制:TCP通过拥塞窗口控制算法来避免网络拥塞。发送端根据网络的拥塞情况动态调整发送速率,以避免过多的数据进入网络导致拥塞。

  4. 流量控制:TCP使用滑动窗口机制来进行流量控制。接收端通过告知发送端自己的可接收窗口大小,发送端根据这个窗口大小来控制发送数据的速率,以避免接收端缓冲区溢出。

  5. 分段和重组:TCP将应用层传输的数据分成较小的报文段,并在接收端重新组装这些报文段。这样可以适应不同的网络传输介质和网络拓扑。

  6. 连接释放:当通信结束时,通过四次握手来关闭连接。发送端发送连接释放请求,接收端回复确认。然后接收端发送连接释放请求,发送端回复确认。

总的来说,TCP通过建立连接、可靠传输、拥塞控制、流量控制、分段和重组等机制来提供可靠的端到端数据传输服务。

三次握手

image.png

以web服务为例子:
有一台 client 和 server

server上跑了一个程序nginx,监听的端口是80端口

当client向sever发送请求的时候,SYN(同步位)置为1,然后自己随机生成seq(序列号)=x,以及整个数据包(seq,syn)打包发送过去,这个时候client的状态变成:syn-sent

server一开始就是监听状态,收到数据包的时候,状态马上变成 SYN-RCVD

server-开始解包,然后将自己的SYN和对方保持同步,同样置为1,并且要确认这个数据包,ACK = x + 1 ,同样的server这边也会有自己的seq = y, 发送过去

当client收到server发过来的同步包之后,状态立即变为-----》established(建立连接)
同时在client,控制位ACK = y + 1,seq=x+1, 再发送给server ,server的状态也变成established(建立连接)

四次挥手

image.png

四次断开是指在TCP协议中,用于终止一个TCP连接的过程。它包括以下四个步骤:

  1. 第一次断开:当一方(假设为客户端)完成数据传输后,发送一个FIN(Finish)报文给另一方(假设为服务器),表示客户端不再发送数据。这个步骤称为主动关闭。

  2. 第二次断开:服务器收到客户端发送的FIN报文后,会发送一个ACK(Acknowledgment)报文作为确认,表示已经接收到客户端的请求关闭连接。此时服务器进入半关闭状态,即只能接收数据但不能发送数据。

  3. 第三次断开:当服务器完成数据传输后,也会发送一个FIN报文给客户端,表示服务器不再发送数据。这个步骤称为被动关闭。

  4. 第四次断开:客户端收到服务器发送的FIN报文后,同样发送一个ACK报文作为确认。此时客户端也进入半关闭状态。

UDP的封装格式

像我们的qq,微信之类在传输层就是用的udp,速度快,如果数据丢失了,那不就是报了红色感叹号,再发一条就可以了嘛。

image.png

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不冤不乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值