TCP/IP协议--TCP协议

TCP提供一种面向连接的、可靠的字节流服务。
面向连接指,发送和接收方在交换数据前必须建立一个TCP连接。顺便说下,一个TCP连接只有两方,因此广播和多播是不能应用于TCP的。
字节流指,两个应用程序通过TCP连接交换8bit字节构成的字节流。
可靠性:
1. 应用数据被分割成TCP认为最适合发送的数据块。TCP传给IP的叫报文段,也叫段segment
2. 当TCP发出一个段后,启动一个定时器,等待目的端确认收到。如果不能及时收到,发送端将重发这个报文段。
3. 接收端收到TCP数据,将发送一个确认。并非立即发送,要推迟几分之一秒。
4. TCP将保持它首部和数据的校验和。端到端的校验和。
5. 由于IP数据报可能会有重复,因此TCP要丢弃重复的。
6. TCP还有流量控制。TCP接收端有个缓冲区,发送端不会发出超过缓冲区,直到缓冲区有空间了,避免溢出。

TCP首部: TCP报文段也是依赖在IP数据报中。TCP首部和IP首部长度类似,不如都不算选项长度,那么都是20个字节。

TCP首部如图:

1. 开头是两个16bit的源端口和目的端口。用来区分用户进程。这两个和IP首部的两个IP地址,共同确定TCP的一个连接。
2. 32bit序号: 序号用来标识TCP发端到收端的数据字节流,表示在这个报文段的第一个数据字节。类似于TCP用序号对每个字节进行了计数。
建立新连接时,有个ISN初始序号,主机要发送的第一个字节序号就是ISN+1。
3. 32bit的确认序号: 确认序号包括接收端所期望的下一个序号。
4. 4bit长度,表示最大60字节(1个bit表示32bit长度)和IP首部一样
5.
URG: 紧急指针有效
ACK: 确认序号有效
PSH: 接收方尽快交给应用程序push
RST: 重新建立连接
SYN: 同步序号用来发起一个连接
FIN: 发端完成任务

6. 16bit的窗口大小: TCP的流量控制就是利用的这个窗口大小。窗口大小为字节数。
7. 16bit检验和: 首部和数据的检验和。和UPD类似,都需要个伪首部支撑计算。
8. 16bit紧急指针: 只有当URG为1的时候,紧急指针才有效。
9. 选项: 最常见的是最长报文大小,又称为MSS,通常都在通信的第一个报文段指定这个选项。
10. 数据部分: 这个就不是首部内容了。一个TCP报文段不一定需要数据。比如建立连接的时候就没有数据,只有头部在传输。

时间: 2024-10-07 05:06:50

TCP/IP协议--TCP协议的相关文章

OSI,TCP/IP,五层协议的体系结构,以及各层协议

以下整理的是计算机网络的OSI,TCP/IP,五层协议的体系结构,以及各层协议,便于以后查看: OSI分层,自上而下分别是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 TCP/IP分层:网络接口层(对应OSI的物理层和数据链路层),网际层(对应OSI的网络层,定义了标准的分组格式和协议,即IP协议,当前采用ip4,下一版为ip6),运输层(对应OSI的传输层),应用层(对应OSI的会话层,表示层和应用层) 五层协议分别为:物理层,数据链路层,网络层,传输层,应用层 物理层:作用:

TCP/IP 7 应用层协议

第8章 应用层协议 8.1 TCP/IP应用层协议主要是指OSI参考模型中的第5层.第6层.第7层上半部分的协议.(会话层,表示层,应用层) 应用层协议定义: 利用网络的应用程序有很多,包括web浏览器.电子邮件.远程登陆.文件传输.网络管理等.能够让这些应用进行特定通信处理的正是应用协议. TCP和IP等下层协议是不依赖于上层应用类型.适用性非常广的协议.而应用协议则是为了实现某种应用而设计和创造的协议. 应用协议与协议的分层: 应用可以直接享用传输层以下的基础部分.因为开发者只要关心选用哪种

TCP/IP之TCP交互数据流、成块数据流

建立在TCP协议上的网络协议有telnet,ssh,ftp,http等等.这些协议根据数据吞吐量来分成两大类: (1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等. 交互数据类型在通讯中比例为10%: (2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率.数据成块类型在通讯中比例为90%: 针对这两种情况,TCP给出了两种不同的策略来进行数据传输: 1

(转)iOS 各种网络编程总结--进程、线程、Socket、HTTP、TCP/IP、TCP和UDP

######################################################### 进程与线程 进程和线程都是由操作系统分配和调度的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性. 进程是一块包含了某些资源的内存区域.操作系统利用进程把它的工作划分为一些功能单元.进程中所包含的一个或多个执行单元称为线程(thread).进程还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更

TCP/IP之TCP连接的建立与中止状态分析

TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做四次握手. 1.连接的建立: c端发起请求同步(用SYN段等于1的TCP报文),确认某个端口是否监听: s端应答(用ACK段等于1的TCP报文), c端收到s端的ACK,并回应s端一个ACK给s端: 经过上面三步连接的建立完成.这就叫做三次握手: 2.连接的中止:(TCP中有half-close,这是因为TCP的连接是全双工(可以同时发送和接收)连接,关闭的时候就需要在两个方向上都进行关闭,否则就是half-close) c端发起关闭

TCP/IP的ICMP协议,端口号,TCP建立连接的3次握手

ICMP协议(Internet Control Message Protocol) 1.1. 定义:用于主机或路由器向源点发送差错信息或查询信息的协议. 1.2. 报文结构 IP首部(20个字节)注:ICMP的报文是封装在IP报文里面的,所以要包含IP首部 报文类型(2个字节) 报文字段(2个字节) 校验和(4个字节) ICMP报文内容(长度取决于ICMP报文的类型) 注:这里前八个字节为IP数据包的前八个字节,他们包含了应用程序在源目的主机上的端口号. 1.3. 报文类型 发生报文的情形分为2

TCP/IP篇--各协议简介

--百家菜 在学习网络方面的知识过程中,不可避免地要接触到各种协议,对于一开始接触协议的我们来说对于协议实在没有太多的概念和接触,如果你也是这样,那么博主的这一篇博文可能给你一些关于协议的概念.其中的部分介绍为博主自己总结而出,如有欠缺不当的地方,欢迎通过发表评论或线下交流的方式斧正. 关于协议数据的具体格式和数字表示可上网(百度等网站)或者抓包(抓包方式详细见博主的相关博文-<抓包篇--wireshark使用!>,链接http://powersource.blog.51cto.com/113

TCP/IP和HTTP协议代理

TCP/IP协议族 TCP/IP(传输控制协议/网际协议)是用于计算机通信的一个协议族. TCP/IP协议族包括诸如Internet协议(IP).地址解析协议(ARP).互联网控制信息协议(ICMP).用户数据报协议(UDP).传输控制协议(TCP).路由信息协议(RIP).Telnet.简单邮件传输协议(SMTP).域名系统(DNS)等协议. 1. 应用层 应用层包含一切与应用相关的功能,我们经常使用的HTTP.FTP,Telnet.SMTP等协议都在这一层实现. 2. 传输层 传输层负责提供

柯南君:看TCP/IP 之一 (协议分层)

柯南君:今天无意中翻到一本书<TCP/IP 详解 >,据说是一本不错的书,就情不自禁的读了起来,果不其然,很不错,通俗易懂,在这里,就加一点自己的想法,和大家分享一下: 为什么需要TCP/IP? 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议族允许它们互相进行通信.这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想.T C P / I P起源于6 0年代末美国政府资助的一个分组交换网络研究项目,到9 0年代已发展成为计算机之间最常应用的组网形

TCP/IP体系结构及协议

一.TCP/IP是当前使用最广泛的因特网体系结构,它是一个四层协议系统. 每一层负责不同的功能: ①应用层:负责处理特定的应用程序细节: ②运输层:为两台主机上的应用程序提供端到端的通信: ③网络层:处理分组在网络中的活动如分组的选路: ④数据链路层:也叫网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡. TCP/IP协议的工作流程:(应用层传输文件采用文件传输协议FTP) ①在目的主机上,应用层将一串数据流传送给运输层: ②运输层将数据流截成分组,并加上TCP报头形成TC