tcp协议可以提供什么服务器,什么是TCP协议?_光露的博客-程序员宅基地

技术标签: tcp协议可以提供什么服务器  

什么是TCP协议?

TCP协议是传输控制协议,位于应用程序层和网络层之间,用于提供可靠的流传递服务,即以字节流的形式传递数据,也以字节流的形式接收数据。TCP使用确认机制检查数据的安全和声音到达,在发送方执行多路复用,并在接收方进行多路分解。为了实现面向连接的功能,TCP使用三个阶段,如连接建立,数据传输和连接终止。

了解TCP协议

它被认为是面向连接的协议,这意味着建立并维持连接,直到结束每个端的应用程序交换消息的时间为止。它还决定如何以网络传递的数据包的形式破坏应用程序数据,然后发送数据包并最终从网络层接受那些数据包,此外还管理流控制。在OSI模型中,TCP占用第4层的一部分,即传输层,以及第5层的一部分,即会话层。

让我们举个例子。当Web服务器  将HTML文件发送到客户端时,它将使用HTTP协议。然后,HTTP程序层请求TCP层设置连接,然后发送文件。然后,TCP堆栈将文件划分为数据包的形式,对其进行编号,最后将其转发到Internet协议层进行传递。尽管传输中的每个数据包都具有相同的源IP地址和目的IP地址,但仍沿各种路由发送数据包。客户端计算机中的TCP程序层始终等待,直到并且除非所有数据包都已到达,然后它才确认已收到该数据包,然后请求重传。

TCP协议的优点

这是一个非常可靠的协议。它还可以确保数据以发送时的顺序到达所需的目的地。它也是面向连接的。它提供了错误检查机制以及恢复机制。它还展现了端到端的交流。同样,它提供流量控制。最后,该协议展示了服务器(全双工),这意味着它具有执行接收方和发送方角色的能力。

TCP协议范围

TCP标头的最小长度为20个字节,最大长度为60个字节。

源端口:它是16位,它标识发送设备时应用程序进程的源端口。目标端口:也是16位,它标识接收设备时应用程序进程的目标端口。数据偏移量(4位):  它是4位,它提到TCP报头的大小以及当前数据包在整个TCP段中的数据偏移量。保留(3位):  默认情况下,所有内容都设置为零,并保留以备将来使用。ECE:  它有两种解释:如果SYN位为0,则表示ECE表示IP数据包已具有拥塞经验,即CE位置1。如果SYN位为1,则表示ECE表示设备能够执行ECT。URG:  URG表示“紧急指针”字段已获取重要数据,应进行处理。ACK:ACK表示“确认”字段具有重要性。如果ACK为0,则表示该数据包没有任何确认。PSH:  设置PSH时,意味着它被要求接收该电台,以便在接收应用程序时立即推送数据,但不对其进行缓冲。RST:  Reset标志具有以下功能:需要RST才能拒绝传入的连接。也需要RST来拒绝段。需要RST才能重新启动连接。SYN:  需要SYN标志以设置主机之间的连接。

TCP协议可以做什么?

TCP协议适用于服务器或客户端模型。客户端始终启动连接,服务器将接受连接或拒绝连接。连接管理本质上需要这种三向握手。

客户端启动连接,然后发送该段以及序列号。然后,服务器将与它的SN(序列号)以及与该客户的序列号相比又一个的客户段的ACK一起对其进行确认。现在,客户端在获得该段的ACK之后,将发送对服务器响应的确认。

服务器或客户端都能够发送TCP段以及设置为1的FIN标志。无论何时接收端通过确认FIN将其返回,该TCP通信的特定方向都会关闭,然后释放连接。

使用TCP协议

TCP利用端口号来知道它需要哪个应用程序进程来移交数据段。除此之外,它还使用序列号以便与远程主机同步。然后,每个数据段都与SN一起发送和接收。发送方确保接收方在收到确认后已接收到的最后一个数据段。接收者通过提及最近接收到的数据包的序列号(SN)来了解发送方发送的最后一段。

结论

最后,我们讨论了网络以及TCP / IP的主要组成部分,我们具有所需的背景知识,以便研究相当关键的安全性问题。当我们知道网络是如何构建的时,它使我们了解了当我们选择一种网络设计而不是其他网络设计时引入了哪些物理漏洞,并且知道数据包的形成方式使我们对如何制作数据包实现了了解。目的。此外,我们知道数据包的传输和传送方式可以很好地理解数据包可能发生的情况。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30070663/article/details/119508678

智能推荐

centos 安装 ffmpeg_yhr19910929的博客-程序员宅基地

基础环境yum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++ wget git安装nasmwget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2tar xvf nasm-2.15.05.tar.bz2cd nasm-2.15.05./configuremakemake inst.

MyBatis学习01-前篇之JDBC_还有头发的老李的博客-程序员宅基地

MyBatis学习01-前篇之JDBC1 前言2 JDBC2.1 官网地址2.2 简介2.3 示例2.4 JDBC 优缺点2.4.1 优点2.4.2 缺点1 前言在系统开发过程中,开发人员需要使用面向对象的思维实现业务逻辑,但设计数据库表或是操作数据库记录时,则需要通过关系型的思维方式考虑问题。应用程序与关系型数据库之间进行交互时,数据在对象和关系结构中的表、列、字段等之间进行转换。目前常用的关系型数据库有 Mysql、Oracle、SqlServer,随着国产化的推行,国产化数据越来越多的出现在人们

CentOS 编译安装Nginx 1.16.1_久远成传说的博客-程序员宅基地

//系统CentOS Linux release 7.7.1908 (AltArch)//firewall设置# firewall-cmd --zone=public --permanent --add-port=80/tcp# firewall-cmd --zone=public --permanent --add-port=443/tcp# systemctl restart fir...

nlp牛津第二课Basic Text Processing_Mr Fmy的博客-程序员宅基地

regular expression:disjunctionspunctuationn. 标点符号![ ![](https://img-blog.csdnimg.cn/20190823212801779.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNz...

HTTP状态码总结_Carl_奕然的博客-程序员宅基地

为了更好地了解各个状态码代表的意思,做了一个总结,在实际的工作中,主要涉及到的还是200,404,500等。1. HTTP状态码分5大类:状态码类别100 ~ 199信息性状态码200 ~ 299成功状态码300 ~ 399重定向状态码400 ~ 499客户端错误状态码500 ~ 599服务器错误状态码2. 100~199:信息性状态码1XX的状态码不常用,这是HTTP/1.1引入的信息性状态码。...

Yapi的安装与使用_古辰的博客的博客-程序员宅基地_yum安装yapi

Yapi环境依赖:Node.js(7.6+) MongoDB(2.6+)官方文档地址:Yapi内网部署1.安装Node.js 卸载旧版本的nodejs yum erase nodejs npm -y 更新node.js的yum源(Node.js v8.x) curl --silent --location https://rpm.nodesource.com/setup_8.x | bash - 安装 yum install -y nodejs 查看node.js版

随便推点

MasterPage _zlz_212的博客-程序员宅基地

由于.net 2.0 很快就要发布了,大家都会面临一个IDE环境迁移(vs.net 2005)和.net 2.0新特性的应用问题,在接下来的一些文章,我会做一些asp.net 2.0的专题,写这些文章的初衷是想为很多分析Community Server的Coder们提供一个在我能力范围内的帮助,让大家看到一些新技术是如何诞生和被应用的,很大一部分新特性对于一个熟悉Community Serve

python实现服务器系统监控_黄_猪猪#的博客-程序员宅基地_python 监控服务器资源

参考文章:python系统性能统计(CPU占用率,磁盘使用率,内存占用率,系统平均负载参考文章:Python运维自动化psutil 模块详解(超级详细)模块导入:import psutil获取服务器内存信息def bytes2human(n): """ 内存单位转换 :param n: :return: """ symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y') prefix = {}

Spring的两种动态代理:Jdk和Cglib 的区别和实现_Archie_java的博客-程序员宅基地

Spring的两种动态代理:Jdk和Cglib 的区别和实现一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动

卷积运算--Sobel算子边缘提取代码复现---python(tensorflow)_hfut--罗小黑的博客-程序员宅基地

概述卷积从公式可以看出来对原函数平移并与核相乘,就是信号与系统中学的卷积运算。在图像卷积中,即每个核的中心点对应的位置进行卷积,滑窗方法就是上面的卷积公式。sobel算子是一种经典的边缘提取算子,以sobel为例进行卷积运算。代码# -*- coding: utf-8 -*-"""Created on Fri Apr 26 03:01:26 2019sobel...

nginx服务报错解决_weixin_30896511的博客-程序员宅基地

403禁止访问解决1、重要:修改配置文件使用虚拟机,否则怎么配置都不生效,添加如下用户[[email protected] html]# ll /etc/nginx/nginx.conf-rw-r--r-- 1 root root 345 Aug 26 10:41 /etc/nginx/nginx.conf[[email protected]

Memory Alarms_咔啡的博客-程序员宅基地

RabbitMQFeaturesGet StartedSupportCommunityDocsBlogOverviewThis guide covers RabbitMQ memory threshold and paging settings, running nodes on 64-bit and 32-bit systems, and other related topic...

推荐文章

热门文章

相关标签