计算机网络总结系列之【TCP/UDP协议】

目录

简介

UDP——用户数据报协议(User Datagram Protocol)

特点

面向无连接

不可靠性

面向报文段

单播,多播,广播

头部开销小

UDP首部格式

TCP传输控制协议 TCP(Transmission Control Protocol)

特点

面向连接

可靠传输

面向字节流

点对点通信

全双工通信

TCP首部格式

端口号

序号

确认号

头部长度

保留位

标志位

窗口大小

校验和

紧急指针

选项(最多40字节)

连接过程(三次握手)

发生条件

握手过程

常见问题

功能总结

释放过程(四次挥手)

挥手过程

常见问题

功能总结

超时重传

什么是超时重传?

流量控制

什么是流量控制?

控制手段——滑动窗口

功能

拥塞控制

什么是网络拥塞?

拥塞控制算法——慢启动、拥塞避免、快重传和快恢复

功能

总结

UDP和TCP的对比

UDP数据包与TCP字节流的区别


 

简介

在计算机网络中,网络层把分组发送到目的主机,但真正通信的并不是主机,而是主机中的进程。

传输层提供了进程间的逻辑通信,向高层用户屏蔽了下面网络层的细节,使得应用程序看起来像是有一条端到端的逻辑通信信道。

而TCP/UDP协议是传输层最重要的两种协议,提供了应用程序间的通信,它负责数据从发送端到接收端的信息流格式化和保证可靠传输。


UDP——用户数据报协议(User Datagram Protocol)

特点

  • 面向无连接

不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据直接可以开始发送

  • 不可靠性

体现在面向无连接的特性上,通信不需要建立连接,想发就发,尽最大可能交付

没有确认和重传机制,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息

  • 面向报文段

不会对数据报文进行任何拆分和拼接操作,保留报文的边界,只是添加UDP首部,具体来说

在接收端,网络层将数据传递给传输层,UDP 只去除 IP 报文头就传递给应用层,没有拼接操作

在发送端,应用层将数据传递给传输层,UDP 只会给数据增加一个 UDP 首部,然后传递给网络层

如果发送端调用一次sendto,发送100个字节,那么接收端也必须调用对应的一次recvfrom,接收100个字节,而不能循环调用10次recvfrom,每次接收10个字节

所以UDP不能够灵活的控制读写数据的次数和数量

  • 单播,多播,广播

UDP 支持一对一、一对多、多对多、多对一的方式

  • 头部开销小

UDP头部大小8字节,TCP头部大小最小为20字节,最大为60字节,因此UDP传输开销比TCP小,传输数据报文时高效


UDP首部格式

UDP首部只有8个字节,包括源端口、目的端口、报文长度、校验和,12字节的伪首部用于计算检验(只检验,不恢复)时临时添加


TCP传输控制协议 TCP(Transmission Control Protocol)

特点

  • 面向连接

通过三次握手与四次挥手实现连接的建立与释放一对一连接

  • 可靠传输

采取以上多种方式来保证TCP的可靠性传输

  • 面向字节流

TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输

  • 点对点通信

每条TCP连接只能是一对一通信

  • 全双工通信

通信双方都有发送缓存和接收缓存,应用进程在任意时刻都可以收发数据


TCP首部格式

端口号

一个TCP连接由四个要素唯一确定:(源IP,源端口号)+ (目地IP,目的端口号)

其中IP地址由上一层IP协议负责传递,源端口号和目地端口各占16位=2字节,也就是端口的范围是2^16=65535

从1024-65535是用户使用的端口范围,另外1024由系统保留

序号

TCP通信过程中某一个传输方向上的字节流的每个字节的序号,通过seq来确认发送的数据有序。如:现在序列号为1000,发送了1000字节,下一个序列号就是2000

确认号

用来响应TCP报文段,对上一次seq序号做出确认,给收到的TCP报文段的序号seq+1

头部长度

标识TCP首部有多少个4字节,4位1111最大表示15,则TCP首部最长为60字节,最短只有前20字节,不带选项

保留位

6位保留供以后使用

标志位

ACK 标识确认号是否有效(确认报文段)

RST 标识要求对方重新建立连接(复位报文段)

SYN 标识请求建立一个连接(同步报文段)

FIN 标识通知对方本端连接即将关闭(结束报文段)

URG 标识紧急指针是否有效

PSH 提示接收端应用程序应该立即从TCP接收缓冲区读取数据,为接收后续数据腾出空间

窗口大小

流量控制的手段,告诉对方本端TCP接收缓冲区还能容纳多少数据,控制对方发送数据的速度

校验和

由发送端填充,接收端对TCP报文段执行CRC校验检验报文是否损坏(包括首部与数据)

紧急指针

在URG

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值