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

相关文章

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(