首页
学习
活动
专区
圈层
工具
发布

TCP协议

什么是TCP协议 TCP(transmission control protocol)协议全称传输控制协议。它是TCP/IP协议簇中一个非常重要的协议,它工作在IP协议层之上,应用层下面。...TCP服务的特点(为什么需要TCP协议) •使用TCP进行通信,在传输数据前需要建立连接,连接建立成功之后才能输出数据。建立连接的两端分配内核资源,像端口号,socket描述符。...TCP协议报文结构 •端口号,分为源端口号和目的端口号,分别占用16bit。源端口号标识报文发送方端口地址,目的端口号标识报文接收方端口地址。...,通信双方使用该字段选项协商最大报文段长度MSS(max segment size),在TCP协议中将MSS设置为(MTU-40)个字节。...5)kind=4是选择确认选项,如果某个TCP报文段丢失,则TCP模块会重传最后被确认的TCP报文段后续的所有报文段,这样之前已正确传输的TCP报文段也可能重复发送,降低了TCP性能。

1.4K11

TCP协议

1、TCP协议的特点 TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复的问题。...TCP是TCP/IP体系中非常复杂的一个协议,主要特点有: 1)TCP是面向连接的传输层协议。 2)每一条TCP连接有两个端点,每一条TCP连接只能是点对点的(一对一)。...3)TCP提供可靠的交付服务,保证传输的数据无差错,不丢失,不重复且有序。 4)TCP提供全双工通信。...5)TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 2、TCP连接管理 TCP是面向连接的协议。...TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端口叫做套接字(socket)或插口。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    TCP协议

    1、TCP协议的特点 TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复的问题。...TCP是TCP/IP体系中非常复杂的一个协议,主要特点有: 1)TCP是面向连接的传输层协议。 2)每一条TCP连接有两个端点,每一条TCP连接只能是点对点的(一对一)。...3)TCP提供可靠的交付服务,保证传输的数据无差错,不丢失,不重复且有序。 4)TCP提供全双工通信。...5)TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 2、TCP连接管理 TCP是面向连接的协议。...TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端口叫做套接字(socket)或插口。

    70910

    TCP 协议

    TCP是一种面向连接、可靠的传输方式。 超时重传 TCP层每发送一个数据包,都要设置一个定时器,如果接收方在有效时间内没有返回数据接收的确认ACK,发送方则重新发送这个数据包。...TCP三次握手 主机A向主机B发送连接请求 主机B向主机发送ACK确认 主机A建立连接,向主机B发送ACK确认;主机B收到ACK确认,建立连接 为什么要三次握手?...TCP四次挥手 主机A在发送完数据后,向主机B发送关闭连接的请求FIN,之后处于半关闭状态,不再发送任何数据,但可以接收数据 主机B在接收完数据后,处理关闭连接的请求,返回FIN同意关闭。...TCP四次挥手主要是为了保证连接关闭前的数据能够稳定地进行传输。 为什么要四次挥手?

    62020

    TCP协议和UDP协议

    (注:本文部分摘自《计算机网络 谢希仁》) 目录 1.传输控制协议TCP 1.1TCP的主要特点: 1.1.1面向连接的运输层协议 1.1.2每一条TCP连接只能有两个端点,每一条TCP链接只能是点对点的...(一对一) 1.1.3TCP提供可靠交付的服务 1.1.4TCP提供全双工通信 1.1.5面向字节流 1.2与TCP有关的面试问题 2.用户数据报协议UDP 2.1UDP协议的主要特点: ---- 1....传输控制协议TCP 1.1TCP的主要特点: 1.1.1面向连接的运输层协议 (1)TCP的连接 TCP的许多特性都与TCP是面向连接的这个基本特性有关,因此要对TCP的连接有更清楚的了解。...原因是端口的唯一性标识是:端口号+协议名称。所以TCP和UDP的端口完全没有任何关系,协议内部端口号唯一。 追问:程序在连接到端口时,怎么知道此时从该端口进来的数据是tcp的还是udp的呢?...,原因如下: TCP和UDP传输协议监听同一个端口后,接收数据互不影响,不冲突。快狗二面 一个端口可以 同时TCP 又UDP 吗?

    1.6K20

    TCP协议详解

    TCP服务的特点 传输层协议主要有两个: TCP协议和UDP协议。TCP协议相对于UDP协议的特点是:面向连接、字节流和可靠传输。 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。...TCP协议的这种连接是一对一的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服务。而无连接协议UDP则非常适合于广播和多播。...TCP传输是可靠的。首先,TCP 协议采用发送应答机制,即发送端发送的每个TCP报文段都必须得到接收方的应答,才认为这个TCP报文段传输成功。...最后,因为TCP报文段最终是以IP数据报发送的,而IP数据报到达接收端可能乱序、重复,所以TCP协议还会对接收到的TCP报文段重排、整理,再交付给应用层。.UDP协议则和IP协议一样,提供不可靠服务。...它们都需要上层协议来处理数据确认和超时重传。 TCP头部结构 TCP固定头部结构 ?

    1K10

    TCP协议概述

    TCP 协议概述 1.TCP提供一种面向连接的、可靠的字节流服务。 2.两个应用程序通过TCP连接交换8bit字节构成的字节流。...3.每个TCP首部都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。...4.一个IP地址和一个端口号也称为一个插口(socket),出现在最早的TCP规范(RFC793) TCP 保证可靠性: 1.应用数据被分割成 TCP 认为最适合发送的数据块 2.当 TCP 发出一个段后...,它启动一个定时器,等待目的端确认收到这个报文段,超时重发 3.当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认 4.TCP 将保持它首部和数据的检验和 5.如果必要, TCP 将对收到的数据进行重新排序...6.TCP 还能提供流量控制 TCP是一个面向连接的协议。

    52820

    TCP 协议详解

    参考网址: 《TCP 协议详解》 《简析TCP的三次握手与四次分手》 《TCP协议中的三次握手和四次挥手(图解)》 《TCP通信的三次握手和四次撒手的详细流程(顿悟) 》 《TCP建立连接的三次握手...因而他们需要定义一些共通的东西来进行交流,TCP / IP 就是为此而生。 TCP / IP 不是一个协议,而是一个协议族的统称。...里面包括了 IP 协议,IMCP 协议,TCP 协议,以及我们更加熟悉的 http、ftp、pop3 协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。...TCP / IP 协议按照层次由上到下,层层包装。...注:UDP 和 TCP 很相似,当时更简单,同时可靠性低于 TCP。 # 四、TCP 报文格式 TCP 是一个协议,那这个协议是如何定义的,它的数据格式是什么样子的呢?

    2.1K50

    TCP协议笔记

    TCP协议会将其余的报文进行拼装成一个报文(分组),在上一个分组确认到来后,会将此分组发送。该算法的优越之处在于它是自适应的:确认到达得越快,数据也就发送得越快。...在对实时性要求高的场景必须关闭Nagle算法,比如进程间使用TCP协议进行通信。 TCP滑动窗口协议:T F T P使用了停止等待协议。数据发送方在发送下一个数据块之前需要等待接收对已发送数据的确认。...滑动窗口协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。...LWIP协议栈 TCP报文接收流程源码解析 一、TCP层第一个处理函数tcp_input      首先IP层将TCP报文段提交给tcp_input函数,tcp_input函数需要查找先查找已建立连接的...tcp控制块,也就是TCP的session。

    90710

    TCP协议(下)

    采取这种方法 网络辅助的拥塞控制 路由器向发送方显示地反馈网络拥塞信息 简单的拥塞指示(1bit) : SNA,DECbit,TCP/IP ECN,ATM 指示发送发应该采取何种速率 案例 ATM...性能分析 TCP throghput : 吞吐率 给定拥塞窗口大小和RTT,TCP的平均吞吐率是多少?...TCP的公平性 TCP协议具备公平性 如果 K 个TCP Session共享相同的瓶颈带宽 R,那么每个Session的平均速率 为R/K 公平性与UDP 多媒体应用通常不使用TCP,...以免被拥塞控制机制限制速率 使用UDP:以恒定速率发送, 能够容忍丢失 产生了不公平 研究:TCP friendly ** 公平性与并发TCP连接 ** ** **某些应用会打开多个并发连接...Web浏览器 产生公平性问题 例子:链路速率为 R,已有 9 个 连接 新来的应用请求 1 个TCP,获得 R/10的速率 新来的应用请求11 个TCP,获得 R/2的速率

    38410

    TCP协议(上)

    概述 RFCs-793, 1122, 1323, 2018, 2581 TCP特点 点对点连接 一个发送方,一个接收方 可靠的,按序的字节流 TCP拥塞控制和流量控制机制 设置窗口尺寸...连接包括:两台主机上的缓存,连接状态量,socket等 流量控制机制 TCP段结构 TCP的序列号和ACK 序列号: 序列号指的是segment中第一个字节的编号, 而不是segment...A: TCP规范中没有规定,由TCP的实现者做出 决策 TCP可靠数据传输 概述 TCP在IP层提供的不可靠服务基础上实现了可靠数据传输服务 流水线机制 累计确认 TCP使用单一重重传定时器 触发重传的事件...连接管理 TCP sender和receiver在传输数据之前需要建立连接 初始化TCP变量 Seq.# Buffer和流量控制信息 Client : 连接发起者 Socket clientSocket...协议客户端与服务端连接生命周期 TCP拥塞控制 未完待续…

    34010

    TCP协议详解

    传输控制协议 TCP 概述 TCP 最主要的特点 TCP 是面向连接的运输层协议。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。...接收方不需要请求发送方重传某个出错的分组 信道利用率 停止等待协议的优点是简单,但缺点是信道利用率太低 [TCP协议-图4] 为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。...这种传输方式可以获得很高的信道利用率 [TCP协议-图5] 连续 ARQ 协议 位于发送窗口内的5个分组都可以连续发送出去,而不需要等待对方的确认。...版本 TCP 的运输连接管理 TCP 是面向连接的协议。...另一种细线箭头表示异常变迁 [TCP协议-图19] 《TCP协议详解》原文链接:https://blog.maplemark.cn/2019/04/tcp%E5%8D%8F%E8%AE%AE%E8%AF

    1.5K50

    TCP 协议简介

    来源:阮一峰的网络日志 作者:阮一峰 TCP 是互联网核心协议之一,本文介绍它的基础知识。 ? 一、TCP 协议的作用 互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。 ?...(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)...IP 协议只是一个地址协议,并不保证数据包的完整。如果路由器丢包(比如缓存满了,新进来的数据包就会丢失),就需要发现丢了哪一个包,以及如何重新发送这个包。这就要依靠 TCP 协议。...它的头信息最少也需要20字节,因此 TCP 数据包的最大负载是 1480 - 20 = 1460 字节。由于 IP 和 TCP 协议往往有额外的头信息,所以 TCP 负载实际为1400字节左右。...应用程序需要的数据放在 TCP 数据包里面,有自己的格式(比如 HTTP 协议)。 TCP 并没有提供任何机制,表示原始文件的大小,这由应用层的协议来规定。

    54400

    TCP协议详解

    后来呢,我们都慢慢长大,了解了社会的残酷,变得复杂而成熟,就像TCP协议一样。它之所以这么复杂,那是因为它秉承的是“性恶论”。...TCP是靠谱的协议,但不代表它所处的网络环境很好。 IP层来看,如果网络状况的确差,无任何可靠性保证,即使是IP的上一层TCP也无能为力,能做的只是更努力,不断重传,通过各种算法尽量保证。...TCP协议专门设计了几个状态来处理这些问题。...TCP协议里面并没有对这个状态的处理,但Linux有,可以调整tcp_fin_timeout参数,设置一个超时时间。...因为TCP报文基于是IP协议的,而IP头中有一个TTL域,是IP数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。

    51410

    TCP 协议简介

    TCP 是互联网核心协议之一,本文介绍它的基础知识。 一、TCP 协议的作用 互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。...(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)...IP 协议只是一个地址协议,并不保证数据包的完整。如果路由器丢包(比如缓存满了,新进来的数据包就会丢失),就需要发现丢了哪一个包,以及如何重新发送这个包。这就要依靠 TCP 协议。...HTTP/2 协议的一大改进, 就是压缩 HTTP 协议的头信息,使得一个 HTTP 请求可以放在一个 TCP 数据包里面,而不是分成多个,这样就提高了速度。...应用程序需要的数据放在 TCP 数据包里面,有自己的格式(比如 HTTP 协议)。 TCP 并没有提供任何机制,表示原始文件的大小,这由应用层的协议来规定。

    83950

    TCP协议详解

    后来,我们慢慢长大,了解社会残酷,变得复杂成熟,就像TCP协议。它之所以复杂,因为它秉承“性恶论”。...TCP是靠谱协议,但不代表它所处的网络环境很好。IP层来看,若网络状况差,无任何可靠性保证,即使是IP的上一层TCP也无能为力,能做的只是更努力,不断重传,通过各种算法尽量保证。...TCP协议专门设计了几个状态来处理这些问题。...TCP协议里面并没有对这个状态的处理,但Linux有,可以调整tcp_fin_timeout参数,设置一个超时时间。...因为TCP报文基于是IP协议的,而IP头中有一个TTL域,是IP数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。

    70731

    TCP协议概述

    TCP 是互联网核心协议之一,本文介绍它的基础知识。 一、TCP 协议的作用 互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。...(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)...IP 协议只是一个地址协议,并不保证数据包的完整。如果路由器丢包(比如缓存满了,新进来的数据包就会丢失),就需要发现丢了哪一个包,以及如何重新发送这个包。这就要依靠 TCP 协议。...HTTP/2 协议的一大改进, 就是压缩 HTTP 协议的头信息,使得一个 HTTP 请求可以放在一个 TCP 数据包里面,而不是分成多个,这样就提高了速度。...应用程序需要的数据放在 TCP 数据包里面,有自己的格式(比如 HTTP 协议)。 TCP 并没有提供任何机制,表示原始文件的大小,这由应用层的协议来规定。

    48530

    TCP协议(网络)

    TCP协议 TCP全称为 "传输控制协议(Transmission Control Protocol")....那么TCP协议需要能够识别出那些包是重复的包, 并且把重复的丢弃掉. 去重的效果. 这时候我们可以利用前面提到的序列号 那么, 如果超时的时间如何确定?...TCP协议想尽可能快的把数据传输给对方, 但是又要避免给网络造成太大压力的折中方案....在TCP的协议头中, 没有如同UDP一样的 "报文长度" 这样的字段, 但是有一个序号这样的字段. 站在传输层的角度, TCP是一个一个报文过来的. 按照序号排好序放在缓冲区中....应用层协议 HTTP HTTPS SSH Telnet FTP SMTP 当然, 也包括你自己写TCP程序时自定义的应用层协议; TCP/UDP对比 我们说了TCP是可靠连接, 那么是不是TCP

    57810
    领券