TCPIP
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当网络传送过程中资料传送有问题时,系统可 以自动检测错误重新传递,而将资料完整地传 送完。
美国1969年便赋予ARPA(Advanced Research Projects Agency,美国国防部高级研究计划署)这一任务。于是 在1971年研究出了NCP协议(Network Control Protocol), 并真正架构出23个节点的网络系统。但随着网络的进步, 网络的传输设备也不断更新,从网线一直发展到卫星传 送系统。NCP协议已无法满足人们的要求,不同的网络 系统无法顺利地传送资料。为此美国史丹佛大学、BNN 公司与英国伦敦大学共同研究TCP(Transmission Control Protocol)协议,这个协议可以让不同网络系统通过网线、 无线电波或卫星传送等方式连起来,并彼此沟通即传递 信息。
第二个是用户数据报协议UDP。它是一个不可靠的、无 连接协议,用于不需要TCP的排序和流量控制能力而是 自己完成这些功能的应用程序。它也被广泛地应用于只 有一次的、客户-服务器模式的请求-应答查询,以及快 速递交比准确递交更重要的应用程序,如传输语音或影 像。TCP/IP传输流程如图7-5所示。
7.1 TCP/IP协议发展模型
TCP/IP架构的出现源于1964年,当时美国国防部 (DoD)要组建一个“美国本土范围的智慧的网 络”,美国一家资讯公司RAND公司为了满足国 防部的要求而提出了一个解决方案。在这一个 方案中,有两项非常独特的见解:
网络没有中控点,除非敌人将整个系统破坏掉, 否则系统在不完全破坏下仍可以继续运作。
为了防止主机、路由器和互联网关可能会突然崩溃,所 以网络必须实现的另一个主要目标是网络不受子网硬件 损失的影响,已经建立的会话不会被取消。换句话说, 希望只要源端和目的端机器都在工作,连接就能保持住, 即使某些中间机器或传输线路突然失去控制。而且,整 个体系结构必须相当灵活,因为已经看到了各种各样从 文件传输到实时声音传输的需求。
(1) TCP协议
TCP全称为Transmission Control Protocol,即传输控制协 议,是TCP/IP传输层的重要协议。在分组交换的IP网络 中提供主机之间的互联。它是一个高可靠性的传输协议,
可以保证数据到达目的地,提供可靠的、面向连接的分 组传输服务。
TCP的一个主要功能是分段和重组,差错重传,流量控 制。在发送方大的数据会被分割成为小的数据块,把每
IP协议是被设计用来在分组交换(Packet Switching)的计 算机中用定长的地址实现系统互联的。Internet层的最主 要的两个功能是—— 寻址Addressing和路由Routing,IP 协议会帮助它实现这个功能。另外,它还有对数据包进 行分段和重组(Fragmentation and Reassembly)的能力。IP 是一个无连接、不可靠的传输协议,无连接意味着在交 换数据之前没有确定一个对话,不可靠则意味着传送不 能被保证。IP协议只负责将数据包从源端发到目的端, 如果有错误发生,IP并不试图从错误中进行恢复,恢复 工作是由更高层次的协议来负责,如TCP。
所有的这些需求导致了基于无连接互联网络层的分组交 换网络。这一层被称作互联网层(Internet Layer),它是整 个体系结构的关键部分。它的功能是使主机可以把分组 发往任何网络并使分组独立地传向目标(可能经由不同的 网络)。这些分组到达的顺序和发送的顺序可能不同,因 此如果需要按顺序发送和接收时,高层必须对分组排序。 必须注意到这里使用的“互联网”是基于一般意义的, 虽然因特网中确实存在互联网层。
1. 应用层
大致对应于OSI模型的应用层、表示层和会话层, 借助于协议如Winsock API、FTP(文件传输协 议)、TFTP(普通文件传输协议)、HTTP(超文本 传输协议)、SMTP(简单邮件传输协议)和 DHCP(动态主机配置协议),应用程序通过该层 利用网络。
在TCP/IP模型中,位于互联网层之上的那一层,现在通 常被称为传输层。它的功能是使源端和目标端主机上的 对等实体可以进行会话,和OSI的传输层一样。传输层 的基本作用是管理源和目的之间的报文传输,在TCP/IP 的传输层中主要有两个协议—— TCP协议和UDP协议。
4. 网络层
互联网层下面什么都没有,TCP/IP参考模型没有真正描 述这一部分,只是指出主机必须使用某种协议与网络连 接,以便能在其上传递IP分组。这个协议未被定义,并 且随主机和网络的不同而不同。
网络层处理报文的路由管理。这一层根据接收报文的信 息决定报文的去向。
网络层的主要工作是在网络层进行有大小限制的数据包 的正确传输,它有两个主要功能—— 寻址(Addressing) 和路由(Routing)。另外,在TCP/IP的网络层的IP协议中 还有数据包的分段的功能。在TCP/IP的网络层中主要有 4个协议,最重要的协议是IP协议,还有用于寻址的 ARP协议,用于报错的ICMP协议,用于组播的IGMP协 议。
虽然TCP协议较稳定而且也很少出错,但有时传送的封 包资料仍然会遗失而要求系统重新传送,这样会大大降 低系统的效率,浪费传送时间。为了解决这一问题,便 将TCP协议再度细分为两层:上层称为TCP协议,主要 工作为管理封包的切割、整合与重传;而下一层称为 IP(Internet Protocol)协议,主要工作为管理数据包的资 料传送与传送位置。因此,这样的协议便称为TCP/IP协 议。
(4) ARP/RARP协议
数据包在网上传输时,第2层包头中要有链路层的地址, ARP(Address Resolution Protocol)协议是在最常见的 Ethernet中,用来将IP地址解析成对应的以太网网卡的 MAC地址的。
由于ARP使用广播的方式解析地址,会造成系统中广播 帧的增多。为了减少ARP带来的广播,也为了加快解析 的速度,会把解析过的地址放在一个缓存中,以便下次 使用时快速查找。
在使用TCP协议传输数据时,通常在传输数据之 前要做一些准备工作,如源主机首先向目标主 机发送连接请求,然后目标主机响应源主机的 请求,最后源主机向目标主机发送确认信息, 之后源主机和目的主机才开始传输数据,这就 是常说的TCP的三次握手,如图7-8所示。
(4) UDP协议
UDP是同TCP并列的另一传输层协议。它是一种 面向非连接(Connectionless)的协议。UDP协议不 提供端到端的确认和重传功能,它不保证信息包 一定能到达目的地,因此是不可靠协议。应用开 发人员选择UDP时,应用层协议软件几乎是直接 与IP通信。
② 由于传输数据不建立连接,因此也就不需要维护连接状
态,包括收发状态等,因此一台服务机可同时向多个客 户机传输相同的消息。也就是说,UDP有广播的功能。 而TCP协议只能点到点传输,没有广播的功能。
③ UDP信息包的标题很短,只有8个字节,相对于TCP的 20个字节信息包的额外开销很小。
④ 吞吐量不受拥挤控制算法的调节,只受应用软件生成数 据的速率、传输带宽、源端和终端主机性能的限制。
互联网层定义了正式的分组和协议,即IP协议(Internet Protocol)。互联网层的功能就是把IP分组发送到应该去 的地方。分组路由和避免阻塞是这里主要的设计问题。 由于这些原因,我们有理由说TCP/IP互联网层和OSI网 络层在功能上非常相似。图7-2 显示了它们的对应关系。 如图7-2中描述,对应于OSI模型的7层结构,TCP/IP协议 组可大致分为4层,如图7-3所示。
(5) 端口号 在上面讲到的TCP、UDP的包结构中已经看到,无论是
TCP还是UDP都把端口号作为包头中的第一个内容,足 见它的重要性。那么什么是端口呢?这里的端口不同于 物理的端口的概念,它就是包头中的一个16位的数,范 围从0到65 535。它用于指明是哪个应用层的应用程序发 出的数据包,及该数据包应被发送给接收方的哪个应用 程序。例如,浏览器在访问网站时,由浏览器发出的数 据包的TCP包头中的目标端口都是80,指明数据包是发 给目标主机的WWW浏览服务的。 端口号中有源端口(Source Port)和目标端口(Destination Port)之分,源端口是对发出数据包的应用程序的标识, 目标端口是对要接收数据包的应用程序的标识。常见的 端口号有HTTP端口号80、FTP端口号21、简单邮件传输 协议SMTP的端口号25、Telnet的端口号23,类似于这样 的端口号叫做众所周知的端口号(Well-Known Port),其范 围为0~1023。还有一些大于1024的端口已经被注册,称 作Registered Number。端口号的分配定义在RFC 1700中, 并在1994年成为一个标准,标准号是STD0002。常见的 一些端口如表7-3所示。
3. 互联网层
TCP/IP模型没有会话层和表示层。由于没有需要,所以把 它们排除在外。来自OSI模型的经验已经证明,它们对大 多数应用程序都没有用处。
传输层的上面是应用层。它包含所有的高层协议。最早引 入的是虚拟终端协议(Telnet)、文件传输协议(FTP)和电子 邮件协议(SMTP),虚拟终端协议允许一台机器上的用户 登录到远程机器上并且进行工作。文件传输协议提供了有 效地把数据从一台机器移到另一台机器的方法。电子邮件 协议最初仅是一种文件传输,但是后来为它提出一专门的 协议。这些年来又增加了不少的协议。例如,域名系统服 务(Domain Name Service,DNS)用于把主机名映射到网络 地址,NNTP协议用于传递新闻文章,HTTP协议用于在 万维网(WWW)上获取主页等。
7.2 TCP/IP体系结构
ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。逐渐地,它通过租用的电话 线连接了数百所大学和政府部门。当卫星和无线网络出 现以后,现有的协议在和它们互联时出现了问题,所以 需要一种新的参考体系结构,能无缝隙地连接多个网络 的能力,这个体系结构被称为TCP/IP参考模型(TCP/IP Reference Model)。
第一个是传输控制协议TCP。它是一个面向连接的协议, 允许从一台机器发出的字节流无差错地发往互联网上的
其他机器。它把输入的字节流分成报文段并传给互联网 层。在接收端,TCP接收进程把收到的报文再组装成输 出流。TCP还要处理流量控制,以避免快速发送方向低 速接收方发送过多报文而使接收方无法处理。
一个小块数据分别传输,在接收方ቤተ መጻሕፍቲ ባይዱ把收到的很多小数 据块重组装成一个大的数据包。TCP连接一旦建立,应 用程序就不断地把数据送到TCP发送缓存(TCP Send Buffer),TCP把数据流分成一块(Chunk),再装上TCP协 议包头(TCP Header)以形成TCP分组(TCP Segment)。这 些分组封装成IP数据包(IP Datagram)之后发送到网络上。 当对方接收到TCP分组后会把它存放到TCP接收缓存 (TCP Receive Buffer)中,应用程序就不断地从这个缓存 中读取数据。
(1) IP协议
IP协议是TCP/IP协议在进行数据传输时的核心,TCP/IP 协议集中的大多数协议都是基于IP协议进行传输的。IP 是Internet Protocol的缩写,这里的Internet是TCP/IP模型 中第3层Internet层(与网络层对应)的名字,不是通常所指 的互联网。
UDP有下述几个特性:
① UDP是一个无连接协议,传输数据之前源端和目标端不 建立连接,当它想传送时就简单把来自应用程序的数据, 尽可能快地传到线路上。在发送端,UDP传送数据的速 度仅仅是受应用程序生成数据的速度、计算机的能力和 传输带宽的限制;在接收端,UDP把每个收到的数据块 放在接收缓冲区中,由应用程序以数据块为单位读取。
美国1969年便赋予ARPA(Advanced Research Projects Agency,美国国防部高级研究计划署)这一任务。于是 在1971年研究出了NCP协议(Network Control Protocol), 并真正架构出23个节点的网络系统。但随着网络的进步, 网络的传输设备也不断更新,从网线一直发展到卫星传 送系统。NCP协议已无法满足人们的要求,不同的网络 系统无法顺利地传送资料。为此美国史丹佛大学、BNN 公司与英国伦敦大学共同研究TCP(Transmission Control Protocol)协议,这个协议可以让不同网络系统通过网线、 无线电波或卫星传送等方式连起来,并彼此沟通即传递 信息。
第二个是用户数据报协议UDP。它是一个不可靠的、无 连接协议,用于不需要TCP的排序和流量控制能力而是 自己完成这些功能的应用程序。它也被广泛地应用于只 有一次的、客户-服务器模式的请求-应答查询,以及快 速递交比准确递交更重要的应用程序,如传输语音或影 像。TCP/IP传输流程如图7-5所示。
7.1 TCP/IP协议发展模型
TCP/IP架构的出现源于1964年,当时美国国防部 (DoD)要组建一个“美国本土范围的智慧的网 络”,美国一家资讯公司RAND公司为了满足国 防部的要求而提出了一个解决方案。在这一个 方案中,有两项非常独特的见解:
网络没有中控点,除非敌人将整个系统破坏掉, 否则系统在不完全破坏下仍可以继续运作。
为了防止主机、路由器和互联网关可能会突然崩溃,所 以网络必须实现的另一个主要目标是网络不受子网硬件 损失的影响,已经建立的会话不会被取消。换句话说, 希望只要源端和目的端机器都在工作,连接就能保持住, 即使某些中间机器或传输线路突然失去控制。而且,整 个体系结构必须相当灵活,因为已经看到了各种各样从 文件传输到实时声音传输的需求。
(1) TCP协议
TCP全称为Transmission Control Protocol,即传输控制协 议,是TCP/IP传输层的重要协议。在分组交换的IP网络 中提供主机之间的互联。它是一个高可靠性的传输协议,
可以保证数据到达目的地,提供可靠的、面向连接的分 组传输服务。
TCP的一个主要功能是分段和重组,差错重传,流量控 制。在发送方大的数据会被分割成为小的数据块,把每
IP协议是被设计用来在分组交换(Packet Switching)的计 算机中用定长的地址实现系统互联的。Internet层的最主 要的两个功能是—— 寻址Addressing和路由Routing,IP 协议会帮助它实现这个功能。另外,它还有对数据包进 行分段和重组(Fragmentation and Reassembly)的能力。IP 是一个无连接、不可靠的传输协议,无连接意味着在交 换数据之前没有确定一个对话,不可靠则意味着传送不 能被保证。IP协议只负责将数据包从源端发到目的端, 如果有错误发生,IP并不试图从错误中进行恢复,恢复 工作是由更高层次的协议来负责,如TCP。
所有的这些需求导致了基于无连接互联网络层的分组交 换网络。这一层被称作互联网层(Internet Layer),它是整 个体系结构的关键部分。它的功能是使主机可以把分组 发往任何网络并使分组独立地传向目标(可能经由不同的 网络)。这些分组到达的顺序和发送的顺序可能不同,因 此如果需要按顺序发送和接收时,高层必须对分组排序。 必须注意到这里使用的“互联网”是基于一般意义的, 虽然因特网中确实存在互联网层。
1. 应用层
大致对应于OSI模型的应用层、表示层和会话层, 借助于协议如Winsock API、FTP(文件传输协 议)、TFTP(普通文件传输协议)、HTTP(超文本 传输协议)、SMTP(简单邮件传输协议)和 DHCP(动态主机配置协议),应用程序通过该层 利用网络。
在TCP/IP模型中,位于互联网层之上的那一层,现在通 常被称为传输层。它的功能是使源端和目标端主机上的 对等实体可以进行会话,和OSI的传输层一样。传输层 的基本作用是管理源和目的之间的报文传输,在TCP/IP 的传输层中主要有两个协议—— TCP协议和UDP协议。
4. 网络层
互联网层下面什么都没有,TCP/IP参考模型没有真正描 述这一部分,只是指出主机必须使用某种协议与网络连 接,以便能在其上传递IP分组。这个协议未被定义,并 且随主机和网络的不同而不同。
网络层处理报文的路由管理。这一层根据接收报文的信 息决定报文的去向。
网络层的主要工作是在网络层进行有大小限制的数据包 的正确传输,它有两个主要功能—— 寻址(Addressing) 和路由(Routing)。另外,在TCP/IP的网络层的IP协议中 还有数据包的分段的功能。在TCP/IP的网络层中主要有 4个协议,最重要的协议是IP协议,还有用于寻址的 ARP协议,用于报错的ICMP协议,用于组播的IGMP协 议。
虽然TCP协议较稳定而且也很少出错,但有时传送的封 包资料仍然会遗失而要求系统重新传送,这样会大大降 低系统的效率,浪费传送时间。为了解决这一问题,便 将TCP协议再度细分为两层:上层称为TCP协议,主要 工作为管理封包的切割、整合与重传;而下一层称为 IP(Internet Protocol)协议,主要工作为管理数据包的资 料传送与传送位置。因此,这样的协议便称为TCP/IP协 议。
(4) ARP/RARP协议
数据包在网上传输时,第2层包头中要有链路层的地址, ARP(Address Resolution Protocol)协议是在最常见的 Ethernet中,用来将IP地址解析成对应的以太网网卡的 MAC地址的。
由于ARP使用广播的方式解析地址,会造成系统中广播 帧的增多。为了减少ARP带来的广播,也为了加快解析 的速度,会把解析过的地址放在一个缓存中,以便下次 使用时快速查找。
在使用TCP协议传输数据时,通常在传输数据之 前要做一些准备工作,如源主机首先向目标主 机发送连接请求,然后目标主机响应源主机的 请求,最后源主机向目标主机发送确认信息, 之后源主机和目的主机才开始传输数据,这就 是常说的TCP的三次握手,如图7-8所示。
(4) UDP协议
UDP是同TCP并列的另一传输层协议。它是一种 面向非连接(Connectionless)的协议。UDP协议不 提供端到端的确认和重传功能,它不保证信息包 一定能到达目的地,因此是不可靠协议。应用开 发人员选择UDP时,应用层协议软件几乎是直接 与IP通信。
② 由于传输数据不建立连接,因此也就不需要维护连接状
态,包括收发状态等,因此一台服务机可同时向多个客 户机传输相同的消息。也就是说,UDP有广播的功能。 而TCP协议只能点到点传输,没有广播的功能。
③ UDP信息包的标题很短,只有8个字节,相对于TCP的 20个字节信息包的额外开销很小。
④ 吞吐量不受拥挤控制算法的调节,只受应用软件生成数 据的速率、传输带宽、源端和终端主机性能的限制。
互联网层定义了正式的分组和协议,即IP协议(Internet Protocol)。互联网层的功能就是把IP分组发送到应该去 的地方。分组路由和避免阻塞是这里主要的设计问题。 由于这些原因,我们有理由说TCP/IP互联网层和OSI网 络层在功能上非常相似。图7-2 显示了它们的对应关系。 如图7-2中描述,对应于OSI模型的7层结构,TCP/IP协议 组可大致分为4层,如图7-3所示。
(5) 端口号 在上面讲到的TCP、UDP的包结构中已经看到,无论是
TCP还是UDP都把端口号作为包头中的第一个内容,足 见它的重要性。那么什么是端口呢?这里的端口不同于 物理的端口的概念,它就是包头中的一个16位的数,范 围从0到65 535。它用于指明是哪个应用层的应用程序发 出的数据包,及该数据包应被发送给接收方的哪个应用 程序。例如,浏览器在访问网站时,由浏览器发出的数 据包的TCP包头中的目标端口都是80,指明数据包是发 给目标主机的WWW浏览服务的。 端口号中有源端口(Source Port)和目标端口(Destination Port)之分,源端口是对发出数据包的应用程序的标识, 目标端口是对要接收数据包的应用程序的标识。常见的 端口号有HTTP端口号80、FTP端口号21、简单邮件传输 协议SMTP的端口号25、Telnet的端口号23,类似于这样 的端口号叫做众所周知的端口号(Well-Known Port),其范 围为0~1023。还有一些大于1024的端口已经被注册,称 作Registered Number。端口号的分配定义在RFC 1700中, 并在1994年成为一个标准,标准号是STD0002。常见的 一些端口如表7-3所示。
3. 互联网层
TCP/IP模型没有会话层和表示层。由于没有需要,所以把 它们排除在外。来自OSI模型的经验已经证明,它们对大 多数应用程序都没有用处。
传输层的上面是应用层。它包含所有的高层协议。最早引 入的是虚拟终端协议(Telnet)、文件传输协议(FTP)和电子 邮件协议(SMTP),虚拟终端协议允许一台机器上的用户 登录到远程机器上并且进行工作。文件传输协议提供了有 效地把数据从一台机器移到另一台机器的方法。电子邮件 协议最初仅是一种文件传输,但是后来为它提出一专门的 协议。这些年来又增加了不少的协议。例如,域名系统服 务(Domain Name Service,DNS)用于把主机名映射到网络 地址,NNTP协议用于传递新闻文章,HTTP协议用于在 万维网(WWW)上获取主页等。
7.2 TCP/IP体系结构
ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。逐渐地,它通过租用的电话 线连接了数百所大学和政府部门。当卫星和无线网络出 现以后,现有的协议在和它们互联时出现了问题,所以 需要一种新的参考体系结构,能无缝隙地连接多个网络 的能力,这个体系结构被称为TCP/IP参考模型(TCP/IP Reference Model)。
第一个是传输控制协议TCP。它是一个面向连接的协议, 允许从一台机器发出的字节流无差错地发往互联网上的
其他机器。它把输入的字节流分成报文段并传给互联网 层。在接收端,TCP接收进程把收到的报文再组装成输 出流。TCP还要处理流量控制,以避免快速发送方向低 速接收方发送过多报文而使接收方无法处理。
一个小块数据分别传输,在接收方ቤተ መጻሕፍቲ ባይዱ把收到的很多小数 据块重组装成一个大的数据包。TCP连接一旦建立,应 用程序就不断地把数据送到TCP发送缓存(TCP Send Buffer),TCP把数据流分成一块(Chunk),再装上TCP协 议包头(TCP Header)以形成TCP分组(TCP Segment)。这 些分组封装成IP数据包(IP Datagram)之后发送到网络上。 当对方接收到TCP分组后会把它存放到TCP接收缓存 (TCP Receive Buffer)中,应用程序就不断地从这个缓存 中读取数据。
(1) IP协议
IP协议是TCP/IP协议在进行数据传输时的核心,TCP/IP 协议集中的大多数协议都是基于IP协议进行传输的。IP 是Internet Protocol的缩写,这里的Internet是TCP/IP模型 中第3层Internet层(与网络层对应)的名字,不是通常所指 的互联网。
UDP有下述几个特性:
① UDP是一个无连接协议,传输数据之前源端和目标端不 建立连接,当它想传送时就简单把来自应用程序的数据, 尽可能快地传到线路上。在发送端,UDP传送数据的速 度仅仅是受应用程序生成数据的速度、计算机的能力和 传输带宽的限制;在接收端,UDP把每个收到的数据块 放在接收缓冲区中,由应用程序以数据块为单位读取。