[译]TCP和UDP的区别

[译]TCP和UDP的区别,第1张

[译]TCP和UDP的区别

译者:华科小涛:http://www.cnblogs.com/hust-ghtao/

最近开始学习计算机网络的知识,找了些英文的资料,翻译过来,一是为了深入学习网络,也是为了锻炼自己看英文文档的能力。


原文链接:http://blog.pluralsight.com/networking-basics-tcp-udp-tcpip-osi-models,(如果侵权的话,大家告诉我哦)。


译文:

传输控制协议/互联网协议(TCP/IP)套件(suite翻译成套件有点奇怪啊!)是由美国国防部(DoD)发明的,旨在确保通信在任何情况下都能进行,在遭受恶意攻击时,数据完整性也能保证啊。


传说中的开放互联参考模型(OSI Model)是对网络协议设计的抽象描述,目的就是为了规范网络。


这篇文章,我会阐述DoD和OSI模型的区别,更进一步还会介绍DoD版TCP/IP模型的细节。


我还会介绍DoD各层协议,当然重点会放在TCP和UDP。


通过这篇文章,你会找到关于TCP/IP套件的干货哦。


如果你正在准备CCENT货CCNA(不知道是啥)的考试,或者你对网络很感兴趣,那就千万不要错过呀。


记好安全带,have a good ride,(懂意思,不会翻译!)。


TCP/IP和OSI模型的比较

让我们从比较TCP/IP和OSI模型开始。


TCP/IP模型是OSI模型的简化版,用四层取代OSI的七层。


尽管存在结构上的差异,但两种模型有可互换的传输层和网络层,它们的 *** 作也都是基于分组交换技术。


下图就表明两种模型的不同之处:

(译者注:按照惯例呢,Application译成应用层,Host-to-Host传输层,Internet网络层,NetworkAccess链路层。


  • 应用层: 应用层负责表示、编码、和对话控制。


    所有这些问题集中起来在TCP/IP模型中就是一层,在OSI模型中是三层。


  • 传输层: TCP/IP中的Host-to-Host 协议功能和OSI模型中的模型差不多,包括应用数据的分割,传输可靠性保证,流和错误控制。


  • 网络层:TCP/IP中的网络层和OSI模型中的网络层提供相同的服务。


    主要目的就算是将数据包送到目的地,而且和所选路径无关。


  • 链路层:链路层处理一切和网络媒介上的数据终端有关的物理问题。


    是OSI模型中DataLink和Physical概念的和。


下图显示了TCP/IP模型和TCP/IP协议族之间的关系:

传输层的网络协议

两个协议:传输控制协议(TCP)和用户数据报协议(UDP)是被设计用来传输数据报的。


我们将着眼于它们的细节和与上层的交互。


1.传输控制协议(TCP)

TCP是面向连接的协议,在传输数据之前必须建立连接。


TCP协议的数据单元叫做数据段,以段的形式接受和发送数据实体,这些段由一个固定20-byte头后面跟着一个变量大小数据字段组成。


TCP负责将字节流分解成数据段发送,并在另一端合并,重新发送任何可能丢失的数据并将数据段按正确的顺序组织。


数据段大小由链路层技术决定的最大传送单元严格限制。


(1500字节通常是以太网的最大有效载荷大小)。


下图就是TCP数据段的格式:

其中:

  • Source Port and Destination Port 为源端口和目的端口,确定特定链接的两个端点。


    一个端口加上主机的IP地址就可以确定一个端点啦。


    端口用来和上层通信,还可以用来区分同一台电脑上不同的应用程序。


  • The Sequence Number and Acknowledgment Number 指定字节流中的字节。


    The Sequence Number用来重新排序或重新发送丢失的数据段。


    The Acknowledgment number 被设定为预期的下一个段。


  • Data offset or TCP header length 表明在TCP的头信息中有多少word(一个word 4 字节哦)。


  • The Window field 表明在收到确认之前可以传输多少字节。


  • The Checksum field 提供额外的可靠性和安全性。


  • 用户数据就跟在头的后面。


让我们来看下抓包器是怎么捕获TCP数据包的,下图显示了一个TCP的请求信息。


注意上面提到的字段:Source Port, Destination Port, Sequence number, Acknowledgement number, Window size and checksum.

用户数据报协议 (UDP)

UDP 协议包含的头部信息较少. 是因为有些数据类型不需要可靠的交付和额外的开销. 例如实时交通系统,为了确保实时传送数据,就没有采用纠错和重传机制。


UDP是一种无连接的协议。


它的可靠性由应用层处理。


它所在乎的就是尽可能快的传输数据。


UDP数据段格式如下图所示:

Let’s see how a UDP segment is captured by Ethereal. Notice the small header size:

该用哪种协议呢?

要传输的数据的性质决定了要采用的协议. 如果信息要可靠、有顺序的、完整的传输,那就用TCP协议呗。


如果数据对实时性要求很高,为了减少开销和处理,那就用UDP协议。


下面的表格简单总结了TCP和UDP的特点,将它们牢记于心,选择时就不用纠结了:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/586619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存