计网基础七-传输层

七、传输层

​ IP层是实现点到点的连接;传输层是提供端到端的连接,即实现不同进程之间的通信。在传输层主要依赖TCP和UDP协议,TCP是一种是一种可靠的、面向连接的通信协议;UDP是一种不可靠、无连接的通信协议。

7.1TCP协议

7.1.1TCP的报文结构

​ TCP报文由固定首部长度为20字节和可变部分0~40字节组成,其每部分的含义如下

  • 源端口号:发送数据进程的端口号,范围0~65525。
  • 目标端口号:接收数据进程的端口号,范围0~65525.
  • 序列号(sequence number ) :TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
  • 确认号(acknoledgement number ):期望收到对方的下一个报文段的数据的第一个字节的序号。
  • 首部长度:TCP头部的长度,范围0-60字节
  • 保留位:保留今后使用,目前置0处理。
  • URG:紧急比特,当 URG=1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
  • ACK:确认比特,只有当 ACK=1时确认号字段才有效。当 ACK=0 时,确认号无效 。
  • PSH:推送比特,接收方 TCP 收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付 。
  • RST:复位比特,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接 。
  • SYN:同步比特,同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文 。
  • FIN:终止比特,用来释放一个连接。当FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接 。
  • 窗口大小:窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
  • 校验和:检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
  • 紧急指针:紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。

在这里插入图片描述

7.1.2TCP三次握手

(1)第一次握手:

Client将标志位SYN置为1,随机产生一个值seq=M,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

(2)第二次握手:

Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=M+1,随机产生一个值seq=N,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

(3)第三次握手:

Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=N+1,并将该数据包发送给Server,Server检查ack是否为N+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

在这里插入图片描述

7.1.3TCP四次挥手

(1)第一次挥手:

Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

(2)第二次挥手:

Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

(3)第三次挥手:

Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

(4)第四次挥手:

Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

在这里插入图片描述

7.2UDP协议

​ 每个 UDP 报文分为 UDP 报头和 UDP 数据区两部分。报头由 4 个 16 位长(2 字节)字段组成,分别说明该报文的源端口、目的端口、报文长度和校验值。

  • 源端口号:通常包含发送数据报的应用程序所使用的 UDP 端口。接收端的应用程序利用这个字段的值作为发送响应的目的地址。这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号写入该字段中。如果不写入端口号,则把这个字段设置为 0。这样,接收端的应用程序就不能发送响应了。
  • 目标端口号:接收端计算机上 UDP 软件使用的端口 。
  • 长度:表示 UDP 数据报长度,包含 UDP 报文头和 UDP 数据长度。
  • 校验和:检验数据在传输过程中是否被损坏。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值