传输层
UDP协议
总结:UDP把IP数据报包了一层,加了端口和校验和,提供差错检测
UDP数据报分为首部和用户数据部分,整个UDP数据报作为IP数据报的数据部分封装在IP数据报中,UDP数据报文结构如图所示:

UDP首部有8个字节,由4个字段构成,每个字段都是两个字节,
1.源端口: 源端口号,需要对方回信时选用,不需要时全部置0.
2.目的端口:目的端口号,在终点交付报文的时候需要用到。
3.长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部),最大长度65535
4.校验和:检测UDP数据报在传输中是否有错,有错则丢弃。
该字段是可选的,当源主机不想计算校验和,则直接令该字段全为0.
当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给应用进程。
如果接收方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程0,),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给对方。
TCP UDP的区别
- TCP 是面向连接的,UDP 是面向无连接的
- UDP程序结构较简单
- TCP 是面向字节流的,UDP 是基于数据报的
- TCP 保证数据正确性,UDP 可能丢包
- TCP 保证数据顺序,UDP 不保证
TCP应用场景:效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。举几个例子:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。
UDP应用场景:效率要求相对高,对准确性要求相对低的场景。举几个例子:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。
使用UDP的协议 DNS DHCP
面向报文(UDP)和面向字节流(TCP)的区别
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
UDP校验和
参考文献:
https://blog.youkuaiyun.com/aa1928992772/article/details/85240358
网络层
IP协议

- 版本号:目前的版本号为4,即IPv4
- 首部长度:指的是首部占32bit字的数目,包括选项长度
- 服务类型(TOS):(现在大多数的TCP/IP实现不支持TOS特性)4bit的TOS分别代表:最小延迟,最大吞吐量,最高可靠性和最小费用。4bit只能置其中1bit,如果4bit均为0,则为一般服务。
- 总长度字段:整个IP数据报的长度,以字节为单位。总长度是IP首部中必要的内容
- 标识字段:唯一地标识主机发送的每一份数据报。
- 标志字段:会在IP分片和重组的时候使用到。标志字段的最低位记为MF,中间的一位记为DF。MF=1表示后面还有分片。DF=0时,才能进行分片。
- TTL(time-to-live):设置了数据可以经过的最多的路由器数,每经过一次路由器,该值-1.
- 首部检验和:是根据IP首部计算的检验和码。
- 源地址:
- 目的地址:
- 任选项:(一般没有)包括以下内容
-
- 安全和处理限制
- 记录路径(每个路由器都记录它的IP地址)
- 时间戳
- 宽松的源站选路
- 严格的源站选路

IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。
A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。
为什么要进行IP分片
每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU(Maximum Transmission Unit).IP协议在传输数据包时,若IP数据报加上数据帧头部后长度大于MTU,则将数据报文分为若干分片进行传输,并在目标系统中进行重组。比如说,在以太网环境中可传输最大IP报文大小(MTU)为1500字节。如果要传输的数据帧大小超过1500字节,即IP数据报长度大于1472(1500-20-8=1472,普通数据报)字节,则需要分片之后进行传输。
本文深入解析UDP和TCP两种网络传输协议的特点与区别,探讨它们在不同场景下的应用,以及UDP数据报与TCP字节流的工作机制。
1万+

被折叠的 条评论
为什么被折叠?



