成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

tcpip协议三次握手

Q1:TCP/IP协议到底在讲什么?

王海军老师:学习过TCP/IP的同学应该知道,我们通常说的TCP/IP模型一般是四层,也有的书上网上说是五层,但是多数同意四层的说法,争议的焦点在TCP/IP第一层,四层说法OSI七层的第1,2两层是对应TCP/IP四层的数据链路层或网络接入(接口)层,第5,6,7对应四层的应用层;五层说法是第1,2两层保持不变,还是原来两层,第5,6,7对应四层的应用层。

一、TCP/IP参考模型(四层or五层)

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。

1、四层模型:

应用层:对应OSI中的应用层、表示层、会话层

数据链路层:对应OSI中的数据链路层、物理层(也有叫网络接口层)

七层对四层

2、五层模型:

应用层:对应OSI中的应用层、表示层、会话层

数据链路层:对应OSI中的数据链路层、物理层(也有叫网络接口层)

物理层层:对应OSI中的物理层

七层对五层

在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。

在每一层实现的协议也各不同,即每一层的服务也不同.下图列出了每层主要的协议。其中每层中具体的协议,我会在后面的逐一学习。

3、四层,五层,七层对比:

二、TCP数据格式和IP数据格式

TCP数据报文

IP数据报文

决定上层协议

三、TCP协议三次握手和四次挥手

TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。

原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。

三次握手

TCP的连接的拆除需要发送四个包,因此称为四次挥手。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

简单确认

TCP窗口

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。

FAQ

为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?

这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的连接请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可能未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

Q2:TCP/IP协议的三次握手的原理及过程???

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

Q3:如何深入学习TCP/IP协议?

tcpip内容是很广的,他是一套理论或者标准,我觉的你目前还没搞清楚方向,基于tcpip的东西很多,比如数字通信,就是做一些网络规划,调试,里面涉及主要有ospf,bgp等协议,主要是设备的调试,目前主流设备是华为,思科。你搭建过一些服务是基于系统搭建的吗,比如邮件服务,或者nfs等,这些属于运维方面的,而你后面的又说不大会网络编程那块,这个范围更广,如果设计软件和硬件结合的那部分就是嵌入式开发,网络设备系统基本就属于嵌入式系统开发方向,基于tcpip每层都有对应的工作。

Q4:简述TCP/ip协议的3次链路握手过程

讲通俗一点吧,为了安全。
机器A(192.168.0.2)和机器B(192.168.0.3)准备通信。
首先:机器A给机器B发送一个握手消息,消息内容大致为:“我是192.168.0.2,请求和192.168.0.3通信!”并进入等待状态。
然后:机器B反馈机器A消息:“确认通信”。
最后:机器B和192.168.0.2通信:“我是192.168.0.3,将要和192.168.0.2通信!” 说为了安全是这样的:
如果机器A准备攻击机器B的话,发送如下消息:
我是192.168.0.99(实际上是192.168.0.2),请求和192.168.0.3通信!
192.168.0.3同意
如果没有3次握手的话,那么192.168.0.2知道他在和192.168.0.3通话,但192.168.0.3一直以为他在和192.168.0.99通话呢。
所以要三次握手,了解?
全部手打,求分!

猜你喜欢

更多