计算机网络--04 传输层

1. 传输层的两个协议
  • TCP(Transmission Control Protocol)传输控制协议
  • UDP (User - -Datagram Protocol )用户数据报协议
    在这里插入图片描述
2. UDP 报文格式
  • UDP是无连接的,减少了建立和释放连接的开销
  • UDP尽最大能力交付,不保证可靠交付 因此不需要维护一些复杂的参数,首部只有8个字节(TCP的首部至少20个字节)

在这里插入图片描述

  • 端口占两个字节 可以推测出端口的取值范围是0~65535
    • 客户端的源端口是临时开启的随机端口
    • 目的端口是应用程序指定的(可利用端口 区分程序的不同服务)
    • 防火墙可以设置开启和关闭某些端口来提高安全性

在这里插入图片描述

  • UDP 长度
    • 占16 首部的长度 + 数据的长度
  • 检验和的计算内容:伪首部 + 首部 + 数据
    • 伪首部:仅在计算检验和时起作用,并不会传递给网络层
      在这里插入图片描述
3. TCP
3.1 TCP 数据格式
  • TCP首部占20字节

在这里插入图片描述

3.2 格式详解
  • 序号
    • 占四个字节

⽤来解决⽹络包乱序问题 。在建立连接后 代表传给对方TCP数据部分的第一个字节的编号 默认从1开始 但是实际上存储的是:默认编号+相对编号
为什么要有这个编号呢? 为了告诉对方下次你应该给我发的首字节编号为多少的数据段。
传输层数据长度可根据 网络层的总长度(在网络层首部可直接读取)-传输层的首部长度(8个字节)= 数据长度 近而可以求初当前接受到数据部分多大 可求出下次需要发送的初始seq

在这里插入图片描述

  • 确认号(确认应答号)
    • 占四个字节 ⽤来解决不丢包的问题。 。在建立连接后,确认号代表期望对方下一次传过来的TCP数据部分的第一个字节的编号 。 当ACK=1时,确认号字段才有效。
  • 窗口(Window)
    • 占2字节 这个字段有流量控制功能,用以告知对方下一次允许发送的数据大小(字节为单位)

为什么要有个窗口呢?
如果没有窗口 每发一段 就需要给对方回应一次那么通信效率极低。所以为了提高通信效率 ,每次多发几段 给对方再相应一次。那么每次发几段合适呢?这时候就有了窗口的概念。告知对方下次允许发送的数据大小。窗⼝的实现实际上是操作系统开辟的⼀个缓存空间,发送⽅主机在等到确认应答返回之前,必须在缓冲 区中保留已发送的数据。如果按期收到确认应答,此时数据就可以从缓存区清除。

  • 数据偏移: 首部长度
  • 标志位
    • URG=1 时 紧急指针才有效 表明当前报文段中有紧急数据 应优先尽快传送
    • ACK =1 时 确认号字段才有效
    • PUSH
    • RST 当RST=1 时 表明连接中出现严重差错 必须释放连接 然后再重新建立连接

比如 数据包重传多次还失败 此时就会发送rst报文

  • SYN 当SYN=1 ACK=0 表明这是一个建立连接的请求 若对方同意建立连接 则回复SYN=1 ACK =1
  • FIN =1 表示数据已经发送完毕 要求释放连接
3.3 TCP的特点
  • 连接管理

    • 建立连接
    • 释放连接
  • 可靠传输

  • 流量控制

  • 拥塞控制<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值