关于TCP 和 IP问题
1. IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。2. TCP如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。 面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
TCP和IP分别是网络中的两个协议,其中ip属于网络层协议,tcp属于传输层协议(网络在逻辑上分为几层,不同的体系有不同的分层方法,有的分为7层,有的分为4层,建议你买本网络教材看看)两者分工各有不同,其中ip重要应用于网络分址(即:让网络中的机器不重名),tcp协议又称简单传输协议,主要用于负责网络间数据的传输。
给你说点主要区别吧,tcp协议建立的是可靠的通信有3次握手过程,而ip协议则是不可靠的通信只管自己传送出去不管对方收到没有。
一个是网络层一个是传输层协议。从字面上就能理解。
看看这个吧.写的很清楚. http://baike.baidu.com/view/7729.htm

tcpip是什么,干嘛用的,在哪?
Tcpip是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。Tcpip常被通称为TCP/IP协议族,简称TCP/IP。tcpip协议中,Tcp协议在传输层,ip协议在网际层。TCP/IP协议是用来提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。TCP/IP分为tcp协议和ip协议:TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。ip协议是互联网协议地址,缩写为IP地址,是分配给用户上网使用的网际协议 的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。扩展资料TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议。如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。TCP/IP协议的基本传输单位是数据包,TCP协议负责把数据分成若干个数据包,并给每个数据包加上包头,包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式。IP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方,如果传输过程中出现数据丢失、数据失真等情况。TCP/IP协议数据的传输基于TCP/IP协议的四层结构,数据在传输时每通过一层就要在数据上加个包头,其中的数据供接收端同一层协议使用,而在接收端,每经过一层要把用过的包头去掉,这样来保证传输数据的格式完全一致。参考资料来源:百度百科 - TCP/IP协议
Tcpip是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。Tcpip常被通称为TCP/IP协议族,简称TCP/IP。tcpip协议中,Tcp协议在传输层,ip协议在网际层。TCP/IP协议是用来提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。TCP/IP分为tcp协议和ip协议:TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。ip协议是互联网协议地址,缩写为IP地址,是分配给用户上网使用的网际协议 的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。扩展资料tcpip协议的主要特点:1、TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统。2、TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网络。用户能够使用以太网(Ethernet)、令牌环网(Token Ring Network)、拨号线路(Dial-up line)、X.25网以及所有的网络传输硬件。3、统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址。4、标准化的高层协议,可以提供多种可靠的用户服务。
Tcpip是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。Tcpip常被通称为TCP/IP协议族,简称TCP/IP。tcpip协议中,Tcp协议在传输层,ip协议在网际层。TCP/IP协议是用来提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。TCP/IP分为tcp协议和ip协议:TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。ip协议是互联网协议地址,缩写为IP地址,是分配给用户上网使用的网际协议 的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。扩展资料tcpip协议的主要特点:1、TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统。2、TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网络。用户能够使用以太网(Ethernet)、令牌环网(Token Ring Network)、拨号线路(Dial-up line)、X.25网以及所有的网络传输硬件。3、统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址4、标准化的高层协议,可以提供多种可靠的用户服务。参考资料:百度百科—TCP/IP协议
1.TCP/IP协议含义:互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。2.TCP/IP协议作用:TCP/IP提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。3.TCP/IP协议具体位置:开始 -控制面板-网络连接-本地连接-属性(常规)-最下面就有TCP/IP协议扩展资料:TCP/IP协议并不完全符合OSI的七层参考模型,OSI(Open System Interconnect)是传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层(网络接口层)、网络层(网络层)、传输层(传输层)、会话层、表示层和应用层(应用层)。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。由于ARPANET的设计者注重的是网络互联,允许通信子网(网络接口层)采用已有的或是将来有的各种协议,所以这个层次中没有提供专门的协议。实际上,TCP/IP协议可以通过网络接口层连接到任何网络上,例如X.25交换网或IEEE802局域网。参考资料:百度百科-TCP/IP协议
TCP/IP是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。TCP/IP提供点对点的链接机制,将数据如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆砌的方式,分别实现出不同通信协议。协议族下的各种协议,依其功能不同,被分别归属到这四个层次结构之中,常被视为是简化的七层OSI模型。如果使用的是Windows2000或WindowsXP系统查找TCP/IP协议:1、鼠标右键点击“网络”,选择“属性”2、点击“本地连接”3、点击“属性”5、点击“Internet协议(TCP/IP)属性”。扩展资料TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。实际上,TCP/IP协议可以通过网络接口层连接到任何网络上,例如X.25交换网或IEEE802局域网。注意tcp本身不具有数据传输中噪音导致的错误检测功能,但是有实现超时的错误重传功能。参考资料百度百科——TCP/IP协议

TCP/IP协议的含义是什么
TCP/IP协议即互联网协议,是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。其包括两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。由于在网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为TCP/IP协议栈(英语:TCP/IP Protocol Stack) 。TCP/IP提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议,TCP/IP协议在互联网时代非常重要。扩展资料:TCP/IP协议的特点(1)TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统,其既可以提供硬件间的协议也可以是软件间的,还可以软硬件交互。(2)TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网络。用户能够使用以太网(Ethernet)、令牌环网(Token Ring Network)、拨号线路(Dial-up line)、X.25网以及所有的网络传输硬件。(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址,便于准确精准传输信息和相互连接;(4)标准化的高层协议,可以提供多种可靠的用户服务,如HTTP、FTP协议等。参考资料来源:百度百科-TCP/IP协议
中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。
文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。低层是网际协议,它处理每个包的地址部分,

在TCP/IP协议族中有很多协议是有安全隐患的,试任举一例说明。
下面列举几种利用TCP/IP簇安全设计缺陷的攻击: (1)网络窥探(Network Snooping)利用数据在TCP/IP协议中的明文传输缺陷进 行在线侦听和业务流分析。攻击者可通过某些监控软件或网络分析仪等进行窃听。(2)IP源地址欺骗(IP Source Address Spoofing)利用IP地址易于更改和伪造的缺陷,进行IP地址假冒和欺骗。(3)路由攻击(Routing Attacks)1) IP源路由攻击:利用IP报头中的源路由选项强制性地将IP包 按指定路径传递到希望的目标。2) 路由消息协议攻击(RIP Attacks):攻击者利用RIP协议无认证机制的缺陷,在网络上发布假的路由信息。3) 攻击路由器系统:利用路由器自身保护不严,攻击者进入路由器修改其配置或使之崩溃。(4)IP隧道攻击(IP Tunneling Attacks)利用IP隧道技术实施特洛伊木马攻击。(5)网际控制报文协议攻击(ICMP Attacks)1) ICMP重定向消息攻击(破坏路由机制和提高侦听业务流能力)。2) ICMP回应请求/应答消息(echo request/reply message)攻击(实现拒绝服务)。3) ICMP目的不可达消息攻击。4) PING命令攻击。(6)IP层拒绝服务型攻击(IP Denial of Service Attacks)利用IP 广播发送伪造的ICMP回应请求包,导致向某一受害主机发回大量ICMP应答包,造成网络拥塞或崩溃。(如"Smurf"攻击)。(7)IP栈攻击(IP Stack Attacks)利用多数操作系统不能处理相同源、宿IP地址类型IP包的缺陷,将伪造的此种类型的IP包大量发往某一目标主机,导致目标主机将其TCP/IP协议栈锁死甚至系统崩溃。(8)IP地址鉴别攻击(Authentication Attacks)利用TCP/IP协议只能识别IP地址的缺陷,攻击者通过窃取口令从该节点上非法登录服务器。(9)TCP SYN Flooding攻击。向攻击目标发送大量不可达的TCP SYN连接请求包,以淹没目标服务器,使正常连接的"三次握手"永远不能完成(拒绝服务攻击)。 (10)TCP序列号攻击。利用对TCP连接初始序列号的猜测、冒充可信任主机进行欺骗连接(也可造成拒绝服务)攻击。
防火墙的一些情况,如果自己的进程开一个端口(甚至是新建套接字)肯定被拦. 相反,有一点我们也很清楚:被_blank">;防火墙验证的进程在传送数据时永远不会被拦.所以,我的思路很简单:将其他进程中允许数据传输的套接字句柄拿为已用.过程如下:1. 找出目标进程2. 找出SOCKET句柄2. 用DuplicateHandle()函数将其SOCKET转换为能被自己使用.3. 用转换后的SOCKET进行数据传输上面的过程写的很简单,但是实际实现起来还是存在一些问题(后面再做讨论).而且从上面的实现方法也可以看出一些不爽的地方:在目标进程的SOCKET不能是TCP,因为TCP的句柄已经跟外面建立了连接,所以只能是UDP.针对不同系统不同进程我们很难定位一个稳定的进程SOCKET.看到上面这些,你有点丧气了对不对,哈哈. 再想一想,其实我们有一条真正的通罗马的"黄金大道".我们知道只要一台计算机连上了网络,那么有一种数据传输是肯定不会被拦截的,那就是DNS.你能想像域名解析数据都被拦了造成的结果吗?TCP Reset Spoofing(TCP复位欺骗)因为TCP协议在TCP/IP环境中是通信层协议,它提供核心数码流认证和路由,支持着互联网和绝大部分专有网络。TCP的功能之一就是管理包重组,这些包可以通过很多不同的物理路由,所以通常不会保持原先的顺序。 TCP创建了识别号码,它会告诉接受者如何去把收到的信息包按照正确的顺序组合起来。作为一个安全功能,如果一个信息包的识别码不是属于某一个特定的范围,就会被认为是不属于某个特定的数据流而被拒收。问题就出现了:因为RFC793允许当前的TCP通信根据收到的RST或者SYN(synchronize)而中断。TCP根据识别码来判断RST或者SYN的真实性。新的信息显示预先想好这个识别码远没有去猜容易,同源IP地址和目的IP地址结合起来,就能够引发TCP通信的不正常中断。
这是我多年来从事网络的理解 由于TCP/IP协议固有的开放性和互联性,这种安全隐患是肯定存在的.由于局域网内部是一个相对开放的环境和TCP/IP协议内在的开放特征,内部网络上传输的数据很容易被截获并被分析或跟踪,前段时间就有文章说400MS攻破QQ密码的!你都学过TCP/IP,也应该网络广播这回事,因为你发一个请求,所有局域网内的电脑都能收到,只是会判断信息中的地址是不是自己的地址,接不接收!不接收的话就丢弃~ 所以,水平高的黑客可以通过任何一台机器来窃取局域网内想要的东西~包括密码
由于自身的缺陷、网络的开放性以及黑客的攻击是造成互联网络不安全的主要原因。TCP/IP作为Internet使用的标准协议集,是黑客实施网络攻击的重点目标。TCP-/IP协议组是目前使用最广泛的网络互连协议。但TCP/IP协议组本身存在着一些安全性问题。TCP/IP协议是建立在可信的环境之下,首先考虑网络互连缺乏对安全方面的考虑;这种基于地址的协议本身就会泄露口令,而且经常会运行一些无关的程序,这些都是网络本身的缺陷。互连网技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。这就给“黑客”们攻击网络以可乘之机。由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题会给网络带来严重的后果。网络的开放性,TCP/IP协议完全公开,远程访问使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等等性质使网络更加不安全。
利用TCP/IP簇安全设计缺陷的攻击: (1)网络窥探(Network Snooping)利用数据在TCP/IP协议中的明文传输缺陷进 行在线侦听和业务流分析。攻击者可通过某些监控软件或网络分析仪等进行窃听。(2)IP源地址欺骗(IP Source Address Spoofing)利用IP地址易于更改和伪造的缺陷,进行IP地址假冒和欺骗。(3)路由攻击(Routing Attacks)1) IP源路由攻击:利用IP报头中的IP层拒绝服务型攻击(IP Denial of Service Attacks)利用IP 广播发送伪造的ICMP回应请求包,导致向某一受害主机发回大量ICMP应答包,造成网络拥塞或崩溃。(如"Smurf"攻击)。(7)IP栈攻击(IP Stack Attacks)利用多数操作系统不能处理相同源、宿IP地址类型IP包的缺陷,将伪造的此种类型的IP包大量发往某一目标主机,导致目标主机将其TCP/IP协议栈锁死甚至系统崩溃。(8)IP地址鉴别攻击(Authentication Attacks)利用TCP/IP协议只能识别IP地址的缺陷,攻击者通过窃取口令从该节点上非法登录服务器。(9)TCP SYN Flooding攻击。向攻击目标发送大量不可达的TCP SYN连接请求包,以淹没目标服务器,使正常连接的"三次握手"永远不能完成(拒绝服务攻击)。(10)TCP序列号攻击。利用对TCP连接初始序列号的猜测、冒充可信任主机进行欺骗连接(也可造成拒绝服务)攻击。源路由选项强制性地将IP包 按指定路径传递到希望的目标。2) 路由消息协议攻击(RIP Attacks):攻击者利用RIP协议无认证机制的缺陷,在网络上发布假的路由信息。3) 攻击路由器系统:利用路由器自身保护不严,攻击者进入路由器修改其配置或使之崩溃。(4)IP隧道攻击(IP Tunneling Attacks)利用IP隧道技术实施特洛伊木马攻击。 (5)网际控制报文协议攻击(ICMP Attacks)

懂TCP/ip协议的进来回答下
学过网络的都知道“TCP三次握手机制”,你可以在百度上检索一下相关的内容。 TCP三次握手TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除连接三个过程并且TCP在建立连接时又分三步走:第一步是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。然后才开始通信的第二步:数据处理。这就是所说的TCP三次握手(Three-way Handshake)。简单的说就是:(C:客户端,S:服务端)C:SYN到SS:如成功--返回给C(SYN+ACK)C:如成功---返回给S(ACK)以上是正常的建立连接方式,但如下:假设一个C向S发送了SYN后无故消失了,那么S在发出SYN+ACK应答报文后是无法收到C的ACK报文的(第三次握手无法完成),这种情况下S 一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个C出现异常导致S的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,S将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果S的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃 ---即使S的系统足够强大,S也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟C的正常请求比率非常之小),此时从正常客户的角度看来,S失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。以上的例子常被称作DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)注意:其中这儿的C和S都是相对的,对于现在的计算机来讲,只要自己的计算机建立任一服务,在一定情况下都可被称为STCP/IP 是很多的不同的协议组成,实际上是一个协议组,TCP 用户数据报表协议(也称作TCP 传输控制协议,Transport Control Protocol。可靠的主机到主机层协议。这里要先强调一下,传输控制协议是OSI 网络的第四层的叫法,TCP 传输控制协议是TCP/IP 传输的6 个基本协议的一种。两个TCP 意思非相同。)。TCP 是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。通过每个TCP 传输的字段指定顺序号,以获得可靠性。是在OSI参考模型中的第四层,TCP 是使用IP 的网间互联功能而提供可靠的数据传输,IP 不停的把报文放到网络上,而TCP 是负责确信报文到达。在协同IP 的操作中TCP 负责:握手过程、报文管理、流量控制、错误检测和处理(控制),可以根据一定的编号顺序对非正常顺序的报文给予从新排列顺序。关于TCP 的RFC 文档有RFC793、RFC791、RFC1700。在TCP 会话初期,有所谓的“三握手”:对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP 在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP 总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。由于TCP 需要时刻跟踪,这需要额外开销,使得TCP 的格式有些显得复杂。下面就让我们看一个TCP 的经典案例,这是后来被称为MITNICK 攻击中KEVIN 开创了两种攻击技术:TCP 会话劫持SYN FLOOD(同步洪流)在这里我们讨论的时TCP 会话劫持的问题。先让我们明白TCP 建立连接的基本简单的过程。为了建设一个小型的模仿环境我们假设有3 台接入互联网的机器。A 为攻击者操纵的攻击机。B 为中介跳板机器(受信任的服务器)。C 为受害者使用的机器(多是服务器),这里把C 机器锁定为目标机器。A 机器向B机器发送SYN 包,请求建立连接,这时已经响应请求的B 机器会向A 机器回应SYN/ACK表明同意建立连接,当A 机器接受到B 机器发送的SYN/ACK 回应时,发送应答ACK 建立A 机器与B 机器的网络连接。这样一个两台机器之间的TCP 通话信道就建立成功了。B 终端受信任的服务器向C 机器发起TCP 连接,A 机器对服务器发起SYN 信息,使C 机器不能响应B 机器。在同时A 机器也向B 机器发送虚假的C 机器回应的SYN 数据包,接收到SYN 数据包的B 机器(被C 机器信任)开始发送应答连接建立的SYN/ACK 数据包,这时C 机器正在忙于响应以前发送的SYN 数据而无暇回应B 机器,而A 机器的攻击者预测出B 机器包的序列号(现在的TCP 序列号预测难度有所加大)假冒C 机器向B 机器发送应答ACK 这时攻击者骗取B 机器的信任,假冒C 机器与B 机器建立起TCP 协议的对话连接。这个时候的C 机器还是在响应攻击者A 机器发送的SYN 数据。TCP 协议栈的弱点:TCP 连接的资源消耗,其中包括:数据包信息、条件状态、序列号等。通过故意不完成建立连接所需要的三次握手过程,造成连接一方的资源耗尽。通过攻击者有意的不完成建立连接所需要的三次握手的全过程,从而造成了C 机器的资源耗尽。序列号的可预测性,目标主机应答连接请求时返回的SYN/ACK 的序列号时可预测的。(早期TCP 协议栈,具体的可以参见1981 年出的关于TCP 雏形的RFC793 文档)TCP 头结构TCP 协议头最少20 个字节,包括以下的区域(由于翻译不禁相同,文章中给出相应的英文单词):TCP 源端口(Source Port):16 位的源端口其中包含初始化通信的端口。源端口和源IP 地址的作用是标示报问的返回地址。TCP 目的端口(Destination port):16 位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。TCP 序列号(序列码,Sequence Number):32 位的序列号由接收端计算机使用,重新分段的报文成最初形式。当SYN 出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1。这个序列号(序列码)是可以补偿传输中的不一致。TCP 应答号(Acknowledgment Number):32 位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK 控制位,这个值表示一个准备接收的包的序列码。数据偏移量(HLEN):4 位包括TCP 头大小,指示何处数据开始。保留(Reserved):6 位值域,这些位必须是0。为了将来定义新的用途所保留。标志(Code Bits):6 位标志域。表示为:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN。窗口(Window):16 位,用来表示想收到的每个TCP 数据段的大小。校验位(Checksum):16 位TCP 头。源机器基于数据内容计算一个数值,收信息机要与源机器数值结果完全一样,从而证明数据的有效性。优先指针(紧急,Urgent Pointer):16 位,指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG 标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。选项(Option):长度不定,但长度必须以字节。如果没有选项就表示这个一字节的域等于0。填充:不定长,填充的内容必须为0,它是为了数学目的而存在。目的是确保空间的可预测性。保证包头的结合和数据的开始处偏移量能够被32 整除,一般额外的零以保证TCP 头是32 位的整数倍。标志控制功能URG:紧急标志紧急(The urgent pointer) 标志有效。紧急标志置位,ACK:确认标志确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP 报头内的确认编号栏内包含的确认编号(w+1,Figure:1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。PSH:推标志该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。在处理telnet 或rlogin 等交互模式的连接时,该标志总是置位的。RST:复位标志复位标志有效。用于复位相应的TCP 连接。SYN:同步标志同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP 连接时有效。它提示TCP 连接的服务端检查序列编号,该序列编号为TCP 连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP 序列编号看作是一个范围从0 到4,294,967,295 的32 位计数器。通过TCP 连接交换的数据中每一个字节都经过序列编号。在TCP 报头中的序列编号栏包括了TCP 分段中第一个字节的序列编号。FIN:结束标志带有该标志置位的数据包用来结束一个TCP 回话,但对应端口仍处于开放状态,准备接收后续数据。服务端处于监听状态,客户端用于建立连接请求的数据包(IP packet)按照TCP/IP协议堆栈组合成为TCP 处理的分段(segment)。分析报头信息: TCP 层接收到相应的TCP 和IP 报头,将这些信息存储到内存中。检查TCP 校验和(checksum):标准的校验和位于分段之中(Figure:2)。如果检验失败,不返回确认,该分段丢弃,并等待客户端进行重传。查找协议控制块(PCB{}):TCP 查找与该连接相关联的协议控制块。如果没有找到,TCP 将该分段丢弃并返回RST。(这就是TCP 处理没有端口监听情况下的机制) 如果该协议控制块存在,但状态为关闭,服务端不调用connect()或listen()。该分段丢弃,但不返回RST。客户端会尝试重新建立连接请求。建立新的socket:当处于监听状态的socket 收到该分段时,会建立一个子socket,同时还有socket{},tcpcb{}和pub{}建立。这时如果有错误发生,会通过标志位来拆除相应的socket 和释放内存,TCP 连接失败。如果缓存队列处于填满状态,TCP 认为有错误发生,所有的后续连接请求会被拒绝。这里可以看出SYN Flood 攻击是如何起作用的。丢弃:如果该分段中的标志为RST 或ACK,或者没有SYN 标志,则该分段丢弃。并释放相应的内存。发送序列变量SND.UNA : 发送未确认SND.NXT : 发送下一个SND.WND : 发送窗口SND.UP : 发送优先指针SND.WL1 : 用于最后窗口更新的段序列号SND.WL2 : 用于最后窗口更新的段确认号ISS : 初始发送序列号接收序列号RCV.NXT : 接收下一个RCV.WND : 接收下一个RCV.UP : 接收优先指针IRS : 初始接收序列号当前段变量SEG.SEQ : 段序列号SEG.ACK : 段确认标记SEG.LEN : 段长SEG.WND : 段窗口SEG.UP : 段紧急指针SEG.PRC : 段优先级CLOSED 表示没有连接,各个状态的意义如下:LISTEN : 监听来自远方TCP 端口的连接请求。SYN-SENT : 在发送连接请求后等待匹配的连接请求。SYN-RECEIVED : 在收到和发送一个连接请求后等待对连接请求的确认。ESTABLISHED : 代表一个打开的连接,数据可以传送给用户。FIN-WAIT-1 : 等待远程TCP 的连接中断请求,或先前的连接中断请求的确认。FIN-WAIT-2 : 从远程TCP 等待连接中断请求。CLOSE-WAIT : 等待从本地用户发来的连接中断请求。CLOSING : 等待远程TCP 对连接中断的确认。LAST-ACK : 等待原来发向远程TCP 的连接中断请求的确认。TIME-WAIT : 等待足够的时间以确保远程TCP 接收到连接中断请求的确认。CLOSED : 没有任何连接状态。TCP 连接过程是状态的转换,促使发生状态转换的是用户调用:OPEN,SEND,RECEIVE,CLOSE,ABORT 和STATUS。传送过来的数据段,特别那些包括以下标记的数据段SYN,ACK,RST 和FIN。还有超时,上面所说的都会时TCP 状态发生变化。序列号请注意,我们在TCP 连接中发送的字节都有一个序列号。因为编了号,所以可以确认它们的收到。对序列号的确认是累积性的。TCP 必须进行的序列号比较操作种类包括以下几种:①决定一些发送了的但未确认的序列号。②决定所有的序列号都已经收到了。③决定下一个段中应该包括的序列号。对于发送的数据TCP 要接收确认,确认时必须进行的:SND.UNA = 最老的确认了的序列号。SND.NXT = 下一个要发送的序列号。SEG.ACK = 接收TCP 的确认,接收TCP 期待的下一个序列号。SEG.SEQ = 一个数据段的第一个序列号。SEG.LEN = 数据段中包括的字节数。SEG.SEQ+SEG.LEN-1 = 数据段的最后一个序列号。如果一个数据段的序列号小于等于确认号的值,那么整个数据段就被确认了。而在接收数据时下面的比较操作是必须的:RCV.NXT = 期待的序列号和接收窗口的最低沿。RCV.NXT+RCV.WND:1 = 最后一个序列号和接收窗口的最高沿。SEG.SEQ = 接收到的第一个序列号。 SEG.SEQ+SEG.LEN:1 = 接收到的最后一个序列号。
协议安装,就是给电脑开个另外一条路,安装的过程就是告诉电脑,怎么走,要那些文件配合。 协议安装好了,就开始工作,你不走那条路,那条路也在那。本机
http://baike.baidu.com/view/7729.htm 自己去看看 不久结了
一楼回答真多~

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/44857.html。