TCP协议的介绍,三次握手,四次挥手。UDP协议介绍,TCPUDP常见的应用层协议及端口号

本文主要是介绍TCP协议的介绍,三次握手,四次挥手。UDP协议介绍,TCPUDP常见的应用层协议及端口号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • TCP协议
    • 1.TCP协议的介绍
    • 2.TCP报文段
    • 3.TCP的三次握手
    • 4.TCP的四次挥手
  • UDP协议
    • 1.UDP协议的介绍
    • 2.UDP报文的头部格式
  • TCPUDP常见的应用层协议及端口号

TCP协议

1.TCP协议的介绍

TCP是面向连接的,可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输

2.TCP报文段

TCP将若干个字节构成一个分组,这个分组叫报文段,TCP报文段封装在IP数据报中。在这里插入图片描述
序号:发送端为每个字节进行编号,便于接收端正确重组。
确认号:用于确认发送端的信息。
窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。
SYN:同步序号位,TCP需要建立连接时将该值设为1。
ACK:确认序号位,当该位为1时,用于确认发送方的数据。
FIN:当TPC断开连接时将该位置掷为1。
RST:当有数据需要重传时,掷为1。
PSH:因为意外导致连接关闭或者拒绝连接时,掷为1。

3.TCP的三次握手

在这里插入图片描述
当客户端请求与服务器端建立连接,会给发送信息的序号附一个X值,同时SYN掷为1,这是第一次握手。
服务器端收到请求连接的信息,ACK=X+1表示收到请求信息,ACK掷为1。与此同时,服务器端发送一个序号为y的对请求建立连接这个信息进行确认,SYN掷为1.这是第二次握手。
客户端收到服务器端的信息后ACK掷为1并对这个序号进行确认,SYN掷为1并开始连接。这是第三次握手。
简单点理解就是:
A:今晚看电影
B:真的?
A:真的

4.TCP的四次挥手

在这里插入图片描述
客户端可以和服务器端断开,服务器端也可以和客户端断开连接。
第一次:客户端请求断开连接
第二次:服务器收到请求并准备断开连接,第一次和第二次合起来称为半关闭状态。
第三次:把所有正在传输的数据传输完
第四次:收到断开连接的请求且数据传输完毕后并断开
最后一次挥手后有一个time wait的时间,如果期间一直没有收到断开连接的请求那么经过了一个2msl的时间后完全断开,中途收到就会在那个时候直接断开。
2msl的时间是用来等断开连接的请求的时间(1到4分钟)。

UDP协议

1.UDP协议的介绍

UDP协议是无连接的不可靠的传输协议,但是该协议花费的开销小,通常用于需要快速响应但是对安全性要求不高的场景。

2.UDP报文的头部格式

在这里插入图片描述
UDP长度:用来指出UDP的总长度,为首部加上数据。
UDP校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制。

TCPUDP常见的应用层协议及端口号

协议端口号作用
HTTPTCP80端口用于web服务
HTTPSTCP443端口在http的基础上进行加密,安全性更高
FTPTCP32端口FTP服务器开放的控制端口
TELNETUDP69端口用于远程登录,远程控制计算机
SMTPTCP25端口SMTP服务器开放的端口,用于发送邮件
POP3TCP110端口用于邮件的接收
TFTPUDP69端口用于简单的文件传输
RPCUDP111端口远程过程调用
NTPUDP123端口网络时间协议

这篇关于TCP协议的介绍,三次握手,四次挥手。UDP协议介绍,TCPUDP常见的应用层协议及端口号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259932

相关文章

C语言中的常见进制转换详解(从二进制到十六进制)

《C语言中的常见进制转换详解(从二进制到十六进制)》进制转换是计算机编程中的一个常见任务,特别是在处理低级别的数据操作时,C语言作为一门底层编程语言,在进制转换方面提供了灵活的操作方式,今天,我们将深... 目录1、进制基础2、C语言中的进制转换2.1 从十进制转换为其他进制十进制转二进制十进制转八进制十进

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Java中 instanceof 的用法详细介绍

《Java中instanceof的用法详细介绍》在Java中,instanceof是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例,这篇文章... 目录引言基本语法基本作用1. 检查对象是否是指定类的实例2. 检查对象是否是子类的实例3. 检查对象是否

在 PyQt 加载 UI 三种常见方法

《在PyQt加载UI三种常见方法》在PyQt中,加载UI文件通常指的是使用QtDesigner设计的.ui文件,并将其转换为Python代码,以便在PyQt应用程序中使用,这篇文章给大家介绍在... 目录方法一:使用 uic 模块动态加载 (不推荐用于大型项目)方法二:将 UI 文件编译为 python 模

Python将字库文件打包成可执行文件的常见方法

《Python将字库文件打包成可执行文件的常见方法》在Python打包时,如果你想将字库文件一起打包成一个可执行文件,有几种常见的方法,具体取决于你使用的打包工具,下面就跟随小编一起了解下具体的实现方... 目录使用 PyInstaller基本方法 - 使用 --add-data 参数使用 spec 文件(

Java遍历HashMap的6种常见方式

《Java遍历HashMap的6种常见方式》这篇文章主要给大家介绍了关于Java遍历HashMap的6种常见方式,方法包括使用keySet()、entrySet()、forEach()、迭代器以及分别... 目录1,使用 keySet() 遍历键,再通过键获取值2,使用 entrySet() 遍历键值对3,

什么是ReFS 文件系统? ntfs和refs的优缺点区别介绍

《什么是ReFS文件系统?ntfs和refs的优缺点区别介绍》最近有用户在Win11Insider的安装界面中发现,可以使用ReFS来格式化硬盘,这是不是意味着,ReFS有望在未来成为W... 数十年以来,Windows 系统一直将 NTFS 作为「内置硬盘」的默认文件系统。不过近些年来,微软还在研发一款名

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r