tcp ip核心协议(什么是tcp/ip协议核心之一)

      最后更新:2023-07-22 07:15

      TCP/IP核心协议

      没有绝对的 核心!!!!他们都有各自的 功能 每层都有 好多协议,你能说是哪个是 核心的吗 你读完 三楼说的话,就知道了,相同的层使用的是 相同的协议,下层为上层提供服务,协议栈中的 协议彼此相互独立的
      设置IP和DNS等地址,达到上网的目的。
      文件传输协议FTP

      详细介绍: 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)。网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如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.UDPUDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。4.ICMPICMP与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。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。相信大家都听说过TCP/IP这个词,这个词好像无处不在,时时都会在你面前跳出来。那TCP/IP到底是什么意思呢?TCP/IP其实是两个网络基础协议:IP协议、TCP协议名称的组合。下面我们分别来看看这两个无处不在的协议。IP协议IP(Internet Protocol)协议的英文名直译就是:因特网协议。从这个名称我们就可以知道IP协议的重要性。在现实生活中,我们进行货物运输时都是把货物包装成一个个的纸箱或者是集装箱之后才进行运输,在网络世界中各种信息也是通过类似的方式进行传输的。IP协议规定了数据传输时的基本单元和格式。如果比作货物运输,IP协议规定了货物打包时的包装箱尺寸和包装的程序。 除了这些以外,IP协议还定义了数据包的递交办法和路由选择。同样用货物运输做比喻,IP协议规定了货物的运输方法和运输路线。TCP协议我们已经知道了IP协议很重要,IP协议已经规定了数据传输的主要内容,那TCP(Transmission Control Protocol)协议是做什么的呢?不知大家发现没有,在IP协议中定义的传输是单向的,也就是说发出去的货物对方有没有收到我们是不知道的。就好像8毛钱一份的平信一样。那对于重要的信件我们要寄挂号信怎么办呢?TCP协议就是帮我们寄“挂号信”的。TCP协议提供了可靠的面向对象的数据流传输服务的规则和约定。简单的说在TCP模式中,对方发一个数据包给你,你要发一个确认数据包给对方。通过这种确认来提供可靠性。TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。TCP/IP协议的开发工作始于70年代,是用于互联网的第一套协议。1.1 TCP/IP参考模型TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:应用层(第五层)传输层(第四层)互联网层(第三层)网络接口层(第二层)物理层(第一层)物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬设备,如PC机、互连网服务器、网络设备等,必须对这些硬设备的电气特性作一个规范,使这些设备都能够互相连接并兼容使用。网络接口层:它定义了将资料组成正确帧的规程和在网络中传输帧的规程,帧是指一串资料,它是资料在网络中传输的单位。互联网层:本层定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由器到最终目标的"信息包"转发机制。传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。应用层:它定义了应用程序使用互联网的规程。1. 2 网间协议IPInternet 上使用的一个关键的底层协议是网际协议,通常称IP协议。我们利用一个共同遵守的通信协议,从而使 Internet 成为一个允许连接不同类型的计算机和不同操作系统的网络。要使两台计算机彼此之间进行通信,必须使两台计算机使用同一种"语言"。通信协议正像两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的约定。计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节。例如,每台计算机发送的信息格式和含义,在什么情况下应发送规定的特殊信息,以及接收方的计算机应做出哪些应答等等。网际协议IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有任何要求,任何一个网络只要可以从一个地点向另一个地点传送二进制数据,就可以使用IP协议加入 Internet 了。如果希望能在 Internet 上进行交流和通信,则每台连上 Internet 的计算机都必须遵守IP协议。为此使用 Internet 的每台计算机都必须运行IP软件,以便时刻准备发送或接收信息。IP协议对于网络通信有着重要的意义:网络中的计算机通过安装IP软件,使许许多多的局域网络构成了一个庞大而又严密的通信系统。从而使 Internet 看起来好像是真实存在的,但实际上它是一种并不存在的虚拟网络,只不过是利用IP协议把全世界上所有愿意接入 Internet 的计算机局域网络连接起来,使得它们彼此之间都能够通信。1.3 传输控制协议TCP尽管计算机通过安装IP软件,从而保证了计算机之间可以发送和接收资料,但IP协议还不能解决资料分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,连上 Internet 的计算机还需要安装TCP协议来提供可靠的并且无差错的通信服务。TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收资料以及终止连接。传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。众所周知, Internet 是一个庞大的国际性网络,网络上的拥挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以传输资料所用时间也会变化不定。TCP协议具有自动调整"超时值"的功能,能很好地适应 Internet 上各种各样的变化,确保传输数值的正确。因此,从上面我们可以了解到:IP协议只保证计算机能发送和接收分组资料,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服务。综上所述,虽然IP和TCP这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者的结合,才能保证 Internet 在复杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP协议。1. 4 IP地址及其分类在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好像每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。Internet的网络地址是指连入Internet网络的计算机的地址编号。所以,在Internet网络中,网络地址唯一地标识一台计算机。我们都已经知道,Internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做IP(Internet Protocol的简写)地址,即用Internet协议语言表示的地址。目前,在Internet里,IP地址是一个32位的二进制地址,为了便于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0~255,如202.116.0.1,这种书写方法叫做点数表示法。IP地址可确认网络中的任何一个网络和计算机,而要识别其它网络或其中的计算机,则是根据这些IP地址的分类来确定的。一般将IP地址按节点计算机所在网络规模的大小分为A,B,C三类,默认的网络屏蔽是根据IP地址中的第一个字段确定的。1. A类地址A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络屏蔽为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。2. B类地址B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络屏蔽为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。3. C类地址C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络屏蔽为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。连接到Internet上的每台计算机,不论其IP地址属于哪类都与网络中的其它计算机处于平等地位,因为只有IP地址才是区别计算机的唯一标识。所以,以上IP地址的分类只适用于网络分类。在Internet中,一台计算机可以有一个或多个IP地址,就像一个人可以有多个通信地址一样,但两台或多台计算机却不能共享一个IP地址。如果有两台计算机的IP地址相同,则会引起异常现象,无论哪台计算机都将无法正常工作。顺便提一下几类特殊的IP地址:1. 广播地址 目的端为给定网络上的所有主机,一般主机段为全02. 单播地址 目的端为指定网络上的单个主机地址3. 组播地址 目的端为同一组内的所有主机地址4. 环回地址 127.0.0.1 在环回测试和广播测试时会使用1.5 子网的划分若公司不上Internet,那一定不会烦恼IP Address的问题,因为可以任意使用所有的IP Address,不管是A Class或是B Class,这个时候不会想到要用Sub Net,但若是上Internet那IP Address便弥足珍贵了,目前全球一阵Internet热,IP Address已经愈来愈少了,而所申请的IP Address目前也趋保守,而且只有经申请的IP Address能在Internet使用,但对某些公司只能申请到一个C CLass的IP Address,但又有多个点需要使用,那这时便需要使用到Subnet,这就需要考虑子网的划分,下面简介Subnet的原理及如何规划。1.5.1 Subnet Mask的介绍设定任何网络上的任何设备不管是主机、PC、Router等皆需要设定IP Address,而跟随着IP Address的是所谓的NetMask,这个NetMask主要的目的是由IP Address中也能获得NetworkNumber,也就是说IP Address和Net Mask作AND而得到Network Number,如下所示:IP Address192.10.10.611000000.00001010.00001010.00000110NetMask255.255.255.011111111.11111111.11111111.00000000AND-------------------------------------------------------------------Network Number192.10.10.011000000.00001010.00001010.00000000NetMask有所谓的默认值,如下所示Class IP Address 范围 Net MaskA 1.0.0.0-126.255.255.255255.0.0.0B 128.0.0.0-191.255.255.255255.255.0.0C 192.0.0.0-223.255.255.255255.255.255.0在预设的Net Mask都只有255的值,在谈到Subnet Mask时这个值便不一定是255了。在完整一组C Class中如203.67.10.0-203.67.10.255 NetMask255.255.255.0,203.67.10.0称之Network Number(将IP Address和Netmask作AND),而203.67.10.255是Broadcast的IP Address,所以这两者皆不能使用,实际只能使用203.67.10.1--203.67.10.254等254个IP Address,这是以255.255.255.0作NetMask的结果,而所谓Subnet Msk尚可将整组C Class分成数组Network Number,这要在NEtMask作手脚,若是要将整组C CLass分成2个Network Number那NetMask设定为255.255.255.192,若是要将整组C CLass分成8组Network Number则NetMask要为255.255.255.224,这是怎么来的,由以上知道Network Number是由IP Address和NetMask作AND而来的,而且将NetMask以二进制表示法知道是1的会保留,而为0的去掉192.10.10.193--11000000.00001010.00001010.10000001255.255.255.0--11111111.11111111.11111111.00000000--------------------------------------------------------------192.10.10.0--11000000.00001010.00001010.00000000以上是以255.255.255.0为Net Mask的结果,Network Number是192.10.10.0,若是使用255.255.255.224作Net Mask结果便有所不同192.10.10.193--11000000.00001010.00001010.10000000255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------192.10.10.192--11000000.00001010.00001010.10000000此时Network Number变成了192.10.10.192,这便是Subnet。那要如何决定所使用的NetMask,255.255.255.224以二进制表示法为11111111.11111111.11111111.11100000,变化是在最后一组,11100000便是224,以三个Bit可表示2的3次方便是8个Network NumberNetMask二进制表示法可分几个Network255.255.255.011111111.11111111.11111111.000000001255.255.255.12811111111.11111111.11111111.100000002255.255.255.19211111111.11111111.11111111.110000004255.255.255.22411111111.11111111.11111111.111000008255.255.255.24011111111.11111111.11111111.1111000016255.255.255.24811111111.11111111.11111111.1111100032255.255.255.25211111111.11111111.11111111.1111110064以下使用255.255.255.224将C Class203.67.10.0分成8组Net work Number,各个Network Number及其Broadcast IP Address及可使用之IP Address序号Network Number Broadcast可使用之IP Address(1)203.67.10.0--203.67.10.31203.67.10.1--203.67.10.30(2)203.67.10.32--203.67.10.63203.67.10.33--203.67.10.62(3)203.67.10.64--203.67.10.95203.67.10.65--203.67.10.94(4)203.67.10.96--203.67.10.127203.67.10.97--203.67.10.126(5)203.67.10.128--203.67.10.159203.67.10.129--203.67.10.158(6)203.67.10.160--203.67.10.191203.67.10.161--203.67.10.190(7)203.67.10.192--203.67.10.223203.67.10.193--203.67.10.222(8)203.67.10.224--203.67.10.255203.67.10.225--203.67.10.254可验证所使用的IP Address是否如上表所示203.67.10.115--11001011.01000011.00001010.01110011255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------203.67.10.96--11001011.01000011.00001010.01100000203.67.10.55--11001011.01000011.00001010.00110111255.255.255.224--11111111.11111111.11111111.11100000--------------------------------------------------------------203.67.10.32--11001011.01000011.00001010.00100000其它的NetMask所分成的NetworkNumber可自行以上述方法自行推演出来。1.5.3 Subnet的应用使用Subnet是要解决只有一组C Class但需要数个Network Number的问题,并不是解决IP Address不够用的问题,因为使用Subnet反而能使用的IP Address会变少,Subnet通常是使用在跨地域的网络互联之中,两者之间使用Router连线,同时也上Internet,但只申请到一组C Class IP Address,过Router又需不同的Network,所以此时就必须使用到Subnet,当然二网络间也可以Remote Bridge连接,那便没有使用Subnet的问题。完美测试TCP/IP协议简介安装网络硬件和网络协议之后,我们一般要进行TCP/IP协议的测试工作,那么怎样测试才算是比较全面的测试呢?我们认为,全面的测试应包括局域网和互联网两个方面,因此应从局域网和互联网两个方面测试,以下是我们在实际工作中利用命令行测试TCP/IP配置的步骤:1、 单击“开始”/“运行”,输入CMD按回车,打开命令提示符窗口。2、 首先检查IP地址、子网掩码、默认网关、DNS服务器地址是否正确,输入命令ipconfig /all,按回车。此时显示了你的网络配置,观查是否正确。3、 输入ping 127.0.0.1,观查网卡是否能转发数据,如果出现“Request timed out”,表明配置差错或网络有问题。4、 Ping一个互联网地址,如ping 202.102.128.68,看是否有数据包传回,以验证与互联网的连接性。5、 Ping 一个局域网地址,观查与它的连通性。6、 用nslookup测试DNS解析是否正确,输入如nslookupwww.ccidnet.com,查看是否能解析。 如果你的计算机通过了全部测试,则说明网络正常,否则网络可能有不同程度的问题。在此不展开详述。不过,要注意,在使用 ping命令时,有些公司会在其主机设置丢弃ICMP数据包,造成你的ping命令无法正常返回数据包,不防换个网站试试。
      TCP/IP核心协议

      什么是TCP/IP协议,它的核心思想(理念)是什么?

      TCP/IP ,用于网络的一组通讯协议,包括IP(Internet Protocol,互联网协议)和TCP(Transmission Control Protocol,传输控制协议) TCP/IP协议讲解 TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。  在Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网。Internet的中文意义是"网际网",它实际上就是将全球各地的局域网连接起来而形成的一个"网之间的网(即网际网)"。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的"世界语"。TCP/IP的参考模型要理解Internet,并不是一件非常容易的事,TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:应用层   (第五层)传输层   (第四层)互联网层  (第三层)网络接口层 (第二层)物理层   (第一层)下面对这五个层次作一些讲解,初学者对这些概念有一个感性的认识就可以了,如果想深入学习这些内容,可以参考有关计算机网络底层知识方面的书籍。·物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬件设备,如PC机、互连网服务器、网络设备等,必须对这些硬件设备的电气特性作一个规范,使这些设备都能够互相连接并兼容使用。·网络接口层:它定义了将数据组成正确帧的规程和在网络中传输帧的规程,帧是指一串数据,它是数据在网络中传输的单位。·互联网层:本层定义了互联网中传输的"信息包"格式,以及从一个用户通过一个或多个路由器到最终目标的"信息包"转发机制。·传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。·应用层:它定义了应用程序使用互联网的规程。TCP/IP 通信协议1--网际协议IPInternet 上使用的一个关键的低层协议是网际协议,通常称IP协议。我们利用一个共同遵守的通信协议,从而使 Internet 成为一个允许连接不同类型的计算机和不同操作系统的网络。要使两台计算机彼此之间进行通信,必须使两台计算机使用同一种"语言"。通信协议正像两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的约定。   计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节。例如,每台计算机发送的信息格式和含义,在什么情况下应发送规定的特殊信息,以及接收方的计算机应做出哪些应答等等。  网际协议IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有任何要求,任何一个网络只要可以从一个地点向另一个地点传送二进制数据,就可以使用IP协议加入 Internet 了。如果希望能在 Internet 上进行交流和通信,则每台连上 Internet 的计算机都必须遵守IP协议。为此使用 Internet 的每台计算机都必须运行IP软件,以便时刻准备发送或接收信息。IP协议对于网络通信有着重要的意义:网络中的计算机通过安装IP软件,使许许多多的局域网络构成了一个庞大而又严密的通信系统。从而使 Internet 看起来好像是真实存在的,但实际上它是一种并不存在的虚拟网络,只不过是利用IP协议把全世界上所有愿意接入 Internet 的计算机局域网络连接起来,使得它们彼此之间都能够通信。TCP/IP通信协议2--传输控制协议TCP尽管计算机通过安装IP软件,从而保证了计算机之间可以发送和接收数据,但IP协议还不能解决数据分组在传输过程中可能出现的问题。因此,若要解决可能出现的问题,连上 Internet 的计算机还需要安装TCP协议来提供可靠的并且无差错的通信服务。TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收数据以及终止连接。  传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。众所周知, Internet 是一个庞大的国际性网络,网路上的拥挤和空闲时间总是交替不定的,加上传送的距离也远近不同,所以传输数据所用时间也会变化不定。TCP协议具有自动调整"超时值"的功能,能很好地适应 Internet 上各种各样的变化,确保传输数值的正确。   因此,从上面我们可以了解到:IP协议只保证计算机能发送和接收分组数据,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服务。 综上所述,虽然IP和TCP这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一时期作为一个协议来设计的,并且在功能上也是互补的。只有两者的结合,才能保证 Internet 在复杂的环境下正常运行。凡是要连接到 Internet 的计算机,都必须同时安装和使用这两个协议,因此在实际中常把这两个协议统称作TCP/IP协议。

      分层
      什么是TCP/IP协议,它的核心思想(理念)是什么?

      TCP/IP四层模型

      ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。 如图所示,是TCP/IP参考模型和OSI参考模型的对比示意图。在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层。下面,分别介绍各层的主要功能。实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。网络互连层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。UDP协议是一个不可靠的、无连接的协议,主要适用于不需要对报文进行排序和流量控制的场合。TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。应用层面向不同的网络应用引入了不同的应用层协议。其中,有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP),也有基于UDP协议的。IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。IP报文格式:IP头部格式:其中:● 版本(Version)字段:占4比特。用来表明IP协议实现的版本号,当前一般为IPv4,即0100。● 报头长度(Internet Header Length,IHL)字段:占4比特。是头部占32比特的数字,包括可选项。普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。此字段最大值为60字节。● 服务类型(Type of Service ,TOS)字段:占8比特。其中前3比特为优先权子字段(Precedence,现已被忽略)。第8比特保留未用。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置其中1比特为1。可以全为0,若全为0则表示一般服务。● 总长度字段:占16比特。指明整个数据报的长度(以字节为单位)。最大长度为65535字节。● 标志字段:占16比特。用来唯一地标识主机发送的每一份数据报。通常每发一份报文,它的值会加1。● 标志位字段:占3比特。标志一份数据报是否要求分段。● 段偏移字段:占13比特。如果一份数据报要求分段的话,此字段指明该段偏移距原始数据报开始的位置。● 生存期(TTL:Time to Live)字段:占8比特。用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为32、64、128等。每经过一个路由器,其值减1,直到0时该数据报被丢弃。● 协议字段:占8比特。指明IP层所封装的上层协议类型,如ICMP(1)、IGMP(2) 、TCP(6)、UDP(17)等。● 头部校验和字段:占16比特。内容是根据IP头部计算得到的校验和码。计算方法是:对头部中每个16比特进行二进制反码求和。(和ICMP、IGMP、TCP、UDP不同,IP不对头部后的数据进行校验)。● 源IP地址、目标IP地址字段:各占32比特。用来标明发送IP数据报文的源主机地址和接收IP报文的目标主机地址。可选项字段:占32比特。用来定义一些任选项:如记录路径、时间戳等。这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求。TCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。 TCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。TCP头部结构:其中:● 源、目标端口号字段:占16比特。TCP协议通过使用"端口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。● 顺序号字段:占32比特。用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。● 确认号字段:占32比特。只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节。● 头部长度字段:占4比特。给出头部占32比特的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60字节的TCP头部。● 标志位字段(U、A、P、R、S、F):占6比特。各比特的含义如下:◆ URG:紧急指针(urgent pointer)有效。◆ ACK:确认序号有效。◆ PSH:接收方应该尽快将这个报文段交给应用层。◆ RST:重建连接。◆ SYN:发起一个连接。◆ FIN:释放一个连接。● 窗口大小字段:占16比特。此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。● TCP校验和字段:占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。● 紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。● 选项字段:占32比特。可能包括"窗口扩大因子"、"时间戳"等选项。UDP是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。UDP头部结构:● 源、目标端口号字段:占16比特。作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。● 长度字段:占16比特。标明UDP头部和UDP数据的总长度字节。● 校验和字段:占16比特。用来对UDP头部和UDP数据进行校验。和TCP不同的是,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须项。在每个TCP、UDP数据段中都包含源端口和目标端口字段。有时,我们把一个IP地址和一个端口号合称为一个套接字(Socket),而一个套接字对(Socket pair)可以唯一地确定互连网络中每个TCP连接的双方(客户IP地址、客户端口号、服务器IP地址、服务器端口号)。如图所示,是常见的一些协议和它们对应的服务端口号。需要注意的是,不同的应用层协议可能基于不同的传输层协议,如FTP、TELNET、SMTP协议基于可靠的TCP协议。TFTP、SNMP、RIP基于不可靠的UDP协议。同时,有些应用层协议占用了两个不同的端口号,如FTP的20、21端口,SNMP的161、162端口。这些应用层协议在不同的端口提供不同的功能。如FTP的21端口用来侦听用户的连接请求,而20端口用来传送用户的文件数据。再如,SNMP的161端口用于SNMP管理进程获取SNMP代理的数据,而162端口用于SNMP代理主动向SNMP管理进程发送数据。还有一些协议使用了传输层的不同协议提供的服务。如DNS协议同时使用了TCP 53端口和UDP 53端口。DNS协议在UDP的53端口提供域名解析服务,在TCP的53端口提供DNS区域文件传输服务。 来自陈十一
      TCP/IP四层模型

      TCP/IP协议是什么

      TCP/IP协议是什么TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就算是UDP无法送达,也不会产生ICMP差错报文,这一经时重申了很多遍了。把TCP保证可靠性的简单工作原理:应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的 数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能 及时收到一个确认,将重发这个报文段.当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输 过程中的任何变化。如果收到段的检验和有差错, T P将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段 的到达也可能会失序。如果必要, TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。从这段话中可以看到,TCP中保持可靠性的方式就是超时重发,这是有道理的,虽然TCP也可以用各种各样的ICMP报文来处理这些,但是这也不是可靠的,最可靠的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。TCP的首部和UDP首部一样,都有发送端口号和接收端口号。但是显然,TCP的首部信息要比UDP的多,可以看到,TCP协议提供了发送和确认所需要的所有必要的信息。可以想象一个TCP数据的发送应该是如下的一个过程。双方建立连接发送方给接受方TCP数据报,然后等待对方的确认TCP数据报,如果没有,就重新发,如果有,就发送下一个数据报。接受方等待发送方的数据报,如果得到数据报并检验无误,就发送ACK(确认)数据报,并等待下一个TCP数据报的到来。直到接收到FIN(发送完成数据报)中止连接可以想见,为了建立一个TCP连接,系统可能会建立一个新的进程(最差也是一个线程),来进行数据的传送--TCP协议TCP是一个面向连接的协议,在发送输送之前 ,双方需要确定连接。而且,发送的数据可以进行TCP层的分片处理。TCP连接的建立过程 ,可以看成是三次握手 。而连接的中断可以看成四次握手 。1.连接的建立在建立连接的时候,客户端首先向服务器申请打开某一个端口(用SYN段等于1的TCP报文),然后服务器端发回一个ACK报文通知客户端请求报文收到,客户端收到确认报文以后再次发出确认报文确认刚才服务器端发出的确认报文(绕口么),至此,连接的建立完成。这就叫做三次握手。如果打算让双方都做好准备的话,一定要发送三次报文,而且只需要三次报文就可以了。可以想见,如果再加上TCP的超时重传机制,那么TCP就完全可以保证一个数据包被送到目的地。2.结束连接TCP有一个特别的概念叫做half-close,这个概念是说,TCP的连接是全双工(可以同时发送和接收)连接,因此在关闭连接的`时候,必须关闭传和送两个方向上的连接。客户机给服务器一个FIN为1的TCP报文,然后服务器返回给客户端一个确认ACK报文,并且发送一个FIN报文,当客户机回复ACK报文后(四次握手),连接就结束了。3.最大报文长度在建立连接的时候,通信的双方要互相确认对方的最大报文长度(MSS),以便通信。一般这个SYN长度是MTU减去固定IP首部和TCP首部长度。对于一个以太网,一般可以达到1460字节。当然如果对于非本地的IP,这个MSS可能就只有536字节,而且,如果中间的传输网络的MSS更加的小的话,这个值还会变得更小。4.客户端应用程序的状态迁移图客户端的状态可以用如下的流程来表示:CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED以上流程是在程序正常的情况下应该有的流程,从书中的图中可以看到,在建立连接时,当客户端收到SYN报文的ACK以后,客户端就打开了数据交互地连接。而结束连接则通常是客户端主动结束的,客户端结束应用程序以后,需要经历FIN_WAIT_1,FIN_WAIT_2等状态,这些状态的迁移就是前面提到的结束连接的四次握手。5.服务器的状态迁移图服务器的状态可以用如下的流程来表示:CLOSED->LISTEN->SYN收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED在建立连接的时候,服务器端是在第三次握手之后才进入数据交互状态,而关闭连接则是在关闭连接的第二次握手以后(注意不是第四次)。而关闭以后还要等待客户端给出最后的ACK包才能进入初始的状态。6.TCP服务器设计前面曾经讲述过UDP的服务器设计,可以发现UDP的服务器完全不需要所谓的并发机制,它只要建立一个数据输入队列就可以。但是TCP不同,TCP服务器对于每一个连接都需要建立一个独立的进程(或者是轻量级的,线程),来保证对话的独立性。所以TCP服务器是并发的。而且TCP还需要配备一个呼入连接请求队列(UDP服务器也同样不需要),来为每一个连接请求建立对话进程,这也就是为什么各种TCP服务器都有一个最大连接数的原因。而根据源主机的IP和端口号码,服务器可以很轻松的区别出不同的会话,来进行数据的分发。TCP的交互数据流对于交互性要求比较高的应用,TCP给出两个策略来提高发送效率和减低网络负担:(1)捎带ACK。(2)Nagle算法(一次尽量多的发数据)捎带ACK的发送方式这个策略是说,当主机收到远程主机的TCP数据报之后,通常不马上发送ACK数据报,而是等上一个短暂的时间,如果这段时间里面主机还有发送到远程主机的TCP数据报,那么就把这个ACK数据报“捎带”着发送出去,把本来两个TCP数据报整合成一个发送。一般的,这个时间是200ms。可以明显地看到这个策略可以把TCP数据报的利用率提高很多。Nagle算法上过bbs的人应该都会有感受,就是在网络慢的时候发贴,有时键入一串字符串以后,经过一段时间,客户端“发疯”一样突然回显出很多内容,就好像数据一下子传过来了一样,这就是Nagle算法的作用。Nagle算法是说,当主机A给主机B发送了一个TCP数据报并进入等待主机B的ACK数据报的状态时,TCP的输出缓冲区里面只能有一个TCP数据报,并且,这个数据报不断地收集后来的数据,整合成一个大的数据报,等到B主机的ACK包一到,就把这些数据“一股脑”的发送出去。虽然这样的描述有些不准确,但还算形象和易于理解,我们同样可以体会到这个策略对于低减网络负担的好处。在编写插口程序的时候,可以通过TCP_NODELAY来关闭这个算法。并且,使用这个算法看情况的,比如基于TCP的X窗口协议,如果处理鼠标事件时还是用这个算法,那么“延迟”可就非常大了。 ;
      TCP/IP协议是什么

      TCP/IP协议族中最重要的协议是什么

      IP(Internet Protocol)网际协议TCP/IP体系中最重要的两个协议之一,也是最重要的因特网标准协议之一。与IP协议配套使用的还有四个协议:ARP(Address Resolution Protocol,地址解析协议)RARP(Reverse Address Resolution Protocol, 逆地址解析协议)ICMP(Internet Control Message Protocol)网际控制报文协议IGMP(Internet Group Management Protocol)网际组管理协议从下图中不难看出IP协议的核心作用。
      IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
      TCP/IP协议族中最重要的协议是什么

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类