首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求教TCP/IP

TCP/IP已经成为一种标准协议,用于在许多不同类型的计算机之间进行互操作,允许这种互操作是TCP/IP的主要优势。大多数的网络支持TCP/IP作为一种协议。TCP/IP还支持路由,通常是作为一种网络互联协议来使用。
专门为TCP/IP所编写的其他协议包括
  ●SMTP简单邮件传输协议:用于收发电子邮件。
  ●FTP文件传输协议:用来运行有TCP/IP的计算机之间交换文件。
  ●SNMP简单网络管理协议:用来网络管理。
  为了设计成为可以路由的、强大的并且执行效率高的协议,TCP/IP是由美国国防部作为一套广域网协议而开发的,目的是保持核战争中各站点之间的通信链路。现在TCP/IP开发的职责是使Internet团体成为一个整体。安装和配置TCP/IP需要用户具有丰富的知识和经验。使用TCP/IP能够提供以下优势;
  ●TCP/IP是一种工业标准。作为一种工业标准,TCP/IP是一种开放的协议,这就表示它并不是由某个单个的公司的控制,并且较少涉及到兼容性的问题。它现在是Internet的事实协议。
  ●TCP/IP包含了一套实用程序来连接不同的操作系统。从一台计算机到另一台计算机的连接并不依靠任何一方计算机上所使用的操作系统。
  ●TCP/IP使用可缩放的、跨平台的客户机-服务器体系结构。它可以扩充(或者减小规模)以满足将来的需要和具体的应用场合,它使用套接字使计算机的操作系统彼此之间成为透明。
  从以往看来,TCP/IP有两个主要的不足:大小和速度。 TCP/IP是一个相对大型的协议堆栈,这样可能在基于MS-DOS的客户机中产生问题。不过,由于对基于图形用户的界面(GUI)的操作系统,比如Windows NT或者Windows95\98的系统需求(处理器速度和内存),现在大小问题已经得到解决。
TCP/IP标准
  TCP/IP标准是通过一系列叫做RFC的文档来发布的,这些标准的主要目的是提供信息或者描述工作的进展情况。尽管最初并没有想要把这些文档作为标准,但是,许多RFC已经作为一种真正的标准而被接受。
 Internet的发展是基于开放标准的概念之上的,这就是说,任何希望加入到为Internet进行标准开发的人都可以参加进来。IAB(互联网体系结构委员会)就是负责管理并为internet发布RFC的委员会,IAB允许任何人或者公司递交或者评估某个RFC,这包括任何修改建议或对新标准的建议思想。在允许一段合理长度的时间中进行讨论之后,某个新建议的草案可能成为一种标准,也可能不能成为一种标准。
  AT&T所提供的InterNIC是一种服务,这种服务把有关Internet的信息来源提供给公众。Directory and Database包括RFC。该服务可以在万维网上找到。另外,RFC可以从很多的FTP站点下载得到。
TCP/IP和OSI
  TCP/IP协议并不能够与OSI模型完全匹配,TCP/IP不是使用7层,而是使用4层,它通常也叫做Internet协议套件,它分为下面的4层:
  ●网络接口层
  ●互连网层
  ●传输层
  ●应用层
  这4层的每一层对应于OSI模型的一层或者多个层。
1:网络接口层
  网络接口层对应于OSI模型的物理层和数据链路层,它直接同网络进行通信。这一层在网络体系结构(比如令牌网络、以太网)和互联网层之间提供了接口。
2:互联网络层
  互联网络层对应于OSI模型的网络层,它使用一些协议来进行路由和发送数据包。在第7章讨论的路由器与协议有关,路由器就在模型的这一层执行功能,它们用来把数据包从一个网络或者一段网络转发到另外一个网络或网络分段。有一些协议工作在互联网层。
①IP
  IP是一种数据包转换协议,它执行寻址和路由选择。当数据包发送时,这个协议就把一个报头追加到数据包上,使得能够使用动态路由表来选择这个数据包通过网络路径。IP是一种无连接协议,它发送数据包,但不期望接收主机给出已经接收到数据包的确认信息。另外,IP负责数据包的组合和分解,这也是OSI模型的物理层和数据链路层所需要的。每个IP包由源地址和目的地址、协议标识符、校验(一个计算值)和TTL(有效时间)组成。TTL告诉网络上源计算机和目的计算机之间的路由器数据包必须保留在网络上的时间长度。TTL的工作方式就好像是一个递减计数器或者时钟,当数据包传递通过路由器时,路由器就扣除较大的一个单位(一秒)或者扣除数据包排队等待发送所用的时间一个单位。例如,如果一个数据包拥有的TTL值为128,那么,这个数据包就能够在网络上停留128秒或者128跃点(沿路径的每一个停顿或者一个路由就叫做一个跃点),或者是这两种的任意组合。TTL的目的是防止由于数据包在网络上的无休止地“闲荡”而导致丢失的或者损坏的数据包(比如丢失的电子邮件消息)。当TTL的数值递减到0时,就把数据包从网络上删除了。
IP采用的用来增加传输速度的另外一种方法是“ADNDing“(与操作),”“与操作”的目的是确定地址是本地站点还是远程站点。如果地址是本地的,那么IP将向ARP请求目标机器的硬件地址。如果地址是远程的,那么IP就检查本地路由表来查找一条通向目标机器的路径,如果存在这样一条路径的话,就把数据包发送到这条路径上去。如果不存在这样的路径,那么就把数据包发送到本地的默认网关,然后再由网关把数据包发送上路。
②地址解析协议(ARP)
  在IP数据包能够转发到另外一台计机之前,必须知道接收机器的硬件地址,ARP就是用来确定与IP地址相对应的硬件地址(也叫做MAC地址)的协议。如果ARP在它自己的缓存中没有包含这个地址,那么,这就对这个地址发出一个广播请求,网络上所有主机都处理这个请求,如果其中包含对那个地址的映射,那么就把该地址传递到发出广播请求的那台主机,然后再把数据包发送上路,并且将新的信息地址存储到路由器的缓存中。
③逆向地址解析协议(RARP)
  RARP服务器以ARP表(或者缓存)的形式维护着机器号码的数据库,这个数据库由系统管理员所创建。跟ARP相反的是,RARP协议提供了一个IP号码与一个请求硬件地址相对应。当RARP服务器接收到来自网络上某个节点发出的对某个IP号码的请求时,该服务器就通过检查它的路由表来获取发出请求的那个节点的机器号码、并把合适的IP号码发送回去到请求节点以做出响应。
④Internet控制信息协议(ICMP)
  ICMP由IP所使用,它们是一些更高层次的协议,用来发送和接收有关正在传输信息的状态报告。路由器通常使用ICMP来控制路由器之间数据的通信量或者速度。如果数据通信量对于某台路由器来说太快的话,这台路由器就请求其他的路由器把速度降低。
  ICMP的两种基本类别是报告错误和发查询。
3:传输层
   传输层对应于ISO模型的传输层,它负责建立并维护两台计机之间端对端的通信。传输层提供接收后的确认、通信量控制和数据包的顺序控制,它还处理数据包的重新传输任务。传输层既可以使用TCP协议,也可以使用用户数据报协议UDP,具体使用哪一种协议取决于传输的需求。
①传输控制协议(TCP)
  TCP负责把数据从一个节点可靠地传输到另外一个节点,它是一种基于连接的协议,在任何数据发送之前,它在两台机器之间建立一个连接(也叫做会话、虚拟电路或者链接)。为了建立一个可靠的链接,TCP使用了叫做“三向握手”的方式,这样就在传输双方都建立端口号码和初始序列号码。握手包括下面这3个步骤:
  ●请求者发送一个用来指定它计划使用的端口号码和初始的序列号码的数据包到服务器。
  ●服务器用它的ISN来确认,这个ISN由请求者的ISN加1组成。
  ●请求者用服务器的ISN加1来发出确认信息。
为维护一个可靠的连接,每个数据包必须包含:
  ●源和目的地TCP端口号码。
  ●必须分割成为更小块的消息的序列号码。
  ●一个用来确保消息无错误发送校验和。
  ●一个用来告诉发送机器,消息的哪些小块已经到达的确认号码。
②端口、套接字和滑动窗口
  协议的端口号码是用来引用每一台机器上(在应用层中的)某个特定应用程序或者进程的位置的。就像IP地址是用来标志网络上主机的地址一样,端口地址是用来给传输层标识应用程序的,这样就在一台主机上的应用程序和另外一台主机上的应用程序之间建立了一个完整的连接。 应用程序和服务(比如文件和打印服务、或者远程登录服务等)可以配置高达65536个端口。典型的TCP/IP应用程序和服务使用前面的1023个端口。 IANA已经把这些端口分配为标准的、默认的端口。任何客户端应用程序都根据需要动态分配端口号码。端口和节点地址一起就组成了套接字。
  服务和应用程序使用套接字来建立一台计机同另外一台主机之间的连接。如果应用程序需要管理数据发送的话,那么,套接字就选择面向连接的服务,比如TCP。如果应用程序不需要管理数据发送,那么套接字就选择非面向连接的服务,比如UDP。
  TCP使用滑动窗口在主机之间进行数据传输。滑动窗口控制在接收主机必须发送一个确认信息之前可以通过TCP连接所进行传送的信息量。 每一台计算机都有一个发送窗口和一个接收窗口,计算机使用这两个窗口来缓冲保存数据,并使通信过程的效率更高。滑动窗口允许发送计算机以数据流的形式传输数据,而不用等待每个数据包的确认信息。这样也允许接收计算机不必按照顺序来接收数据包,在接收计算机等待接收更多数据包时,它可以识别出数据包。发送窗口跟踪已经发送了数据,如果在一个给定的时间内还没有收到确认信息的话,就重新发送数据包。
③:用户数据报协议(UDP)
  无连接协议UDP负责数据的端对端传输。不过,与TCP不一样的是,UDP并不建立连接。它试图发送数据,并试图确认目的主机真正接收至了数据。 UDP最好用来发送数量很少的数据,在这样的情况下是不需要控制发送的。尽管UDP也使用端口,但这样的端口与TCP的端口是不一样的,所以,这两种协议可以使用相同的号码而不会相互影响。
4:应用层
  应用层对应于OSI模型的会话层、表示层和应用层,它把应用程序连接到网络。两种应用程序编程接口(API)提供了对TCP/IP传输协议的访问,它们是:Windows Sockets和NetBIOS。  
Windows Sockets接口
  Windows Sockets是一种网络API,设计它是用来促进不同TCP/IP应用程序和协议堆栈之间的通信。当初建立了它,使得使用TCP/IP的应用程序能够对标准接口进行写访问。WinSock是从最初API为BSD Unix操作系统所创建的套接字演化而来的,WinSock API进行编写的应用程序都能够同任何TCP/IP协议进行通信,反之亦然。
四、小结
  ●TCP/IP是一种工业标准的协议套件,它提供了不同种类环境中的通信。
  ●TCP/IP的4层是网络接口层、互联网络层、传输层和应用层。
  ●TCP协议工作在传输层,它在两台计算机之间建立面向连接的通信。
  ●UDP工作在传输层,它在两台计算机之间建立无连接的通讯。
  ●TCP/IP的网络接口层与OSI模型的物理层和数据链路层相对应。
  ●TCP/IP的互联网络层与OSI模型的网络层相对应。
  ●TCP/IP的传输层与OSI模型的传输层相对应。
  ●TCP/IP的应用层和OSI模型的会话层、表示层、应用层相对应。

求教TCP/IP

有哪位大老熟悉TCP/IP理论?
可否上传一些文件.

回复--TCP/IP

什么是TCP/IP协议
1.TCP/IP的通讯协议

这里简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打点基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。

2.TCP/IP整体构架概述

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
3.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。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
返回列表