学习一个网络协议,主要就是学习"数据格式/报文格式"









++UDP的特点++
UDP传输的过程类似于寄信.
⽆连接: 知道对端的IP和端⼝号就直接进⾏传输, 不需要建⽴连接;
不可靠: 没有确认机制, 没有重传机制; 如果因为⽹络故障该段⽆法发到对⽅, UDP协议层也不会给应 ⽤层返回任何错误信息;
**⾯向数据报:**不能够灵活的控制读写数据的次数和数量;
++理解 UDP 的 "不可靠"++
⾯向数据报
应⽤层交给UDP多⻓的报⽂, UDP原样发送, 既不会拆分, 也不会合并; ⽤UDP传输100个字节的数据: 如果发送端调⽤⼀次sendto, 发送100个字节, 那么接收端也必须调⽤对应的⼀次recvfrom, 接收100 个字节; ⽽不能循环调⽤10次recvfrom, 每次接收10个字节;
++UDP使⽤注意事项++我们注意到, UDP协议⾸部中有⼀个16位的最⼤⻓度. 也就是说⼀个UDP能传输的数据最⼤⻓度是64K(包含UDP⾸部).然⽽64K在当今的互联⽹环境下, 是⼀个⾮常⼩的数字.
如果我们需要传输的数据超过64K, 就需要在应⽤层⼿动的分包, 多次发送, 并在接收端⼿动拼装;
传输层TCP协议超详细内容敬请关注下篇文章😄🙂😜