Java笔记——网络原理04

目录

什么是TCP

传输层: TCP 重点

什么是可靠性​编辑

TCP流程

关于重传​编辑

ISN 设计问题

握手阶段​编辑

三次握手阶段

三次握手机制:

Wireshark抓包工具(看看即可)

​编辑

三次握手过程中的状态转移​编辑


什么是TCP

TCP协议

TCP,即Transmission Control Protocol,传输控制协议。人如其名,要对数据的传输进行一个详细的控制。

  

TCP原理

TCP对数据传输提供的管控机制,主要体现在两个方面:安全和效率。 这些机制和多线程的设计原则类似:保证数据传输安全的前提下,尽可能的提高传输效率。

什么是TCP 什么是UDP 详细

传输层: TCP 重点

TCP除了原理的 进程 对 进程 之外,还要保证可靠性,因为网络原生是不可靠的。

但TCP只是保证可靠性,而不是安全性。使用TCP只是让数据变的相对可靠,而不是更安全,是相对可靠,不是绝对、

举例: 相当于寄快递,就算商家保证快递一定安全寄到对方手中,在快递到的时候你还是应该打电话确认一下,总有不可抗力、疏忽的时候。不然还是会存在安全风险。

什么是可靠性

注释:前三点比较重要 !!

TCP流程

 

注释:“货物”还是交给网络层(IP)去运输的,跟UDP一样

如何保证它的可靠性?

解答两个问题

答1:  对数据进行编号,这样,确认也带上编号,表明确认的是哪份数据。
 

答2:  进行重发。重发的得触发需要有个条件——超过一定时间没有收到确认,才要重复。

        ——超时重发机制
 

 

 Segment身兼两种不同的角色

  Segment通过类似于 开关 的标志位来决定是否启动 acknwledge 功能

 

关于重传

针对1.2和2.2的情况,我无脑进行重发,是否可以.还是熏要讲—步讲行分辨?
 

 对于发送方,不需要严格区分这两种情况,只要超时没有收到ack,就无脑重发即可。

超时时间,怎么算合理?
 

如果我去北京需要5小时车程,那么来回就是10小时,超时时间就应该大于10小时,但也不要大太多,合理即可

一般实际情况下:

重发也不会无脑重发下去。
 

注释:每一层的每种协议都要增加header,来配合自己的机制工作。(传递信息给接收者的同等协议)发送的时候要不断封装!!

只有第五个是对的

 用TCP情况下:数据有没有发出去还不一定。

举例:现实中,你去寄快递,你填好单子就付钱就走人了。然后打电话跟你老板说快递帮你寄出去了。但实际上这个快递有没有真是的寄出去你是不清楚的,有可能还在快递站,有可能在运输中等等

ISN 设计问题

为什么ISN不设置成从 0 开始,而是采用随机值。——  安全角度
 

如果ISN设计从0开始,很容易有恶意的用户推算出来合法的SN的值,这样伪造TCP SN 的成本很低。

所以TCP有了连接(Connection)的概念,以及连接管理

(一条连接的一生=一开始创建+正式使用+销毁)
 

 每个人都有一个档案,根据他提供的信息我们去检索对应的档案信息。

握手阶段

逻辑上需要4次。少其中哪一层,整个过程就会有漏洞。
 

由于2和3肯定是同时发生的。TCP也支持一个segment同时起到(syn / ack)的作用。
所以,2和3可以合并,减少网络数据的发送次数,整体上提高性能。

 

 他在传递回来的时候就可以携带自己的信息了

上面这些就是传说中的 三次握手(连接)

 

 

 

一般面试题都会问为什么是三次握手

三次握手阶段
 

三次握手机制:

  • 第一次握手:客户端请求建立连接,向服务端发送一个同步报文(SYN=1),同时选择一个随机数 seq = x 作为初始序列号,并进入SYN_SENT状态,等待服务器确认。

  • 第二次握手::服务端收到连接请求报文后,如果同意建立连接,则向客户端发送同步确认报文(SYN=1,ACK=1),确认号为 ack = x + 1,同时选择一个随机数 seq = y 作为初始序列号,此时服务器进入SYN_RECV状态。

  • 第三次握手:客户端收到服务端的确认后,向服务端发送一个确认报文(ACK=1),确认号为 ack = y + 1,序列号为 seq = x + 1,客户端和服务器进入ESTABLISHED状态,完成三次握手。

理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

 

 

Wireshark抓包工具(看看即可)

 

 

三次握手过程中的状态转移

 状态表示的是一段时间,而不是某个时刻状态转移是发生在一个时刻上的。

右 

 左

 

 


版权声明:本文为m0_61608447原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。