第十二章:传输层协议与应用
- 格式:doc
- 大小:84.50 KB
- 文档页数:8
传输层的协议简介传输层的协议是在计算机网络中负责将数据从一台计算机发送到另一台计算机的协议。
它位于网络层和应用层之间,是实现端到端通信的关键部分。
本文将介绍传输层的协议的基本概念、主要作用以及常见的传输层协议。
基本概念传输层的协议负责提供可靠的数据传输和错误检测功能。
它将应用层传输的数据分割成适合网络传输的小块,然后将这些小块封装成网络层的数据包进行传输。
在接收端,传输层将接收到的数据包重新组装成完整的数据,然后传递给应用层进行处理。
传输层的协议通常有两种主要的传输模式:面向连接和无连接。
面向连接的传输层协议在传输数据之前需要先建立连接,然后进行数据的传输,最后释放连接。
这种传输模式可以确保数据的可靠传输,但是建立和释放连接的过程会带来一定的开销。
而无连接的传输层协议则不需要建立连接,直接将数据发送到目的地。
这种传输模式的开销较小,但是无法保证可靠传输。
主要作用传输层的协议在计算机网络中起着至关重要的作用。
它主要有以下几个作用:1.可靠的数据传输:传输层协议负责确保数据的可靠传输,通过序列号和确认机制来检测丢失、重复和损坏的数据,并进行相应的处理和重传。
2.拥塞控制:传输层协议通过拥塞控制算法来监测网络的拥塞情况,并采取相应的措施来避免网络拥塞的发生,保证数据的流畅传输。
3.多路复用:传输层协议可以同时处理多个应用层连接,通过端口号将数据传送到正确的应用程序。
4.错误检测和纠正:传输层协议使用校验和机制来检测数据传输中的错误,并且一些协议还提供了纠正错误的功能。
常见的传输层协议在计算机网络中,有多种传输层协议被广泛应用。
以下是其中几种常见的传输层协议:1.传输控制协议(TCP):TCP是一种面向连接的传输层协议,提供可靠的数据传输和拥塞控制功能。
它广泛应用于可靠性要求较高的应用场景,如网页浏览、电子邮件等。
2.用户数据报协议(UDP):UDP是一种无连接的传输层协议,不提供可靠性保证。
它适用于实时性要求较高、数据丢失可以容忍的应用场景,如音视频传输。
2.传输层和应⽤层传输层功能:传输层提供端到端的交换数据的机制,传输层对会话层⾼三层提供可靠的传输服务,对⽹络层提供可靠的⽬的地站点信息传输层数据包类型:本地端⼝⽬标端⼝数据部分端⼝:每个服务都要设定特定的端⼝号,⽤来表⽰机器上的进程的数字。
通过操作端⼝号,就可以控制电脑的进程收发数据操作系统的端⼝范围:0-65535,其中0-1023被系统占⽤1.tcp协议⾯向连接的数据传输协议,可靠传输,Tcp数据包没有长度限制,但是为了保证⽹络效率通常tcp数据包的长度不会超过ip数据包的长度,以确保单个tcp数据不必再分割tcp协议数据包的内容:以太⽹头 IP头 TCP头数据客户端和服务端在通信时传输的数据中没具有标志为需要记住的有:包含源端⼝,⽬的端⼝,seq序号(数据包的编码),确认号(ack),确认标志位ACK,请求连接标志位SYN,FIN(请求断开标志位)数据tcp/ip的三次握⼿和四次挥⼿三次握⼿:在socket编程中,这⼀过程由客户端执⾏connect来触发。
1。
客户端发送⼀个TCP的SYN标志位置1的包指明客户打算连接的服务器的端⼝,以及初始序号seq=X,客户端发送信息后进⼊SYN_SENT 状态,等待服务器端确认2。
服务器发回确认包(ACK)应答。
即SYN标志位和ACK标志位均为1同时,将确认号设置为客户的初始序号加1,即ack=x+1,再随机产⽣⼀个初始序号seq=K,服务器端发送数据后进⼊SYN_RCVD状态3。
检查收到的数据中确认号是否为x+1,如果正确则将标志位ACK置为1,将⾃⼰数据包的确认号设置为服务器发来的序号加⼀,即确认号ack=K+1,客户端发送数据服务器端检查确认号是否为K+1,ACK是否为1,如果正确则连接建⽴成功,客户端和服务器端进⼊ESTABLISHED状态,完成三次握⼿,随后客户端与服务器端之间可以开始传输数据了。
四次挥⼿:在socket编程中,这⼀过程由客户端或服务端任⼀⽅执⾏close来触发。
《组建与维护企业网络》复习计划第一章计算机内部结构与组装具体内容1.1 计算机的组成计算机的结构:主板、CPU、硬盘、光驱、显卡、声卡、网卡、机箱、显示器和键盘、鼠标。
1.1.1 CPU讲解CPU 的主频、缓存、管脚等主要参数的含义;1.1.2 存储设备主要讲解内存、硬盘和光驱;RAM和ROM的比较?内存的参数主要讲解内存的类型:DDR 和DDR II,以及内存的容量。
硬盘主要讲解容量、缓存和总线接口;接口的比较?SATA/IDE/SCSI主板的芯片组1.3 BIOS 设置简单介绍BIOS 和CMOS 的作用,如何进入CMOS 配置界面,设置启动顺序和保存设置等。
驱动程序的作用?如何查看硬件设备驱动是否正常?第二章OSI 参考模型具体内容2.2 计算机网络的功能主要介绍数据通信的功能。
第一代网络以主机为中心第二代网络以资源子网为中心2.3 OSI 分层模型介绍OSI 7 层模型每一层的定义和功能;每层工作设备?2.3.3 数据的封装与解封装介绍数据包传输过程中封装与解封装的过程。
2.4 TCP/IP 参考模型介绍TCP/IP 参考模型每一层的功能。
2.5 TCP/IP 参考模型和OSI 参考模型的比较介绍两种参考模型之间的相同点和不同点。
第三章物理层3.1.1 物理层的功能定义物理层的功能:提供建立维护和拆除物理链路所需的电气的机械的规程的和接口的特性。
强调物理层不是线缆。
3.1.2 物理层关心的是什么从物理层关心的三部分内容:信号、接口和传输介质数字信号的优点3.3 接口3.3.1 串行接口3.3.2 以太网接口介绍以太网中双绞线和光缆使用的接口。
3.4 传输介质屏蔽双绞线、非屏蔽双绞线、光纤、无线介质。
3.4.1 双绞线说明其优点和缺点、适用场合,简要介绍屏蔽双绞线及两者的对比3.4.2 光缆详细介绍光缆优点和缺点、分类、适用场合无线传输是通过外部空间、真空或介质传输电磁波。
简介无线传输定义、方法,如激光、红外线、无线电等3.5 线缆的规范和连接3.5.1 以太网中线缆的规范着重描述以太网的线缆标准,包括10baseT、100baseT、1000BaseT 等标准的区别和应用3.5.2 双绞线的连接标准网线、交叉网线的制作及其连通性的物理检查,简要介绍全反线DTE:数据终端设备:PC ROUTERDCE:SWITCH简要介绍物理层的设备,目的是为了介绍技术的发展过程3.6.1 网络接口卡3.6.2 中继器3.6.2 集线器实验部分实验目标能够制作标准网线和交叉网线并进行测试,第四章综合布线系统理论部分具体内容4.1 详细介绍综合布线系统的六大子系统4.1.2 综合布线系统的优点简要介绍综合布线系统的优点,如结构清晰、易于维护等4.2.3 工作区子系统的设计介绍工作区子系统的设计要点和技术要求P1174.2.4 水平子系统的设计介绍水平子系统的设计要点和技术要求4.2.5 管理与设备间子系统的设计介绍管理子系统包含的设备部件(配线架等),设计要点和技术要点,简单描述设备间子系统的设计要点电缆测试:验证测试和认证测试第五章数据链路层与交换机具体内容5.1 数据链路层数据链路层的作用5.2 以太网简述CSMA/CD的工作原理5.2.3 以太网帧格式讲解MAC地址的格式和802.3以太网的帧格式MAC地址单播和组播帧格式:最长:1518B 最短:64B5.2.4 以太网标准简述MAC子层和LLC子层的802.3和802.2标准5.2.5 以太网命名标准简述以太网:n -信号-物理介质的命名标准5.3 以太网交换机5.3.1 交换机数据转发工作原理学习:源MAC地址转发:目的MAC地址老化时间:300S简述交换机MAC地址表的构成和根据MAC地址转发数据的过程;5.3.2 交换机全双工原理讲解什么是单工、半双工和全双工;讲解冲突域的概念,并讲解交换机通过背板矩阵结构分割冲突域,来实现全双工的原理;5.3.3 交换机的内部交换方式简述快速转发、存储转发和分段转发的三种工作方式;5.3.4 交换机产品介绍介绍Cisco的交换机产品系列。
应用层传输协议篇一:应用层常用协议应用层常用协议1 DNS:域名系统DNS是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。
现在顶级域名TLD分为三在类:国家顶级域名nTLD;通用顶级域名gTLD;基础结构域名域名服务器分为四种类型:根域名服务器;顶级域名服务器;本地域名服务器;权限域名服务器。
2 FTP:文件传输协议FTP是因特网上使用得最广泛的文件传送协议。
FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。
FTP其于TCP。
3 telnet远程终端协议:telnet是一个简单的远程终端协议,它也是因特网的正式标准。
又称为终端仿真协议。
4 HTTP:超文本传送协议,是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础。
使用面向连接的TCP 作为运输层协议,保证了数据的可靠传输。
5 电子邮件协议SMTP:即简单邮件传送协议。
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。
SMTP通信的三个阶段:建立连接、邮件传送、连接释放。
6 POP3:邮件读取协议,POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。
SNMP:简单网络管理协议。
由三部分组成:SNMP本身、管理信息结构SMI和管理信息MIB。
SNMP定义了管理站和代理之间所交换的分组格式。
SMI定义了命名对象类型的通用规则,以及把对象和对象的值进行编码。
MIB在被管理的实体中创建了命名对象,并规定类型。
二、结合五层模型,注意分析各层的封装,使用哪些协议。
哪些协议是可靠传输,面向连接,哪些协议是不可靠传输,非面向连接?应用层文件传输,电子邮件,文件服务,虚拟终端T,SNMP,,DNS,Telnet传输层:提供端对端的接口TCP,UDP网络层:为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP数据链路层:传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU 物理层:以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2TCP提供IP下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。
传输层协议传输层协议随着计算机网络技术的不断发展,数据通信在各个领域得到了广泛的应用。
为了保证数据准确、可靠地传输,网络协议应运而生,成为现代计算机网络架构的支柱。
而在网络通信的协议栈中,传输层协议是非常重要的一环。
在本文中,我们将深入探讨传输层协议的概念、功能和特点。
一、传输层协议的概念传输层是计算机网络中位于应用层和网络层之间的一层,在数据通信过程中承担着重要的角色。
传输层协议是在传输层中使用的协议,主要负责将应用层提供的数据分割成若干个小的数据包,并在网络中进行可靠传输,保证数据的正确性。
同时,传输层协议也负责数据的传输控制,使数据能够以适当的速率传输,不会造成网络拥塞。
在计算机网络中,常见的传输层协议有两种:传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。
它们之间的主要区别在于传输方式的不同。
二、传输层协议的功能1.数据的分段:传输层协议将应用层的数据进行分段,以便更好地进行传输。
传输层将应用层的数据封装成数据包,通过网络传输时,每个数据包都分别传输,避免了因数据包大小过大而造成的网络拥塞问题。
2.可靠传输:传输层协议在数据传输过程中,能够进行校验和错误检查,保证数据的正确性和完整性。
同时,传输层协议还可以通过选择重传等技术来保证数据的可靠传输。
3.拥塞控制:传输层协议通过控制传输速率等方式,避免数据包在传输时过多而造成的网络拥塞问题。
传输层协议还可以通过实时检测网络状态等技术,提前预测网络拥塞并采取相应的措施,从而保证网络流畅。
4.流量控制:传输层协议能够通过流量控制技术控制数据包的发送速率,保证传输速率能够匹配目标网络的带宽。
传输层协议还能够根据网络带宽和传输速率进行自适应调节,以避免数据包的积压和数据传输造成的网络拥塞问题。
三、传输层协议的特点1.可靠性高:传输层协议采用了多种技术来保证数据的可靠传输,包括校验和的错误检查、选择重传等技术。
《组建与维护企业网络》第一章计算机组装
第二章OSI参考模型
第三章物理层
第四章综合布线系统
第五章数据链路层与交换机
第六章虚拟局域网
第七章VLAN Trunk
第八章计算机网络层与协议
第九章静态路由与配置
第十一章RIP路由协议
第十二章传输层协议与应用
第十三章应用层协议与应用
《Linux系统管理》第一章Linux系统简介及安装
第二章常用命令及帐户管理
第三章文本编辑
第四章Shell的使用
第五章Linux应用程序安装与管理
第六章Linux系统管理
第七章Linux基本网络配置
第八章NFS文件系统。
传输层协议有哪些(一)传输层协议介绍传输层协议是互联网协议体系中的一个重要层次,它负责为应用层提供可靠的、端到端的数据传输服务。
在TCP/IP 模型中,传输层协议位于网络层协议之上,为应用层协议提供了良好的服务透明性。
本文将介绍传输层协议的基本概念、特点及常见的传输层协议。
(二)传输层协议特点1、可靠性传输层协议可以保证数据传输的可靠性,通过使用TCP/IP协议中的校验和机制、确认机制、序号机制和重传机制等,可以保证数据在传输过程中不丢失、不重复、不损坏,从而保证了应用程序对数据传输的正确性。
2、面向连接传输层协议通常是面向连接的,这意味着在传输数据之前必须建立一个连接,这个连接是一个双向的、可靠的数据通道,当传输完数据之后,需要关闭连接。
面向连接的传输层协议提供了可靠的数据传输保证,但也会增加传输延迟和网络负载。
3、流量控制传输层协议可以通过流量控制机制限制数据传输速率,从而避免了过多的数据发送造成网络拥塞,提高了网络的稳定性和可靠性。
4、多路复用传输层协议可以通过多路复用技术实现多个连接共享一个网络链接,从而优化网络带宽的利用。
(三)常见的传输层协议1、TCP协议TCP协议(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它是因特网协议族中最为广泛的协议之一。
TCP协议在传输层提供基于字节流的可靠数据传输服务,可以保证数据传输的完整性、顺序性和时效性,因此被广泛应用于各种互联网应用程序中。
2、UDP协议UDP协议(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,它不提供确认消息、重传数据、流量控制等可靠传输机制。
UDP协议主要用于需要高实时性、低延迟的应用场景,如VoIP、视频会议、在线游戏等。
3、SCTP协议SCTP协议(Stream Control Transmission Protocol)是一种面向消息的、可靠的传输层协议,它可以在一个连接中传输多个消息,不需要像TCP协议那样建立多个连接,在传输效率方面优于TCP协议。
传输层协议有哪些
传输层协议指的是在计算机网络中负责进行数据传输的协议,其作用是保证数据可靠传输、流量控制和拥塞控制等。
本文将介绍以下传输层协议:
1. TCP协议
TCP协议(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它通过三次握手建立连接、进行数据传输和四次挥手关闭连接。
TCP协议能够保证数据的可靠传输,即发送方发送数据后可以得到接收方的确认应答,如果接收方没有收到数据,则会要求发送方重传数据。
此外,TCP 协议还可以进行流量控制,以确保接收方可以及时处理数据。
2. UDP协议
UDP协议(User Datagram Protocol)是一种无连接的传输协议,它不需要进行连接建立和断开等操作。
UDP协议的特点是传输速度快,但是数据可靠性较差,发送方发送数据后无法得到接收方的确认应答。
因此,在对数据可靠性要求不高的情况下,可以使用UDP协议进行数据传输。
3. SCTP协议
SCTP协议(Stream Control Transmission Protocol)是一种面向连接的、可靠的传输协议,与TCP协议类似,但是SCTP协议可以同时支持多个数据流传输,因此,在进行多媒体数据传输和流媒体传输等方面有广泛应用。
总结来看,TCP协议和UDP协议是传输层协议中最常用的两种协议。
在对数据可靠性要求较高的情况下,可以使用TCP
协议进行数据传输;而在对数据可靠性要求不高、但传输速度要求较高的情况下,则可以使用UDP协议进行数据传输。
另外,SCTP协议也有其独特的优点,在一些对数据可靠性和传输速
度都有要求的应用场景中有广泛应用。
传输层 传输层作用是什么?第二章学习过,传输层是实现端到端的连接,端到端是什么概念呢?比如:一个人用QQ聊天,网络层识别IP地址,能够将信息发送到正确的主机,而主机应该使用什么应用协议接收这个信息呢?这个功能就需要传输层完成。 传输层主要有TCP和UDP协议。
传输层概述 传输层的功能 1:网络层协议只提供了点到点的连接,而传输层协议提供一种端到端的服务,即应用进程之间通信。 2:网络层协议提供不可靠,无连接和尽力投递的服务,因此,如果对于可靠性要求很高的上层协议,就需要在传输层实现可靠性保障。 传输层协议主要有 TCP (Transmission Control Protocol) UDP (User Datagram protocol ) TCP即传输控制协议,是一个可靠的、面向连接的协议。它允许网络间两台主机之间无差错的信息传递,TCP协议还进行流量控制,以避免发送过快而发生拥塞。不过这一切对用户都是透明的。 UDP即用户数据报协议,它采用无连接的方式传送数据,也就是说发送端不关心发送数据是否到达目标主机,数据是否出错等,收到数据主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。 这两个协议针对不同网络环境实现数据传输。各有优缺点,面向连接的TCP协议效率较低,但可靠性高,适用于网络链路好或可靠性要求高的环境,UDP面向非连接,不可靠,所以效率极高,常用语一些实时业务,也用于一些对于差错不敏感的应用。
TCP协议 它支持多种网络应用程序,TCP对下层服务没有多少要求,它假定下层只能传送不可靠的数据包服务,它可以在多种硬件构成的网络上运行。
TCP工作原理 TCP的封装格式 连接与断开 流量控制 拥塞控制 差错控制 计时器
TCP封装格式 TCP是面向连接的可靠协议,TCP协议为实现可靠传输而提供了一系列方法和手段。 TCP的数据段采取编号的方式保证数据正确顺序。 TCP数据段被封装在IP数据包中来完成传输,而IP数据包经过的路径有可能不同,那么IP数据包到达时可能会失去原有顺序,因而到达的TCP数据段也可能会失序,为了解决,TCP对数据段进行编号,对接收到的数据进行重新排序,然后正确的顺便交给应用程序。其次,由于到达的IP数据包可能发生重复,TCP接收端必须有丢弃重复数据的功能。 TCP连接的每一方都有固定大小的缓冲空间,这就要求TCP发送端只能发送接收端缓冲区能接收下的数据,这防止较快的主机导致较慢的主机缓冲区溢出。
TCP首部数据结构 0 15 16 31位
源端口号 目标端口号
32位序列号 32位确定号
4位首部长度 保留(6位) URG ACK PSH RST SYN FIN 16位窗口大小
16位校验和 16位紧急指针 可选项 数据 0-15 这16位成为源端口号;它是TCP数据段发送方进程对应的端口号,这个端口号是由发送方进程产生的随机数,它唯一地标识了发送端的一个进程。 16-31 这16位目标端口号,它对应的是接收端的进程,接收端收到数据段后,根据这个端口号来确定把数据送给那个应用程序的进程。这样才能保证数据到达正确的地方。 第2行是32位的序列号,提供0-2的32次方-1范围内的一个数字,TCP从应用程序取得数据后,会根据实际传输能力把数据划分成不同的数据段。TCP用这个数字来给数据段打上标记,当数据到达目的后,接收端会按照这个序列号把数据重新排列,保证数据正确性 3行是32位确认序列号,它提供0-2的32次方-1范围内的一个数字。被分成许多数据段的数据虽然被做了标记,但不能保证这当中的所有段都会到达目的地,然后对接收端来讲,只要有一个段没接收到,就不能保证数据的正确性,使用确认号可以更好的解决这个问题。 4行分为4个部分 1:4位首部长度,可以确定首部数据结构字节长度 2:6个保留位,作为今后扩展功能用,现在还没有使用到。 3:6个控制位,这6位有很重要的作用,TCP连接、传输和断开都是受这6个控制位的指挥。 GUR:紧急指针有效位,它和第5行的16位紧急指针配合使用,当URG=1时,TCP根据16位紧急指针确定紧急数据的最后一个字节的位置。这样接收端就可以优先准确快速地获取紧急数据,确保数据的即使到达。 ACK:只有当ACK=1时确认序列号字段才有效。当ACK=0时,确认号无效。 PSH:标志位为1时要求接收方尽快将数据段送达应用层,这个标志位是为了加快特殊数据的处理速度。 PST:值为1时通知重新建立TCP连接。 SYN:同步序列号。TCP需要建立连接时将这个位置为1. FIN:发端完成发送任务位,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个位置为1。
第4部分是16位的窗口大小,说明本地可接收数据段的数目。 第5行中的16位校验和是用来做差错控制的。发送到接收校验数据的完整性。 第5行中的16位紧急指针和URG配合使用,当URG=1时有效。用来说明紧急数据的末尾字节的位置。 第6行是可选项。一般情况下没有可选项。 第7行是数据。
一个TCP连接不仅需要端口,还需要IP地址来确定通信的主机。IP首部中的发送端IP地址加上发送端端口号就形成了连接的发送端;目的端IP地址再加上接收端端口号就确定连接的接收端。这样就唯一的确定了一个TCP连接。 在TCP/IP协议中,TCP协议是基于IP协议的。IP协议是对应于网络层的协议,他是一个不可靠的协议。TCP协议的可靠性保证给IP协议提供了可靠的环境。从而使得IP协议可以不考虑传输的可靠性,专注于网络层的功能。这也是协议分层的初衷,TCP被认为是一种流式传输层服务,表示TCP发送端从应用程序接收到字符流,并从这个流中提取适当的长度创建数据段,然后将其发送到网络上,TCP接收端则接收数据段,从中提取数据,若没有按序号到达还要对其进行排序。并将作为字符流交付给接收端应用程序,这样就完成了数据的传输。 为了进行流式交付,发送TCP和接收TCP都要利用缓冲,发送TCP使用发送缓冲来存储从发送应用程序截取的数据。发送应用程序交付数据的速率是它产生数据的速率。例如:使用网络登录。远程控制主机,用户在键盘上输入的数据就是逐个字符地交付给TCP的发送端的。
TCP的连接与断开 TCP是一个面向连接的服务,也是说在数据通信之前,发送端与接收端要先建立连接,等数据发送结束后,双方再断开连接。 1:TCP建立连接 TCP在建立连接的时候使用端口号来完成与应用程序的对应。 在计算机使用命令 netstat –n来查看目前存在的连接进程。
TCP建立连接过程称为3次握手。建立连接过程如图:
第一次握手是主机A通过将含有“同步序列号”(SYN)标志位的数据段发送给主机B而开始请求连接。通过该数据段,主机A告知主机B两点:主机A希望建立连接请求,主机B应答;主机A告诉主机B使用那个序列号作为数据传输时数据段的起始号。 第二次握手是主机B用一个带有“确认应答”(ACK)和“同步序列号”(SYN)标志位的数据段响应主机A。它也有两个目的:发送ACK通知主机A收到了数据段,通知A从那个序列号开始给数据段做标记。 第三次握手是主机A再次发送一个数据段,确认收到了主机B的数据段,并可以开始传送实际数据。 这样三次握手就完成了,数据开始传输。 3个特点: 没有应用层数据 SYN这个标志位只有TCP建立连接才被置为1 握手完成后SYN标志位被位置0
2:TCP断开连接 TCP建立一个连接时进行了3次握手,而终止一个连接要经过4次,这是由TCP的半关闭(half-close)造成的。因为一个TCP连接是全双工的(即数据可以两个方向传输),所以进行关闭时每个方向必须单独的进行关闭,这个单方向的关闭都成为半关闭。关闭方法是一方完成它的数据发送任务后,就发送一个FIN来向另一方通告将要终止这个方向连接。当一端收到一个FIN,必须通知应用层TCP连接已经终止了那个方向的数据传送,发送FIN通常是应用层进行关闭的结果。 (1) TCP连接的一端A将控制位FIN置为1,提出停止TCP连接的请求。 (2) 对端B收到FIN后对其做出响应,确认这一方向上的TCP连接将关闭。 (3) 由B端再提出反方向的关闭要求,将FIN置为1. (4) 由A端对B提出的关闭做出应答,双方向的关闭结束。
单纯的数据传输的过程出现的问题 、比如传输速度不协调、数据丢失、数据确认丢失等。对于这些,TCP使用流控制、差错控制、拥塞控制。计时器等手段来保证数据的可靠性。下面将对TCP传输数据过程中可能出现的问题予以解决。
TCP的流控机制 在TCP建立连接时,主机A与B之间就进行了窗口大小的协商,主机A在发送连接建立的请求时,就向主机B通告了自己发送窗口的大小。 TCP的拥塞控制 前面说了TCP的窗口机制,接收方可根据其缓冲区的大小指定窗口大小,发送方遵守此窗口大小的限制,接收端不会发生缓冲区溢出的问题。但是有可能由于中间传输网络的带宽较小的原因,导致拥塞的发生。TCP引入了拥塞窗口的概念。实际发送数据的窗口采用发送方和接收方协商的窗口与拥塞窗口中的最小值。 TCP的差错控制 TCP是一个端到端的连接,数据在传输过程中经过了许多的网络路径,有可能出现各种错误。所以TCP提供了差错控制来保证可靠性,TCP的差错控制包括如下一些方面:检测受损数据段、丢失数据段、失序的数据段和重复的数据段。差错控制还包括检测差错后的纠错机制。 TCP中差错检验是通过:校验和、确认和超时 校验和:每一个数据段都包含校验和字段,用来检测受损数据段。如受到损伤,就丢弃。 确认:TCP使用确认的方式来证实收到了某些数据段,它们已经无损伤的到达了目的TCP。 超时:若一个报文在超时前未被确认,则被认为是受到损伤或丢失。
TCP的计时器 为了保证实现可靠传输,合理处理超时未到或未确认的数据,TCP协议设计了4中计时器 重传计时器 坚持计时器 保活计时器 时间等到计时器 重传计时器 为了防止数据报丢失,当TCP发送一个报文时,就启动重传计时器,有2种情况: 1.若在计时器超时之前收到了特定报文的确认,则撤消这个计时器;