【网络协议】TCP协议简介

本文只是对TCP协议做个简要的介绍。

TCP协议,即传输控制协议,与UDP协议同处于传输层,同样使用相同的网络层,但TCP提供了一种可靠的、面向连接的数据传输服务,它会在两个使用TCP的应用之间建立一个TCP连接,在该连接上进行数据的传输。

TCP通过以下方式提供可靠性:

1、应用程序被分割成TCP认为最合适发送的数据块。这点与UDP完全不同,应用程序产生的UDP数据报长度将保持不变,加上IP首部后,才会进行IP分片。

2、当TCP发出一个报文段后,它会启动一个定时器,等待目的端发确认收到这个报文段,如果没能及时收到该确认信息,则将重发这个报文段。

3、当TCP接收端收到发送端发来的TCP报文段时,它将发送一个确认,这个确认不是立即发送的,通常会推迟几分之一秒。

4、TCP将保持它首部和数据的校验和。这是一个端到端的校验和,如果收到的报文段的校验和有差错,TCP将丢弃该报文段,同时不发送确认收到的消息,从而使发送端超时重发。

5、TCP能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间,TCP的接受端只允许另一端发送接收端缓冲区所能接纳的数据,这将防止较快主机致使较慢主机的缓冲区溢出。

6、由于TCP报文段作为IP数据报来传输,IP数据报的到达可能会失序,因此TCP报文段的到达也可能失序,如果必要,TCP将对收到的数据进行重排序,将收到的数据以正确的顺序交给应用层。

7、由于IP数据报有可能发生重复,TCP的接收端必须丢弃重复的数据。

从上面几点可以看出,TCP协议保持可靠性的方式就是超时重传,这种方式很好,虽然TCP也可以通过向源主机发送各种各样的ICMP报文或者来处理这些,但这也是不可靠的,试想,如果ICMP报文在发送回来的过程中丢失了,很明显这种方式就不可靠了。最可靠的方式就是只要得不到确认,就重新发送数据,直到得到确认为止。

    

【网络协议】TCP协议简介

时间: 2024-10-20 11:04:13

【网络协议】TCP协议简介的相关文章

可靠的传输层协议——TCP协议

TCP协议 TCP协议工作在传输层,虽然它与UDP的下一层都是IP但是它却和UDP的效果完全不同,它是一种可靠的传输层协议 一.TCP协议封装 TCP数据段头部共有20个字节,包括16位的源端口号,16位的目的端口号,端口号与前面各层中的协议类型相似,都指的是上层将要交给谁,这个端口号就是主机上一个进程所绑定的一个入口,所以通过端口号和IP就能找到唯一主机的唯一进程. 32位序号:用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节.如果将字节流看作在两个应用

网络 基于TCP协议socket编程

一.socket编程         1.socket编程        socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端号"唯一标识网络通讯中的一个进程,"IP地址+端口号"就称为socket.在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成 的socket pair就唯一标识一个连接. socket本义有"插座"的意思,因此用来描述网络连接的一对一关系.    

【网络】TCP协议

TCP协议:对于网络协议而言.TCP在传输层中是一个十分钟要的协议,那么什么是TCP协议呢? TCP协议概念: 传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议. 在因特网协议族(Internet protocol suite)中,TCP层是位于I

数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Control Procotol )协议是一个面向连接,可靠的协议.TCP为了提供面向连接的服务,专门定义了连接创建,数据传输.连接终止阶段.TCP使用GBN和SR协议来提供可靠性.为了实现可靠性这个目标,TCP使用检验和来进行误差控制.重传来处理数据包丢失和冲突.同时还利用了应答和计数机制.在本节,首先讨论

java 网络编程-TCP协议基本步骤

TCP:TCP协议基于请求-响应模式利用io流实现数据的传输 创建服务器1.指定端口 使用ServerSocket创建服务器2.阻塞式等待连接accept,有一个accept就建立了一个客户端3.操作:io流4.释放资源 public class tcp { public static void main(String[]args) throws IOException { System.out.println("-----Server-----"); // 1.指定端口 使用Serv

网络编程 TCP协议:三次握手,四次回收,反馈机制 socket套接字通信 粘包问题与解决方法

TCP协议:三次握手,四次挥手 TCP协议建立双向通道. 三次握手, 建连接: 1:客户端向服务端发送建立连接的请求 2:服务端返回收到请求的信息给客户端,并且发送往客户端建立连接的请求 3:客户端接收到服务端发来的请求,返回接成功给服务端,完成双向连接 第一客戶向服务端发送请求,请求建立连接 服务端同客户端的请求,并同时向客户端发送建立 连接的请求,最后客户端同意后建立 双向连接. C ----> S C <---- S - 反馈机制: 客户端往服务端发送请求,服务端必须返回响应, 告诉客户

五十三 网络编程 TCP/IP简介

虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Microsoft都有各自的网络协议,互不兼容,这就好比一群人有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了. 为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite)就是通用协议标准

Http与协议TCP协议简单易懂

于C#编写代码,很多时候会遇到Http协议或TCP合约,这里做一个简单的了解. TCP对应于该传送层协议,和HTTP对应于应用层协议,从本质上讲,两者是没有可比性.Http该协议是基于TCP之上的,当浏览器须要从server获取网页数据的时候,会发出一次Http请求. Http会通过TCP建立起一个到server的连接通道.当本次请求须要的数据完成后,Http会马上将TCP连接断开,这个过程是非常短的.所以Http连接是一种短连接.是一种无状态的连接.所谓的无状态,是指浏览器每次向server发

UDP协议&amp;TCP协议

域名: DN (Domain name)是由一串由点分隔的名字组成的Internet上某一台计算机或计算机组的名称. 域名服务系统:DNS:它可以作为将域名和IP地址相互映射的一个分布式数据库. 协议: 应用层常见协议: http协议:超文本传输语言. ftp协议:文件传输协议 smtp协议:简单邮件传输协议 传输层的协议: UDP协议:用户数据报协议,面向无连接的,简单不可靠的传输层协议. 面向无连接 通过数据报包来进行传输,每个数据报包大小不会超过64k. 不可靠的传输. 传输速度快. TC

python网络编程-TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了. 那如何断开连接呢?简单的过程如下: [注意]中断连接端可以是Client端,也可以是Server端. 假设Client端发起中断连接请求,也就是发送FIN报文.Server端接到FIN报文后,