TCP格式&&可靠性保证&&URG PSH区别

来源:互联网 发布:东方财富交易软件 编辑:程序博客网 时间:2024/05/22 15:56

1. 电路交换和分组交换的区别,优劣对比

2. TCP/IP协议有哪几层,各层的作用是什么?列举各层主要的协议名称

  1. 应用层:提供应用层面沟通的层
    主要协议:ftp http smtp telnet(tcp) dns(udp) ping(icmp)
  2. 传输层:提供节点间的数据传输服务
    主要协议:tcp(基于字节流面向链接,所以长连接时容易出现粘包问题)、udp(基于数据报,无连接,不会出现粘包问题)
  3. 网络层:标明数据的目的地址,不能保证传输数据的正确性,
    主要协议:ip协议,ICMP协议(ping),ARP协议,RARP协议,IGMP协议
  4. 网络接口层:对于实际的网络媒体进行管理,定义如何使用实际网路来传输数据

  1. TCP

    这里写图片描述

    1. 源端口号和目的端口号:各占两个字节分别写入源端口号和目的端口号
    2. 序号:占4个字节,序号范围是(1,2^32-1),共2^32个序号,当序号增加到2^32-1时,下一个序号就会回到0。用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。
    3. 确认序号:是期望收到对端下一个报文段的第一个数据字节的序号
    4. 头部长度:占4位,TCP报文短的首部长度,最大60,没有用选项是20.
    5. 预留:由跟在数据偏移字段后的6位构成,预留位通常为0.
    6. 标志位:
      URG:紧急指针(urgent pointer)有效
      ACK:确认序号有效
      SYN:发起一个连接
      RST:重置 连接,当RST位置为1后说明TCP链接中出现严重问题,必须释放连接然后重新建立
      PSH:在要求键入一个命令时,无需等待就立即要收到对方的兴颖时,使用PSH位,将PSH位置为1后,接收方不等缓冲区填满就向上交付数据。
      FIN:关闭连接标志位
    7. 窗口大小:占两个字节,指的是发送本报文段的一方的接收窗口大小,表明接收方允许对方发送的数据量。
    8. 校验和:采用CRC校验。
    9. 紧急指针:紧急指针仅在URG=1时才有效,指出本报文段中的紧急数据的字节数(也就是紧急数据的末尾在报文段中的位置),窗口为0时也可发送紧急数据。

2. URG与PSH的区别

  URG(紧急位):当URG=1的时候,紧急指针有效。紧急指针是一个正的 偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是从发送端向另一发送发送紧急数据的方式。数据从第一个字节到紧急指针所指字节就是紧急数据。数据段中的紧急数据不进入缓冲区就直接交给上层进程,而余下数据则要进入接收缓冲区。
  PSH(急迫位):PSH=1时,客户端发送给服务器的报文段立即被服务器TCP交付给应用进程处理,而不用再等整个缓存都填满之后再向上交付。一般情况下,TCP等缓冲区写满之后才向上提交给应用进程,注意PSH=1时数据还是要从缓冲区向上提交的,只是不用再等到缓冲区满了之后再向上提交

3. TCP通过哪些措施保证传输的可靠性

  1. 超时重传:

    为每个TCP报文段都维护一个重传定时器,定时器在TCP报文段都维护一个重传定时器,定时器在TCP报文段第一次被发送时启动,如果超时时间内未收到应答,则重传报文段并重置定时器。

  2. 确认相应

    对于一个收到的请求都将发送一个确认

  3. 首部校验

    由发送端填充16位校验和,接收端进行CRC校验,及教研TCP头部,又校验数据。

  4. 对接收到的数据进行排序

  5. 丢弃重复数据

  6. 流量控制

    TCP通过窗口的大小进行流量控制,防止接收慢的主机缓冲区溢出

    1. 面向字节流,不对数据解析,防止报文被截断
原创粉丝点击