计算机网络:TCP与UDP

本文详细介绍了TCP/IP分层模型,重点解析了TCP的三次握手和四次挥手过程,探讨了为何需要第三次握手的原因。此外,还讲解了TCP的可靠性实现,包括序列号、确认应答、滑动窗口、流量控制和拥塞控制。同时,对比介绍了UDP的无连接、不可靠特性及其应用场景。
摘要由CSDN通过智能技术生成

TCP/IP分层模型

应用层 HTTP、SMTP、FTP、SSH、DNS、HTML 向用户提供应用服务时的通信活动
传输层 TCP、UDP 在该层确定数据包应该转发给哪一个应用,也就是将数据包发送到对应的端口号上。
网络层 IP、ARP、ICMP 在该层确定数据包应该转发给网络上的哪一个主机,也就是将数据包发送到IP地址所对应的主机上。
数据链路层

TCP介绍

    TCP是一种面向连接的、可靠的传输层协议。
    面向连接是指,当两个应用程序使用TCP协议进行数据传输时,需要通过“三次握手”建立一条双方专有的、虚拟的通信线路,
在这条线路上进行数据传输,当双方要停止数据交互时,需用用“四次挥手”的方式来断开连接。
    可靠是指TCP协议中包含了数据传输时的丢包控制,以及对乱序的数据包进行顺序控制等功能。

TCP三次握手

在介绍TCP三次握手之前,先来看看TCP首部的格式。如下图:
在这里插入图片描述
  源端口号:记录了发送该数据包的端口
  目标端口号:记录了该数据包的目的端口
  序列号:每发送一次数据,就对该部分进行一次累加,序列号的初值是在建立连接时由计算机随机生成的。
  确认应答号:表示下一次应该收到的数据的序列号。
  接下来主要看一下TCP首部中的控制位部分,如下图所示:
在这里插入图片描述
  只需要知道ACK、SYN、FIN等控制位的作用,就大致能弄明白三次握手和四次挥手了。
  ACK:如果该位为1,确认应答的字段变为有效。
  SYN:用于建立连接。SYN为1表示希望能够建立连接。
  FIN:该位为1,表示之后不会再有数据进行交互,希望断开连接。
  
  TCP的三次握手流程如下图所示(图片来源
在这里插入图片描述
  图中SYN以及大写的ACK是控制位,seq就是TCP首部中的序列号,小写的ack是TCP首部中的确认应答号。

  1. 首先客户端会向服务器发送一个请求,这个请求数据包中,SYN控制位被置为1,表示客户端现在希望与服务器建立TCP连接,此时客户端会随机生成一个x作为seq发送给服务端。
  2. 当服务器监听到客户端发来的建立连接的请求后,服务端会向客户端发送一个数据包,其中SYN=1,表示服务端也想建立链接,ACK=1表示这是对刚刚客户端发来请求的一个应答,此时服务器也会随机生成一个y作为自己的序列号发送给客户端,并将ack=x+1,表示我(服务器)想接收到的客户端下一个请求的序列号是x+1。
  3. 最后,客户端会再给服
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值