当时觉得他们说话特别嗦,重复呼叫名号、自报家门、重复对方要求,重复自己的话,最后还加个完毕,看着都着急。很不幸,在网络世界,电脑和电脑之间的通讯,比这个“嗦”有过之而无不及。这个所谓的“嗦”,是因为战下面是小编为大家整理的文件传输协议【五篇】(完整),供大家参考。
文件传输协议范文第1篇
黄河、黄河,这是长江,请开炮收到,正在汇报,正在汇报,完毕。
当时觉得他们说话特别嗦,重复呼叫名号、自报家门、重复对方要求,重复自己的话,最后还加个完毕,看着都着急。
很不幸,在网络世界,电脑和电脑之间的通讯,比这个“嗦”有过之而无不及。
这个所谓的“嗦”,是因为战场通讯和网络通讯有很多相似的地方:环境恶劣、距离遥远、干扰众多而又要内容不失真,所以通讯双方,都要反复验证信息传送的正确性。这一套通话的模式,在网络世界里称为协议,而上面那种通话模式―互相喊话、确认身份、确认发送的信息、确认发送结束,可以比拟为网络中最常用的TCP协议(见图1)。
小提示:
TCP协议是TCP/IP协议的一部分,而TCP/IP协议是互联网的基础。通俗地理解,TCP是“说话”的方式、IP协议用来“呼叫”通话的电脑。
QQ传输文件比MSN快?原因一
QQ、MSN在传文件时,将文件的数据分成很多小数据包,每个包里面再添加上这些嗦的“话”,以保证能可靠地接收,毫无疑问“一分钟也传不了几句话”。
后来,QQ改革了,换了一种通话协议―UDP协议,这个协议如同发电报,将数据一股脑地发给对方,对方只简单地回复“收到”即可。至于全不全、对不对就不管了。这个协议效率很高,传送文件的速度当然就快了(见图2)。
小提示:
UDP协议虽然可靠性差、错误率高,但在网络视频应用中效果良好,视频聊天软件均采用此协议。另外,QQ也采取了一些措施来克服它的缺点,如让文件断点续传(MSN无断点续传功能)。
原因二,选择最近的路线
网络还有一个复杂的情况:两台互传文件的电脑可能远隔“千山万水”,要通过许多服务器、路由器、网关和电缆中转,才有可能达到目的地。UDP协议为了加快连接速度,会选择尽量短的路线(称为UDP直连模式)。而MSN使用的TCP协议,却先将数据包发送到MSN服务器,服务器再转送到目的地(称为TCP中转模式),数据正确性虽有保证,但绕了路,也会受到服务器拥堵的影响。
原因三,礼让与加塞
TCP协议是一个“和谐”的协议,当它发觉网络堵塞,会自动减慢数据包发送,让互联网保持通畅。而UDP协议是一个“霸道”的协议,它想尽一切办法将数据传送出去,而不管是否加重网络拥堵。
用什么传输比较稳定
通过上面的分析,稳定传输文件非MSN莫属么?其实MSN虽使用TCP协议,但中转太多,服务器又在国外,掉线率不比QQ少,因此从连接的稳定性而言,QQ和MSN差不多,但MSN传输的文件,错误率会小一些。
小提示:
文件传输完成后,赶快测试传输的文件是否有错误。另外,传输不畅,可以使用新浪UC、网易泡泡(见图3)、百度Hi等类似工具。
传大文件用什么
这次推荐QQ么?传大文件,QQ容易掉线、大小受限制(2GB)、数据错误率较高,这次推荐一款称为Lava-Lava的软件(/)。该软件文件传输性能和QQ差不多,但它提供的离线传输功能,速度很快,常可以达到你的网络的最大上传、下载速度,稳定性高,离线传输的文件大小不受限制(QQ限制1GB)。有人还通过注册2个Lava-Lava号来当网络硬盘使用呢。
小提示:
离线传输就是先将文件传送到服务器,然后接收方再从服务器下载。Lava-Lava的离线传输操作非常方便,在聊天窗口,选择“文件传输通过离线服务器转发文件”即可(见图4),或直接拖动文件到未上线好友的聊天窗口中。
文件传输协议范文第2篇
关键词:TCP协议;Winsock控件;网络编程;
文件传输
一、Winsock控件基础
Winsock即Windows Sockets规范的简称,是目前最流行的网络通信应用程序接口之一。所谓Socket,通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。Winsock控件可以与远程计算机建立连接,并通过用户数据报协议UDP或者传输控制协议TCP进行数据交换,这两种协议都可以用来创建客户与服务器应用程序。与Timer控件和CommandDialog控件类似,Winsock控件在运行时是不可见的。在使用Winsock控件时,首先需要考虑使用什么协议。可以使用的协议包括UDP和TCP。两种协议之间的重要区别在于它们的连接状态:TCP协议控件是基于连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户必须先建立连接。UDP协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。到底选择哪一种协议通常是由需要创建的应用程序决定的。本文以TCP为例介绍文件传输。
TCP协议的全名为“传输控制协议(transfer control protocol)”,这是一种在Internet上使用的 主要协议。因此,当您使用TCP协议连接两个网络上的设备时,将可以在它们之间交换希望交换的数据。
同时,如果您开发的应用程序属于主从式应用架构应用系统时,将必须要知道应用系统主机的ip地址(利用RemoteHost属于取得)以及连接端口号(利用remoteport属于取得)。在这些数据完全备齐之后,您才可以进行进一步的调用、连接。
因此,如果正在建立主机端应用程序时,必须指定本机,必须指定本机(执行应用程序所在的计算机)所用的连接端口号(localport属于),接着将Winsock控件设置为“监听(listen)”,即可等候远程客户端进行调用与连接。因此,当主机端接收到客户端调用并且要求连接的信息时,将会触发“要求连接()”的事件,接着进行标准“允许”或是“拒绝”的程序。
一旦主机端与客户端连接完成之后,您将可以开始使用“传送数据(senddata)”方法,将数据传送给对方,并且利用“传送完成(sendcomplete)”事件,来检测数据是否传送完毕。同时,在数据传达对方的计算机时,将会触发对方计算的“接收数据(dataarrival)”事件。此时,您可以使用“取得数据(getdata)”方法,来去出这些接收到的数据。
二、Winsock控件工作原理
Winsock控件是基于Socket规范创建的,所以其通信的实质是对Socket接口进行数据的读写操作。如果两个应用程序需要通信,它们可以通过使用Socket类来建立套接字连接,可以将这个过程想象为一次电话呼叫过程:呼叫者通过拨号与被呼叫者连接,当电话接通时,双方都可以自由通话了,只不过这里的呼叫者被称为“客户”,被呼叫者则称为“服务器”,而号码则为“IP地址+端口”,但在建立连接之前,必须由“客户”发出呼叫,且此时的“服务器”正在监听。因此,基于TCP/IP协议的通信,需要分别建立客户端应用程序和服务器端应用程序。
三、基本实现方法
客户端要与服务器端进行通信,首先,必须知道服务器端的域名或IP地址(RemoteHost属性),就像要和某人打电话前,必须知道对方的电话号码;其次,还必须和服务器端约定相同的端口(RemotePort属性),用于数据的输入和输出;最后,调用Connect方法与服务器端建立连接。
四、实例实现
(一)实现原理
本文将实现的文件传输只有一个发送方和一个接收方,这是最基本的文件传输方式,运用的原理也比较简单:发送方先获取待传输文件的基本信息,主要是文件名及文件长度;然后,将其发送给接收方;接着,建立和文件一样大小的数据缓冲区,并将文件读入;最后,将数据缓冲区中的数据发送给接收方。与此同时,当接收方接收到文件名和文件长度之后,就为其创建新的文件和数据缓冲区;然后,接收传输的文件数据,并将其放在数据缓冲区中;最后,依次将数据缓冲区的数据写入新创建的文件中。这样便完成了不同计算机之间的文件传输。
(二)服务器端主程序主要代码
"发送文件名和文件长度代码:
Winsock1.SendData filename
Winsock1.SendData filelength
"发送文件的内容
Open filepath For Binary As #1"设置数据缓冲区
ReDim data(filelength)
For j = 1 To filelength
Get #1, j, data(j)
Next
send = filelength
Winsock1.SendData data
Close #1
End Sub
"客户端请求连接"事件代码:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State 0 Then
Winsock1.Close
End If
Winsock1.Accept requestID "接受客户请求
End Sub
(三)客户端主程序主要代码代码
"连接"按钮事件的代码:
Private Sub connect_Click()
Winsock1.Protocol = sckTCPProtocol"以TCP方式进行通信
"设置远程服务器IP地址,为方便调试笔者使用的是自身的IP地址
Winsock1.RemoteHost = hostText.Text
"设置远程服务器通信程序端口号,与服务器端相同
Winsock1.RemotePort = Val(portText.Text)
Winsock1.connect"与服务器端建立连接
End Sub
"数据到达"事件的代码:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
"状态栏显示提示文字
StatusBar1.SimpleText = "正在接收服务器发送的数据..."
"先接收文件名和文件的长度
If flag = True Then
Winsock1.GetData filename, vbString, bytesTotal - 4
Winsock1.GetData filelength, vbLong
"建立文件
Open filename For Binary As #1
flag = False
Else
"设置缓冲区
ReDim data(bytesTotal)
"接收数据并写入文件
Winsock1.GetData data, vbArray + vbByte
For j = received + 1 To received + bytesTotal
Put #1, j, data(j - received - 1)
Next
"更新接收到的数据
received = received + bytesTotal
ProgressBar1.Value = Int((received / filelength) * 100)
If ProgressBar1.Value >= 100 Then Close #1
End If
End Sub
从以上的实例中,基本了解了有关Winsock控件的使用方法和文件传输的过程。然而,当需要传送的数据比较大时,就不能像以上介绍的那样,直接将整个文件放入数据缓冲区中了,我们的内存是无法忍受用一个几百MB甚至上GB的空间去存储那些临时数据的。显然,这种做法已远不能满足我们的需求,这时可以将文件按照一定的大小,分成若干个数据包。首先,设置数据包的大小,根据文件的基本信息,计算出总共需要的数据包数;然后,依次读取同数据包一样大小的数据到数据缓冲区中;接着,将数据缓冲区中的数据,发送到指定的计算机上;同时在另一端,建立一个数据缓冲区,缓冲区的大小要根据接收到的数据来确定,依次接收客户端传输过来的数据包,并将数据缓冲区的数据写入相应的文件中,这样就很容易实现大文件的传输了。
五、小结
本文通过在VB中使用Winsock控件,实现网络之间的文件传输,更进一步理解了其工作原理。虽然本文重点介绍的是TCP协议的文件传输,但是UDP协议的文件传输实现与TCP是相似的。本文介绍的Winsock工作原理、实现方法、实例的展现还是有普遍的适用性的,能在一定的程度上有助于解决普遍的问题。
参考文献:
[1]黄玲玲,杨剀,王颖.在VB中使用Winsock控件实现局域网通信[J].信息技术,2005,6
[2]王晓平,钟军.VisualBasie网络通信协议分析与应用实现.2003
文件传输协议范文第3篇
关键词:Gstreamer;
流媒体;
RTSP;
RTP/RTCP
中图分类号:TN919.8 文献标识码:A 文章编号:1006-3315(2013)03-149-002
1.前言
流媒体技术以流的方式在网络中传输媒体,具有良好的实时性和交互性。随着3G、4G等高速移动通信技术的发展成熟和多媒体智能移动设备的普及,流媒体技术获得了广泛应用和迅速发展。本文基于GStreamer架构,采用RTP/RTCP协议实现数据传输,设计了一种流媒体播放器,处理芯片采用OMAP3430,操作系统为嵌入式Linux系统,借助高速网络,可以实现高质量的流媒体播放。
2.相关技术介绍
2.1流媒体技术。流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。流媒体文件格式是支持采用流式传输及播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向用户计算机连续、实时传送。用户采用内容缓存的方式,只需要进行很短时间的缓冲,就可以一边播放一边下载,而不需要提前下载整个文件。
流媒体传输一般都是采用建立在udp协议上的rtp/rtsp实时传输协议。相对于注重传输质量的tcp协议来说,udp协议更加注重传输速度,这种协议对于实时性要求很高的流媒体文件来说,无疑是更加合适的。
2.2Gstreamer概述。GStreamer是一种流媒体应用框架,采用了基于插件(plugin)和管道(pipeline)的体系结构,框架中的所有的功能模块都被实现成可以插拔的组件(component),并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此很容易利用已有的各种插件“组装”出一个功能完善的多媒体应用程序。其主要功能模块包括元件、衬垫、箱柜等。
元件(Elements)是Gstreamer框架中所有可用组件的基础,是组成管道的基本构件。元件可以分为数据源元件、过滤器元件、接收器元件等,实现数据的输入、处理和输出等功能。
衬垫(pad)是元件(element)与外界的连接通道,每个衬垫都带有特定的功能信息,通过将不同元件的衬垫依次连接起来构成一条媒体处理管道,使数据在流经管道的过程能够被各个元件正常处理,最终就可以实现特定的多媒体功能。
箱柜(Bins):箱柜是一个可以装载元件的容器,同时其自身也是一个GstElement对象,也能够被用来容纳其他的箱柜对象。
2.3实时传输协议(RTP/RTCP)。RTP/RTCP协议栈由两个相互紧凑的协议组成,其中RTP协议负责传送具有实时特征的多媒体数据,而RTCP协议负责反馈控制、监测QoS、监视和传递相关信息。由于流媒体数据传输对于传输实时性的要求远高于传输可靠性,RTP/RTCP数据通常采用UDP/IP封装,它们共同完成网络传输层的功能。
2.4实时流媒体协议(RTSP)。RTSP协议是一种对流媒体数据的传输进行控制的应用级协议。通过RTSP协议,可以实现音视频的控制、点播等功能。
3.流媒体播放器的实现
本文设计的流媒体播放器,可以分为以下几个模块:用户界面、RTSP控制模块、RTP/RTCP传输模块、数据转换模块、解码模块、视音频输出模块。如图1所示。用户通过用户界面与客户端交互,RTSP模块响应用户界面发送的命令,建立RTP数据传输会话,会话建立之后,由RTP/RTCP模块循环接收RTP数据包并进行排序,然后转换模块对RTP数据进行解包,转换成原始的音视频数据,然后送入解码模块进行解码,最后通过音视频输出模块将媒体展示给用户。
图1流媒体播放器架构
用户界面是客户端跟用户之间交互的界面,它包括两部分内容:一是媒体播放控制,比如暂停、快进等;
二是媒体内容的展示,比如视频画面的显示等。在Linux系统下,本文利用GTK+库开发GUI框架。
RTSP模块用于会话的建立和控制,它提供响应界面操作的接口,直接响应界面发送的命令。RTSP也提供互联的双方或多方的一个传输方式和编码方式的协商操作,在网络允许的情况下,建立一条最佳的传输通道。当客户端用户选择服务器上某项流媒体内容的时候,播放器会通过RTSP协议,与服务器建立会话,通知服务器往本地RTP接收端口发送音视频数据。
RTP/RTCP模块为流媒体播放器的核心组成部分,当RTSP建立传输会话之后,RTP和RTCP会各使用一个端口,RTP端口会循环接收RTP数据包,同时RTCP端口会周期性的发送RTCP报,RTCP包中包含已发送的数据包的数量、丢失的数据包的数据等统计资料,因此,服务器可以利用这些信息动态的改变传输速率,甚至改变有效载荷类型。RTP包由RTP包头和RTP数据构成,RTP包头中包含了一些可以较好保证流数据连续性实时性的信息,如序列号、时间戳等。序列号可以保证到达客户端的RTP包的连续,而时间戳可以同步音视频包。根据包头中的时间戳接收的数据包进行重新排序,然后传送到转换模块进行处理。
4.小结
本文采用Gstreamer架构,对RTP/RTCP/RTSP协议进行了深入研究,设计了一种基于Linux系统的流媒体播放器,通过构建RTP/RTCP流媒体传输插件,实现了流媒体数据的实时传输和播放,在终端设备中可以取得良好的流媒体播放效果。
这种基于Gsreamer的媒体播放器具备良好的灵活性和可移植性,借助高速传播网络,特别适合在各种不同类型的智能终端实现流媒体的接收和播放等功能,在视频监控、远程会议、视频教学、多媒体娱乐等多种不同场合都可以获得广泛应用。
参考文献:
[1]孙弼阳,李虹,王颖.移动流媒体业务的技术与应用[J]现代电信科技,2008(06):13-18
[2]陈丹,郭先会.RTP/RTCP协议在3GPP移动流媒体业务中的研究与应用[J]山西电子技术,2010(06):65-66
[3]陈洪敏.基于RTP/RTCP协议流媒体传输的研究[J]福建电脑.2010(02):93-94
[4]王蕊,刘卫东,王金童.基于GStreamer的媒体播放研究[J]电子设计工程.2012(03):34-36
文件传输协议范文第4篇
关键词:网络文件;
传输机制;
TCP;
UDP
中图分类号:F49
文献标识码:A
文章编号:16723198(2013)01017001
0引言
网络信息技术的发展给我们的工作与生活带来了极大的便利,推动了信息在用户之间的快速流通。伴随着我们当前网络信息技术在日常生活中的普及,我们所需要的许多文件都是通过网络进行传输的。本文就对网络文件的传输机制问题进行了分析与讨论。
1TCP与UDP协议相关理论概述
1.1TCP相关理论概述
TCP是TCP/IP体系中面向连接的运输层协议,它提供全双工的和可靠交付的服务。所谓“面向连接”的含义就是在正式通信前必须要与对方建立起连接,否则通信就会无法进行。这种连接是实时的,只有双方都在时才能通信。
1.2UDP相关理论概述
UDP是面向非连接的用户数据包协议。“面向非连接”的含义是指在正式通信前不必与对方先建立连接,不管对方状态如何直接发送数据。UDP协议适用于可靠性要求不高的应用环境,或者根本不需要建立可开连接的情况。所以说,UDP协议能够快速的发送数据,降低系统连接时的消耗。
表面上看起来,UDP好像比TCP的速度更快,因为相比较UDP协议而言,TCP协议更加复杂一些,但是实际上并不完全是这样,特别是针对那些具有较强可靠性的应用,它们所需要的就是网络文件传输的稳定性与可靠性。在这种情况下,我们往往就会选择TCP协议。
2网络文件传输机制中的多线程技术应用
2.1多线程技术的定义
所谓多线程技术指的就是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,各个线程之间彼此互相独立。它和进程一样拥有独立的执行控制,由操作系统负责调度,二者的区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
2.2文件传输中多线程技术的引入
为了能够让文件在网络传输过程中能够更快速,我们有必要应用多线程技术。使用多线程传输文件时,发送端和接收端在读写文件时必须把文件共享属性设置为Cfile::shareDentNone。这是因为在发送端会有多个线程同时只读一个文件。
3影响网络文件传输速度的因素分析
要想实现网络文件传输的最优状态,就应当充分掌握影响网络文件传输速度的各项因素。笔者通过分析现有理论以及自身的亲身实践,认为能够给网络文件传输速度带来较大影响的因素主要有以下两个方面:
3.1单词读取文件的大小
网络发送端每一次所读取的文件所包含的字节数以及网络接收端每一次写入文件所包含的字节数都会对网络文件的传输速度产生极大的影响。基于硬盘的读写性质,我们在进行读盘以及写盘的时候最好读入或者写入N个字节的数据(N为扇区的大小)。通过这种操作方式,能够加速文件被读入缓冲区以及写入磁盘的速度。
3.2套接字的个数
网络文件在传输过程中,通常状况下都是一个线程单独获取一个套接字。在这种模式下,套接字的数量也就等于传输线程的数量。这样就会产生这样一个问题:套接字的个数越多是不是就意味着网络文件的传输速度就会随着而增长呢?实践证明,而这并不是成比例增长的。比如,当我们在开展“一个线程单独获取一个套接字”的编程过程中,当套接字的个数(同线程的个数相等)到达一定规模时,如果再使套接字的数量持续上升,那么所表现出来的对于传输速度的提升就会越来越弱。在套接字的数量达到临界值以后,甚至还会降低传输速度。
通过上述分析可以看到,通过综合分析系统性能以及传输性能,假如选择“一个线程单独获取一个套接字”的模式进行编程,那么套接字数量的选择应当同处理器的能力相适应,不能设置的太高。
4结束语
通过上述几个部分的分析与论述,我们可以看到,将TCP应用于网络文件的传输具有更强的稳定性以及可靠性。在应用TCP开展网络文件传输过程中,为了更高效的促进网络文件的传输,还需要将多线程技术引入进来。本文在分析过程中涉及到了网络文件传输过程中的一些影响因素,希望能够对我国当前网络文件传输机制的不断完善提供一点可借鉴之处。
参考文献
[1]王国忱,娄丽娜.TCP服务器端程序的一种实现[J].内蒙古民族大学学报(自然科学版),2009,(06).
文件传输协议范文第5篇
关键词:TCP/IP协议网络接口层网络层传输层端口应用层
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2012)03-0000-00
因特网是当今世界上最大的信息网络,自80年代以来,它的应用已从军事、科研与学术领域进入商业、传播和娱乐等领域,并于90年代成为发展最快的传播媒介。信息传输和网络互连是根据协议进行的,而因特网使用的就是TCP/IP协议。TCP/IP协议是因特网最基本的协议,是因特网的基础。TCP/IP的全称是Transmission Control Protocol/Internet Protocol的简写,中文译为传输控制协议/因特网互联协议。
1969年,因特网的前身阿帕网(ARPAnet),诞生之初仅连接了4台计算机,供科学家们进行计算机联网实验用。到70年代,ARPAnet已经有了好几十个计算机网络,但是每个网络只能在网络内部的计算机之间互联通信,不同计算机网络之间仍然不能互通。卡恩于1973 年提出开放的网络结构的思想。所谓开放的网络结构,指的是任何类型的网络都可以通过“网络互联结构”与其他网络连接,这是因特网的核心技术思想。为了适应开放的网络结构环境的需要,瑟夫与卡恩共同开发了TCP/IP协议,并于1974年正式提出。TCP/IP是实现不同网络互联的标准,成功地解决了不同硬件平台、不同网络产品和不同操作系统之间的兼容性问题。
TCP/IP协议定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准,它是因特网事实上的国际标准。协议采用了4层的层级结构,层次由低到高依次为:网络接口层、网络层、传输层、应用层。每一层都调用它的下一层所提供的服务来完成自己的需求。
1、网络接口层
网络接口层(通信子网)是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。由于ARPNET的设计者注重的是网络互联,允许网络接口层采用已有的或是将来有的各种协议,所以这个层次中没有提供专门的协议,因此网络接口层实际上并不是因特网协议组中的一部分。实际上,TCP/IP协议可以通过网络接口层连接到任何网络上,例如X.25交换网或IEEE802局域网。[1]
2、网络层
网络层可以接收由网络接口层发来的数据包,并把该数据包发送到传输层;
也可以把从传输层接收来的数据包传送到网络接口层。网络层的数据包是不可靠的,因为网络层并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。数据包中含有发送它的主机的地址(源IP地址)和接收它的主机的地址(目IP的地址)。
网络层的协议包括IP协议、ICMP协议、ARP协议、RARP协议等,其中IP协议是网络层的核心协议,完成数据从从源网络传输到目的网络的基本任务。IP协议定义了数据包在网际传送时的格式,目前使用最多的是IPv4版本,这一版本中用32位定义IP地址,可供使用的地址数超过37.2亿,但是仍然不能满足现今全球网络飞速发展的需求,因此IPv6版本应运而生。在IPv6版本中,IP地址共有128位,这样的IP地址数是原IP地址数的296倍,目前来看,IPV6的IP地址是不可能用完的。[2]
3、传输层
传输层提供应用进程间的通信。两个系统之间的应用进程的通信,是用每个信息中的如下四项进行确认的:源IP地址、目的IP地址、源端口号、目的端口号。其中源IP地址和目的IP地址已在网络层的介绍中说明。TCP/IP的端口号是一个软件结构,用来标识本地计算机应用层中各个进程在和运输层交互时的接口。在因特网不同的计算机中,相同的端口号是没有关联的。一个端口号对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、HTTP使用80。客户进程通常使用系统分配的一个随机端口号。[2]
传输层协议主要是传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。TCP协议是一种面向连接的、可靠的的传输机制。通信之前要建立连接,通讯完成时要拆除连接。它提供一种可靠的字节流保证数据完整、无损并且按顺序到达,TCP协议还能尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载,对于一些需要高可靠性的应用,可以选择TCP协议。UDP是一种面向无连接的,不可靠的传输机制。不是它特别不可靠,而是它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。UDP的典型应用是如音频和视频等这样的流媒体,对它们而言,按时到达比可靠性更重要,或者如DNS查找这样的简单查询/响应应用,否则建立可靠的连接所需的额外开销将是不成比例地大。
4、应用层
应用层是大多数与网络相关的程序为了通过网络与其他程序通信所使用的层。数据从与网络相关的程序以这种应用程序使用的格式编码成标准协议的格式并进行传送。来自应用程序的数据一旦被编码成一个标准的应用层协议,它将被传送到TCP/IP协议的下一层。
应用层一般提供面向用户的服务,如HTTP、FTP、SMTP、POP3。HTTP是超文本传输协议,用于浏览网页,FTP是文件传输协议,一般用于下载和上传文件。SMTP是简单邮件传输协议,用来控制信件的发送、中转。POP3是邮局协议第3版本,用于接收邮件。
TCP/IP有一个非常重要的特点,就是开放性,即TCP/IP的规范和Internet的技术都是公开的。目的就是使任何厂家生产的计算机都能相互通信,使Internet成为一个开放的系统。这正是后来Internet得到飞速发展的重要原因。
参考文献
[1]万雅静,黄巍,梁玉凤.网络基础实用教程[C].北京:机械工业出版社,2011:14-16.