传输层协议介绍

传输层协议介绍

一、TCP协议介绍

1、TCP和UDP协议

1)TCP/IP协议族的传输层协议

① TCP(Transmission Control Protocol)

       传输控制协议

② UDP(User Data gram Protocol)

      用户数据报协议

2、TCP协议

1) TCP是面向连接的,可靠的进程到进程通信的协议

2) TCP提供全双工服务,即数据可在同一时间双向传输

3) TCP 报文段

① TCP将若干字节构成一个分组,叫报文段(Segment)

② TCP报文段封装在IP数据报中

    

    

  • 源端口号:它是16位字段,为发送方进程对应的端口号
  • 目标端口号:是16位字段,对应的是接收端的进程,接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程
  • 序号:发送端为每个字节编号重组,便于接收端正确重组
  • 确认号:用于确认发送端的信息
  • 首部长度:用它可以确定首部数据结构的字节长度
  • 窗口大小:用于说明本地可接受数据段的数目,窗口大小是可变的
  • 保留:这部分保留位作为今后扩展功能用
  • 控制位:TCP的连接,传输和断开都受这六个控制位的指挥

           URG:紧急指针有效位

           ACK: 确认序号位,当该位为“1”时,用于确认发送的数据;只有当ACK=1时,确认序列号字段才有效

           PSH:标志位为“1”时,要求接收方尽快将数据段送达应用层

           RST:当RST值为“1”时,通知重新建立TCP连接

           SYN:同步序号位,TCP需要建立连接是将该值设为“1”

           FIN: 发送端完成发送任务,当TCP完成数据传输需要断开连接时,提出断开连接的这一方将这个值设为“1”

3、TCP的连接

1)TCP建立连接的过程称为三次握手

     

2)TCP断开连接的四次挥手

     

3)半关闭和半连接

  • 半关闭:当TCP链接中A向B发送FIN 请求关闭,另一端B回应ACK 之后,并没有立即发送FIN给A,A方处于半连接状态(半开关),此时A可以接收B发送的数据,但是A已经不能再向B发送数据
  • 半连接:发生在TCP三次握手中

                    如果A向B发起链接,B也按照正常情况响应了,但是A不进行三次握手,这就是半连接。
                   半连接攻击:半连接,会造成B分配的内存资源就一直这么耗着,直到资源耗尽。(SYN攻击)

  • 半打开:如果一方关闭或者异常关闭(断电,断网),而另一方并不知情,这样的链接称之为半打开。处于半打开的连接,如果双方不进行数据通信,是发现不了问题的,只有在通信是才真正的察觉到这个连接已经处于半打开状态,如果双方不传输数据的话,仍处于连接状态的—方就不会检测另外—方已经出现异常
  • 解决方法:

        如何解决半打开问题,引入心跳机制就可以家觉半打开。
        如果需要发数据的话,这边收到之后其实发现这个连接并不存在了,就会回复RST包告知,这个时候就需要重新建立连接了

 4、常用的TCP端口号及其功能

        

 二、UDP协议

1、UDP协议概述

1) 是无选择,不可靠的传输协议

2) 花费的开销小

2、UDP报文的首部格式

     

  源端口号:用来标识数据发送端进程

  目的端口号:用来标识数据接收端的进程

  UDP长度:用来指出UDP的总长度,为首部加上数据

  校验和:用来完成对UDP数据的差错校验,它是UDP协议提供的唯一可开机制

3、常见的UDP端口号及其功能

 

 

posted @ 2021-05-20 08:36  YhtWeirdo  阅读(427)  评论(0编辑  收藏  举报