UDP/IP传输协议

article/2025/8/27 13:46:19

一、传输层最重要的协议就是TCP和UDP。TCP协议复杂,是面向连接的传输协议且传输可靠;而UDP协议简单,是面向无连接的传输协议,传输速度快但传输不可靠。可以将UDP协议看作IP协议暴露在传输层的一个接口。

UDP协议同样以数据报(datagram)的方式进行数据传输,而且UDP协议提出了端口(port)的概念。IP协议进行的是IP地址到IP地址的传输。但是每台计算机有多个通信通道,并将多个通信通道分配给不同的进程(例如QQ、WEB等),这样一个端口就代表一个通信通道。UDP协议实现了端口到端口的数据传输服务,UDP的数据报也是被封装成“应用层-UDP-IP”的形式进行传输的。


二、UDP的数据报:UDP数据包分为头部(header)和数据(payload)两部分。UDP是传输层的协议,这意味着UDP数据包需要经过IP协议的封装,然后通过IP协议传输到目的电脑。随后UDP数据包在目的电脑上进行拆封,并将信息送到对应的端口缓存中。应用层则可以根据socket等编程接口获取相关端口的数据包信息,用于上层的进一步应用。

如上图所示为UDP协议数据的头部信息,包括源端口(可选的,端口不用置0即可)、目的端口报文长度校验和(其覆盖UDP的头部信息和数据信息,在IPV4中,checksum可以为0;IPV6中必须进行校验)。其中报文长度用来指定UDP数据报包括数据部分的长度(最小值为8字节,且包括IP头等数据)。UDP传输协议相比于TCP协议有以下优点:①当使用广播或多播时,一般使用UDP协议而不是TCP协议。②UDP协议是面向无连接的,协议实现简单且速度较快。


三、IP的数据报:IP协议是不可靠且无连接的网络层传输协议。所有的TCP、UDP等数据都是以IP数据报的形式进行传输的。IP协议通过IP地址进行目的电脑的识别与连接。待传输的数据经过UDP头部信息的封装后,还需进一步经过IP头部信息的封装,进而通过IP协议传输到目的电脑。

4位版本信息:IPv4为0100,IPv6为0110。

4位首部长度:用于标识首部的长度(单位为4字节),所以首部的最大长度为15*4字节=60字节。

8位服务类型:包括3位优先权字段,4位TOS字段,1位始终为0。

16位总长度(字节数):整个IP数据报的长度。IP数据报中的数据长度=IP数据报总长度-IP首部长度。

16位标识:唯一地标识主机发送的每一份数据。

3位标志:用于IP数据报分片,第1位未用;第二位是DF位,DF=1表明IP不对该数据报分片;第3位是MF位,当对数据报分片时,除了最后一片外,其他每个数据报片都要将此位设1。

13位偏移:用于IP数据报分片。单位为8字节,表明该片相对于原始数据报开始处的位置,能表示的最大偏移为。

8位生存时间(TTL):设置数据报可以经过的最多路由器的数量,每经过一个路由器,该值就减去1,当该值为0时,数据报被丢弃,通常设置为32或64。

8位协议:表示上层传输层所用的协议类型,1表示ICMP协议,2表示IGMP协议,3表示TCP协议,17表示UDP协议。

16位首部校验和:用于对IP首部的正确性进行校验,但是并不包括数据部分,这与TCP/UDP的首部校验和有所区别。

32位源IP地址:发送端的32位IP地址。

32位目的IP地址:接收端的32位IP地址。

选项(如果有):可变长度的可选信息,若IP首部不包括这个可选部分,则IP首部长度为20字节


四、IP首部校验和的计算:

发送端对IP首部校验和的计算步骤:

Ⅰ将IP数据报首部的校验和字段置为0。

Ⅱ把IP数据报的首部看成16位为单位的数字组成,依次进行二进制反码求和,然后将求和结果取反。

Ⅲ将得到的2个字节数据存入首部校验和位置即可。

接收端对IP首部校验和的校验步骤:

Ⅰ把首部看成16位为单位的数字组成,依次进行二进制反码求和,然后将求和结果取反。

Ⅱ如果结果为0,则表示校验和校验通过,否则校验失败。

 


http://chatgpt.dhexx.cn/article/WUds1KBm.shtml

相关文章

基于TCP协议的Socket网络通信

前言 一. 什么是网络(了解七层网络模型)?二. 什么是TCP/UDP协议?三.什么是socket?定义 四.基于TCP协议的socket通信的实现步骤是怎样的?客户端的实现服务端的实现测试 一. 什么是网络(了解七层网络模型)? 按区域可分为: 局域网(区域小&am…

socket、tcp/ip、http三者之间的区别和原理

网络七层模型 OSI 模型(Open System Interconnection model)是计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的接口。 1、物理层:例如线路、无线电、光纤、信鸽 物理层负责最后将信息编码成电流脉冲或其…

简单理解socket协议

TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准, 从字面意思来看T…

Http、TCP/IP协议与Socket之间的区别

HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的 tcp协议: 对应于传输层 ip协议: 对应于网络层 TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协…

简单理解Socket 协议

前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个dem…

车载以太网之SomeIP协议

车载以太网之SomeIP协议 1、SomeIP含义2、SomeIP通信协议3、SomeIP数据格式3.1 数据格式含义3.2 处理数据能力的要求 4、面向服务的协议4.1 Method4.2 Event(FF)4.3 Field4.4 Autosar接口说明 5、两个ECU间SomeIP数据的通讯过程6、SomeIP序列化6.1 序列化和反序列化过程6.2 序列…

深入理解 TCP/IP 协议栈,使用 Raw Socket

对于 TCP/IP 协议栈,我们或多或少都使用 Socket API 实现了一些小程序,甚至有一些朋友结合多路复用技术实现了一些简单的并发服务器。但是,对于以下问题,大家是否有清晰的答案呢? WireShark 的实现原理是什么&#xf…

基于TCP协议的Socket通信

基于TCP协议的Socket通信【一】 前言TCP/IP UDP是什么? Socket相关什么是Socketsocket通信步骤socket服务端的编写socket客户端的编写 前言 TCP/IP UDP是什么? 在学习socket之前的必要步骤,具体内容请移步另一篇博文TCP/IP 上篇TCP/IP偏向初…

C#利用Socket实现TCP/IP协议通讯

利用Socket实现服务器给客户端发送信息,客户端给服务端发送数据,服务端异步接收单个客户端数据(持续),服务端异步接收多个客户端数据(持续)。 实现效果如上 客户端代码 using System; using S…

HTTP协议和TCP/IP协议与Socket之间的区别

HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的tcp协议: 对应于传输层ip协议: 对应于网络层 TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议…

网络协议:一文搞懂Socket套接字

本篇内容包括:Socket 套接字的简介、Socket 套接字的分类、Java 中的 Socket 即 java.net.ServerSocket、java.net.Socket 的使用,以及Java 使用套接字 Scoket 编程的Demo。 一、Socket 简介 TCP(传输控制协议)是一种面向连接的、…

Java Socket通信之TCP协议

文章目录 一、 Java流套接字通信模型1.TCP模型2.TCP Socket常见APIServerSocket APISocket API 二、TCP流套接字编程1.回显服务器2.多线程服务器 三、TCP中的长短连接四、协议1. 为什么需要协议?2. 封装/分用 VS 序列化/反序列化3. 自定义协议 紧接着 Java Socket通…

TCP/IP协议讲解

TCP/IP与OSI参考模型 应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、虚拟终端等。 应用层协议:两个主机的两个应用程序之间进行相互交流的数据格式。 运行在TCP协议上的协议: 1、HTTP(Hypertext…

tcp/ip协议与socket介绍

1、tcp/ip五层协议模型 应用层、传输控制层、网络层、数据链路层、物理 2. 应用层 直接向用户提供服务,完成用户希望在网络上完成的各种工作。如curl命令。 3. 传输控制层 3.1 TCP和UDP协议 TCP协议:面向连接的可靠传输协议。利用TCP进行通信时&…

socket协议介绍

2019独角兽企业重金招聘Python工程师标准>>> 本文主要讲述了Socket协议脚本的基础知识和编写方法,让大家能够在短时间内快速掌握简单的Socket协议脚本的编写方法。      1.socket协议介绍      Socket协议有万能协议之称,很多系统底层都是用的socket协议,…

Socket 网络协议 等

🍬 什么是服务器? 对外提供服务的一套软件,放在网络上 (IP地址) 什么是客户端? 是为了连接服务器的一个软件 网络编程的3要素 协议 IP地址 局域网IP地址 公网IP地址(买的) 查看…

socket实现http协议

1、在B/S架构中,Web浏览器与Web服务器之间的一次HTTP请求与响应:需要完成以下步骤: http://localhost:8089/index.html 1)、浏览器端根据所在的HTTP协议解析出对应的url域名:localhost 2)、通过DNS域名解析&#xf…

TCP/IP协议族通信的socket介绍及编程

一、概念介绍 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用…

tensorflow之argmax函数独特讲解

在讲解之前,先来一个该函数的参数说明: argmax(a, axisNone, outNone) # a 表示array # axis 表示指定的轴,默认是None,表示把array平铺, # out 默认为None,如果指定,那么返回的结果会插入其中…