首页 > 其他分享 >传输层的协议(三次牵手四次挥手)

传输层的协议(三次牵手四次挥手)

时间:2022-11-09 09:02:23浏览次数:36  
标签:协议 UDP ACK TCP Server 四次 Client 牵手 传输层


传输层协议中的TCP与UDP

    一、TCP与UDP协议介绍
        1.TCP协议
        2.UDP协议
    二、TCP报文格式
        TCP报文段
        报文段首部格式
    三、TCP三次握手
    四、TCP四次挥手
    五、常见协议及其端口
一、tcp协议与udp 协议价绍

TCP(Transmission Control Protocol)全称为传输控制协议,TCP是面向连接的、可靠的进程到进程通信的协议,提供全双工服务,即数据可在同时间双向传输。每个TCP都有发送缓存和接收缓存,用来临时存储数据

       udp协议

传输层另一个重要的协议就是用户数据报协议 UDP。UDP 只在 IP 的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能

二、TCP报文格式

 

TCP UDP 的报头和 Http 的报头差别很大;Http 是文本格式的协议 (按照字符串文本的方式处理的),而 TCP / UDP 都是二进制的协议 (以字节 / 比特位为单位进行组织的)

TCP 报文是 TCP 层传输的数据单元,也称为报文段
TCP 报文中每个字段如图所示:

 

 源端口号: 发送方进程的端口号。

目标端口号: 接收端进程的端口号。接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程。

序号: 发送端为每个字节进行编号,便于接收端正确重组。

确认号: 对发送端的确认信息。

首部长度: 用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节

窗口大小: 说明本地可接收数据段的数目。这个值的大小是可变的,当网络通畅时接收端响应消息会将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TcP中的流量控制机制就是依靠变化窗口的大小实现的。

校验和: 用来做差错控制。字段检验的范围包括首部和数据这两部分。数据段在发送时和到达目的地时会进行校验和计算,若这两次的校验和一致,则说明数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据。

选项: 在URG首部可以有多达40字节的可选信息。例如,最大报文段长度MSS (Maximum Segment Size)。MSS告诉对方TCP: “我的缓存所能接收的报文段的数据字段的最大长度是Mss个字节。”

控制位: 这六位有很重要的作用,TCP的连接、传输和断开都受这六个控制位的指挥:

 

三、TCP三次握手

 1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

 

     四、TCP四次挥手

 

 

  (1)第一次挥手: Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手: Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手: Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手: Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
五、常见协议及其端口

 

 

 

标签:协议,UDP,ACK,TCP,Server,四次,Client,牵手,传输层
From: https://www.cnblogs.com/yanjing998/p/16872406.html

相关文章

  • 第四次实验
    1#pragmaonce2#include<iostream>3usingnamespacestd;4classvectorInt5{6public:7vectorInt(intn);8vectorInt(intn,intnum);9......
  • TCP的三次握手和四次挥手
    三次握手客户端向服务器发送一个syn的报文请求建立连接服务器在接受到客户端发的报文后回复一个ACK确认包和一个需要客户端确认的syn包客户端在收到这二个包之后发送一......
  • 说一下什么是三次握手和四次挥手
    一、三次握手(1)第一次握手就是客户端请求服务端连接,发送SYN报文置为1,并加上初始化序列号seq(2)当服务端收到请求后,会回复应答报文ACK置为1,并发送属于服务端的SYN连接请求,连......
  • 传输层之UDP与TCP的首部
    从通信信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能的最底层。传输层位于应用层和数据链路层之间,主要有两个协议,用......
  • 三次握手四次挥手报文分析
     三次挥手的原因当server开启DelayedAck,收到clinet的FIN后,发现发送ACK条件不满足,因此不会发送ACK,当服务发送FIN时,FIN和ACK会合并发出,因此就会出现三次挥手的场景D......
  • SDN第四次实验
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境Ub......
  • 四次挥手可以改成三次吗
    这种是看情况,取决于服务端是否还有未发送的数据和是否开启了TCP延时发送机制。如果服务端没有了发送数据,并且开启了TCP延时机制,此时第二次和第三次挥手是可以一起发送的,即......
  • TCP三次握手与四次挥手
    三次握手:第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),......
  • 计算机网络--传输层正文
    传输层功能传输层提供进程和进程之间的逻辑通信复用和分用传输层对收到的报文进行差错检测传输层两种协议传输层的两种协议面向连接的传输控制协议传送数据......
  • 2022.9.30 Java第四次课后总结
    1.publicclassBoxAndUnbox{ /** *@paramargs */ publicstaticvoidmain(String[]args){ intvalue=100; Integerobj=value;//装箱 intresult=obj*2;......