TCP/IP协议的详细介绍

TCP/IP协议简介
  TCP/IP的总称为Transmission Control Protocol/Internet Protocol,中文译作传输控制协议/互联网协议,它是Internet最基本的协议,是由底层的IP协议和TCP协议组成的。在Internet没有形成之前,全球的网络实际上都是一个个局域网,它们有着形色各异的网络结构和传输规则。后来因为发展的需要,这些局域网要共同链接起来组成一个大网(即Internet),那么Internet形成以后,就需要一个协议规则让大家共同遵守,所以,TCP/IP协议诞生了。


TCP/IP整体框架
  在说到TCP/IP协议结构框架之前,我们需要先谈谈OSI参考模型。OSI全称为Open System Interconnection Reference Model,中文译作开放系统互连参考模型,它是由国际化标准组织的一个网络互连参考模型。
  OSI通信协议一共有7层,在这7层模型中,每一层执行一个特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层分别是:


    物理层(Physical Layer):该层规定了激活、关闭通信端点之间的物理特性、电气特性、功能特性、过程特性。该层为数据链路层提供了一个传输数据的物理媒介。该层的数据单位成为比特(bit)。
    数据链路层(Data Link Layer):该层在不可靠的物理介质上提供可靠的传输。它的作用包括物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。该层的数据单位称为帧(frame)。
    网络层(Network Layer):该层负责对子网间的数据包进行路由选择。该层还可以实现拥塞控制、网际互连等功能。在这一层中,数据的单位成为数据包(packet)。
    传输层(Transport Layer):传输层是一个端到端(即主机到主机)的层次。该层负责将网络层的数据分段并提供端到端的、可靠的或不可靠的传输。此外,该层还负责处理端到端的差错和流量控制问题。在该层中,数据的单位成为数据段(segment)。
    会话层(Session Layer):会话层负责创建、管理、终止主机之间的会话进程,它还可以利用在数据中插入校验点的方法来实现数据的同步。
    表示层(Presentation Layer):表示层对会话层的数据或信息进行转换处理,以保证一个主机的应用层信息可以被另一个主机的应用层信息所理解。其中,转换处理包括数据的加密、压缩、格式转换等。
    应用层(Application Layer):应用层是操作系统或应用程序所提供的网络服务的端口。


  OSI提出的模型是为了解决不同厂商、不同结构的网络产品之间互连时遇到不兼容问题,但是,OSI却有着一个致命的缺点——过于复杂!因此,人们开发出更为简洁有效的TCP/IP协议,也就是接下来要详细介绍的。
  TCP/IP参考的模型也是OSI,但不同的是,它采用了4层的层级结构,每一层都呼唤它下一层所提供的网络来完成自己的需求。具体如下:


    应用层:应用程序之间沟通的层,该层囊括了OSI中的会话层、表示层、应用层。
    传输层:对应OSI中的传输层,该层提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中。该层负责传送数据,并且确定数据已被送达并接收。
    网络互联层:对应OSI中的网络层。该层负责提供基本的数据封包传送功能,让每一块数据包都能到达目的主机,但它不负责检查是否被正确接收,如网络协议IP。
    网络接口层:该层囊括了OSI中的物理层和数据链路层,要求能够提供给网络互连层一个访问接口,以便在网络互连层上传递IP分组。由于这一层未被定义,所以其具体的实现办法将随着网络类型的不同而不同。


TCP/IP协议的特性
  1)Connectionless Packet Delivery Service(封包交换网络服务);Connectionless Packet Delivery Service是整个网路服务的基础。TCP/IP根据信息中所含的位址资料来进行资料传送,但不能确保每个独立路由的封包是可靠和依序地送达目的地。在每一个连线过程中,“线路”都不是被独占的,而是直接映射到硬体位址上。这使得TCP/IP能够适应各种不同的网路硬体。
  2)Reliable Stream Transport Service(可靠流传输服务);因为TCP/IP并不保证每一个封包的可靠性,因此就需要通信软件来侦测和修复传送过程中可能出现的错误,处理不良的封包。这种服务用来确保电脑之间能够建立连接和传送大量资料。其关键的技术是将资料进行切割,传送编号,然后通过接收方的确认(acknowledgement)来保证资料的完整性。
  3)Network Technology Independent(独立网络技术);在封包交换技术中,TCP/IP是独立于硬体之上的。TCP/IP有着自己的一套资料包规则和定义,可以应用在不同的网络上。
  4)Universal Interconnection(通用互连);但凡使用TCP/IP连接网络,都将获得一个独一无二的识别位址。资料包在交换过程中,是以位址资料为依据的,不管封包所经过的路由选择如何,数据都能被送达到指定的位址。
  5)End_to_End Acknowledgements(端到端应答式);TCP/IP的确认模式是以“端到端”进行的。这样就无需理会封包交换过程中所参与的其它设备,发送端和接收端能互相确认才是我们该关心的。
  6)Application Protocol Standards(标准应用协议);TCP/IP除了提供基础的传送服务,还提供许多一般应用标准,让程序设计人员有标准可依,也就减少了许多不必要的重复开发。


IP协议
  IP网络协议是TCP/IP的核心。IP协议是网络层协议,用在因特网上,TCP、UDP、ICMP、IGMP数据都是按照IP数据格式发送的。IP协议是用于多个包交换连接起来的网络,在源地址和目的地址之间传送数据报。IP提供了对数据大小的重新组装功能,以适应不同网络对于包大小的要求。主要责任就是把数据从源地址传送到目的地址。它提供两个基本功能:分段和寻址。因为IP并不会确认数据包是按顺序发送的或者没有被破坏,它只使用报头的校验码来校验数据的有效性。因此IP协议提供的是不可靠无连接的服务。此外IP还不负责流控制、包顺序和其它一些对于主机到主机来说很普通的服务。
  IP协议由主机到主机协议调用,这些协议负责调用本地网络协议将数据包传送到下一个网关或者目的主机。比如,TCP可以调用IP协议,而在调用时传送目的地址和源地址作为参数,IP形成数据报并调用本地网络接口传送数据包。TCP/IP中的数据传送一般由IP接收从更低层(网络接口层,例如以太网设备驱动程序)发来的数据包,并把该数据包发到更高层,如TCP层或UDP层。相反,IP层也把从TCP或UDP接收来的数据包传送到更低层。


TCP协议
  TCP是面向连接的通信传输控制协议。它提供两台计算机之间的可靠无误的数据传输。应用程序利用TCP进行通信时,源和目标之间会建立一个虚拟链接。这个连接一旦建立,两台计算机之间就可以把数据当成一个双向的字节流进行交换。
  TCP协议主要是一种为了在主机之间实现高可靠的包交换传输协议,因为TCP将包排序并进行检查,同时实现虚电路之间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP的工作过程较为复杂,主要内容如下:
    1)TCP连接关闭:发送方主机和目的主机建立连接并完成数据传输以后,会发送一个将结束标记置为1的数据包,用来关闭这个TCP连接,并同时释放该连接所占用的缓冲区空间。
    2)TCP重置:TCP允许在数据传输过程中突然中断连接。
    3)TCP数据排序和确认:在传输过程中使用序列号和确认好来跟踪数据的接收情况。
    4)TCP重传:在数据传送过程中,若在重传超时时间内没有收到来自接收方主机对某个数据包的已收确认回复,那么发送方会认为该数据包已丢失,并再次发送这个数据包给接收方。
    5)TCP延迟确认:TCP并不总是在接收到数据后立即对其进行确认,它允许主机在接收信息的同时发送自己的确认信息给对方。
    6)TCP数据保护(校验和):TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。
  TCP协议支持多重硬件构成的网络系统,它对于下层服务没有太多的要求,都假定下层只能提供不可靠的服务。TCP将收到的信息送到更高层的应用程序,应用程序轮流将信息送回TCP层,TCP层又将这些信息向下传送给IP层、设备驱动程序和物理介质,最后到接收方。
  TCP的连接过程也称为TCP的三次握手。首先发送方主机向接收方主机发起一个建立连接的同步请求;接收方主机在收到这个请求后向发送方回复一个确认应答;发送方主机收到确认应答后再向接收方主机发送一个确认,此时TCP连接成功建立。一旦这三次握手完成,在发送和接收主机之间将按顺序发送和确认段。关闭连接之前,TCP使用类似的握手过程验证两个主机是否都完成发送和接收全部数据。
UDP协议

  UDP(User Datagram Protocol)是面向无连接通信的用户数据报协议。它与TCP位于网络结构4层中的同一层,但它对于数据包的顺序错误或重发是不检查的。因此,UDP是一种非可靠性数据传输服务,但能够向若干个目标发送数据,接收多个源地址的数据。简单的说,如果一个客户机向服务器发送数据,无论服务器是否准备接收,这个数据都会立即发出。如果服务器接收到客户机数据,它也不会确认收到与否。数据传送方法采用的是数据报格式。因为以上特性,UDP不会被应用在使用虚电路的面向连接的服务。UDP主要用于那些面向查询应答的服务,例如NFS。相对于FTP等,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)、DNS及各种视频通信协议。



声明:本文来自于《visual c++游戏开发》,侵权则删!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值