作者:故事我忘了
个人微信公众号:程序猿的月光宝盒

1.UDP简介

1.1UDP报文结构:

Source Port:源端口

Destination Port:目标端口

Length:数据包长度

Checksum:奇偶校验值

data octets:用户数据

1.2 UDP特点

​ 1.面向非连接

​ 传输数据之前,源端和终端无建立连接,当他想传送时,就简单地去抓取来自应用程序的数据,并尽可能快的把他扔到网络上,在发送段,UDP传送数据的速度,仅仅是受应用程序生成数据的速度的影响,计算机的能力和传输带宽的限制.在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读取一个消息段.

  1. 不维护连接状态,支持同时向多个客户端传输相同的消息

  2. 数据包报头只有8个字节,额外开销较小

  3. 吞吐量只受限于数据生成速率,传输速率以及机器性能

  4. 尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表

  5. 面向报文,不对应用程序提交时的报文信息进行拆分或者合并,因此,应用程序应该选择合适的报文大小

2. TCP和UDP的区别

  1. TCP面向连接,UDP面向非连接

  2. 可靠性:TCP比较可靠,利用握手,确认和重传机制来提供可靠性,而UDP可能会丢失
  3. 有序性:TCP有序,TCP利用序列号保证了消息报的顺序交互,到达可能无序,但是TCP最终会排序,而UDP不具备有序性
  4. 速度:TCP速度比较慢,因为要创建连接,保证消息的可靠性和有序性,UDP更适合对速度比较敏感的应用,比如在线视频媒体,电视广播,多人在线游戏
  5. 量级:TCP属于重量级,UDP属于轻量级的,体现在源数据的头大小,TCP是20个字节,而UDP是8个字节

Java每日一面(Part1:计算机网络)[19/10/21]的更多相关文章

  1. Java每日一面(Part1:计算机网络)[19/10/14]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.1 说一说TCP的四次挥手 ​ "挥手",即终止TCP连接,断开一个TCP连接池. ​ 需要客户端和服务端总共发出四个包,以 ...

  2. Java每日一面(Part1:计算机网络)[19/10/13]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1.说说TCP三次握手 1.0 在此之前,什么是TCP? ​ TCP(传输控制协议) ​ 1.面向连接的,可靠的,基于字节流的传输层通信协议 ​ 2. ...

  3. Java每日一面(Part1:计算机网络)[19/11/25]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[2] 1.1Get请求和Post请求的区别 从三个层面来回答: 1.1.1 从HTTP报文层面: ​ Get请求将请求信息放在UR ...

  4. Java每日一面(Part1:计算机网络)[19/11/13]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[1] 1.1 HTTP简介 ​ HTTP协议,即超文本传输协议,属于应用层的协议,他是基于请求和响应模式的无状态的 应用层协议. ...

  5. Java每日一面(Part1:计算机网络)[19/11/02]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.TCP的滑动窗口 1.1 RTT和RTO的区别 ​ RTT:发送一个数据包到收到对应的ACK,所花费的时间 ​ RTO:重传时间间隔,TCP在发 ...

  6. Java每日一面(Part2数据库)[19/11/28]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.如何设计一个关系型数据库 如上图,首先划分成两大部分: ​ 1.存储部分:类似一个文件系统,把数据存储到一个持久化设备中,如机械硬盘,固态等 ​ ...

  7. Java Web学习总结(19)——web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  8. 【Java每日一题】20161214

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1214 { public s ...

  9. 【Java每日一题】20161212

    package Dec2016; public class Ques1212 { public static void main(String[] args){ System.out.println( ...

随机推荐

  1. 解决 Windows Docker 安装 Gitlab Volume 权限问题

    本文首发于我的个人博客,解决 Windows Docker 安装 Gitlab Volume 权限问题 ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤. Ca ...

  2. python网络编程socketserver模块(实现TCP客户端/服务器)

    摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块.通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类 ...

  3. vue 中 px转vw的用法

    下面介绍最简单的用法 1 下载依赖 npm install postcss-import postcss-loader postcss-px-to-viewport --save-dev 2 在项目根 ...

  4. LAMPSecurity: CTF6 Vulnhub Walkthrough

    镜像下载地址: https://www.vulnhub.com/entry/lampsecurity-ctf6,85/ 主机扫描: ╰─ nmap -p- -sV -oA scan 10.10.202 ...

  5. react-native run-ios “Could not find iPhone X simulator”

    问题 这个问题发生在旧的RN版本(0.57,0.58(<0.58.4),-)和Xcode 10.3中,其中可用模拟器的名称得到了一些调整 在文件node_modules/@react nativ ...

  6. CodeForces - 5C(思维+括号匹配)

    题意 https://vjudge.net/problem/CodeForces-5C 给出一个括号序列,求出最长合法子串和它的数量. 合法的定义:这个序列中左右括号匹配. 思路 这个题和普通的括号匹 ...

  7. Pytorch 记录

    BCELoss BCEWithLogitsLoss 将sigmoid和BCELoss结合在一起,数据的稳定性更好. torch.nn.functional: binary_cross_entropy_ ...

  8. 面试连环炮系列(九):为什么ConcurrentHashMap是线程安全的

    为什么ConcurrentHashMap是线程安全的 JDK1.7中,ConcurrentHashMap使用的锁分段技术,将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一 ...

  9. gradle环境搭建

    最近我在尝试了解跨平台技术的发展,首先则是想到了cordova.环境配置过程中有依赖gradle,下面简单记录了在windos10系统下搭建gradle环境的过程. 什么是gradle Gradle是 ...

  10. 转pytorch中训练深度神经网络模型的关键知识点

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_42279044/articl ...