TCP 与 UDP 学习笔记

本文详细介绍了TCP与UDP的区别,包括TCP的三次握手、四次挥手、可靠传输机制如校验和、流量控制和拥塞控制,以及TCP报文格式。同时,探讨了UDP的无连接、不可靠、面向报文的特点,UDP报文结构及其实现可靠传输的方法。此外,还对比了TCP的数据流模式和UDP的数据报模式。
摘要由CSDN通过智能技术生成

1. TCP 概述

  • TCP 是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接); 每一条 TCP 连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);

  • TCP 提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;

  • TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;

  • 面向字节流。TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

2. TCP 报文格式

在这里插入图片描述

原端口号

2 byte

目的端口号

2 byte

序号

4 byte
用来确认发送的数据字节流序号,序号达到 2^32 - 1后又从 0 开始。

确认序号

4 byte

发送确认的一端期望收到的下一个序号,在确认标志位 ACK = 1 时有效

数据偏移

4 bit
在这里插入图片描述
指出TCP 报文段的数据距离 起始处有多远,单位为 32 bit 字,又称 首部长度。

由于只有 4 bit,故最大值表示 15,15*32bit/8 = 60 byte,所以 TCP 首部长度最大可为 60 byte,由于固定首部的存在,首部偏移最小为 20 byte,所以选项长度不能超过 40 byte。

保留

6 bit 也有说 3 bit 4 bit,主要是标志位的不同导致,先不纠结。

标志位

  • NS-ECN-nonce,标明阻塞即将发生
  • CWR,Congestion Window Reduced
  • ECE,ECN-Echo 有两种意思,取决于 SYN 标志的值
  • URG 紧急,告知系统需要尽快发送,而不是排队
  • ACK 确认,ACK = 1 时,上面的确认序号有效。TCP 规定连接建立后 ACK 必须为 1
  • PSH 推送,把报文推送给另一方
  • RST 复位,TCP 连接出现错误,需要重新连接。也可以用于拒绝一个非法报文或者拒绝打开连接
  • SYN 同步,用于建立连接时同步序号
  • FIN 终止,释放连接

窗口大小

2 byte

从确认号开始,本报文发送方可以接收的字节数。用于流量控制

2 byte 能表示的最大正整数为 65535,也就是窗口最大值为 65535

校验和

2 byte

检验和覆盖整个

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值