UDP与TCP报头介绍,三次握手与四次挥手详谈

先介绍我们UDP/TCP协议缓冲区

在UDP和TCP在数据传输和介绍时有有缓冲区概念的。

UDP缓冲区

UDP没有真正意义上的 发送缓冲区. 调用sendto会直接交给内核, 由内核将数据传给网络层协议进行后 续的传输动作;

UDP具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果 缓冲区满了, 再到达的UDP数据就会被丢弃;

TCP缓冲区

TCP在内核中是具有接收缓冲区和发送缓冲区的。

TCP和UDP由于他们的发送缓冲区和接收缓冲区是独立的(尽管udp没有真正发送缓冲区),所以使用TCP和UDP通信是全双工状态的。

udp协议报头介绍

报头也是结构体。

为了节约紧凑数据,降低内存对齐问题,我们的结构体使用位段结构。

不做数据浪费,tcp报头数据结构也是使用位段结构

UDP报头内容介绍

原端口号:发送方的端口号,接收方再给发送方发送数据时候,可以依据端口发送到对应的主机中特定的进程。

目的端口号:发送方机器上绑定该端口的进程。

UDP长度:整个UDP报文(报头+数据)长度,确定数据长度用的,UDP报头是固定的8字节,所以16位UDP报文长度-8字节就是数据长度。

16位UDP检验和:检测这次数据发送情况,如果有误直接将整个报文丢弃。

检验和的检测我们后面讲完TCP报文后一起说。

UDP协议注意事项

  • 无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;
  • 不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层 返回任何错误信息;
  • 面向数据报: 不能够灵活的控制读写数据的次数和数量

数据报文:报头固定,以一个一个报的发送方式,不考虑

无连接:意味着不需要链接就可以直接对某个服务器发送数据。

不可靠:这并不是一个贬义词而是中性词,不可靠意味着,我们发出数据后不用管数据是否抵达,我们只管发送就行了。不需要太多的编写和维护成本。

注意事项

UDP数据报文如果超过了64K数据,数据报会变成2个UDP报,我们需要手动拼接数据。


tcp协议报头介绍

TCP协议特点与报头内容

这里我们讲报头内容和特点是相辅相成的

确认应答机制:每条报文发送对方都会返回一条确认报文

对应使用的是32位序号32位确认序号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云的小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值