勤学教育网合作机构> > 汇学教育欢迎您!

网络相关知识

汇学教育logo
来源:汇学教育

2021-08-22|已帮助:1530

进入 >

网络相关知识(一)

以下就是网络相关知识等等的介绍,希望对您有所帮助。

网络相关知识

TCP和UDP的区别

TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。

简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般。

TCP:传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。

TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP:用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,

但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

网络相关知识(二)

面向连接(流式)和无连接(数据报)

数据包在网络中路由传输,可能会因为路由器的处理能力不足或者通信链路拥堵等原因丢失。ip协议不会重发数据包,他是不可靠的。

数据包的到的顺序也是无法保证。在ip协议之上实现的第四层协议tcpudp协议。

tcp:面相连接的(流式),在建立了连接的两台主机之间维持通信线路,保证通信持续进行。典型代表是httphe ssh,保证长时间传输,

传输顺序的一致性、可靠性。

upd:无连接的(数据报式),只进行一次数据包交换,不维持个主机间的通信线路。该协议将ip数据包进行分割后发出去。接收端只具

有将其复原的功能,不能保证数据包的到顺序和可靠性。

网络相关知识(三)

三次握手和需要三次握手的原因

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

网络相关知识

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进

入ESTABLISHED(TCP连接成功)状态,完成三次握手。

需要三次握手的原因

三次握手是为了在不可靠信道上建立双方可靠传输的连接进行的理论上最少握手。

TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机,防止资源浪费。

如果采用两次的话,会出现下面这种情况。比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;

于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。传完东西后,断开。

结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去。

网络相关知识(四)

TCP协议终止链接要四次的原因

1、当主机A确认发送完数据且知道B已经接受完了,想要关闭发送数据口(当然确认信号还是可以发),就会发FIN给主机B。

2、主机B收到A发送的FIN,表示收到了,就会发送ACK回复。

3、但这是B可能还在发送数据,没有想要关闭数据口的意思,所以FIN与ACK不是同时发送的,而是等到B数据发送完了,才会发送FIN给主机A。

4、A收到B发来的FIN,知道B的数据也发送完了,回复ACK, A等待2MSL以后,没有收到B传来的任何消息,知道B已经收到自己的ACK了,A就关闭链接,B也关闭链接了。

A为什么等待2MSL,从TIME_WAIT到CLOSE?

在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。

以上是汇学教育整理的网络相关知识全部内容。

热门推荐

更多
勤学培训网 网络知识学习网 网络相关知识