TCP端口和UDP端口的区别
无线数传应用中TCP与UDP的比较
目前,由于GPRS和CDMA固有的特性,在各个领域中GPRS和CDMA的应用也越来越广泛,但是关于传输中使用TCP/IP协议还是UDP协议,却争论很多。
这里先简单的说一下TCP与UDP的区别:1、基于连接与无连接2、对系统资源的要求(TCP较多,UDP少)3、UDP程序结构较简单4、流模式与数据报模式5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证另外结合GPRS网络的情况具体的谈一下他们的区别:1、TCP传输存在一定的延时,大概是1600MS(移动提供),UDP响应速度稍微快一些。
2、TCP包头结构源端口16位目标端口16位序列号32位回应序号32位TCP头长度4位reserved6位控制代码6位窗口大小16位偏移量16位校验和16位选项32位(可选)这样我们得出了TCP包头的最小大小就是20字节.UDP包头结构源端口16位目的端口16位长度16位校验和16位UDP的包小很多.确实如此.因为UDP是非可靠连接.设计初衷就是尽可能快的将数据包发送出去.所以UDP协议显得非常精简.3、GPRS网络端口资源,UDP十分紧缺,变化很快;而TCP采用可靠链路传输,不存在端口变化的问题。
工业场合的应用一般都有以下特点,1、要求实时传输,但也有一些场合是定时传输,总的来说在整个传输过程中要求服务器中心端和GPRS终端设备能相互的、实时的传输数据。
TCP本身就是可靠链路传输,提供一个时时的双向的传输通道,能很好的满足工业现场传输的要求。
但是GPRS网络对TCP链路也存在一个限制:此条链路在长时间(大概20分钟左右,视具体情况而定)没有数据流量,会自动降低此链路的优先级直至强制断开此链路。
所以在实际使用中也会采用心跳包(一般是一个字节的数据)来维持此链路。
UDP由于自身特点,以及GPRS网络UDP端口资源的有限性,在一段时间没有数据流量后,端口容易改变,产生的影响就是从服务器中心端向GPRS终端发送数据,GPRS终端接收不到。
网络常见协议及端口
网络常见协议及端口一、简介网络协议是互联网通信的规则,它定义了数据如何在网络中传输和交流。
而网络协议中的端口则是用于标识不同应用程序或服务的通信通道。
本文将介绍一些常见的网络协议及其对应的端口,以帮助读者更好地了解和应用网络通信。
二、传输控制协议(TCP)传输控制协议是一种面向连接的协议,它提供了可靠的数据传输服务。
TCP使用端口号来标识不同应用程序或服务。
下面是一些常见的TCP协议及其对应的端口:1. HTTP协议(80端口):HTTP协议是超文本传输协议,用于在Web浏览器和服务器之间传输HTML页面和其他资源。
2. FTP协议(20和21端口):FTP协议是文件传输协议,用于在客户端和服务器之间传输文件。
3. Telnet协议(23端口):Telnet协议是一种远程登录协议,用于通过命令行界面远程登录到远程服务器或网络设备。
4. SMTP协议(25端口):SMTP协议是简单邮件传输协议,用于在邮件服务器之间传输电子邮件。
5. POP3协议(110端口):POP3协议是邮局协议,用于从邮件服务器上下载电子邮件。
6. IMAP协议(143端口):IMAP协议是Internet消息访问协议,用来从邮件服务器上接收电子邮件。
7. SSH协议(22端口):SSH协议是安全外壳协议,用于在不安全的网络上进行安全的远程登录和数据传输。
三、用户数据报协议(UDP)用户数据报协议是一种面向无连接的协议,它提供了不可靠但效率较高的数据传输服务。
UDP也使用端口号来标识不同应用程序或服务。
下面是一些常见的UDP协议及其对应的端口:1. DNS协议(53端口):DNS协议是域名系统协议,用于将域名解析为IP地址。
2. DHCP协议(67和68端口):DHCP协议是动态主机配置协议,用于自动分配IP地址和其他配置信息给网络设备。
3. NTP协议(123端口):NTP协议是网络时间协议,用于同步计算机的时间。
4. SNMP协议(161和162端口):SNMP协议是简单网络管理协议,用于监控网络设备和管理网络设备的配置。
TCP和UDP的区别和优缺点
TCP和UDP的区别和优缺点1、TCP与UDP区别总结:1、TCP⾯向连接(如打电话要先拨号建⽴连接);UDP是⽆连接的,即发送数据之前不需要建⽴连接2、TCP提供可靠的服务。
也就是说,通过TCP连接传送的数据,⽆差错,不丢失,不重复,且按序到达;UDP尽最⼤努⼒交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗⼝、确认应答实现可靠传输。
如丢包时的重发控制,还可以对次序乱掉的分包进⾏顺序控制。
3、UDP具有较好的实时性,⼯作效率⽐TCP⾼,适⽤于对⾼速传输和实时性有较⾼的通信或⼴播通信。
4.每⼀条TCP连接只能是点到点的;UDP⽀持⼀对⼀,⼀对多,多对⼀和多对多的交互通信5、TCP对系统资源要求较多,UDP对系统资源要求较少。
2、为什么UDP有时⽐TCP更有优势?UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时游戏。
(1)⽹速的提升给UDP的稳定性提供可靠⽹络保障,丢包率很低,如果使⽤应⽤层重传,能够确保传输的可靠性。
(2)TCP为了实现⽹络通信的可靠性,使⽤了复杂的拥塞控制算法,建⽴了繁琐的握⼿过程,由于TCP内置的系统协议栈中,极难对其进⾏改进。
采⽤TCP,⼀旦发⽣丢包,TCP会将后续的包缓存起来,等前⾯的包重传并接收到后再继续发送,延时会越来越⼤,基于UDP对实时性要求较为严格的情况下,采⽤⾃定义重传机制,能够把丢包产⽣的延迟降到最低,尽量减少⽹络问题对游戏性造成影响。
3、UDP和TCP编程步骤也有些不同,如下:UDP:与之对应的UDP编程步骤要简单许多,分别如下:UDP编程的服务器端⼀般步骤是: 1、创建⼀个socket,⽤函数socket(); 2、设置socket属性,⽤函数setsockopt();* 可选 3、绑定IP地址、端⼝等信息到socket上,⽤函数bind(); 4、循环接收数据,⽤函数recvfrom(); 5、关闭⽹络连接;UDP编程的客户端⼀般步骤是: 1、创建⼀个socket,⽤函数socket(); 2、设置socket属性,⽤函数setsockopt();* 可选 3、绑定IP地址、端⼝等信息到socket上,⽤函数bind();* 可选 4、设置对⽅的IP地址和端⼝等属性; 5、发送数据,⽤函数sendto(); 6、关闭⽹络连接;。
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来传输数据,因为在这些应用中,实时性比可靠性更为重要。
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,传输控制协议)TCP协议是⼀种可靠的、⼀对⼀的、⾯向有连接的通信协议,TCP主要通过下列⼏种⽅式保证数据传输的可靠性:(1)在使⽤TCP协议进⾏数据传输时,往往需要客户端和服务端先建⽴⼀个“通道“、且这个通道只能够被客户端和服务端使⽤,所以TCP 传输协议只能⾯向⼀对⼀的连接。
(2)为了保证数据传输的准确⽆误,TCP传输协议将⽤于传输的数据包分为若⼲个部分(每个部分的⼤⼩根据当时的⽹络情况⽽定),然后在它们的⾸部添加⼀个检验字节。
当数据的⼀个部分被接收完毕之后,服务端会对这⼀部分的完整性和准确性进⾏校验,校验之后如果数据的完整度和准确度都为100%,在服务端会要求客户端开始数据下⼀个部分的传输,如果数据的完整性和准确性与原来不相符,那么服务端会要求客户端再次传输这个部分。
客户端与服务端在使⽤TCP传输协议时要先建⽴⼀个“通道”,在传输完毕之后⼜要关闭这“通道”,前者可以被形象地成为“三次握⼿”,⽽后者则可以被称为“四次挥⼿”。
通道的建⽴——三次握⼿:(1)在建⽴通道时,客户端⾸先要向服务端发送⼀个SYN同步信号。
(2)服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。
(3)当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建⽴起来。
通道的关闭——四次挥⼿:(1)在数据传输完毕之后,客户端会向服务端发出⼀个FIN终⽌信号。
(2)服务端在收到这个信号之后会向客户端发出⼀个ACK确认信号。
(3)如果服务端此后也没有数据发给客户端时服务端会向客户端发送⼀个FIN终⽌信号。
(4)客户端在收到这个信号之后会回复⼀个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭了。
TCP协议能为应⽤程序提供可靠的通信连接,使⼀台计算机发出的字节流⽆差错地发往⽹络上的其他计算机,对可靠性要求⾼的数据通信系统往往使⽤TCP协议传输数据。
tcp udp区别
引言网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别。
一、TCP/IP网络模型计算机与网络设备要相互通信,双方就必须基于相同的方法。
比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。
不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。
而我们就把这种规则称为协议(protocol)。
TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。
TCP/IP模型是互联网的基础,它是一系列网络协议的总称。
这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。
链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。
网络层:负责路由以及把分组报文发送给目标网络或主机。
传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文。
应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。
在网络体系结构中网络通信的建立必须是在通信双方的对等层进行,不能交错。
在整个数据传输过程中,数据在发送端时经过各层时都要附加上相应层的协议头和协议尾(仅数据链路层需要封装协议尾)部分,也就是要对数据进行协议封装,以标识对应层所用的通信协议。
接下去介绍TCP/IP 中有两个具有代表性的传输层协议----TCP 和 UDP。
二、UDPUDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。
在OSI模型中,在第四层——传输层,处于IP协议的上一层。
UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
它有以下几个特点:1. 面向无连接首先 UDP 是不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据就可以开始发送了。
tcp协议与 udp协议的区别
TCP 与UDP的区别很多文章都说TCP协议可靠,UDP协议不可靠!为什么前者可靠,后者不可靠呢?既然UDP协议不可靠,为什么还要使用它呢?所谓的TCP协议是面向连接的协议,面向连接是什么呢?TCP和UDP都是传输层的协议!从编程的角度看,就是两个模块(模块就是代码的集合,一系列代码的组合提供相应的功能!模块化最终目的就是:分工协作!模块化好处:便于扩展开发以及维护!)。
先说TCP协议:这个协议,是面向的连接!面向连接这个概念,我们要从物理层看起。
大家都知道,因为“信道复用技术”的迅猛发展,才促使了计算机网络的发展!如果没有“信道复用技术”,那么单条线路上(这里的线路指物理传输介质,例如:双绞线、光纤、电话线)单位时间内只能供一台计算机使用!还是举例说明:就拿你自己的计算机来说,你跟同学“小明”聊天的时候,就不能跟另外一位同学“小强”聊天,如果你想同时跟两位同学聊天,那么你就得装两条线路!那么同时与第三位、第四位同学。
第N位同学聊天的时候,你需要装几根线路?全世界人民聊天的时候,又需要装几根线路?“信道复用技术”实现了,在同一条线路上,单位时间内可供X台计算机同时通信!Toad知道以下几种复用技术:1、频分复用2、时分复用3、波分复用4、码分复用5、空分复用6、统计复用7、极化波复用关于“信道复用技术”更深层次的问题,需要你自己去研究!上面我们提到了“信道复用技术”!知道了这一点,我们就很容易明白“物理信道”上的“虚拟信道”概念了!不同的信道复用技术,使用不同的复用技术,目的就是创建“虚拟信道”。
一个TCP协议连接其实就是在物理线路上创建的一条“虚拟信道”。
这条“虚拟信道”建立后,在TCP协议发出FIN包之前(两个终端都会向对方发送一个FIN包),是不会释放的。
正因为这一点,TCP协议被称为面向连接的协议!UDP协议,一样会在物理线路上创建一条“虚拟信道”,否则UDP协议无法传输数据!但是,当UDP协议传完数据后,这条“虚拟信道”就被立即注销了!因此,称UDP是不面向连接的协议!大家要知道,一种物理线路,单位时间内,能够创建的“虚拟信道”是有限的!从这个问题,大家应该明白了TCP协议和UDP协议为什么会共存了吧,然而,这只是其中一个原因而已!那为什么又说TCP协议可靠,UDP协议不可靠呢?以上说的是一个原因,还有一个原因是:使用TCP协议传输数据,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!UDP协议就没有这种确认机制!这一点,在做TCP协议首部分析时,会详加解释!QQ普通会员就是使用的UDP协议进行传输数据!既然UDP协议自身没有确认机制,这个工作可以交给应用层的进程来完成(QQ)!大家使用QQ的时候,感觉出错的几率还是非常小吧!当然,把这个确认工作完全交给QQ自身来做,就直接导致了,QQ软件体积增大!有些应用,对数据传输可靠性要求非常高,例如大家浏览网页,通过网页注册帐号、转帐等服务,这是不容许出错的,使用TCP协议能把出错的可能性降到最低(当然,网络自身很糟糕,TCP协议也没办法)。
网络协议端口号详解
⽹络协议端⼝号详解计算机"端⼝"是英⽂port的译义,可以认为是计算机与外界通讯交流的出⼝。
其中硬件领域的端⼝⼜称接⼝,如:USB端⼝、串⾏端⼝等。
软件领域的端⼝⼀般指⽹络中⾯向连接服务和⽆连接服务的通信协议端⼝,是⼀种抽象的软件结构,包括⼀些数据结构和I/O(基本输⼊输出)缓冲区。
在⽹络技术中,端⼝(Port)有好⼏种意思。
集线器、交换机、路由器的端⼝指的是连接其他⽹络设备的接⼝,如RJ-45端⼝、Serial端⼝等。
我们这⾥所指的端⼝不是指物理意义上的端⼝,⽽是特指TCP/IP协议中的端⼝,是逻辑意义上的端⼝。
那么TCP/IP协议中的端⼝指的是什么呢?如果把IP地址⽐作⼀间房⼦,端⼝就是出⼊这间房⼦的门。
真正的房⼦只有⼏个门,但是⼀个IP 地址的端⼝可以有65536(即:256×256)个之多!端⼝是通过端⼝号来标记的,端⼝号只有整数,范围是从0 到65535(256×256)。
在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其⽬的主机的ip地址来进⾏互联⽹络中的路由选择。
可见,把数据报顺利的传送到⽬的主机是没有问题的。
问题出在哪⾥呢?我们知道⼤多数操作系统都⽀持多程序(进程)同时运⾏,那么⽬的主机应该把接收到的数据报传送给众多同时运⾏的进程中的哪⼀个呢?显然这个问题有待解决,端⼝机制便由此被引⼊进来。
本地操作系统会给那些有需求的进程分配协议端⼝(protocal port,即我们常说的端⼝),每个协议端⼝由⼀个正整数标识,如:80,139,445,等等。
当⽬的主机接收到数据报后,将根据报⽂⾸部的⽬的端⼝号,把数据发送到相应端⼝,⽽与此端⼝相对应的那个进程将会领取数据并等待下⼀组数据的到来。
说到这⾥,端⼝的概念似乎仍然抽象,那么继续跟我来,别⾛开。
端⼝其实就是队,操作系统为各个进程分配了不同的队,数据报按照⽬的端⼝被推⼊相应的队中,等待被进程取⽤,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整⾃⼰的队的⼤⼩。
简述端口及其功能
简述端口及其功能
端口是计算机网络中的一种逻辑设备,用于识别网络通信中的不同应用程序和服务。
端口号是一个16位整数,取值范围为0到65535,其中0到1023是保留端口号,用于常见的服务或协议,如HTTP(80)、SSH(22)、SMTP(25)等。
常见的端口号有以下几种:
1. TCP端口:用于传输控制协议(TCP)通信,常见的例如FTP协议的数据端口(20)、Telnet协议的常规端口(23)、SMTP协议(25)、HTTP协议(80)等。
2. UDP端口:用于用户数据报协议(UDP)通信,UDP是一种不可靠的协议,在网络传输中速度较快,常见的例如DNS (53)、DHCP(68/67)、TFTP(69)等。
3. 动态端口:是指操作系统分配给不同应用程序使用的端口,通常位于1024到65535之间,随机分配给应用程序而不会与其他应用程序的使用冲突。
端口的主要功能是帮助标识出网络传输中的不同应用程序和服务,让网络数据能够正确地被传输到相应的程序和服务中。
通过端口,应用程序可以同其他程序进行数据通信,在计算机网络中实现进程间的通信,提高网络的效率和灵活性。
TCP与UDP的区别
中国移动、中国联通推行的GPRS网络、CDMA网络已覆盖大量的区域,通过无线网络实现数据传输成为可能。
无线Modem采用GPRS、CDMA模块通过中国移动、中国联通的GPRS、CDMA网络进行数据传输,并通TCP/IP协议进行数据封包,可灵活地实现多种设备接入,工程安装简单,在工业现场数据传输的应用中,能很好的解决偏远无网络无电话线路地区的数据传输的难题。
同传统的数传电台想比较,更具有简便性、灵活性、易操作性,同时还降低了成本,无线Modem传输方案是现代化工业现场数据传输最好的选择方案。
目前中国移动、中国联通提供的GPRS网络、CDMA网络的数据传输带宽在40Kbps 左右,且受带宽的限制,数据采集方案最好采用于主动告警、数据轮巡采集、告警主动回叫等对传输带宽占用较少的采集方式。
同时考虑对前置机实时采集方案的支持,无线Modem 传输方案只能作为目前传输方案的补充。
随着无线通讯技术的不断发展,无线传输数据带宽将不断提高,采用3G无线网络,数据传输带宽将达到2M,无线传输方案将逐渐成为监控传输组网的主要应用方案。
目前,由于GPRS和CDMA固有的特性,在各个领域中GPRS和CDMA的应用也越来越广泛,但是关于传输中使用TCP/IP协议还是UDP协议,却争论很多。
这里先简单的说一下TCP与UDP的区别:1。
基于连接与无连接2。
对系统资源的要求(TCP较多,UDP少)3。
UDP程序结构较简单4。
流模式与数据报模式5。
TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证另外结合GPRS网络的情况具体的谈一下他们的区别:1。
TCP传输存在一定的延时,大概是1600MS(移动提供),UDP响应速度稍微快一些。
2。
TCP包头结构源端口16位目标端口16位序列号32位回应序号32位TCP头长度4位reserved 6位控制代码6位窗口大小16位偏移量16位校验和16位选项32位(可选)这样我们得出了TCP包头的最小大小.就是20字节.UDP包头结构源端口16位目的端口16位长度16位校验和16位UDP的包小很多.确实如此.因为UDP是非可靠连接.设计初衷就是尽可能快的将数据包发送出去.所以UDP协议显得非常精简.3。
TCP、UDP区别和应用
TCP与UDPTCP是一种面向连接的保证可靠传输的协议。
通过TCP协议传输,得到的是一个顺序的无差错的数据流。
发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket 可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
UDP是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。
TCP与UDP区别:TCP特点:1. TCP是面向连接的协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP 是面向连接协议,所以只能用于点对点的通讯。
而且建立连接也需要消耗时间和开销。
2. TCP传输数据无大小限制,进行大数据传输。
3. TCP是一个可靠的协议,它能保证接收方能够完整正确地接收到发送方发送的全部数据。
UDP特点:1. UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
2. UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。
3. UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。
TCP与UDP应用:1. TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。
但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。
2. UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。
例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。
udp 和 tcp 的端口复用和解复用机制
TCP 和UDP 是两种常见的互联网协议,分别用于传输和数据报通信。
端口复用和解复用机制对于这两种协议来说是非常重要的。
TCP端口复用和解复用机制TCP(传输控制协议)是一种面向连接的协议,它使用一种称为端口的机制来进行通信。
端口是用来识别不同的连接的,这样一台机器上的不同应用就可以使用同一个IP地址进行通信。
每个TCP连接由一个源IP地址、一个源端口、一个目的IP地址和目的端口四个部分组成。
端口复用是指同一个端口可以多次被使用,但是必须保证这些连接中的数据包没有冲突。
在TCP中,当一个连接被关闭后,其使用的端口可以被立即复用。
端口解复用则是在接收到数据包后,根据源IP、源端口、目的IP和目的端口等信息,将数据包路由到正确的连接上。
如果数据包的目的端口和源端口与当前正在监听的端口匹配,那么这个数据包就会被认为是要发送到这个连接的。
UDP端口复用和解复用机制UDP(用户数据报协议)是一种无连接的协议,它不保证数据的可靠性和顺序性。
UDP使用端口来进行通信,但是它没有像TCP那样的连接概念。
因此,UDP 的端口复用和解复用机制与TCP有所不同。
在UDP中,同一个端口可以被多次使用,只要确保这些数据包的目标地址和端口与当前正在使用的端口不冲突即可。
当一个UDP进程关闭后,其使用的端口可以被立即复用。
在接收到数据包后,UDP根据源IP、源端口、目的IP和目的端口等信息将数据包路由到正确的应用程序或进程上。
如果数据包的目的端口和源端口与当前正在监听的端口匹配,那么这个数据包就会被认为是要发送到这个应用程序或进程的。
总的来说,TCP和UDP的端口复用和解复用机制都是为了提高网络通信的效率和灵活性。
但是它们的实现方式略有不同,因为TCP是面向连接的协议,而UDP 是无连接的协议。
TCP和UDP协议简介
TCP和UDP协议简介⼀、TCPTCP(Transmission Control Protocol),传输控制协议,对“传输、发送、通信”进⾏“控制”的协议,它充分地实现了数据传输时的各种控制功能,可以进⾏丢包时的重发控制,还可以对次序乱掉的分包进⾏顺序控制。
此外,TCP 是⾯向有连接的协议,只有在确认通信端存在时才会发送数据。
TCP 是⼀个传输层协议,提供 Host-To-Host 数据的可靠传输,⽀持全双⼯,是⼀个连接导向的协议。
TCP 复杂控制连接的建⽴、断开、保持等管理⼯作,保证了在 IP 这种⽆连接的⽹络上也能够实现⾼可靠性的通信。
TCP 使⽤场景:远程控制(SSH)File Transfer Protocol(FTP)邮件(SMTP、IMAP)等点对点⽂件传出(微信等)1. 数据发送TCP 协议有这样⼏个基本操作:⼀个 Host 主动向另⼀个 Host 发起连接,称为 SYN(Synchronization),请求同步;⼀个 Host 主动断开请求,称为 FIN(Finish),请求完成;⼀个 Host 给另⼀个 Host 发送数据,称为 PSH(Push),数据推送;在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回⼀个已收到消息的通知,这个消息叫做确认应答(ACK)。
如果在⼀定时间内没有收到 ACK,发送端就可以认为数据已经丢失,并进⾏重发。
在 TCP 中,会在发送数据的每⼀个字节都标上序号,接收端查询接收数据 TCP ⾸部中的序列号和数据的长度,将⾃⼰下⼀步应该接收的序号作为ACK 返送回去。
序列号机制使发送端可以根据序列号分批次发送,使接收端可以处理消息乱序和重复问题。
重发超时时间。
当然,最初的数据包还不知在 TCP 中,会在每次发包时计算往返时间及其偏差(⽅差),将这个往返时间和偏差(⽅差)相加就是重发超时时间道往返时间,其重发超时⼀般设置为 6 秒左右。
若数据被重发之后还是收不到 ACK,则进⾏再次发送,此时,重发超时时间会以 2 倍、4 倍的指数函数延长。
TCP与UDP必考题
问题及解答:1.端口(port)和套接字(socket)的区别是什么2.是否TCP和UDP都需要计算往返时间RTT3.在TCP传送数据时,有没有规定一个最大重传次数4.为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号连接很像一条连接发送端和接收端的双向管道。
当TCP在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择发送方和接收方都需要滑动窗口吗各有什么作用7.滑动窗口的窗口大小可以动态调整吗调整窗口大小可以起到什么作用8.在UDP协议中需要滑动窗口协议吗为什么这样有什么好处有什么坏处1.端口(port)和套接字(socket)的区别是什么答:套接字包含了端口,因为套接字= (IP地址,端口号)。
套接字是TCP连接的端点。
套接字又称为“插口”。
但我们已经讲过,套接字(socket)有多种意思。
当使用API时,套接字往往被看成是操作系统的一种抽象,这时,套接字和一个文件描述符是很相似的,并且是应用编程接口API 的一部分。
套接字由应用程序产生,并指明它将由客户还是服务器来使用。
当应用进程创建一个套接字时,要指明该套接字使用的端口号。
端口则是应用层服务的的一种代号,它用来标志应用层的进程。
端口是一个16 bit的整数。
各种服务器使用的端口号都是保留端口号,以便使客户能够找到服务器。
例如万维网服务器使用的端口号是80。
在发送数据时,应用层的数据通过端口向下交付到运输层。
在接收数据时,运输层的数据通过适当的端口向上交付到应用层的某个应用程序2.是否TCP和UDP都需要计算往返时间RTT答:TCP有的,UDP没有的,UDP发出去其实就不管了,它是需要在(应用层)来做一个数据传送保障的机制的。
重发也是通过软件端实现。
TCP本身协议就具障数据的功能。
3.在TCP传送数据时,有没有规定一个最大重传次数答:我们知道以太网规定重传16次就认为传输失败,然后报告上层。
但TCP没有规定最大重传次数,而是通过设置一些计时器来解决有关传输失败的问题4.为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号答:从理论上讲是可能会出现这种状况的。
UDP协议与TCP协议的比较
UDP协议与TCP协议的比较UDP协议是无面向连接的、不可靠的、无序的、无流量控制的传输层协议,UDP发送的每个数据报是记录型的数据报,所谓的记录型数据报就是接收进程可以识别接收到的数据报的记录边界。
TCP协议是面向连接的、可靠的、有序的、拥有流量控制的传输层协议,它是字节流的协议,无记录边界。
1.记录与字节流UDP协议:发送进程在发送每个数据报的时候并不等待多个数据报集中在一起以一个较大数据报发送出去,而是立即发送出去,它是记录型的协议。
并且接收进程每次通过read或recv……获得的数据报必定是发送进程所发送的那个数据报不可能是多个数据报,接收进程可以识别到发送进程所发送的每个数据报的记录边界。
TCP协议:发送进程在发送每个数据报的时候在内核处理过程中有可能并不立即发送出去,而是会将多个数据报集中在一起以一个较大的数据报来发送,它是字节流的协议。
而接收进程每次通过read来读取发送进程发送过来的数据报并不一定是发送进程原先发送数据报,接收进程无法识别每个数据报的记录边界,所以TCP协议就是字节流的、无记录边界的协议。
例如:QQ聊天所用到的协议就应该是有记录边界的,聊天过程中是以“消息”为单位,消息可以看成一个记录,所以QQ聊天协议采取UDP协议而不是TCP 协议。
2.有序与无序UDP协议:发送进程所发送的每个数据报并不按照原先发送的顺序到达接收进程,有可能早发送的数据报较后到达接收进程。
因为数据报在经过中间路径的传送时会因为各个数据报传送的路径不同或者其它原因而造成这些数据报到达的顺序不同,UDP协议是无序的传输协议。
所以为了使基于UDP协议的应用程序有序,必须在应用程序中设置序号、确认机制来使其有序。
TCP协议:有序协议,有超时、序号、重传、确认机制。
例如:FTP协议是用于传送文件的协议,为了确保在传送文件内容的时候,传送的每个数据报协议有序接收,所以FTP协议是基于TCP协议。
那为什么TFTP协议是基于UDP协议?因为为了保证有序,TFTP协议中引入了确认、序号字段。
面向报文(UDP)和面向字节流(TCP)的区别
⾯向报⽂(UDP)和⾯向字节流(TCP)的区别⾯向报⽂(UDP)和⾯向字节流(TCP)的区别⾯向报⽂的传输⽅式是应⽤层交给UDP多长的报⽂,UDP就照样发送,即⼀次发送⼀个报⽂。
因此,应⽤程序必须选择合适⼤⼩的报⽂。
若报⽂太长,则IP层需要分⽚,降低效率。
若太短,会是IP太⼩。
UDP对应⽤层交下来的报⽂,既不合并,也不拆分,⽽是保留这些报⽂的边界。
这也就是说,应⽤层交给UDP多长的报⽂,UDP就照样发送,即⼀次发送⼀个报⽂。
⾯向字节流的话,虽然应⽤程序和TCP的交互是⼀次⼀个数据块(⼤⼩不等),但TCP把应⽤程序看成是⼀连串的⽆结构的字节流。
TCP有⼀个缓冲,当应⽤程序传送的数据块太长,TCP就可以把它划分短⼀些再传送。
如果应⽤程序⼀次只发送⼀个字节,TCP也可以等待积累有⾜够多的字节后再构成报⽂段发送出去。
下图是TCP和UDP协议的⼀些应⽤。
下图是TCP和UDP协议的⽐较。
这⾥再详细说⼀下⾯向连接和⾯向⽆连接的区别:⾯向连接举例:两个⼈之间通过电话进⾏通信;⾯向⽆连接举例:邮政服务,⽤户把信函放在邮件中期待邮政处理流程来传递邮政包裹。
显然,不可达代表不可靠。
从程序实现的⾓度来看,可以⽤下图来进⾏描述。
从上图也能清晰的看出,TCP通信需要服务器端侦听listen、接收客户端连接请求accept,等待客户端connect建⽴连接后才能进⾏数据包的收发(recv/send)⼯作。
⽽UDP则服务器和客户端的概念不明显,服务器端即接收端需要绑定端⼝,等待客户端的数据的到来。
后续便可以进⾏数据的收发(recvfrom/sendto)⼯作。
在前⾯讲解UDP时,提到了UDP保留了报⽂的边界,下⾯我们来谈谈TCP和UDP中报⽂的边界问题。
在默认的阻塞模式下,TCP⽆边界,UDP有边界。
对于TCP协议,客户端连续发送数据,只要服务端的这个函数的缓冲区⾜够⼤,会⼀次性接收过来,即客户端是分好⼏次发过来,是有边界的,⽽服务端却⼀次性接收过来,所以证明是⽆边界的;⽽对于UDP协议,客户端连续发送数据,即使服务端的这个函数的缓冲区⾜够⼤,也只会⼀次⼀次的接收,发送多少次接收多少次,即客户端分⼏次发送过来,服务端就必须按⼏次接收,从⽽证明,这种UDP的通讯模式是有边界的。
udp端口号确定原则
udp端口号确定原则1. 什么是UDP端口用户数据报协议(UDP)是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP协议基本上是IP协议与上层协议的接口。
UDP协议适用端口分辨运行在同一台设备上的多个应用程序。
由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。
这是通过使用UDP的端口号完成的。
例如,如果一个工作站希望在工作站128.1.123.1上使用域名服务系统,它就会给数据包一个目的地址128.1.123.1,并在UDP头插入目标端口号53。
源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定到源主机的这个端口上。
UDP 端口的详细介绍可以参照相关文章。
与TCP不同,UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。
由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。
UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。
UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。
协议结构SourcePort16位。
源端口是可选字段。
当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。
如果不使用,设置值为0。
DestinationPort16位。
目标端口在特殊因特网目标地址的情况下具有意义。
Checksum16位。
IP协议头、UDP协议头和数据位,最后用0填补的信息假协议头总和。
如果必要的话,可以由两个八位复合而成。
Data包含上层数据信息。
2. TCP端口和UDP端口都是什么意思TCP端口就是为TCP协议通信提供服务的端口。
是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最近不能上网了,可是还能上QQ.原因是网通公司把我们的号封了.我想请问各位能上QQ的原理是什么呢/越通俗越好.拜托高手讲一下它们的工作原理.
奉上仅有的5分.
计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。
类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。由于TCP/IP传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立。如TCP有一个255号端口,UDP也可以有一个255号端口,两者并不冲突。端口号有两种基本分配方式:第一种叫全局分配这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(binding,绑定)。TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口叫周知口,即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。
在面向连接的方法中,网络负责顺序发送报文分组并且以一种可靠的方法检测丢失和冲突。这种方法被“可靠的”传输服务使用。
在无连接的方法中,网络只需要将报文分组发送到接收点,检错与流控由发送方和接收方处理。这种方法被称作“最佳工作(best-effort)”或“无应答(unacknowledged)”的传输协议所使用。
区分“面向连接服务”和“无连接服务”的概念,特别简单、形象的例子是:打电话和写信。两个人如果要通电话,必须先建立连接——拨号,等待应答后才能相互传递信息,最后还要释放连接——挂电话。写信就没有那么复杂了,地址姓名填好以后直接往邮筒一扔,收信人就能收到。
TCP/IP协议在网络层是无连接的(数据包只管往网上发,如何传输和到达以及是否到达由网络设备来管理)。而“端口”,是传输层的内容,是面向连接的。协议里面低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。面向连接的通信(Connection-Oriented Communication)在面向连接方法中,在两个端点之间建立了一条数据通信信道(电路)。这条信道提供了一条在网络上顺序发送报文分组的预定义路径,这个连接类似于语音电话。发送方与接收方保持联系以协调会话和报文分组接收或失败的信号。但这并不意味着面向连接的信道比无连接的信道使用了更多的带宽,两种方法都只在报文分组传输时才使用带宽。为面向连接的会话建立的通信信道自然是逻辑的,常被称作虚电路(virtual circuit),它关心的是端点。与在网络上寻求一条实际的物理路径相比,这条信道更关心的是保持两个端点的联系。在有多条到达目的地路径的网络中,物理路径在会话期间随着数据模式的改变而改变,但是端点(和中间节点)一直保持对路径进行跟踪,图C-26所示为多路复用电路中的逻辑路径。一台计算机上的应用程序启动与另一台计算机的面向连接的会话,它通过访问基本的通信协议来请求这样的对话。在传输控制协议/因特网协议(TCP/IP)组中,TCP提供面向连接的服务,而IP(较低层的协议)提供传输服务。在NetWare SPX/IPX协议组中,SPX提供面向连接的服务。因为报文分组是通过虚电路传输的,所以并不需要使用全分组地址,这是由于网络已经知道了发送方与接收方的地址。网络路径上的每个节点都保持跟踪虚电路和需要交换分组的端口。顺序编号用来保证分组的顺序流动。虚电路需要一个建立过程,但电路一旦建立,它就为长时间的处理提供一条有效的路径,如由管理程序对网络站点的连续监控和许多大文件的传送。与此相比,无连接方法是设计用于突发的、暂时的通信,这种方法中如用虚电路建立就不是很有效的。
面向连接服务的主要特点有:面向连接服务要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。无连接服务的特点是:无连接服务只有传输数据阶段。消除了除数据通信外的其它开销。只要发送实体是活跃的,无须接收实体也是活跃的。它的优点是灵活方便、迅速,特别适合于传送少量零星的报文,但无连接服务不能防止报文的丢失、重复或失序。
用TCP还是UDP,那要看你的程序注重哪一个方面?可靠还是快速?
TCP端口在3层,UDP不是四层就是7层
TCP和UDPபைடு நூலகம்协议也不相同,TCP比UDP安全
网络中可以被命名和寻址的通信端口是操作系统的一种可分配资源。由网络OSI(开放系统互联参考模型,Open System Interconnection Reference Model)七层协议可知,传输层与网络层最大的区别是传输层提供进程通信能力,网络通信的最终地址不仅包括主机地址,还包括可描述进程的某种标识。所以TCP/IP协议提出的协议端口,可以认为是网络通信进程的一种标识符。应用程序(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问。
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
可以先了解面向连接和无连接协议(Connection-Oriented and Connectionless Protocols):通信协议要么是面向连接的,要么是无连接的。这依赖于信息发送方是否需要与接收方联系并通过联系来维持一个对话(面向连接的),还是没有任何预先联系就发送消息(无连接的)且希望接收方能顺序接收所有内容。这些方法揭示了网络上实现通信的两种途径。
TCP和UDP规定,小于256的端口才能作为保留端口。按端口号可分为3大类:(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。系统管理员可以“重定向”端口:一种常见的技术是把一个端口重定向到另一个地址。例如默认的HTTP端口是80,不少人将它重定向到另一个端口,如8080。如果是这样改了,要访问本文就应改用这个地址:8080/net/port.htm(当然,这仅仅是理论上的举例)。实现重定向是为了隐藏公认的默认端口,降低受破坏率。这样如果有人要对一个公认的默认端口进行攻击则必须先进行端口扫描。大多数端口重定向与原端口有相似之处,例如多数HTTP端口由80变化而来:81,88,8000,8080,8888。同样POP的端口原来在110,也常被重定向到1100。也有不少情况是选取统计上有特别意义的数,象1234,23456,34567等。许多人有其它原因选择奇怪的数,42,69,666,31337。近来,越来越多的远程控制木马( Remote Access Trojans, RATs )采用相同的默认端口。如NetBus的默认端口是12345。Blake R. Swopes指出使用重定向端口还有一个原因,在UNIX系统上,如果你想侦听1024以下的端口需要有root权限。如果你没有root权限而又想开web服务,你就需要将其安装在较高的端口。此外,一些ISP的防火墙将阻挡低端口的通讯,这样的话即使你拥有整个机器你还是得重定向端口。
面向连接的会话的建立过程如下:1.源应用程序请求一个面向连接的通信会话。2.建立会话(需要一段时间,是选用无连接的协议的一个原因)。3.在逻辑连接上开始数据传输。4.传输结束时,信道解除连接。在分组交换远程通信网络中,有些信道永不断连。两点之间建立的一条永久信道称为永久虚电路(PVC)(Permanent virtual circuits(PVCs))。PVC类似于专用电话线。面向连接的协议大部分位于与开放系统互连(OSI)协议模型相当的运输层协议中。通用的面向连接的协议包括Internet和UNIX环境下的TCP(传输控制协议)、Novell的顺序分组交换(SPX)、IBM/Microsoft的NetBIOS和OSI的连接模型网络协议(CMNP)。无连接通信(Connectionless Communication)在无连接方法中,网络除了把分组传送到目的地以外不需做任何事情,如果分组丢失了,接收方必须检测出错误并请求重发;如果分组因采用不同的路径而没有按序到达,接收方必须将它们重新排序。无连接的协议有TCP/IP协议组的IP部分,NetWare的SPX/IPX协议的IPX部分和OSI的无连接网络协议(CLNP)。这些协议在与OSI协议模型相当的网络层中。在无连接的通信会话中,每个数据分组是一个在网络上传输的独立单元,称作数据报。发送方和接收方之间没有初始协商,发送方仅仅向网络上发送数据报,每个分组含有源地址和目的地址。该方法中没有接收方发来的分组接收或未接收的应答,也没有流控制,所以分组可能不按次序到达,接收方必须对它们重新排序。如果接收到有错误的分组,则将它删掉。当重新整理分组时,就会发现被删掉的包并请求重发。使用无连接的协议有许多好处。就性能来说,无连接策略通常更好,因为大多数网络上只有相对少的错误,所以被破坏的或丢失的分组很少,端点不需很多时间来重发。协议的比较(Comparing the Protocols)面向连接的服务更适于需要稳定数据流的应用,例如,与Novell NetWare一起提供的远程监控程序使用的是面向连接的协议SPX。面向连接的服务可靠性也更高,并能更有效从问题中恢复。虽然无连接的服务中每个分组有更多的额外开销,而面向连接的服务在端点上需要更多的处理来建立和保持连接。但是额外开销有时没有被证实,例如与局域网用户和服务器交互有关的短暂突发传输。