简单了解传输层协议之TCP和UDP

目录

一、什么是端口号?

二、TCP协议

2.1 TCP报文格式

2.2 三次握手

2.3 四次挥手

2.4 窗口流量控制

三、UDP协议

3.1 UDP报文格式

3.4 传输过程


一、什么是端口号?

我们自己的一台电脑上有时可能会同时运行多个进程软件来进行上网。那么当网络上的服务器响应我们电脑进程的请求并回复数据包发给我们电脑时,我们电脑从网卡中收到数据帧后,应该将数据包交给电脑中那个正在运行的进程软件进行处理呢? 此时端口号就派上用场了,端口号的作用就是用来区分主机上正在运行的不同服务软件,这也就是为什么网络服务端与客户端的通信数据帧在运输层都会包含一个源目端口号的原因,就是为了方便目地主机知道要将收到的数据包交给上层的那个正在运行的服务进行处理。

端口号范围:1-65535

1~1024称为知名端口号或固定端口号,这些端口号默认被永久分配给某个应用使用。如 80端口代表http、 telnet为23端口、 ssh为22端口、ftp为20/21号端口等。

1024以上的端口号被称为高位端口号或随机端口号,一般供用户自定义分配服务程序使用。

 

二、TCP协议

2.1 TCP报文格式

Seq:序列号------每发一个报文就会产生一个的序列号---1.2.3...6...

Ack: 对序列号确认----表明我收到了此个报文

HL:头部长度

SYN:请求建立连接

FIN : 请求断开连接

RST: 请求重新建立连接

ACK:确认、对标识位的确认

windows: 窗口,流量

 

2.2 三次握手

TCP建立连接:向对方发送数据前先给对方打声招呼,协商下通信参数、看双方通信链路是否稳定。

主机A: 10.11.12.13 ….

主机B: 100.101.102….

主机A和主机B要建立TCP连接

ack表示对方的确认,大ACK表示同意请求,小ack表示对对方包的确认收到。

1.主机A发送TCP连接 ---SYN=1 (请求建立连接) seq=10 (包序列标号)

2.主机B同意主机A与其建立连接 ACK=1 ack=11(表示收到了主机A的报文、可以发送下一个11报文了)、同时由于数据传输是双向的,此时主机B也需要与主机A建立连接请求。SYN=1 seq=100。所以综合起来报文包含ACK=1 ack=11, SYN=1 seq=100。

3.主机A收到主机B的请求建立连接、同意与其建立连接。ACK=1(同意) ack=101(表示收到主机B的请求报文了、主机B可以发送下个101报文给我了) seq=11(表示主机A发送的第二个报文)。综合起来报文包含ACK=1 ack=101 seq=11。

2.3 四次挥手

TCP关闭连接

场景:主机A数据传输完毕,但服务器向主机A响应的数据并没有发送完毕。

1.主机A数据传输完毕 FIN=1(请求断开连接)seq表示此次发送的是第几个包 ack 表示对服务器上次发来的包的确认。

2.服务器同意主机A向自身发送流量的方向断开连接  ACK=1

以上过程、主机A就完成了断开连接,无法再向服务器发送连接,以下过程结束双向连接断开,会话结束。

3.过了一会服务器向主机A发送流量结束,请求断开连接 FIN=1 seq表示现在发送的是第几个数据包 ack表示对主机A上次发送给自己的一波报文流量的确认。

4.主机A同意服务器与自己断开连接 ACK=1。

 

2.4 窗口流量控制

window窗口字段用于标识本机缓存区的大小 。缓存区有多大就表明自身可以储存多少流量以及每次可以发送多少流量出去。通过丢包确认机制互相协调,彼此之间缓存区的大小,来调整彼此之间每次可以接收和发送多少流量。

三、UDP协议

3.1 UDP报文格式

在向目的主机发送数据信息时,不需要给对方事先打招呼就直接将数据帧发送给目的主机。同时数据包在传输过程中有丢失就丢失了,源主机并不会在重新发送一份给目的主机。这样以来由于通信双发不需要事先发送数据报文建立连接、协商参数、也没有丢包重传机制,所以使用UDP进行通讯传输处理效率会很高,但无法保证通信的可靠性,因此对时延比较敏感的数据,一般选择UDP。如:语音、视频。

 

3.4 传输过程

 

由于UDP协议没提供数据确认重传机制,因此只能由使用UDP协议的主机上的应用程序来提供报文的确认、排序、流控等操作。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome清除特定网站的Cookie,从而让网址能正常运行(例如GPT)

Chrome在使用某些网址的时候,例如GPT的时候,可能会出现无法访问这个网址的情况,就是点不动啥的 只需要把你需要重置的网址删除就好了

C语言小游戏:三子棋

目录 🌍前言 🚅目录设计 💎游戏逻辑设置 ⚔三子棋棋盘设计 ⚔三子棋运行逻辑 👀怎么设置人下棋 👀怎么设置电脑下棋 ✈如何判断输赢 ✍结语 🌍前言 Hello,csdn的各位小伙伴你们好啊!这次小赵给大…

根据源码梳理Redisson的可重入、锁重试以及看门狗机制原理

Redisson可重入的原理 在上篇文章中我们已经知道了除了需要存储线程标识外,会额外存储一个锁重入次数。那么接下来我们查看使用Redisson时,Redisson的加锁与释放锁流程图。 当开始获取锁时,会先判断锁是否存在,如果存在再进行判断…

算法通关村第十六关-黄金挑战滑动窗口与堆的结合

大家好我是苏麟 , 今天带来一道小题 . 滑动窗口最大值 描述 : 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 题目 : …

EM32DX-C4【C#】

1外观: J301 直流 24V 电源输入 CAN0 CAN0 总线接口 CAN1 CAN1 总线接口 J201 IO 接线段子 S301-1、S301-2 输出口初始电平拨码设置 S301-3~S301-6 模块 CAN ID 站号拨码开关 S301-7 模块波特率拨码设置 S301-8 终端电阻选择开关 2DI: 公共端是…

XUbuntu22.04之OBS30.0设置录制音频降噪(一百九十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

LLM之Agent(三):HuggingGPT根据用户需求自动调用Huggingface合适的模型

​ 浙大和微软亚洲研究院开源的HuggingGPT,又名JARVIS,它可以根据用户的自然语言描述的需求就可以自动分析需要哪些AI模型,然后去Huggingface上直接调用对应的模型,最终给出用户的解决方案。 一、HuggingGPT的工作流程 它的…

Linux驱动开发学习笔记3《新字符设备驱动实验》

目录 一、新字符设备驱动原理 1.分配和释放设备号 2.新的字符设备注册方法 (1) 字符设备结构 (2)cdev_init函数 (3) cdev_add函数 (4)cdev_del 函数 二、自动创建设备节点 …

网络安全(二)-- Linux 基本安全防护技术

4.1. 概述 安全防护基础主要是会用Linux系统, 熟悉Linux基本操作命令。 在这个章节中,我们主要探讨自主访问控制(许可位、ACL)、文件属性、 PAM技术、能力机制等。 4.1.1. 补充命令 本章节中,涉及一些新的命令&#…

【C++】STL简介(了解)【STL的概念,STL的历史缘由,STL六大组件、STL的重要性、以及如何学习STL、STL的缺陷的讲解】

这里写自定义目录标题 一、什么是STL二、STL的版本1. 原始版本2. P. J. 版本3. RW版本★ 4. SGI版本 三、STL的六大组件四、STL的重要性五、如何学习STL六、STL的缺陷 一、什么是STL STL ( standard template libaray - 标准模板库 ):是C标准库 的重要组成部分&…

红队攻防之隐匿真实IP

0x01 前言 安全态势日益严峻,各大组织普遍采用了综合的安全产品,如态势感知系统、WAF和硬件防火墙等,这些措施加大了渗透测试和攻防演练的难度。即使是一些基本的漏洞验证、端口扫描,也可能导致测试IP被限制,从而阻碍…

DFT新手教程:VASP中ISIF取值设置

新手初学VASP计算时首先接触到的就是结构优化的计算任务。 在结构优化中,INCAR中的关键参数包括 IBRION ,NSW,ISIF,EDIFF和EDIFFG 各个参数均可在vaspwiki查到可设置的参数以及该参数所具有的设置的含义。 https://www.vasp.at/…

佛罗里达大学利用神经网络,解密 GPCR-G 蛋白偶联选择性

内容一览:G 蛋白偶联受体 (GPCRs) 是一种将细胞膜外的刺激,传递到细胞膜内的跨膜蛋白,广泛参与到人体生理活动当中。近日,佛罗里达大学的研究者测定了 GPCRs 和 G 蛋白的结合选择性,并开发了预测二者选择性的算法&…

JVM简单了解内存溢出

JVM oracle官网文档:https://docs.oracle.com/en/java/javase/index.html 什么是JVM JVM(Java Virtual Machine)原名Java虚拟机,是一个可以执行Java字节码的虚拟计算机。它的作用是在不同平台上实现Java程序的跨平台运行,即使在不同的硬件…

MX6ULL学习笔记 (七) 中断实验

前言: 本章我们就来学习一 下如何在 Linux 下使用中断。在linux内核里面使用中断,不同于我们以往在别的裸机开发一样,需要进行各种寄存器的配置,中断使能之类的,而在Linux 内核中,提供了完善的中断框架…

AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录 环境准备创建VPC 配置中转网关给每个VPC创建Transit Gateway专属挂载子网创建中转网关创建中转网关挂载修改VPC的路由 验证创建业务Private子网创建可被外网访问的环境测试子网连通性Public子网到Private子网Private子网到Private子网 知识点参考资料 在《AWS攻略——…

java日历功能

java 日历功能 功能概述java代码打印结果 功能概述 输入年份和月份,打印该月份所有日期,头部信息为星期一至星期日 java代码 package com.java.core.demoTest; import java.util.Calendar; import java.util.Scanner;// 打印日历 public class Calend…

计算机网络之IP篇

目录 一、IP 的基本认识 二、DNS 三、ARP 四、DHCP 五、NAT 六、ICMP 七、IGMP 七、ping 的工作原理 ping-----查询报文的使用 traceroute —— 差错报文类型的使用 八、断网了还能 ping 通 127.0.0.1 吗? 8.1、什么是 127.0.0.1 ? 8.2、为…

小程序1rpx边框不完美

问题展示 原因 rpx类似rem,渲染后实际转换成px之后可能存在小数,在不同的设备上多多少少会存在渲染的问题。而1rpx的问题就更加明显,因为不足1个物理像素的话,在IOS会进行四舍五入,而安卓好像统一向上取整&#xff0c…

人工智能|网络爬虫——用Python爬取电影数据并可视化分析

一、获取数据 1.技术工具 IDE编辑器:vscode 发送请求:requests 解析工具:xpath def Get_Detail(Details_Url):Detail_Url Base_Url Details_UrlOne_Detail requests.get(urlDetail_Url, headersHeaders)One_Detail_Html One_Detail.cont…