计算机网络——传输层

计算机网络——传输层
解决如何通信?

1.传输层概述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 使用端口(Port)来标记不同的网络进程

  • 端口(Port)使用16比特位表示(0~65535)

    常用端口:

  • FTP: 21

  • HTTP: 80

  • HTTPS: 443

  • DNS: 53

  • TELNET: 23

在这里插入图片描述

2.UDP协议概述

  • UDP(User Datagram Protocol):用户数据报协议
  • UDP是一个非常简单的协议
    在这里插入图片描述
    在这里插入图片描述

2.1.UDP协议头部

在这里插入图片描述

2.2.UDP协议特点

  • UDP是无连接的协议。不需要提前建立连接
  • UDP不能保证可靠的交付数据,无法保证数据是否丢失
  • UDP是面向报文传输的
  • UDP没有拥塞控制
  • UDP的首部开销很小

3.TCP协议详解

  • TCP(Transmission Control Protocol):传输控制协议
  • TCP协议是网络中非常复杂的一个协议
    在这里插入图片描述

3.1TCP协议特点

  • TCP是面向连接的协议
  • TCP的一个连接有两端(点对点通信)
  • TCP提供可靠的传输服务
  • TCP协议提供全双工的通信
  • TCP是面向字节流的协议
    在这里插入图片描述

3.2.TCP协议首部

在这里插入图片描述
16源端口、16位目的端口:地址

头部固定:20字节

序号:

  • 0~2^ 32 - 1
  • 一个字节一个序号
  • 数据首字节序号
    在这里插入图片描述
    确认号:
  • 0~2^ 32 - 1
  • 一个字节一个序号
  • 期待收到数据的首字节序号

在这里插入图片描述在这里插入图片描述
数据偏移:

占4位:0~15,单位为:32位字节

数据偏离首部的距离
在这里插入图片描述
TCP标记:

占6位,每位各有不同的意义
在这里插入图片描述
在这里插入图片描述
窗口:

占16位:0~2^ 16 - 1

窗口指明允许对方发送的数据量

确认号:501, 窗口:1000, 从501到1500的数据都可以被接收

校验和

紧急指针:

  • ​ 紧急数据(URG = 1)
  • ​ 指定紧急数据在报文的位置

TCP选项:

​ 最多40字节

​ 支持协议未来的拓展

3.3.可靠传输的基本原理

3.3.1停止等待协议

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
停止等待协议是最简单的可靠传输协议

停止等待协议对信道的利用效率不高

3.3.2.连续ARQ协议

ARQ:自动重传请求
在这里插入图片描述
在这里插入图片描述
累计确认前的都已经确认了。

3.4.TCP协议的可靠传输

  • TCP的可靠传输基于连续ARQ协议
  • TCP的滑动窗口以字节位单位
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可靠传输的效率不高

选择重传:重传的是数据的边界

  • 选择重传需要指定需要重传的字节
  • 每一个字节都有唯一的32位序号
    在这里插入图片描述

3.5.TCP协议的流量控制

  • 流量控制指让发送方发送速率不要太快
  • 流量控制是使用滑动窗口来实现的
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
发送方和接收方会一直等待,这时使用坚持定时器。
在这里插入图片描述

3.6.TCP协议的拥塞控制

在这里插入图片描述

  • 流量控制考虑点对点的通信量的控制
  • 拥塞控制考虑整个网络,是全局性的考虑
  • 报文超时则认为是拥塞
3.6.1.慢启动算法
  • 由小到大逐渐增加发送数据量
  • 每收到一个报文确认,增大一倍

1 2 4 8 16 指数增长 达到慢启动阈值16,启动拥塞避免算法

3.6.2.拥塞避免算法
  • 维护一个拥塞窗口的变量。
  • 只要网络不拥塞,就试探着拥塞窗口调大, 每次加1

1 2 4 8 16 慢启动阈值16

​ 17 18 19
在这里插入图片描述

3.7.TCP连接的建立----三次握手

TCP标记:
在这里插入图片描述
在这里插入图片描述
为什么发送方要发出第三个确认报文呢?(三次握手)

​ 防止已经失效的连接请求报文传送到对方,引起错误。
在这里插入图片描述
在这里插入图片描述

3.8.TCP的释放-----4次挥手

在这里插入图片描述
等待计时器:等待2MSL,MSL(最长报文段寿命)

MSL建议设置为2分钟。

为什么需要等待2MSL?

  • 确保发送方的ACK可以到达接收方
    • 一个报文没有确认
    • MSL是报文最长寿命
    • 2MSL时间内没有收到,则接收方会重发
  • 确保当前连接的所有报文都已经过期

3.9套接字与套接字编程

  • 使用端口(Port)来标记不同的网络进程
  • 端口(Port)使用16比特位表示(0~65535)

{IP:Port}. ===>套接字(Socket)

  • 套接字(Socket)是抽象概念,表示TCP连接的一端
  • 通过套接字可以进行数据发送或接受
    在这里插入图片描述
    TCP由两个套接字组成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值