网络编程心得

在网络编程中我们要学习很多知识:
在网络的大世界里,我们虽然知道我们能互相发送消息,互相通话,但是网络是如何这么准确的帮你找到你心心念念的她呢,接下来我们来探究一下神秘的网络如何帮我们来准确的互相发消息。

我们都应该听过一句老话,无规矩不成方圆,所以要想在和平安定的生活,就必须坚守法律规矩,所以呢网络世界也一样,要想和平相处不乱套,就需要遵守一些规则,所以就有了网络协议。数据才能安稳在网络世界里穿梭。

接下来我们来了解一些重要得协议,TCP和IP协议,通常我们叫它TCP/IP协议,根据协议的功能的不同抽象成了4层。

在这里插入图片描述
接下来我们理解一下数据传送的路上的经历:

数据传输的时候先将数据从应用层传递到传输层,然后再从传输层传递到网络层,然后再传 递到链路层,最后在通过物理传输介质(网线)传递数据。

详细如下:

‘你好’(应用层) ==>传输层选择通信协议,tcp/udp协议==>网络层加上ip协议==>数据链路层(mac地址)==>物理层(网线,网卡)

接下来接收:

物理层==>数据链路层==>网络层==>传输层==>传输层==>应用层
在这里插入图片描述

然后,就是两台计算机在进行数据交换时候的历程(我给你发送消息,网络如何建立一个安全可靠的连接,并且进行数据传输):

首先来理解TCP协议,要建立一个安全可靠的连接就需要TCP协议的支持,

TCP协议特点:数据安全,速度略低。分为客户端和服务端。 使用TCP的应用:Web浏览器;电子邮件等程序。 TCP的三次握手和4次挥手

那什么是三次握手呢,就是两台计算机之间首先进行三次互相交流,看能不能意见统一,互相达成一致,进行交流。主要就是确保两台计算机能进行准备。

第一次握手:是客户端让服务器准备好资源。
第二次握手:服务端资源准备好了并且服务端问客户端资源有没有准备好。
第三次握手:客户端资源也准备好了。接下来才真正的发生数据。

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后, 等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以 防止产生错误的连接。[1] TCP三次握手的过程如下: 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。 三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

在这里插入图片描述
所以这样是比较可靠的连接。

还有四次挥手告别(断开连接),这个形象理解就是经过两轮的确认才互相离开。

第一次,客户端告诉服务端我不会给你发数据了,第二次服务端告诉客户端我收到你发生的 信息了,第三次服务端给客户端发生数据说我也不给你发了,第四次客户端给服务端说我知 道了。

在这里插入图片描述

(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP 于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。 注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排 队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相 应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致 它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。[1]

爱,就是你和某个人一起经历的一切。
原文地址:https://www.cnblogs.com/afly-8/p/13561143.html