首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

有关计算机网络UDP TCP握手, 挥手知识点梳理

2020-01-22

传输层概

效果:传输层为它上面的运用层供给通讯服务。

在OSI七层参阅模型中,传输层是面向通讯的最高层,也是用户功用的最底层。

传输层两大重要的功用:复用 和 分用。

复用:在发送端,多个运用进程共用一个传输层;

分用:在接纳端,传输层会依据端口号将数据分派给不同的运用进程。

和网络层的差异:

网络层为不同主机供给通讯服务,而传输层为不同主机的不同运用供给通讯服务。

网络层只对报文头部进行过失检测,而传输层对整个报文进行过失检测。

UDP详解

UDP的特色

UDP只在IP数据报服务的基础上添加了少数的功用:复用与分用、对整个报文的过失检测。

UDP是无衔接的

通讯前不需求树立衔接,通讯完毕也无需开释衔接。

UDP是不牢靠的

它是尽力而为交给,不能保证每一个数据报都送达。

UDP是面向报文的

所谓『面向报文』便是指:UDP数据传输的单位是报文,且不会对数据作任何 拆分 和 拼接 操作。

在发送端,运用程序给传输层的UDP什么样的数据,UDP不会对数据进行切分,只添加一个UDP头并交给网络层。

在接纳端,UDP收到网络层的数据报后,去除IP数据报头部后遍交给运用层,不会作任何拼接操作。

UDP没有拥塞操控

UDP一向以稳定的速率发送数据,并不会依据网络拥塞状况对发送速率作调整。这种方法有利有弊。

坏处:网络拥塞时有些报文可能会丢掉,因而UDP不牢靠。

长处:有些运用场景答应报文丢掉,如:直播、语音通话,但对实时性要求很高,此刻UDP仍是很有用武之地的。

UDP支撑一对一、一对多、多对多、多对一通讯

而TCP只支撑一对一通讯。

UDP首部开支小,只要8字节。

而TCP头部至少由20字节,比较于TCP要高效许多。

UDP报文头

有关计算机网络UDP TCP握手, 挥手知识点整理

源端口

意图端口

长度:整个数据报的长度

查验和:整个数据报的查验和。

TCP详解

TCP特色

TCP是面向衔接的

通讯前需求树立衔接,通讯完毕需求开释衔接。

TCP供给牢靠交给服务

所谓『牢靠』指的是:TCP发送的数据无重复、无丢掉、无过错、与发送端次序共同。

TCP是面向字节省的

所谓『面向字节省』指的是:TCP以字节为单位。尽管传输的进程中数据被划分红一个个数据报,但这只是为了便利传输,接纳端终究接受到的数据将与发送端的数据如出一辙。

TCP供给全双工通讯

所谓『全双工通讯』指的是:TCP的两头既能够作为发送端,也能够作为接纳端。

一条TCP衔接的两头只能有两个端点

TCP只能供给点到点的通讯,而UDP能够恣意方法的通讯。

TCP衔接 与 套接字

什么是『TCP衔接』?

TCP衔接是一种笼统的概念,表明一条能够通讯的链路。每条TCP衔接有且仅有两个端点,表明通讯的两边。且双发在恣意时刻都能够作为发送者和接纳者。

什么是『套接字』?

一条TCP衔接的两头便是两个套接字。套接字=IP地址: 端口号。因而,TCP衔接==

TCP头部

TCP头部长度有20字节的固定部分,选项部分长度不定,但最多40字节,因而TCP头部在20-60字节之间。

源端口 和 意图端口

传输层和网络层一大重要差异便是传输层指定了数据报发往的运用进程,因而需求端口号标识。

序号

当时TCP数据报数据部分的第一个字节的序号。咱们知道,TCP是面向字节的,它会对发送的每一个字节进行编号,而且不同数据报之间是接连编号的。

因为本字段4字节,能够给[0,2^32-1]个字节进行编号,而且序号循环运用,当发送完2^32-1个字节后,序号又从0开端。一般来说,当2^32-1个字节被发送的时分,前面的字节早就发送成功了,因而序号能够循环运用。

承认号

表明当时主机作为接纳端时,期望接纳的下一个字节的编号是多少。也表明,当时主机现已正确接纳的最终一个字节序号+1。

数据偏移

它表明晰数据报头部的长度。

保存字段

标识符

TCP有7种标识符,用于表明TCP报文的性质。它们只能为0或1。

URG=1

当URG字段被置1,表明本数据报的数据部分包括紧迫信息,此刻紧迫指针有用。紧迫数据必定坐落当时数据包数据部分的最前面,紧迫指针标明晰紧迫数据的尾部。如control+c:这个指令要求操作系统当即中止当时进程。此刻,这条指令就会存放在数据包数据部分的最初,并由紧迫指针标识指令的方位,并URG字段被置1。

ACK=1

ACK被置1后承认号字段才有用。此外,TCP规则,在衔接树立后传送的一切报文段都有必要把ACK置1。

PSH=1

当接纳方收到PSH=1的报文后,会当行将数据交给给运用程序,而不会比及缓冲区满后再提交。一些交互式运用需求这样的功用,下降指令的呼应时刻。

RST=1

当该值为1时,表明当时TCP衔接呈现严重问题,必需求开释重连。

SYN=1

SYN在树立衔接时运用。当SYN=1,ACK=0时,表明当时报文段是一个衔接恳求报文。当SYN=1,ACK=1时,表明当时报文段是一个赞同树立衔接的应对报文。

FIN=1

FIN=1表明此报文段是一个开释衔接的恳求报文。

接纳窗口巨细

该字段用于完结TCP的流量操控。它表明当时接纳方的接纳窗口的剩下容量,发送方收到该值后会将发送窗口调整成该值的巨细。发送窗口的巨细又决议了发送速率,所以接纳方经过设置该值就能够操控发送放的发送速率。发送方每收到一个数据报都要调整当时的发送窗口。

查验和

用于接纳端查验整个数据包在传输进程中是否犯错。

紧迫指针

用于标识紧迫数据的尾部。

选项字段

上述字段都是每个TCP头部必需求有的,而选项字段是可选的,且长度可变,最长40字节。

最常用的选项字段为MMS:最大报文长度。

TCP三次握手

PS:TCP协议中,自动建议恳求的一端称为『客户端』,被迫衔接的一端称为『服务端』。不管是客户端仍是服务端,TCP衔接树立完后都能发送和接纳数据。

起先,服务器和客户端都为CLOSED状况。在通讯开端前,两边都得创立各自的传输操控块。

服务器创立完TCB后遍进入LISTEN状况,此刻预备接纳客户端发来的衔接恳求。

第一次握手

客户端向服务端发送衔接恳求报文段。该报文段的头部中SYN=1,ACK=0,seq=x。恳求发送后,客户端便进入SYN-SENT状况。

PS1:SYN=1,ACK=0表明该报文段为衔接恳求报文。

PS2:x为本次TCP通讯的字节省的初始序号。

TCP规则:SYN=1的报文段不能稀有据部分,但要消耗掉一个序号。

第2次握手

服务端收到衔接恳求报文段后,假如赞同衔接,则会发送一个应对:SYN=1,ACK=1,seq=y,ack=x+1。该应对发送完结后便进入SYN-RCVD状况。

PS1:SYN=1,ACK=1表明该报文段为衔接赞同的应对报文。

PS2:seq=y表明服务端作为发送者时,发送字节省的初始序号。

PS3:ack=x+1表明服务端期望下一个数据报发送序号从x+1开端的字节。

第三次握手

当客户端收到衔接赞同的应对后,还要向服务端发送一个承认报文段,表明:服务端发来的衔接赞同应对现已成功收到。该报文段的头部为:ACK=1,seq=x+1,ack=y+1。

客户端发完这个报文段后便进入ESTABLISHED状况,服务端收到这个应对后也进入ESTABLISHED状况,此刻衔接的树立完结!

为什么衔接树立需求三次握手,而不是两次握手?

避免失效的衔接恳求报文段被服务端接纳,然后发生过错。

PS:失效的衔接恳求:若客户端向服务端发送的衔接恳求丢掉,客户端等候应对超时后就会再次发送衔接恳求,此刻,上一个衔接恳求便是『失效的』。

若树立衔接只需两次握手,客户端并没有太大的改变,依然需求取得服务端的应对后才进入ESTABLISHED状况,而服务端在收到衔接恳求后就进入ESTABLISHED状况。此刻假如网络拥塞,客户端发送的衔接恳求迟迟到不了服务端,客户端便超时重发恳求,假如服务端正确接纳并承认应对,双便利开端通讯,通讯完毕后开释衔接。此刻,假如那个失效的衔接恳求抵达了服务端,因为只要两次握手,服务端收到恳求就会进入ESTABLISHED状况,等候发送数据或自动发送数据。但此刻的客户端早已进入CLOSED状况,服务端将会一向等候下去,这样糟蹋服务端衔接资源。

TCP四次挥手

TCP衔接的开释总共需求四步,因而称为『四次挥手』。咱们知道,TCP衔接是双向的,因而在四次挥手中,前两次挥手用于断开一个方向的衔接,后两次挥手用于断开另一方向的衔接。

第一次挥手

若A以为数据发送完结,则它需求向B发送衔接开释恳求。该恳求只要报文头,头中带着的主要参数为:FIN=1,seq=u。此刻,A将进入FIN-WAIT-1状况。

PS1:FIN=1表明该报文段是一个衔接开释恳求。

PS2:seq=u,u-1是A向B发送的最终一个字节的序号。

第2次挥手

B收到衔接开释恳求后,会告知相应的运用程序,告知它A向B这个方向的衔接现已开释。此刻B进入CLOSE-WAIT状况,并向A发送衔接开释的应对,其报文头包括:ACK=1,seq=v,ack=u+1。

PS1:ACK=1:除TCP衔接恳求报文段以外,TCP通讯进程中一切数据报的ACK都为1,表明应对。

PS2:seq=v,v-1是B向A发送的最终一个字节的序号。

PS3:ack=u+1表明期望收到从第u+1个字节开端的报文段,而且现已成功接纳了前u个字节。

A收到该应对,进入FIN-WAIT-2状况,等候B发送衔接开释恳求。

第2次挥手完结后,A到B方向的衔接现已开释,B不会再接纳数据,A也不会再发送数据。但B到A方向的衔接依然存在,B能够继续向A发送数据。

第三次挥手

当B向A发完一切数据后,向A发送衔接开释恳求,恳求头:FIN=1,ACK=1,seq=w,ack=u+1。B便进入LAST-ACK状况。

第四次挥手

A收到开释恳求后,向B发送承认应对,此刻A进入TIME-WAIT状况。该状况会继续2MSL时刻,若该时刻段内没有B的重发恳求的话,就进入CLOSED状况,吊销TCB。当B收到承认应对后,也便进入CLOSED状况,吊销TCB。

本篇文章为互联网,转载意图在于传递更多的信息,本站不对立和拥护原文观念和观点,如有侵权,请联络本站

热门文章

随机推荐

推荐文章