美文网首页
Problems 关于 TCP

Problems 关于 TCP

作者: 李伟13 | 来源:发表于2020-05-09 23:31 被阅读0次

    一个网页图像传输时.TCP将其划分为长度为MSS(Max segment size)的若干块,(最后一块除外,一般小于MSS)

    • 16位端口号:标示该段报文来自哪里(源端口)以及要传给哪个上层协议或应用程序(目的端口)。进行tcp通信时,一般client是通过系统自动选择的临时端口号,而服务器一般是使用知名服务端口号或者自己指定的端口号。

    • 32位序号(sequenc enumber):一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。假设主机A和主机B进行TCP通信,A发送给B的第一个TCP报文段中,序号值被系统初始化为某个随机值ISN(Initial Sequence Number,初始序号值)。那么在该传输方向上(从A到B),后续的TCP报文段中序号值将被系统设置成ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移。例如,某个TCP报文段传送的数据是字节流中的第1025 ~ 2048 字节,那么该报文段的序号值就是ISN+1025。另外一个传输方向(从B到A)的TCP报文段的序号值也具有相同的含义。
      主机开启TCP会话,初始序列号随机在 0~2^32 - 1(4294967295)之间.

    • 32位确认号(acknowledgement number):用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。假设主机A和主机B进行TCP通信,那么A发送出的TCP报文段不仅携带自己的序号,而且包含对B发送来的TCP报文段的确认号。反之,B发送出的TCP报文段也同时携带自己的序号和对A发送来的报文段的确认号。
      例子1
      主机A与主机B通信,假设主机A已收到主机B 0~535的所有字节,然后它要发一个报文段给B,那么就会在确认号填上536.
      例子2
      主机A收到了0~535 和9001000的报文段,还没有收到536899报文段,这时报文段确认字号仍为536.
      像例子2中失序报文段的处理
      实践中选择接收方保留失序字节,并等待缺少的字节填补间隔这种方式.

    • 4位头部长度,标识该TCP头部有多少个32bit(4Byte) (一行8字节)(虽然实际传输中没有一行这样的说法),TCP头部最长是60Byte(2^4-1 = 15 15*4 = 60)

    • 六位标志位

    1. URG(urgent pointer)标志,表示紧急指针是否有效。
    2. ACK(acknowledge)标志,表示确认号是否有效,一般称携带ACK标志的TCP报文段为“确认报
      文段”。
    3. PSH(push)标志,提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后
      续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲
      区中)。
    4. RST标志,表示要求对方重新建立连接,一般称携带RST标志的TCP报文段为“复
      位报文段"。
    5. SYN(Synchronize Sequence Numbers)(同步序列编号)标志,表示请求建立一个连接,一般称携带SYN标志的TCP报文段为“同步
      报文段”。
    6. FIN标志,表示通知对方本端要关闭连接了,一般称携带FIN标志的TCP报文段为
      “结束报文段”。
    • 16位接收窗口字段,用于流量控制.用于指示接收方本端愿意接受的字节数量

    • 16位校验和,对TCP的头部和数据部分使用CRC算法进行校验.保证TCP可靠传输.

    • 16位紧急指针( urgent pointer): 是-一个正的偏移量。它和序号字段的值相加表示
      最后一个紧急数据的下一字节的序号。因此,确切地说,这个字段是紧急指针相对当前序号
      的偏移,不妨称之为“紧急偏移”。TCP的紧急指针是发送端向接收端发送紧急数据的方法。
      我们将在后面讨论TCP紧急数据。

    三次握手和四次挥手

    TCP状态流转图

    TCP建立连接

    在建立连接的时候,通信的双方要互相确认对方的最大报文长度(MSS),以便通信。一般这个SYN长度是MTU减去固定IP首部和TCP首部长度。对于一个以太网,一般可以达到1460 Byte。当然如果对于非本地的IP,这个MSS可能就只有536 Byte,而且,如果中间的传输网络的MSS更加的小的话,这个值还会变得更小。

    三次握手 SYN洪泛攻击

    SYN cookie[RFC 4987]部署在主流操作系统之中

    如何随机选择初始序号

    [CERT 2001-09]

    相关文章

      网友评论

          本文标题:Problems 关于 TCP

          本文链接:https://www.haomeiwen.com/subject/pomknhtx.html