网络三次握手

问题描述

最近学习三次握手,看网络的三次握手,看的稀里糊涂的不是太懂。

解决方案

引用TCP三次握手TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。完成三次握手,主机A与主机B开始传送数据。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.第一次握手请求的一方会把请求中的一个位设置为1,即syn位=1,表示我要建立连接,同时会发送一个随机产生的序列号seq第二次握手就是收到请求的一方再应答,表示可以建立连接,他设置syn位=1,ack位=1就是表示你的请求我收到了,可以建立连接,同时他把请求方的序列号seq+1返回给请求方,这个序列号就是表示次序的。第三次握手是之前的请求方发送应答,说我知道可以通信了,设置ack位=1,序列号设置为seq+1+1(相对于第一次握手加了2),这次握手完成表示TCP连接建立了,可以开始传输数据了。
解决方案二:
其实主要的原理就是通过A和B之间互相发送验证信息来校验双方的正确性。A 发送、B处理、A接收确认 是交互1.5次。B 发送、A处理、B接收确认 是交互1.5次。总得来说就是三次相互交互。所以叫三次握手。其实交互通讯六次。
解决方案三:
这个跟你讲的再详细也不行,因为网上资料,各种图形都有,你可以自己看,这里我简单说明一下吧:我讲个大概的意思:1. 网络连接,在正常我们的了解可能想象的很简单,就是A和B的网络相通了。2. 但是,当我们仔细想想,我们的物理上连接是多对多的关系,你发一个东西出去,一开始是以广播的形式,所有的局域网内都能收到的,那怎么才能知道哪一个是正确的对象。因此 确认肯定是要做的。所以就有了下面的步骤:第一步,A发送一个试探包AP出去。(第一次握手)第二步,B收到A的包后,经过一定的处理,反馈给A,但是整么让A来确认B的身份就是对的呢,那么就需要B在附加一个自己的验证信息包发给A(第二次握手)第三步,A收到了一个自己发出去的包,验证了这个包是正确的,但是同时收到了来自B的包,但是A是无法验证的,所以A要将B的包的信息添加处理再反馈给B,由B进行验证。(第三次握手)
解决方案四:
就是TCP协议的三次握手,可参考下面的解释,自己看看!http://baike.baidu.com/view/1003841.htm
解决方案五:
就是指基于TCP协议的三次握手!你可以参考:http://baike.baidu.com/view/1003841.htm讲的比较详细!

时间: 2024-10-30 03:13:23

网络三次握手的相关文章

网络基础二 tcp/ip协议簇 端口 三次握手 四次挥手 11种状态集

第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是"虚拟局域网".LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.VLAN所指的LAN特指使用路由器分割的网络--也就是广播域. 1.1.2 划分VLAN的目的 1.     提高安全性 a)       举个例子:没有划分VLAN前,交换机端口连接下的所有PC都处于一个VLAN中即一个广播域中,实现ARP中间人攻击太简单了.划分了VLAN之

网络协议:简析三次握手协议

           一,简析三次握手协议               首先来看我们生活中很常见的一件事:                             在我们网购的时候,常常会跟客服这样聊天:我们向客服询问某件事,客服回答,然后我们断网了...过了一会儿,我们再登陆就收到了客服的回答.              这个交互的过程进行了三次才完成了一次应答,这个过程就类似我们采用TCP/IP协议访问服务器时的三次握手机制:                          第一次握手:

网络基础知识(一)wireshark 三次握手实践

wireshark 三次握手简介 192.168.18.120 IP地址为我的本机虚拟机IP地址 过滤设置:ip.addr == 192.168.18.120 (ip.addr == 192.168.18.120 显示所有目标或源地址是192.168.18.120的数据包) 第一次握手 第二次握手  第三次握手  观察其中红色方框内的3条数据包就是一次TCP建立连接的过程 [1]客户端首先向服务器发一个数据包syn位置1,5774->80,嘿,哥们儿,您我想访问你的web资源,能不能把你的80端

tcp为什么要三次握手,而不能二次握手?

谢希仁版<计算机网络>中的例子是这样的,"已失效的连接请求报文段"的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server.本来这是一个早已失效的报文段.但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求.于是就向client发出确认报文段,同意建立连接.假设不采用"三次握手",那么只要server发出确认,新的

tcp 三次握手和四次断连深入分析:连接状态和socket API的关系

说到tcp协议,凡是稍微看过的人都能顺口说出三次握手和四次断连,再牛逼的一点的就能够把每个状态(SYNC_SENT.CLOSE_WAIT......等)都能背出来, 而说道socket编程,基本上写过网络编程的人都会熟悉那几个标准的API:socket.connect.listen.accept......等 但是,我敢打赌很少有人明白tcp状态和socket编程API之间的关系.不信? 看看如下几个问题你是否知道吧: 1)什么时候客户端才能够连接上server端, 是server端调用bind

TCP中的三次握手和四次挥手

一.文章来由 三次握手只记得ack.ack+1这些零碎片段了~~~特此总结 二.总图 明显三次握手是建立连接,四次挥手是断开连接,总图如下: 三.握手 (1)首先,Client端发送连接请求报文(SYN=1,seq=client_isn) (2)Server段接受连接后回复ACK报文,并为这次连接分配资源.(SYN=1,seq=client_isn,ack = client_isn+1) (3)Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了.

TCP三次握手应用及原理

TCP/IP是很多的不同的协议组成,实际上是一个协议组,TCP用户数据报表协议(也称作TCP传输控制协议,Transport Control Protocol.可靠的主机到主机层协议.这里要先强调一下,传输控制协议是OSI网络的第四层的叫法,TCP传输控制协议是TCP/IP传输的6个基本协议的一种.两个TCP意思非相同. ).TCP是一种可靠的面向连接的传送服务.它在传送数据时是分段进行的,主机交换数据必须建立一个会话.它用比特流通信,即数据被作为无结构的字节流. 通过每个TCP传输的字段指定顺

学习c/c++遇到问题找不到资料,关于实现tcp三步握手以及c是怎样实现弱口令检测的问题

问题描述 学习c/c++遇到问题找不到资料,关于实现tcp三步握手以及c是怎样实现弱口令检测的问题 刚学完synflood的源码,但是有疑问,是不是synflood只做到了第二步就完毕了,谁有有源码可以给我看看 完整的tcp握手三步是怎样完成的.? 还有 ,对于一些远程主机扫描 弱口令检测等等的,很好奇是怎么实现的,求解.例如ipc 等等.注入类此.希望在csdn能得到高手指教. 新手一枚,求解. 解决方案 可以参考以下链接 TCP三步握手建立连接(1)-----主动连接syn包发送http:/

TCP三次握手及其背后的缺陷

概述 总结一下TCP中3次握手过程,以及其原生的缺陷 引起的SYN Flood的介绍 [1]TCP三次握手 [2]SYN Flood 1.TCP连接建立--三次握手 几个概念: [1]seq:序号,占4个字节,范围[0,4284967296],由于TCP是面向字节流的,在一个1个TCP连接中传送字节流中国的每一个字节都按照顺序编号,此外序号是循环使用的 [2]ACK: 仅当ACK=1时确认字段才有效,当ACK=0时确认字段无效,并且TCP规定,在连接建立后所有的传送报文段都必须要把ACK置为1