TCP-UDP协议

合集下载

tcp udp对应的协议

tcp udp对应的协议

tcp udp对应的协议
TCP和UDP是两种网络传输协议,它们分别对应着TCP协议和UDP协议。

TCP(Transmission Control Protocol)是一种面向连接的、
可靠的、基于字节流的传输层通信协议。

它提供了数据完整性、顺
序性和可靠性的传输,适用于对数据传输质量要求较高的应用场景,例如文件传输、电子邮件等。

TCP协议通过三次握手建立连接,然
后进行数据传输,最后通过四次挥手来释放连接。

由于其可靠性和
完整性的特点,TCP协议在网络通信中被广泛应用。

UDP(User Datagram Protocol)是一种无连接的、不可靠的、
简单的传输层通信协议。

它不保证数据的可靠传输,也不保证数据
的顺序性,适用于对实时性要求较高的应用场景,例如音频、视频
流等。

UDP协议不需要建立连接,直接进行数据传输,因此在网络
通信中的开销较小。

然而,由于其不可靠性,UDP协议在应用中需
要额外的机制来保证数据的完整性和顺序性。

从协议特点来看,TCP提供了可靠的数据传输,而UDP提供了
更快速的数据传输。

在实际应用中,根据不同的需求和场景,可以
选择使用TCP或UDP协议来进行网络通信。

这两种协议在网络通信中发挥着不同的作用,对于理解网络通信和进行网络应用开发都具有重要意义。

常用网络通信协议简介

常用网络通信协议简介

常用网络通信协议简介常见的网络协议有:TCP/IP协议、UDP协议、HTTP协议、FTP协议、Telnet协议、SMTP协议、NFS协议等。

这里主要简述一下前三种协议。

一.TCP/IP协议1.什么是TCP/IP协议?TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。

它是在网络的使用中的最基本的通信协议。

TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。

并且,TCP/IP 传输协议是保证网络数据信息及时、完整传输的两个重要的协议。

2.TCP/IP协议的组成TCP/IP协议由四个层次组成:应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。

(1)对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。

(2)应用层还能加密、解密、格式化数据。

(3)应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。

运输层:作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。

且在运输层中,TCP和UDP也同样起到了中流砥柱的作用。

网络层:网络层在TCP/IP协议中的位于第三层。

在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。

网络接口层:在TCP/IP协议中,网络接口层位于第四层。

由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。

3.TCP/IP协议的特点(1)协议标准是完全开放的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统。

(2)独立于网络硬件系统,可以运行在广域网,更适合于互联网。

(3)网络地址统一分配,网络中每一设备和终端都具有一个唯一地址。

(4)高层协议标准化,可以提供多种多样可靠网络服务。

二.UDP协议1.什么是UDP协议?Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,UserDatagramProtocol)。

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用TCP(传输控制协议)和UDP(用户数据报协议)是两种不同的传输协议,它们在网络通信中起着非常重要的作用。

虽然它们都是在网络通信中传输数据的协议,但是它们有很大的区别。

在本文中,我将分别介绍TCP和UDP的特点、区别及其在各种应用中的使用。

一、TCP的特点及应用1. TCP的特点TCP是一种面向连接的协议,它在传输数据之前需要先建立连接,然后传输数据,传输结束后再断开连接。

它提供可靠的、按序传输的数据传输服务,能够保证数据的完整性和可靠性。

TCP使用三次握手来建立连接,四次挥手来断开连接,在传输数据时会进行数据校验和确认。

因此,它非常适合对数据传输的要求比较高的应用场景。

2. TCP的应用TCP广泛应用于各种需要可靠传输的应用场景,包括但不限于以下几个方面:(1)网络浏览:当用户访问网页时,浏览器会使用TCP协议与服务器建立连接,传输页面内容。

(2)文件传输:在文件传输过程中,TCP可以保证文件的完整性和可靠性,确保文件在传输过程中不会丢失或损坏。

(3)电子邮件:电子邮件的发送和接收过程中需要使用TCP协议来保证数据传输的可靠性。

(4)远程登录:如Telnet、SSH等远程登录方式都使用TCP协议来传输数据。

(5)数据库访问:数据库访问时需要使用TCP协议来传输数据。

二、UDP的特点及应用1. UDP的特点UDP是一种无连接的协议,它不需要在传输数据之前建立连接,也不保证数据的完整性和可靠性。

UDP是一种简单的数据传输协议,它仅提供数据传输的功能,不对数据传输进行确认和校验。

因此,UDP的传输效率比TCP高,但可靠性较差。

由于UDP不需要建立连接,所以它的开销比较小,适合对实时性要求较高的应用场景。

2. UDP的应用UDP主要用于那些对实时性要求较高的应用场景,包括但不限于以下几个方面:(1)实时视频、音频传输:视频会议、实时语音通话等应用中使用UDP来传输数据,因为在这些应用中,实时性比可靠性更为重要。

网络编程的常用协议

网络编程的常用协议

网络编程的常用协议网络编程是指利用计算机网络进行数据传输和处理的编程技术。

在网络编程中,为了实现不同计算机之间的通信和数据交换,采用了各种不同的协议。

本文将介绍网络编程中常用的几种协议。

一、传输控制协议(TCP)传输控制协议(TCP)是一种面向连接的、可靠的、字节流的传输协议。

它通过建立双向的、可靠的通信流,确保数据的可靠传输。

TCP 使用三次握手建立连接,通过序列号和确认应答保证数据的有序性和完整性,同时还能进行拥塞控制和流量控制。

TCP常用于需要可靠传输的应用,如HTTP、FTP等。

二、用户数据报协议(UDP)用户数据报协议(UDP)是一种无连接的传输协议,它不保证数据的可靠传输。

UDP将数据分成较小的数据包进行传输,它不面向连接,不进行拥塞控制和流量控制,因此传输效率较高。

UDP适用于实时性要求较高的应用,如实时音视频传输、网络游戏等。

三、超文本传输协议(HTTP)超文本传输协议(HTTP)是一种在计算机世界中用于传输超媒体文档的协议。

它基于客户端-服务器模型,客户端向服务器发送HTTP请求,服务器返回HTTP响应。

HTTP使用TCP作为传输层协议,通过URL定位网络资源,进行数据的传输和交换。

HTTP常用于网页浏览、文件下载等应用。

四、文件传输协议(FTP)文件传输协议(FTP)是一种用于在计算机网络上进行文件传输的标准网络协议。

它基于客户端-服务器模型,客户端通过FTP客户端程序连接到服务器,进行文件的上传、下载、删除等操作。

FTP使用TCP作为传输层协议,提供了用户名密码认证、目录操作、文件传输等功能。

五、简单邮件传输协议(SMTP)简单邮件传输协议(SMTP)是一种在计算机网络上发送和传输电子邮件的协议。

它用于在发送邮件服务器和接收邮件服务器之间传递电子邮件。

SMTP使用TCP建立连接,通过命令和响应的方式进行邮件的传输。

SMTP还定义了邮件地址的格式和邮件的编码规则等。

六、域名系统(DNS)域名系统(DNS)是一种用于将域名和IP地址相互映射的分布式数据库系统。

TCPUDP有什么区别

TCPUDP有什么区别

TCPUDP有什么区别前⾔计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP 和 UDP 都属于传输层协议。

在实际开发过程中,需要根据实际需求的来选择适当的传输协议。

在这⾥我们简单总结下 TCP、UDP 的特点和区别以及实际开发中如何选择。

TCP 和 UDP 的定义TCP 是⾯向有连接,可靠的流协议。

保证两端通讯主机之间的通信可达,可以处理丢包、乱序等异常,可以有效利⽤带宽、缓解⽹络拥堵。

UDP 是⾯向⽆连接,不可靠的数据报协议。

不会处理丢包、乱序等异常,⼀般交给上层的应⽤层处理。

UDP 的特点及使⽤场景UDP 不提供复杂的控制机制,利⽤ IP 提供⾯向⽆连接的通信服务,随时都可以发送数据,处理简单且⾼效,经常⽤于以下场景:①包总量较⼩的通信(DNS、SNMP)②视频、⾳频等多媒体通信(即时通信)③⼴播通信TCP 的特点及使⽤场景相对于 UDP,TCP 实现了数据传输过程中的各种控制,可以进⾏丢包时的重发控制,还可以对次序乱掉的分包进⾏顺序控制。

在对可靠性要求较⾼的情况下,可以使⽤ TCP,即不考虑 UDP 的时候,都可以选择 TCP。

总结这⾥简单总结下:1.TCP 是⾯向连接的,UDP 是⾯向⽆连接的;故 TCP 需要建⽴连接和断开连接,UDP 不需要。

2.TCP 是流协议,UDP 是数据包协议;故 TCP 数据没有⼤⼩限制,UDP 数据报有⼤⼩限制(UDP 协议本⾝限制、数据链路层的 MTU、缓存区⼤⼩)。

3.TCP 是可靠协议,UDP 是不可靠协议;故 TCP 会处理数据丢包重发以及乱序等情况,UDP 则不会处理。

TCP 为什么要三次握⼿,四次挥⼿?前⾔TCP 属于传输层协议,是⾯向有连接,可靠的流协议。

⾯对有连接这个特性,TCP 就有建⽴连接和断开连接的过程。

我们分别了解建⽴连接和断开连接的流程以及当中的⼀些疑问。

TCP 建⽴连接和断开连接流程⾸先我们来看下这张经典的流程图:握⼿过程可以简化为下⾯的四次交互:1.Client 端⾸先发送⼀个 SYN 包,告诉 Server 端我的初始序列号是 X;Client 端进⼊了 SYN-SENT(同步已发送状态)状态。

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用

TCP与UDP的区别及其应用TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是两种常见的网络传输协议,它们在网络通信中起着非常重要的作用。

虽然它们都是用来传输数据的协议,但是它们有着不同的特性和适用场景。

1. TCP的特点及应用TCP是一种面向连接的协议,它通过三次握手建立连接,然后在数据传输过程中保证数据的可靠性和有序性。

TCP协议的特点包括以下几点:1)可靠性:TCP通过确认机制和重传机制来保证数据的可靠传输。

当发送方发送数据后,接收方会对数据进行确认,如果发送方未收到确认信息,就会重传数据。

通过这种方式,TCP可以保证数据的可靠性。

2)有序性:TCP保证数据的有序传输,即发送的数据包在接收端按照发送的顺序进行重组。

3)流量控制:TCP利用滑动窗口机制来进行流量控制,当接收方无法处理发送方的数据时,可以通过发送窗口大小来告知发送方暂停发送。

4)拥塞控制:TCP通过拥塞窗口动态调整的方式来进行拥塞控制,以避免网络拥塞。

5)面向字节流:TCP是面向字节流的协议,它将数据流看作一个字节序列进行传输。

由于TCP具有以上特点,它适用于对数据可靠性和有序性要求较高的场景。

例如,网页浏览、电子邮件传输、文件传输等应用都是基于TCP协议进行数据传输的。

2. UDP的特点及应用UDP是一种无连接的协议,它并不会像TCP那样进行连接的建立和断开,而是直接将数据包发送出去。

UDP协议的特点包括以下几点:1)无连接:UDP是一种无连接的协议,它不需要进行连接的建立和断开,因此传输时延较小。

2)简单性:UDP相对于TCP来说更加简单,数据包的头部信息较少,传输效率高。

3)不可靠性:UDP不保证数据的可靠性,数据包的丢失和重组都可能发生。

4)面向报文:UDP是面向报文的协议,它将数据看作一个个的报文进行传输。

由于UDP具有以上特点,它适用于一些对实时性要求较高的应用场景,例如音视频传输、在线游戏等。

网络应用技术开篇-第04章 传输层协议TCP和UDP

网络应用技术开篇-第04章 传输层协议TCP和UDP




135端口:135端口主要用于使用RPC(Remote Procedure Call, 远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。 冲击波病毒利用RPC漏洞攻击,利用错误格式处理不正确的消息 造成的。 137、138、139端口:NETBIOS Name Service :其中137、 138是UDP端口,当通过网上邻居 传输文件时用这个端口。只需要向 这端口发个请求,就可以获得该计 算机名称,用户名IIS是否在运行。 139端口: NETBIOS Session Service 图获得NetBIOS/SMB服务。这个协 议被用于windows文件和打印机共 享和SAMBA。 443端口:Https 网页浏览端口,能 提供加密和通过安全端口传输的另一 种HTTP,作用同139完全相同。


3.利用UDP的应用程序要承担可靠性方面的全部工 作
UDP封装
以太网帧
帧头
IP报头
UDP报头
UDP数据
校验码
UDP报文
IP数据报 帧是给传输过程中交换设备阅读的,IP数据报是给路由器阅读的,UDP报文 是给传输路径的两端的主机阅读的
UDP的端口

UDP使用端口对给定主机上的多个目标进行区分 TCP和UDP各自拥有自己的端口号
TCP中的序列编号

TCP将数据流作为组合成段的字节序列传送 为每一个字节分配一个唯一的序列编号 第一个字节的序列编号是在连接建立开始时确定的 每个TCP报的序列编号是分配给段中的数据的第一 个字节的序列编号
源主机 目的主机
81 80 79 SEQ79
78 77 76 75 74 SEQ74
TCP提供的服务

TCP和UDP的区别和关键知识点

TCP和UDP的区别和关键知识点

TCP和UDP的区别和关键知识点1.TCP和UDP区别TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。

当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。

TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。

UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。

由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

2.TCP与UDP的选择当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。

当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。

在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。

把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。

TCP丰富的功能有时会导致不可预料的性能低下,但是我们相信在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。

3.为什么UDP有时比TCP更有优势?UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时游戏。

(1)网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。

(2)TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。

采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7章TCP/UDP协议主要内容1.TCP协议基本原理。

2.UCP协议基本原理。

sat实验。

能力要求1.理解传输层在OSI体系结构中的地位和作用。

2.了解传输层如何保证通信服务的可靠性。

3.掌握TCP/UDP协议基本原理和报文数据结构。

因为世界上各种通信子网在性能上存在着很大差异,例如电话交换网、分组交换网、公用数据交换网,局域网等通信子网等,但网络的互联互通的特性决定了它们必须互连,而它们提供的吞吐量、传输速率、数据延迟通信费用各不相同,但对于会话层来说,却要求有一性能恒定的界面,传输层就承担了这一功能。

传输层(Transport Layer)是OSI体系结构中重要、关键的一层,负责总体的数据传输和数据控制。

传输层提供端到端的交换数据的机制。

传输层对会话层等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息。

传输层协议主要包括TCP/UDP协议。

它屏蔽了网络底层技术的差异,使会话层感受不到各种通信子网在技术标准和网络结构上的区别。

此外传输层还要具备差错恢复,流量控制等功能。

传输层面对的数据对象已不是网络地址和主机地址,而是端口。

传输层的最终目的是为会话提供可靠的、无误的数据传输。

传输层的服务一般要经历传输连接建立阶段、数据传送阶段、传输连接释放阶段3个阶段才算完成一个完整的服务过程。

在数据传输过程中,传输层要保证提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。

7.1 传输层功能概述传输层也称为运输层,是介于低3层通信子网系统和高3层之间的一层,是源端到目的端对数据传送进行控制从低到高的最后一层。

传输层功能的目的是为会话提供可靠、无误的数据传输服务。

传输层的服务一般要经历传输连接建立阶段、数据传送阶段、传输连接释放阶段3个阶段才算完成一个完整的服务过程。

为完成这一服务,传输层要具备以下基本功能:199(1)连接管理(Connection Management):定义了允许两个用户像直接连接一样开始交谈的规则。

通常把连接的定义和建立的过程称为握手(handshake)。

传输层要建立、维持和终止一个会话。

在数据传输开始时,发送方和接收方的应用都要通知各自的操作系统初始化一个连接,一个连接就建立了,数据传输也就开始了,在传输的过程中,两台主机还需要继续通过协议软件来通信以验证数据是否被正确接收。

数据传输完成后,发送端主机发送一个标识数据传输结束的指示。

接收端主机在数据传输完成后确认数据传输结束,连接终止。

(2)流量控制(Flow Control):就是以网络普遍接受的速度发送数据,从而防止网络拥塞造成数据报的丢失。

(3)差错检测(Error Detection):数据链路层的差错检测功能提供了可靠的链路传输,但无法保证源点和目的之间的传输完全无错,比如网络中的路由器收到了完整无缺的IP分组,但是在将含有分组的帧重新格式化的过程中出现了影响分组内容的错误。

这种错误可能是由于软件或硬件问题导致路由器在进行分组期间引起的,也就是说并不是由于物理链路在进行数据传输的过程中产生的差错,因此数据链路层的差错检测功能无法通过校验识别出差错。

传输层的差错检测机制会检测到这种类型的错误。

(4)对用户请求的响应(Response to User's Request):包括对发送和接收数据请求的响应,以及特定请求的响应,如用户可能要求高吞吐率、低延迟或可靠的服务。

传输层面对的数据对象不是网络地址和主机地址,而是端口。

(5)建立无连接或面向连接的通信:TCP/IP协议的TCP提供面向连接的传输层服务,UDP则提供无连接的传输层服务。

为了评价传输层提供的服务质量(QoS),我们一般用一组量化的指标来衡量,主要有:(1)连接建立延迟/连接释放延迟(2)连接建立/释放失败概率(3)传输时延(4)吞吐率(5)残留误码率(6)传输失败概率总之,我们设计传输层的目的就是提高传输服务的可靠性和保证服务质量QoS,下面我们分别就传输层的两个重要协议TCP和UDP分别介绍。

2007.2 TCP协议用户的应用程序进程最终需要得到的是端到端的通信服务,传输层的主要任务就是建立应用程序间的端到端连接,并且为数据传输提供可靠或不可靠的通信服务。

TCP/IP协议族的传输层协议主要包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。

TCP是面向连接的可靠的传输层协议,它支持在不可靠网络上实现面向连接的可靠的数据传输。

7.2.1 TCP协议的特点RFC 793定义的TCP是一种面向连接的、端到端的可靠传输协议。

TCP的主要特点如下:(1)三次握手(Three-Way Handshake)建立连接:确保连接建立的可靠性。

(2)端口号:通过端口号标识上层协议和服务,实现了网络通道的多路复用。

(3)完整性检验:通过对协议和载荷数据计算校验和,保证了接收方能检测出传输过程中可能出现的差错。

(4)确认机制:对于正确接收到的数据,接收方通过显式应答通告发送方,超出一定时间之后,发送方将重传没有被确认的段,确保传输的可靠性。

(5)序列号:发送的所有数据都拥有唯一的序列号,这样不但唯一标识了每一个段,而且明确了每个段在整个数据流中的位置,接收方可以利用这些信息实现确认、丢失检测、乱序重排等功能。

(6)窗口机制:通过可调节的窗口,TCP接收方可以通告期望的发送速度,从而控制数据的流量。

由于TCP具有这些特点,一些对数据传输可靠性、次序等比较敏感的应用程序和协议使用TCP作为其传输层协议。

这些应用和协议包括FTP、Telnet、E-mail(SMTP/POP3)等。

7.2.2 TCP/UDP端口号在IP网络中,一个IP地址可以唯一地标识一个主机。

但一个主机上却可能201同时有多个进程访问网络,要标识这些进程,只用IP地址就不够了。

因此TCP/UDP采用端口号(Port Number)来标识这些上层的应用进程,从而使这些进程可以复用网络通道。

而为了区分TCP和UDP协议,IP用协议号6标识TCP,用协议号17标识UDP,如图7-1所示。

图7-1 TCP/UDP端口号在实际的端到端通信中,通信的双方实际上是两个应用进程,这两个进程都需要用各自的端口号进行识别。

所以,一个通信连接可以用双方的IP地址以及双方的端口号来标识,而每一个数据报内也必须包含源IP地址、源端口、目的IP地址和目的端口。

IP地址在IP头中标出,而端口号在TCP/UDP头中标出。

TCP/UDP的端口号是一个16位二进制数,即端口号范围可以为0~65535。

其中,端口0~1023由IANA统一管理,分配或保留给众所周知的服务使用,这些端口称为熟知端口(Well-Known Port)。

大于1023的端口号没有统一的管理,可以由应用进程任意使用。

虽然UDP端口号与TCP端口号是不相关的,但通常仍然为同一个应用保留相同的TCP和UDP端口号,以免不必要的麻烦。

一些常见协议的保留端口号如表7-1所示。

详细分配信息可参见RFC 1700。

端口号协议端口号协议20 FTP data 88 Kerberos21 FTP control 92 NPP(Network Printing Protocol)23 Telnet 118 SQL Services25 SMTP 161 SNMP53 DNS 162 SNMP Trap69 TFTP 179 BGP80 HTTP 520 RIP保留熟知端口的必要性显而易见。

例如,若HTTP服务的端口号是任意值,202则用户在访问Internet网站是就会遇到麻烦,因为浏览器不知道目的网站所使用的端口号,用户就要自己输入端口号。

但是这并不意味着众所周知的协议必须使用众所周知的端口号。

例如管理员也可以为HTTP协议分配端口8080,目的恰恰是避免任何人都能随意访问其网页。

知道一个特定的TCP/IP应用进程服务使用了哪一个端口是非常重要的。

如果把主机当成一个封闭的堡垒,那么端口号就是堡垒上的窗户的编号,可以开放主机上特定的端口来允许其他人访问,也可以关闭特定的端口来阻止非法的访问。

在windows系统中也可以查看所使用的端口号信息。

打开windows的命令窗口,输入netstat命令,可以看到本地主机和目标主机使用的端口号,详见本章后面的实验。

7.2.3 TCP封装如图7-2所示,TCP收到应用层提交的数据后,将其分段,并在每个分段前封装一个TCP头。

最终的IP包是在TCP头之前再添加IP头形成的。

图7-2 TCP封装图7-3所示为TCP头的格式。

TCP头由一个20B的固定长度部分加上变长的选项字段组成。

TCP头的各字段含义如下。

(1)源端口(Source Port):16位的源端口字段包含初始化通信的端口号。

源端口和源IP地址的作用是识别报文的返回地址。

(2)目的端口(Destination Port):16位的目的端口字段定义传输的目的地址。

这个端口指明接收方计算机上的应用进程接口。

(3)顺序号(Sequence Number):该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第一数据字节在整个字节流中的序号。

如果将字节流看做在两个应用进程间的单向流动,则TCP用序列号对每个字节进行计数,序列号是一个32位的数。

203图7-3 TCP头格式(4)确认号(Acknowledgement Number):TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节在整个字节流中的序号,并声明此前的所有数据都已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。

收到确认号的源计算机会知道特定的段已经被收到。

确认号的字段只在ACK标志被设置时才有效。

(5)数据偏移(Data Offset):这个4位字段包括TCP头大小,以32位数据结构(字)为单位。

(6)保留(Reserved,阴影部分):6位置0的字段。

为将来定义新的用途保留。

(7)控制位(Control bits):共6位,每1位标志可以打开一个控制功能,这6个标志从左至右是URG(Urgent pointer field significant,紧急指针字段标志)、ACK(Acknowledgment field significant,确认字段标志)、PSH(Push function,推功能)、RST(Reset the connection,重置连接)、SYN(Synchronize sequence numbers,同步序列号)、FIN(Final,No more data from sender,数据传送完毕)。

相关文档
最新文档