tcip协议的主要功能能

君,已阅读到文档的结尾了呢~~
网络协议的主要功能
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
网络协议的主要功能
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口君,已阅读到文档的结尾了呢~~
tcp协议的主要功能是_________.
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
tcp协议的主要功能是_________.
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口TCP/IP 协议的功能是什么?
TCP/IP 协议的功能是什么?
09-03-04 &
 TCP/IP协议(Transfer Controln Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。   TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。   TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。   之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。以下我们对协议族中一些常用协议英文名称和用途作一介绍:TCP(Transport Control Protocol)传输控制协议IP(Internetworking Protocol)网间网协议UDP(User Datagram Protocol)用户数据报协议ICMP(Internet Control Message Protocol)互联网控制信息协议SMTP(Simple Mail Transfer Protocol)简单邮件传输协议SNMP(Simple Network manage Protocol)简单网络管理协议FTP(File Transfer Protocol)文件传输协议ARP(Address Resolation Protocol)地址解析协议   从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网间网层、传输层、应用层。其中:   网络接口层 这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。   网间网层 负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。   传输层 提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。   应用层 向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。前面我们已经学过关于OSI参考模型的相关概念,现在我们来看一看,相对于七层协议参考模型,TCP/IP协议是如何实现网络模型的。OSI中的层功能TCP/IP协议族应用层文件传输,电子邮件,文件服务,虚拟终端TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层数据格式化,代码转换,数据加密没有协议会话层解除或建立与别的接点的联系没有协议传输层提供端对端的接口TCP,UDP网络层为数据包选择路由IP,ICMP,RIP,OSPF,BGP,IGMP数据链路层传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,ARP,RARP,MTU物理层以二进制数据形式在物理媒体上传输数据ISO2110,IEEE802。IEEE802.2   数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息;   网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有机遇TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。   传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式:TCP是一个基于连接的协议(还记得我们在网络基础中讲到的关于面向连接的服务和面向无连接服务的概念吗?忘了的话,去看看);UDP则是面向无连接服务的管理方式的协议。   应用层位于协议栈的顶端,它的主要任务就是应用了。上面的协议当然也是为了这些应用而设计的,具体说来一些常用的协议功能如下:Telnet:提供远程登录(终端仿真)服务,好象比较古老的BBS就是用的这个登陆。FTP :提供应用级的文件传输服务,说的简单明了点就是远程文件访问等等服务;SMTP:不用说拉,天天用到的电子邮件协议。TFTP:提供小而简单的文件传输服务,实际上从某个角度上来说是对FTP的一种替换(在文件特别小并且仅有传输需求的时候)。SNTP:简单网络管理协议。看名字就不用说什么含义了吧。DNS:域名解析服务,也就是如何将域名映射城IP地址的协议。HTTP:不知道各位对这个协议熟不熟悉啊?这是超文本传输协议,你之所以现在能看到网上的图片,动画,音频,等等,都是仰仗这个协议在起作用!
请登录后再发表评论!
TCP/IP协议    TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。  众所周知,如今电脑上因特网都要作TCP/IP协议设置,显然该协议成了当今地球村“人与人”之间的“牵手协议”。   1997年,为了褒奖对因特网发展作出突出贡献的科学家,并对TCP/IP协议作出充分肯定,美国授予为因特网发明和定义TCP/IP协议的文顿·瑟夫和卡恩“国家技术金奖”。这无疑使人们认识到TCP/IP协议的重要性。   在阿帕网(ARPR)产生运作之初,通过接口信号处理机实现互联的电脑并不多,大部分电脑相互之间不兼容,在一台电脑上完成的工作,很难拿到另一台电脑上去用,想让硬件和软件都不一样的电脑联网,也有很多困难。当时美国的状况是,陆军用的电脑是DEC系列产品,海军用的电脑是Honeywell中标机器,空军用的是IBM公司中标的电脑,每一个军种的电脑在各自的系里都运行良好,但却有一个大弊病:不能共享资源。   当时科学家们提出这样一个理念:“所有电脑生来都是平等的。”为了让这些“生来平等”的电脑能够实现“资源共享”就得在这些系统的标准之上,建立一种大家共同都必须遵守的标准,这样才能让不同的电脑按照一定的规则进行“谈判”,并且在谈判之后能“握手”。   在确定今天因特网各个电脑之间“谈判规则”过程中,最重要的人物当数瑟夫(Vinton G.Cerf)。正是他的努力,才使今天各种不同的电脑能按照协议上网互联。瑟夫也因此获得了与克莱因罗克(“因特网之父”)一样的美称“互联网之父”。   瑟夫从小喜欢标新立异,坚强而又热情。中学读书时,就被允许使用加州大学洛杉矶分校的电脑,他认为“为电脑编程序是个非常激动人心的事,…只要把程序编好,就可以让电脑做任何事情。”1965年,瑟夫从斯坦福大学毕业到IBM的一家公司当系统工程师,工作没多久,瑟夫就觉得知识不够用,于是到加州大学洛杉矶分校攻读博士,那时,正逢阿帕网的建立,“接口信号处理机”(IMP)的研试及网络测评中心的建立,瑟夫也成了著名科学家克莱因罗克手下的一位学生。瑟夫与另外三位年轻人(温菲尔德、克罗克、布雷登)参与了阿帕网的第一个节点的联接。此后不久,BBN公司对工作中各种情况发展有很强判断能力、被公认阿帕网建成作出巨大贡献的鲍伯·卡恩(Bob Kahn)也来到了加州大学洛杉矶分校。 在那段日子里,往往是卡恩提出需要什么软件,而瑟夫则通宵达旦地把符合要求的软件给编出来,然后他们一起测试这些软件,直至能正常运行。当时的主要格局是这样的,罗伯茨提出网络思想设计网络布局,卡恩设计阿帕网总体结构,克莱因罗克负责网络测评系统,还有众多的科学家、研究生参与研究、试验。69年9月阿帕网诞生、运行后,才发现各个IMP连接的时候,需要考虑用各种电脑都认可的信号来打开通信管道,数据通过后还要关闭通道。否则这些IMP不会知道什么时候应该接收信号,什么时候该结束,这就是我们现在所说的通信“协议”的概念。70年12月制定出来了最初的通信协议j 由卡恩开发、瑟夫参与的“网络控制协议”(NCP),但要真正建立一个共同的标准很不容易,72年10月国际电脑通信大会结束后,科学家们都在为此而努力。“包切换”理论为网络之间的联接方式提供了理论基础。卡恩在自己研究的基础上,认识到只有深入理解各种操作系统的细节才能建立一种对各种操作系统普适的协议,73年卡恩请瑟夫一起考虑这个协议的各个细节,他们这次合作的结果产生了目前在开放系统下的所有网民和网管人员都在使用的“传输控制协议”(TCP,Transsmission-Control Protocol)和“因特网协议”(IP,Internet Protocol)即TCP/IP协议。   通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。1974年12月,卡恩、瑟夫的第一份TCP协议详细说明正式发表。当时美国国防部与三个科学家小组签定了完成TCP/IP的协议,结果由瑟夫领衔的小组捷足先登,首先制定出了通过详细定义的TCP/IP协议标准。当时作了一个试验,将信息包通过点对点的卫星网络,再通过陆地电缆,再通过卫星网络,再由地面传输,贯串欧洲和美国,经过各种电脑系统,全程9.4万公里竟然没有丢失一个数据位,远距离的可靠数据传输证明了TCP/IP协议的成功。   日,运行较长时期曾被人们习惯了的NCP被停止使用,TCP/IP协议作为因特网上所有主机间的共同协议,从此以后被作为一种必须遵守的规则被肯定和应用。正是由于TCP/IP协议,才有今天“地球村”因特网的巨大发展。  [编辑本段]什么是 TCP/IP?  TCP/IP 是供已连接因特网的计算机进行通信的通信协议。  TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。  TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。[编辑本段]TCP/IP协议介绍  TCP/IP的通讯协议    这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。   TCP/IP整体构架概述    TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:   应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。   传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传灯。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。   互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。   网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。   TCP/IP中的协议  以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:   1. IP  网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。   IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。   高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。   2. TCP  如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。   TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。   面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。   3.UDP  UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。   欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。   4.ICMP  ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。   5. TCP和UDP的端口结构  TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。   两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:   源IP地址 发送包的IP地址。   目的IP地址 接收包的IP地址。   源端口 源系统上的连接的端口。   目的端口 目的系统上的连接的端口。   端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。  在XP系统下重置TCP/IP协议的方法  在Windows XP的网络组件列表里,Internet 协议 (TCP/IP)的&卸载&按钮是灰色不可选状态。这是因为传输控制协议/Internet 协议 (TCP/IP) 堆栈是 Microsoft XP/ 2003 的核心组件(TCP/IP协议是Windows XP的默认协议),不能删除。所以Windows XP不允许卸载TCP/IP协议。如果在特殊情况下需要重新安装TCP/IP协议,如何操作?  解决方法   在这种情况下,如果需要重新安装 TCP/IP 以使 TCP/[1]IP 堆栈恢复为原始状态。可以使用 NetShell 实用程序重置 TCP/IP 堆栈,使其恢复到初次安装操作系统时的状态。具体操作如下:   1、单击 开始 --& 运行,输入 &CMD& 后单击 &确定&;   2、在命令行模式输入命令   netsh int ip reset C:\resetlog.txt   (其中,Resetlog.txt记录命令结果的日志文件,一定要指定,这里指定了Resetlog.txt 日志文件及完整路径。)   运行结果可以查看C:\resetlog.txt (咨询中可根据用户实际操作情况提供)   运行此命令的结果与删除并重新安装 TCP/IP 协议的效果相同。   注意   本操作具有一定的风险性,请在操作前备份重要数据,并根据操作熟练度酌情使用。  IP协议   IP(Internet Protocol)协议的英文名直译就是:因特网协议。从这个名称我们就可以知道IP协议的重要性。在现实生活中,我们进行货物运输时都是把货物包装成一个个的纸箱或者是集装箱之后才进行运输,在网络世界中各种信息也是通过类似的方式进行传输的。IP协议规定了数据传输时的基本单元和格式。如果比作货物运输,IP协议规定了货物打包时的包装箱尺寸和包装的程序
请登录后再发表评论!简述tcp/ip协议的作用_百度知道
简述tcp/ip协议的作用
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议。这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议和网际协议,但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求,这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报包议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
//baike.baidu,计算机智能识别数字信号://ip在这里就好比一步标准的英汉字典 这个说法通俗吧你自己看吧,我也不知道怎么书面表达合适
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。TCP协议详解(理论篇)
TCP协议详解(理论篇)
1. & &与UDP不同的是,TCP提供了一种面向连接的、可靠的字节流服务。面向连接比较好理解,就是连接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话。助于可靠性,TCP协议中涉及了诸多规则来保障通信链路的可靠性,总结起来,主要有以下几点:
& & & (1)应用数据分割成TCP认为最适合发送的数据块。这部分是通过&MSS&(最大数据包长度)选项来控制的,通常这种机制也被称为一种协商机制,MSS规定了TCP传往另一端的最大数据块的长度。值得注意的是,MSS只能出现在SYN报文段中,若一方不接收来自另一方的MSS值,则MSS就定为536字节。一般来讲,在不出现分段的情况下,MSS值还是越大越好,这样可以提高网络的利用率。
& & & (2)重传机制。设置定时器,等待确认包。
& & & (3)对首部和数据进行校验。
& & & (4)TCP对收到的数据进行排序,然后交给应用层。
& & & (5)TCP的接收端丢弃重复的数据。
& & & (6)TCP还提供流量控制。(通过每一端声明的窗口大小来提供的)
2. TCP包的首部: & &
(1) & & &若不计选项字段,TCP的首部占20个字节。
(2) & & &源端口号以及目的端口号用于寻找发端和接收端的进程,一般来讲,通过端口号和IP地址,可以唯一确定一个TCP连接,在网络中,通常被称为一个socket接口。
(3) & & &序号是用来标识从TCP发端向TCP接收端发送的数据字节流。
(4) & & &确认序号包含发送确认的一端所期望收到的下一个序号,因此,确认序号应该是上次已经成功收到数据字节序号加1.
(5) & & &首部长度指出了TCP首部的长度值,若不存在选项,则这个值为20字节。
(6) & & &标志位(flag):
& & & & & & & & URG: 紧急指针有效
& & & & & & & & ACK:确认序号有效
& & & & & & & & PSH:接收方应尽快将这个报文段交给应用层
& & & & & & & & RST:重建连接
& & & & & & & & SYN:同步序号用来发起一个连接
& & & & & & & & FIN: 发端完成发送任务(主动关闭) & &
& & & & & & & & & &&
◆ & & TCP提供解决方式是为了使一端告诉另外一端某些&紧急数据&已经放置在普通的数据流中,让接收端对紧急数据做特别处理。此时,URG位被置为1,并且16位的紧急数据被置为一个正的偏移量,通过此偏移量与TCP首部中的序号字段相加,可以得出紧急数据的最后一个字节的序号,常见的应用有传输中断键(在通过telnet连接过程中)。
◆ & & RST: 复位字段被用于当一个报文发送到某个socket接口而出现错误时,TCP则会发出复位报文段。常见出现的情况有以下几种: & &
发送到不存在的端口的连接请求:此时对方的目的端口并没有侦听,对于UDP,将会发出ICMP不可达的 & 错误信息,而对于TCP,将会发出设置RST复位标志位的数据报。异常终止一个连接:正常情况下,通过发送FIN去正常关闭一个TCP连接,但也有可能通过发送一个复位 & 报文段去中途释放掉一个连接。在socketAPI中通过设置socket选 项SO_LINGER去关闭这种异常关闭的情况。
3. TCP的连接与终止过程:
(1) &三次握手:
& & & & &建立一个TCP连接,必须经历三次握手过程,其中发送第一个SYN的一端将执行主动打开,接收这个SYN并发回下一个SYN的另一端执行被动打开。
(2) &四次释放:
& & & & &要释放一个TCP连接,需要通过四次握手过程,这是由TCP的半关闭特性造成的,因为TCP连接时全双工的,因此,需要TCP两端要单独执行关闭。值得注意的是,主动关闭的一端在发送FIN之后,依然还能正常接收对方的数据,只是通知对方它已经没有数据需要发送了,同理,被动关闭的一端在收到FIN之后,仍然可以发送数据,直到它自身同样发出FIN之后,才停止发送数据。
(3) &TCP连接的超时问题:
& & & & &完成一个TCP连接,中间涉及到一个超时的问题,大多数伯克利的超时时限为75s,Solaris9的超时时限为240s,因此,一般认为是在75-240之间。
【引申】在具体的实现中,如何由用户自己去完成设置socket连接超时时间?
【解决方法】目前实现socket超时连接主要是通过select来完成的。具体步骤如下:
& & ◆ & & 建立socket
& & ◆ & & 将socket设置为非阻塞模式(若是阻塞模式,那么时间设置就毫无意义)
& & ◆ & & 调用connect去进行连接
& & ◆ & & 使用select检查socket是否可写,并同时判断其结果(为什么是可写?因为需要检测socket是否收到ACK。)
& & ◆ & & 将socket转化为阻塞模式
(4)TCP的半关闭 & &
& & & & &所谓&半关闭&,是指连接的一端在结束它的发送之后还能接收到对方发过来的数据的能力。具体表现在,当完成三次握手的双方,其中有一端发出FIN,此时它将进入半关
闭状态,此时它关闭了自身的发送功能,但是它依然可以接收到对方的数据,如对方发过来的ACK消息。那么在实际开发中,是怎么实现的呢?
这牵涉到系统中shutdown和close函数的区别问题。
& & & & int shutdown(int s, int how) & & & &sys/socket.h&
& & & & &shutdown是用来终止参数s所指定的socket接口,参数how主要有以下几种情况:
& & & & &how = 0 & &终止读取操作
& & & & &how = 1 & &终止写入操作
& & & & &how = 2 & &终止读取和写入操作
& & & & &返回的errorcode可能有:
& & & & &EBADF &/* Bad file descriptor */
& & & & &ENOTSOCK &/* Socket operation on non-socket */
& & & & &ENOTCONN &/* Socket is not connected */
& & Big difference between shutdown and close on a socket is thebehavior when the socket is shared by other processes.A shutdown() affects all copies of the socket whileclose() affects only the file descriptor in one process.
& & Even if you close() a TCP socket, it won't necessarily beimmediately reusable anyway, since it will be in a TIME_WAITstate while the OS makes sure there's no outstandingpackets that might get confused as new information if you were to immediatelyreuse that socket for something else.
当shutdown关闭读取部分时,则会丢掉接收缓冲区中的任何数据,并关闭该端的连接,若是关闭写入部分,TCP则会发送剩余的数据,然后终止连接的写入端。
4. TCP的状态变迁图:
几个状态解析:
(1) & & TIME_WAIT状态
& & 这种状态也称为2MSL等待状态,MSL即一个报文段的最长生存时间,也就是报文在网络中被丢弃前的最长时间。那么为什么需要等待2倍的MSL呢?这是因为在TIME_WAIT状态之后,需要执行主动关闭,发送ACK,同时还需要加上一倍的MSL,为了等待对方的反馈结果(是否收到重发的FIN),这是因为再发送ACK之后,可能因为诸多原因而导致ACK发送失败,此时Server端会在此发送FIN。
& & &正常情况下,client在2MSL期间,对应的socket是不能再被使用的,但是在具体的实现中(如伯克利),则可以通过SO_REUSEADDR选项重用此接口。
(2) & & FIN_WAIT_2状态
& & &当对方对自己发送的FIN进行了确认,此时将进入FIN_WAIT_2状态。
(3) CLOSE_WAIT状态与FIN_WAIT_1状态
& & &当连接中的一方收到对方发过来的FIN时,它将进入CLOSE_WAIT状态,而另一端则进入FIN_WAIT_1状态。 & &
5. TCP中流量控制机制&&滑动窗口
& & & 受到诸多因素的影响,如硬件(双方网卡吞吐量差异)、网络环境,网络极易出现各种各样的拥塞,目前所采取的措施主要有以下两种:改进拥塞算法以及控制发送端和接收端的流量。本节主要讲述如何在接收端和发送端进行流量控制。
(1)滑动窗口&&接收端
& & & 在讲解滑动窗口协议之前,可以回顾下最初人们为了在接收端实施流量控制所提出了的经典算法&&停止等待算法,其核心思想是:接收端在收到一个数据报之后,停止接收新的数据报,直到发出ACK(对收到的数据报的确认)之后进行恢复。算法思想以及实现非常简单,但是却遇到一个效率的问题,特别是随着网络设备的数据处理能力得到了很大的提高,效率低下显得尤其明显,后来人们也尝试了多种改进措施,如本节的滑动窗口就是其中之一。
& & & 其基本原理是:在接收端存在一个接收缓存区,用来接收来自于发送方的数据,只有当应用进程从接收缓存区中取出数据(可能只是部分)并发出其ACK后,才算作这部分数据已经接收,然后调节此时的滑动窗口大小。发送方根据返回的窗口大小,计算出所能发送的数据大小。因此,可以这么理解,滑动窗口算法是接收端作为主动方根据自身的缓存以及处理能力主动去调节对方的发送流量的一种调节算法。
& & & 下面通过一个滑动窗口模型图了解下发送方是如何处理所收到的滑动窗口的?
在发送方依然存在一个缓存区(发送缓存区),其发送的数据可以是下面几种状态:
◆ 发送并确认 (1-3)
◆ 发送但未确认 (4-6) & &
◆ 可以发送 (7-9)
◆ 不能够发送 (10以后)
& & & 值得注意的是,滑动窗口是基于所收到的确认序列号的。当发送方根据所收到的确认序列号以及窗口大小,不断向后移动,并相应更新数据状态。
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&
(2)滑动窗口&&发送端(拥塞窗口)
& & &网络拥塞出现的原因是多方面的,除了收发两段的硬件差异之外,还与网络通信链路相关,如通信链路中转发的缓存,试想这样一种情况,若发送端与接收端的处理能力以及吞吐能力很强,若它仅仅通过接收端所返回的滑动窗口大小,难以阻止数据报在被路由器转发过程中因为阻塞而被丢弃的情形,因为与发送端相连的路由器因为自身的缓冲空间的限制,难以存储并转发这么多数据而出现丢包现象。那么这种情况如何避免呢?最好的机制是中间的路由器也要参与给发送端反馈窗口大小的事情,也正是本节所说的拥塞窗口。
& & & 综合上面的阐述,发送端会收到两个窗口大小,分别是来自于接收端和中间路由器,注意前者在每次的数据报中都会出现,而后者只是在网络中出现拥塞时由中间路由器发送。那么,发送方此时取接收端的窗口大小与拥塞窗口中的最小值作为发送上限值。}

我要回帖

更多关于 tcp/ip协议的主要功能 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信