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


传输层协议中的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状态,完成四次挥手。
五、常见协议及其端口

 

 

 

posted @ 2022-11-09 08:53  靖安yj  阅读(311)  评论(0编辑  收藏  举报