网页通过TCP/IP协议发送数据,怎么做?
TCP/IP这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。
网络接口层 模型的基层是网络接口层。
负责数据帧的发送和接收,帧是独立的网络信息传输单元。
网络接口层将帧放在网上,或从网上把帧取下来。
互联层 互联协议将数据包封装成internet数据报,并运行必要的路由算法。
这里有四个互联协议: 网际协议IP:负责在主机和网络之间寻址和路由数据包。
地址解析协议ARP:获得同一物理网络中的硬件主机地址。
网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误。
互联组管理协议IGMP:被IP主机拿来向本地多路广播路由器报告主机组成员。
传输层 传输协议在计算机之间提供通信会话。
传输协议的选择根据数据传输方式而定。
两个传输协议: 传输控制协议TCP:为应用程序提供可靠的通信连接。
适合于一次传输大批数据的情况。
并适用于要求得到响应的应用程序。
用户数据报协议UDP:提供了无连接通信,且不对传送包进行可靠的保证。
适合于一次传输小量数据,可靠性则由应用层来负责。
应用层 应用程序通过这一层访问网络。
网络接口技术 IP使用网络设备接口规范NDIS向网络接口层提交帧。
IP支持广域网和本地网接口技术。
串行线路协议 TCP/IPG一般通过internet串行线路协议SLIP或点对点协议PPP在串行线上进行数据传送。
(是不是我们平时把它称之为异步通信,对于要拿LINUX提供建立远程连接的朋友应该多研究一下这方面的知识)? IP是一个无连接的协议,主要就是负责在主机间寻址并为数据包设定路由,在交换数据前它并不建立会话。
因为它不保证正确传递,另一方面,数据在被收到时,IP不需要收到确认,所以它是不可靠的。
有一些字段,在当数据从传输层传下来时,会被附加在数据包中,我们来看一下这些字段: 源IP地址:用IP地址确定数据报发送者。
目标IP地址:用IP地址确定数据报目标。
协议:告知目的机的IP是否将包传给TCP或UDP。
检查和:一个简单的数学计算,用来证实收到的包的完整性。
TTL生存有效时间:指定一个数据报被丢弃之前,在网络上能停留多少时间(以秒计)。
它避免了包在网络中无休止循环。
路由器会根据数据在路由器中驻留的时间来递减TTL。
其中数据报通过一次路由器,TTL至少减少一秒。
根据我们前面提到关于ARP的知识,如果IP地址目标为本地地址时,IP将数据包直接传给那个主机;如果目标地址为远程地址的话,IP在本地的路由表中查找远程主机的路由(看来好象我们平时拨114一样)。
如果找到一个路由,IP用它传送数据包。
如果没找到呢,就会将数据包发送到源主机的缺省网关,也称之为路由器。
(很多时候一直在搞网关和路由器的定义,其实我觉得在学的时候不一定死抠概念,现在硬件和软件结合的产品越来越多了,一时很分清的,只要我们运用的时候可以解决实际问题嘛。
)这样当路由器收到一个包后,该包向上传给IP: (1)如果交通阻塞(听起来蛮可怕的),包在路由器中停滞,TTL至少减1或更多。
要是它降到0的话,包就会被抛弃。
(2)如果对于下一网络来说包太大的话,IP会将它分割成若干个小包。
(3)如果包被分解,IP为每个新包制造一个新头,其中包括:一个标志,用来显示其它小包在其后;一个小包ID,用来确定所有小包是一起的;一个小包偏移,用来告诉接收主机怎么重新组合它们。
(4)IP计算一个新的检验和。
(5)IP获取一个路由的目标硬件地址。
(6)IP转发包。
在下一主机,包被发送到TCP或UDP。
每个路由器都要重复该过程。
直到包到达最终目的地。
当包到达最终目的地后,IP将小包组装成原来的包。
TCP是一种可靠的面向连接的传送服务。
它在传送数据时是分段进行的,主机交换数据必须建立一个会话。
它用比特流通信,即数据被作为无结构的字节流。
通过每个TCP传输的字段指定顺序号,以获得可靠性。
如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。
通过发送应答,用以确认别的主机收到了数据。
对于发送的每一个小段,接收主机必须在一个指定的时间返回一个确认。
如果发送者未收到确认,数据会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段。
端口 SOCKETS实用程序使用一个协议端口号来标明自己应用的唯一性。
端口可以使用0到65536之间的任何数字。
在服务请求时,操作系统动态地为客户端的应用程序分配端口号。
套接字 套接字在要领上与文件句柄类似,因为其功能是作为网络通信的终结点。
一个应用程序通过定义三部分来产生一个套接字:主机IP地址、服务类型(面向连接的服务是TCP,无连接服务是UDP)、应用程序所用的端口。
TCP端口 TCP端口为信息的传送提供定地点,端口号小于256的定义为常用端口。
TCP的三次握手 TCP对话通过三次握手来初始化。
三次握手的目的是使数据段的发送和接收同步;告诉其它主机其一次可接收的数据量,并建立虚连接。
我们来看看这三次握手的简单过程: (1)初始化主机通过一个同步标志置位的数据段发出会话请求。
(2)接收主机通过发回具有以下项目的数据段表示回复:同步标志...
ATM和TCP联系和区别
展开全部 ATM(异步转移模式) 在通信中,异步传输模式ATM(Asynchronous Transfer Mode)是信息元中继(cellrelay)的一种标准(ITU)实施方案,这是一种采用具有固定长度的分组(信息元)的网络交换技术(注意他是技术,不是协议),它被认为是目前已知的一种最适合于宽带综合业务数字网(BISDN)的交换方式。
也适合于传送可变速率的传输的业务。
异步传输模式(之所以称其为异步,是因为来自某一用户的、含有信息的信息元的重复出现不是周期性的。
)是一种得用固定数据报的大小以提高传输效率的传输方法,这种固定的数据报又叫信元或报文。
ATM信元结构由53B组成,53B被分成5B的头部和被称为载荷的48B信息部分。
数据可以是实时视频、高质量的语音、图像等。
ATM局域网就是以ATM为基本结构的局域网,它以ATM交换作为网络交换节点,并通过各种ATM接入设备将各种用户业务接入到ATM网络。
=-=ATM的基本特征(!)ATM主要包括以下几种基本技术①采用光纤作为网络的传输介质②采用同步数字体系(SDH)作为传输网络③采用异步传输模式作为交扛技术(2)ATM的基本信息特征 信息的传输、复用和交换的长度都是53个字节为基本背地单信的“信元(cell)”因此,B-ISDN用户线路上传递的信号都是这种信元。
(3)B-ISDN使用的复用技术 B-ISDN用户线路上便用了最先进的统计时分多路复用技术,即基于信元的异步时刘分割技术,也是“异步传输模式”的名称来源。
综上所述,ATM网采用了统计分多路复用技术、交换和虚拟式连接,以及基于速率的流量控制等一第列先进技术,便得网络的带宽能够进先最有效地,动态地分配,从而満足用户对带宽、实时性、多媒体等各种应用方面的需求。
因此,其主要业务范围的B-ISDN用户线路是光纤型的、高速率的、数字化的和ATM技术方式的,还能够提供业务质量服务(QoS) 此外,ATM是与STM(同步转移模式,Synchronous Transfer Mode)相对应的。
STM实际上就是电路交换方式;而ATM是从ATD(异步时分复用,最早由法国Alcatel提出,为在一个网络中综合传输话音、数据和图像业务而由TDM(时分多路复用)进化而来)和FPS(快速分组交换,最早由美国AT&T的Bell实验室提出,是为了传输高速数据而从分组交换方式进化而来)演化而来,它综合了分组交换方式统计占用频带、使用灵活和电路交换方式传输时延小的优点。
这里的ATM和STM中所隐含的异步和同步之间的对应关系不同于我们我们熟悉的数据通信中的异步和同步的概念。
在数据通中,区分同步还是异步是根据通信双方采用的信号同步方式,即采用起止式同步方式的称为异步,采用帧同步或字符同步方式(均以位同步为基础)的统称为同步。
而这里的异步和同步关系主要是指信号复用信道的方式,STM是根据信号在一条物理信道中所处的位置(一帧中时隙位置或载波中的频带位置)来识别;而ATM是根据信号本身携带的标志来识别的,即所谓的用有标志的电路(ATM)代替定位置的电路(STM)。
两者的相似之处在于均把信号分成若干离散单元,且以时分复用方式送到目的地。
ATM的主要思想是:尽量把交换的处理负担从交换机转移到通信的两端,以最大限度地减小交换机的处理时间,并给用户和网络操作者以最大的灵活性。
CCITT(现ITU-T)在1988年1l月通过的一系列建议文件中选择ATM作为BISDN的目标交换方式。
ATM包括三个部分,即交换技术、可变速率编码技术和流量控制技术,其核心是交换技术,目前世界上对ATM的研究主要集中在交换技术上。
ATM交换是综合了电路交换和分组交换的优点,它一方面是用有标志的电路代替定位置的电路,因而能灵活地分配带宽;另一方面是取消了复杂的差错控制和流量控制,使传输时延大大降低。
首先,它是利用了虚路径(VP)和虚信道(VC)的交换原理,在一个给定接口的给定方向上,利用VPI(虚路径标识)来区分落在同一个物理连接内复用的不同的虚路径,而利用VCI来区分在同一虚路径(VP)内不同的虚信道。
从ATM网络的内部结构来看,实际上包含三个层次,即由物理链路组成的网络、由VP组成的网络、由VC组成的网络。
对用户来讲,涉及的是VC级网络;对交换机来讲涉及的是VP级网络;对网络维护者来讲涉及的是物理级网络。
采用VC为用户提供服务,而用VP来连网。
在用户一用户应用的情况下,把VP细分为各单位的VC,并由用户控制那些VC所属的全部资源,在VP内各VC的建立和释放只包括两个换机,而信息在交换机内的交换和选路则由VP来完成,一条VP可当作两个ATM交换机之间的虚中继线用。
由于ATM是一种面向连接的交换技术,用户进行通信前必须先申请虚路径,提出业务要求,如峰值比特率、平均比特率、突发性、质量要求、优先级等,网络根据用户要求和资源的占用情况来决定是否可以为用户提供虚路径,从而且实现按需动态分配带宽,而且带宽不是固定的或被某用户所独占,通过统计复用技术达到网络资源的充分利用。
由于ATM又是一种面向分组的交换技术,它将任何业务信息都变成长度相同的信元(Cell,53byt...
瑞星防火墙监测到一些程序创建TCP或UDP协议,请问这些协议都是?...
一般来说,如果您正在使用通信工具,或者,游戏,或者P2P在线电视、电影,或者迅雷软件,那么,它的提示都是正常的,不要紧张。
如果仅仅浏览网页,就要注意了,一般网页只要拒绝即可。
-,'''╭⌒╮⌒╮. ╱????''.''. 爱问才知道,不问不知道! ︱田︱田田| '',,.爱问就会红,敢答才会赢! ╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
向牛人付费学习tcp/ip协议做过一些tcp、udp的简单开发,
第一周:简介:庞大的互联网,它到底有多复杂?第二周:网络技术:如何通过光电信号将消息从一台计算机传输到一墙之隔或者地球另一端的计算机上?第三周:通过IPv4进行网络互联:互联网由大量基于不同技术构建的单个网络互联而成,一个数据包究竟是如何在这样复杂的结构中找到正确的传输路径的?第四周:新的互联网协议——IPv6:在不久的将来,如何使得智能手机、家用电器以及汽车等产品通过互联网而相互连接起来?第五周:传输协议TCP和UDP:谁来保证我的数据能够完整而正确的穿过复杂的网络环境从而到达目的地?第六周:互联网应用:发送电子邮件或者在线传输视频,需要哪些必要的技术?
如何编写简单的socket网络程序 如何编写基于TCP协议的网络程序
展开全部 下面是个人用了一个40分钟左右的时间编写的程序,在这编写过程中,非常重要的一点就是: 要理解 tcp协议编写程序的原理,即编写服务器端的过程,以及编写客户端的过程。
只要把握这两点就可以很容易编写出来了,但是要快速编写出这个程序,那么VC6.0开发工具里,最好要安装一个番茄插件,这个插件可以快速提高你的编写程序的效率,还有也要安装msdn 文档,这样在编写过程中,遇到对某个函数的参数想不全的时候,使用msdn就能快速帮你回忆了。
呵呵,如果你那一天去面试一家牛逼的公司的哇,很有可能就是 在笔试完成之后,就要进行机试了,这就完全考查出你的真正编程水平了。
能在极短时间里完成一个socket网络程序,那么就可以令面试官感到非常满意了。
不过,这个程序,还没有连接数据库,以后再继续搞了。
如果你去面试 深圳科技园 那家 伟易达 集团公司的软件工程师的哇,那么机试题目就是这个。
当时我去面试,首先进行笔试,面试官对我笔试成绩比较满意,所以就叫我留下来吃顿饭,下午进行机试。
当时我应聘岗位是Linux系统工程师C语言, 可是笔试题目,不但考核C,还考核C++,JavaScript,html。
我感觉好奇怪,心里想,好像我是应聘VC++开发那个岗位了。
于是我等到下午,他拿来机试题目之时,才真正明白,果然是他要安排我从事VC++开发了,题目就是:编写基于TCP/IP协议网络程序,并实现简单的聊天程序,而且要连接数据库。
当时我又失望了。
于是我就提出,我不想做这个题目,因为我是想应聘Linux系统C语言开发的。
就这样失望的走了。
下面是个人完全能运行的代码: 服务器端源码: #include#include #pragma comment (lib,"ws2_32.lib") int main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return 0; }if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return 0; } SOCKET socketServer=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrServer; addrServer.sin_family=AF_INET; addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrServer.sin_port=htons(6000); bind(socketServer, (struct sockaddr *)&addrServer, sizeof(struct sockaddr)); listen(socketServer, 5); SOCKADDR_IN addrClient; int addrLen=sizeof(SOCKADDR_IN); char sendBuf[100]; char recvBuf[100]; int i=1; while(1) { printf("服务器端等待第%d个客户端连接请求...\n", i++); SOCKET newsocketServer=accept(socketServer,(struct sockaddr *)&addrClient, &addrLen); if(newsocketServer!=INVALID_SOCKET) { printf("服务器端与客户端连接成功...\n"); } memset(sendBuf,0,100); sprintf(sendBuf,"Welcome you to come here"); send(newsocketServer, sendBuf, strlen(sendBuf)+1,0); memset(recvBuf,0,100); recv(newsocketServer,recvBuf,100,0); printf("服务器端收到信息:%s\n",recvBuf); closesocket(newsocketServer); } WSACleanup(); return 0;} 此文章来自于个人博客: 阿浪博客 http://blog.163.com/wenxianliang08@126/ 客户端源码: #include#include #pragma comment (lib,"ws2_32.lib") int main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return 0; }if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return 0; } SOCKET socketClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrServer; addrServer.sin_family=AF_INET; addrServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrServer.sin_port=htons(6000); char sendBuf[100]; char recvBuf[100]; printf("客户端向服务器端连接请求...\n"); int Isconnect=connect(socketClient, (struct sockaddr *)&addrServer, sizeof(struct sockaddr)); if(Isconnect!=0) { printf("客户端无法连接服务器端...\n"); return 0; } printf("客户端已成功连接服务器端...\n"); memset(recvBuf,0,100); recv(socketClient,recvBuf,100,0); printf("客户端收到信息:%s\n",recvBuf); memset(sendBuf,0,100); sprintf(sendBuf,"Hello , I am Mr Wen !"); send(socketClient, sendBuf, strlen(sendBuf)+1,0); closesocket(socketClient); WSACleanup(); return 0;}
TCP/IP协议是什么?
展开全部 TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。
在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。
在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。
因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。
在任何一个物理网络中,各站点都有一个机器可识别的地址,该地址叫做物理地址.物理地址有两个特点:(1)物理地址的长度,格式等是物理网络技术的一部分,物理网络不同,物理地址也不同.(2)同一类型不同网络上的站点可能拥有相同的物理地址.以上两点决定了,不能用物理网络进行网间网通讯.你装在计算机-的TCP/IP软件提供了一个包括TCP、IP以及TCP/IP协议集中其它协议的工具平台。
特别是它包括一些高层次的应用程序和FTP(文件传输协议),它允许用户在命令行上进行网络文件传输。
TCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联网。
原始的Internet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。
如今TCP/IP如此重要的原因,在于它允许独立的网格加入到Internet或组织在一起形成私有的内部网(Intranet)。
构成内部网的每个网络通过一种-做路由器或IP路由器的设备在物理上联接在一起。
路由器是一台用来从一个网络到另一个网络传输数据包的计算机。
在一个使用TCP/IP的内部网中,信息通过使用一种独立的叫做IP包(IPpacket)或IP数据报(IP datagrams)的数据单元进--传输。
TCP/IP软件使得每台联到网络上的计算机同其它计算机“看”起来一模一样,事实上它隐藏了路由器和基本的网络体系结构并使其各方面看起来都像一个大网。
如同联入以太网时需要确认一个48位的以太网地址一样,联入一个内部网也需要确认一个32位的IP地址。
我们将它用带点的十进制数表示,如128.10.2.3。
给定一个远程计算机的IP地址,在某个内部网或Internet上的本地计算机就可以像处在同一个物理网络中的两台计算机那样向远程计算机发送数据。
TCP/IP提供了一个方案用来解决属于同一个内部网而分属不同物理网的两台计算机之间怎样交换数据的问题。
这个方案包括许多部分,而TCP/IP协议集的每个成员则用来解决问题的某一部分。
如TCP/IP协议集中最基本的协议-IP协议用来在内部网中交换数据并且执行一项重要的功能:路由选择--选择数据报从A主机到B主机将要经过的路径以及利用合适的路由器完成不同网络之间的跨越(hop)。
TCP是一个更高层次的它允许运行在在不同主机上的应用程序相互交换数据流。
TCP将数据流分成小段叫做TCP数据段(TCP segments),并利用IP协议进行传输。
在大多数情况下,每个TCP数据段装在一个IP数据报中进行发送。
但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理数据帧相容。
由于IP并不能保证接收的数据报的顺序相一致,TCP会在收信端装配TCP数据段并形成一个不间断的数据流。
FTP和Telnet就是两个非常流行的依靠TCP的TCP/IP应用程序。
另一个重要的TCP/IP协议集的成员是用户数据报协议(UDP),它同TCP相似但比TCP原始许多。
TCP是一个可靠的协议,因为它有错误检查和握手确认来保证数据完整的到达目的地。
UDP是一个“不可靠”的协议,因为它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达。
如果有可靠性要求,则应用程序避免使用它。
同许多TCP/IP工具同时提供的SNMP(简单网络管理协议)就是一个使用UDP协议的应用例子。
其它TCP/IP协议在TCP/IP网络中工作在幕后,但同样也发挥着重要作用。
例如地址转换协议(ARP)将IP地址转换为物理网络地址如以太网地址。
而与其对应的反向地址转换协议(RARP)做相反的工作,即将物理网络地址转换为IP地址。
网际控制报文协议(ICMP)则是一个支持性协议,它利用IP完成IP数据报在传输时的控制信息和错误信息的传输。
例如,如果一个路由器不能向前发送一个IP数据报,它就会利用ICMP来告诉发送者这里出现了问题。
采用的是TCP协议还是UDP协议
展开全部 TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇。
里面包括很多协议的。
UDP只是其中的一个。
之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。
TCP/IP协议集包括应用层,传输层,网络层,网络访问层。
其中应用层包括: 超文本传输协议(HTTP):万维网的基本协议. 文件传输(TFTP简单文件传输协议): 远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录 internet主机,并在这台主机上执行命令. 网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等. 域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址. 其次网络层包括: Internet协议(IP) Internet控制信息协议(ICMP) 地址解析协议(ARP) 反向地址解析协议(RARP) 最后说网络访问层:网络访问层又称作主机到网络层(host-to-network).网络访问层的功能包括IP地址与物理地址硬件的映射,以及将IP封装成帧.基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接. 当然我这里说得不够完善,TCP/IP协议本来就是一门学问,每一个分支都是一个很复杂的流程,但我相信每位学习软件开发的同学都有必要去仔细了解一番。
下面我着重讲解一下TCP协议和UDP协议的区别。
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。
一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。
三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
详细点说就是:(文章部分转载http://zhangjiangxing-gmail-com.iteye.com,主要是这个人讲解得很到位,的确很容易使人理解!) TCP三次握手过程 1 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段, 主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我. 2 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事: 我已经收到你的请求了,你可以传输数据了;你要用哪佧序列号作为起始数据段来回应我 3 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了 这样3次握手就完成了,主机A和主机B 就可以传输数据了. 3次握手的特点 没有应用层的数据 SYN这个标志位只有在TCP建产连接时才会被置1 握手完成后SYN标志位被置0 TCP建立连接要进行3次握手,而断开连接要进行4次 1 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求 2 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1 3 由B 端再提出反方向的关闭请求,将FIN置1 4 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束. 由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端 和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础 名词解释 ACK TCP报头的控制位之一,对数据进行确认.确认由目的端发出,用它来告诉发送端这个序列号之前的数据段 都收到了.比如,确认号为X,则表示前X-1个数据段都收到了,只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,这时会要求重传数据,保证数据的完整性. SYN 同步序列号,TCP建立连接时将这个位置1 FIN 发送端完成发送任务位,当TCP完成数据传输需要断开时,提出断开连接的一方将这位置1 TCP的包头结构: 源端口 16位 目标端口 16位 序列号 32位 回应序号 32位 TCP头长度 4位 reserved 6位 控制代码 6位 窗口大小 16位 偏移量 16位 校验和 16位 选项 32位(可选) 这样我们得出了TCP包头的最小长度,为20字节。
UDP(User Data Protocol,用户数据报协议) (1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读...
TCP是什么协议?
展开全部 TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/网际协议,又叫网络通讯协议,这个协议是是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
众所周知,如今电脑上因特网都要作TCP/IP协议设置,显然该协议成了当今地球村“人与人”之间的“牵手协议”。
1997年,为了褒奖对因特网发展作出突出贡献的科学家,并对TCP/IP协议作出充分肯定,美国授予为因特网发明和定义TCP/IP协议的文顿·瑟夫和卡恩“国家技术金奖”。
这无疑使人们认识到TCP/IP协议的重要性。
在阿帕网(ARPR)产生运作之初,通过接口信号处理机实现互联的电脑并不多,大部分电脑相互之间不兼容,在一台电脑上完成的工作,很难拿到另一台电脑上去用,想让硬件和软件都不一样的电脑联网,也有很多困难。
当时美国的状况是,陆军用的电脑是DEC系列产品,海军用的电脑是Honeywell中标机器,空军用的是IBM公司中标的电脑,每一个军种的电脑在各自的系里都运行良好,但却有一个大弊病:不能共享资源。
当时科学家们提出这样一个理念:“所有电脑生来都是平等的。
”为了让这些“生来平等”的电脑能够实现“资源共享”就得在这些系统的标准之上,建立一种大家共同都必须遵守的标准,这样才能让不同的电脑按照一定的规则进行“谈判”,并且在谈判之后能“握手”。
在确定今天因特网各个电脑之间“谈判规则”过程中,最重要的人物当数瑟夫(Vinton G.Cerf)。
正是他的努力,才使今天各种不同的电脑能按照协议上网互联。
瑟夫也因此获得了与克莱因罗克(“因特网之父”)一样的美称“互联网之父”。
瑟夫从小喜欢标新立异,坚强而又热情。
中学读书时,就被允许使用加州大学洛杉矶分校的电脑,他认为“为电脑编程序是个非常激动人心的事,…只要把程序编好,就可以让电脑做任何事情。
”1965年,瑟夫从斯坦福大学毕业到IBM的一家公司当系统工程师,工作没多久,瑟夫就觉得知识不够用,于是到加州大学洛杉矶分校攻读博士,那时,正逢阿帕网的建立,“接口信号处理机”(IMP)的研试及网络测评中心的建立,瑟夫也成了著名科学家克莱因罗克手下的一位学生。
瑟夫与另外三位年轻人(温菲尔德、克罗克、布雷登)参与了阿帕网的第一个节点的联接。
此后不久,BBN公司对工作中各种情况发展有很强判断能力、被公认阿帕网建成作出巨大贡献的鲍伯·卡恩(Bob Kahn)也来到了加州大学洛杉矶分校。
在那段日子里,往往是卡恩提出需要什么软件,而瑟夫则通宵达旦地把符合要求的软件给编出来,然后他们一起测试这些软件,直至能正常运行。
当时的主要格局是这样的,罗伯茨提出网络思想设计网络布局,卡恩设计阿帕网总体结构,克莱因罗克负责网络测评系统,还有众多的科学家、研究生参与研究、试验。
69年9月阿帕网诞生、运行后,才发现各个IMP连接的时候,需要考虑用各种电脑都认可的信号来打开通信管道,数据通过后还要关闭通道。
否则这些IMP不会知道什么时候应该接收信号,什么时候该结束,这就是我们现在所说的通信“协议”的概念。
70年12月制定出来了最初的通信协议j 由卡恩开发、瑟夫参与的“网络控制协议”(NCP),但要真正建立一个共同的标准很不容易,72年10月国际电脑通信大会结束后,科学家们都在为此而努力。
“包切换”理论为网络之间的联接方式提供了理论基础。
卡恩在自己研究的基础上,认识到只有深入理解各种操作系统的细节才能建立一种对各种操作系统普适的协议,73年卡恩请瑟夫一起考虑这个协议的各个细节,他们这次合作的结果产生了目前在开放系统下的所有网民和网管人员都在使用的“传输控制协议”(TCP,Transsmission-Control Protocol)和“因特网协议”(IP,Internet Protocol)即TCP/IP协议。
通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。
而IP是给因特网的每一台电脑规定一个地址。
1974年12月,卡恩、瑟夫的第一份TCP协议详细说明正式发表。
当时美国国防部与三个科学家小组签定了完成TCP/IP的协议,结果由瑟夫领衔的小组捷足先登,首先制定出了通过详细定义的TCP/IP协议标准。
当时作了一个试验,将信息包通过点对点的卫星网络,再通过陆地电缆,再通过卫星网络,再由地面传输,贯串欧洲和美国,经过各种电脑系统,全程9.4万公里竟然没有丢失一个数据位,远距离的可靠数据传输证明了TCP/IP协议的成功。
1983年1月1日,运行较长时期曾被人们习惯了的NCP被停止使用,TCP/IP协议作为因特网上所有主机间的共同协议,从此以后被作为一种必须遵守的规则被肯定和应用。
正是由于TCP/IP协议,才有今天“地球村”因特网的巨大发展。
转载请注明出处51数据库 » 知道tcp协议怎么做软件
96年的老馒头