TCP/IP详解学习笔记--UDP协议

UDP协议基本介绍

1.基本概念

UDP是一个简单的面向数据包的运输层协议:进程的每一个输出操作都正好产生一个UDP数据报,并组装成一个待发送的IP数据报,与流字符协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报没有联系,UDP提供不可靠的服务,它的数据报格式如下图所示

        UDP数据报
IP首部 UDP首部 UDP数据

2.UDP首部

16位源端口号 16位目的端口号
16位UDP长度 16位UDP校验和
数据 数据

端口号表示发送进程和接收进程,TCP端口号与UDP端口号是相互独立的,因此我们可以用同一端口既绑定UDP又绑定TCP。UDP长度字段指定的是UDP首部和UDP数据的长度

3.UDP校验和

UDP检验和是一个端到端的检验和,它由发送端计算,然后由接收端验证,其目的是为了发现UDP首部和数据在发送端到接收端之间的任何改动

4.IP分片

任何时候IP层收到一份IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口的MTU,IP把MTU与数据报的长度进行比较,若需进行分片,分片可以发生在原始的发送端主机上,也可以发生在中间路由上

把一份IP数据报分片之后,只有到达目的地才进行重组,重组是由目地端IP层来完成的,已经分片的数据报可能会再次分片

对于发送端的每分IP数据报来说,其标示字段都包含一个唯一值,该值在数据报分片时被复制到每一片中,标志段用其中一个bite赖表示更多的片,除了最后一片外,其他每一个都要把该位置1,片偏移字段是该片偏移原始数据报开始处的位置

标志段中有个bite称做不分片字段,如果将这个字段置为1,IP将不分片,相反把数据报丢弃,发送一个ICMP差错报文

尽管IP分片过程是透明的,但有一点让人不想使用它,即使只丢失一片数据,也得重传整个数据报

5.UDP和ARP之间的交互作用

IP分片之后,每一片都会产生ARP请求,但是ARP应答只会应答最后一片,在第一个数据报片到达之后,IP层必须启动一个定时器,如果在规定的时间内数据报片没全部到达,达么这个数据报将会被丢弃

6.UDP服务器的设计

(1)客户IP地址及端口号

来自客户的是UDP数据报。IP首部包含源端和目地端IP地址,UDP包含了源端和目的端的端口号,当应用程序接收到UDP数据报时,操作系统不许告诉它是谁发来的消息,即IP和端口号

(2)目的IP地址

一些应用程序需知道数据报是发送给谁,即目的IP

(3)UDP输入队列

通常程序所使用的每个UDP端口都与一个有限大小的输入队列相联系。这意味着来自不同客户差不多同时到达的请求将有UDP自动排队,接收到的UDP数据报以其接收顺序交给应用程序

广播和多播

1.基本概念

广播与多播只用于UDP,有时候一个主机要向网上所有主机发送帧,这就是广播,多播处于单播和广播之间,帧只发送给属于多播组的所有主机上

2.广播

(1)受限的广播

受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址。此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址都不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样数据报仅出现在本地网络中

(2)指向网络的广播

指向网络的广播地址是主机号为全1的地址,A类广播地址为netid.255.255.255

一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择

(3)指向子网的广播

指向子网的的广播地址为主机号全为1且有特定子网号的地址

(4)指向所有子网的广播

指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址权分开来例如IP为128.1.255.255是一个指向所有子网的广播地址,当然,网络没有划分子网,这就是一个指向网络的广播

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-30 01:50:25

TCP/IP详解学习笔记--UDP协议的相关文章

【转】TCP/IP详解学习笔记(二)

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0    *               255.

TCP/IP详解学习笔记

TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 TCP/IP详解学习笔记(6)-UDP协议 TCP/IP详解学习笔记(7)-广播和多播,IGMP协议 TCP/IP详解学习笔记(8)-DNS域名系统 TCP/IP详解学习笔记(9)-TCP协议概述 TCP

TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

TCP/IP详解学习笔记   这位仁兄写得太好了 TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器 TCP/IP详解学习笔记(12)-TCP的超时与重传TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流 TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着

TCP/IP详解学习笔记(9)-TCP协议概述

终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个"拨打电话"的过程,等到通信准备结束才开始传输数据,最后结束通话.所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就

TCP/IP详解学习笔记(一) 概述

生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢固 2. 对算法,数据结构认知太浅 3. 对界面程序以及GUI相关学习比较排斥 我也一直主观上逃避对这些知识的学习,这也是为什么我写的内容都是以实践为主了.从本系列开始,我尝试离开大脑的舒适区,巩固自己理论相关的知识. TCP/IP作为整个现代互联网社会的基础,有着至关重要的作用,因此学习掌握协议栈

TCP/IP详解学习笔记(1)

这里是<TCP/IP详解>卷一的一些笔记以及自己对书中的理解,我会结合抓包软件Wireshark来分析,但由于条件有限,无法模拟出书中作者的网络,只能简单的分析,如果发现错误,请帮忙指正.   首先我们讲什么是TCP/IP协议: 两台主机要通信必须遵循相同的规范,对互相发送的报文要知道该如何处理,就像发送XML和JSON数据一样,他们需要按照预先规定的格式组织进行发送,而接收端也要按照这种格式来解读.网络通信协议做的就是这个,而tcp/ip就是协议中用的最广泛的一种. TCP/IP的分层使得协

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. 对于一个给定的路由器,可以打印出五种不同的flag. 1.         U表明该路由可用. 2.         G表明该路由是到一个网关.如果没有这个标志,说明和Destination是直连的,而相应的Gateway应该直接给出Destination的地址. 3.         H

TCP/IP详解学习笔记(6)-UDP协议

1.UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议. 2.UDP协议头 2.1.UDP端口号 由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包.端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来的目的端口号为3000的UDP包都会交给该程序.端口号理论上可以有2^16这么多.因为它的长度是16个bit

TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

转http://blog.csdn.net/goodboy1881/article/details/668556 —————————————————————————————————————————————————————— 把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. 1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UD