zoukankan      html  css  js  c++  java
  • MSS

    TCP 为了避免被发送方分片,会主动把数据分割成小段再交给网络层,最大的分段大小称之为 MSS(Max Segment Size)。
    MSS = MTU - IP header头大小 - TCP 头大小
    这样一个 MSS 的数据恰好能装进一个 MTU 而不用分片
    在以太网中 TCP 的 MSS = 1500(MTU) - 20(IP 头大小) - 20(TCP 头大小)= 1460
    可以看到 TCP 的包体数据大小为 1448,因为TCP 头部里包含了 12 字节的选项(Options)字段,头部大小从之前的 20 字节变为了 32 字节,所以 TCP 包体大小变为了:1500(以太网 MTU) - 20(IP 固定表头大小) - 20(TCP 固定表头大小) - 12(TCP 表头选项) = 1448
    node2:/root/test#cat t17.py 
    import socket
    import IN
    import struct
    b=2
    def getnum(x):
        b='2'
        for y in range(x):
            #print y
            b=b+'2'
            if len(b) == x:
                #print '-------------'
                #print len(b)
                return b
    print getnum(1024)
    c=getnum(1460)
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    #class IN:
    #    IP_MTU = 14
    #    IP_PMTUDISC_DONT = 0
    #    IP_PMTUDISC_DO = 2
    #    IP_MTU_DISCOVER=10
    #s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    #s.setsockopt(socket.IPPROTO_IP, IN.IP_MTU_DISCOVER,IN.IP_PMTUDISC_DONT)
    # print dir(s.setsockopt(socket.SOL_SOCKET))
    s.connect(("192.168.137.2",8080))
    print len(c)
    s.send(c)
    #option = getattr(IN, 'IP_MTU_DISCOVER', 10)
    #print 'MTU:', s.getsockopt(socket.IPPROTO_IP, option)
    s.close()

  • 相关阅读:
    MySql开启GTID和多线程复制功能
    MySQL自增锁等待问题解决
    MySQL超大表如何提高count速度
    MySQL如何计算重要的指标,来确定配置是否正确
    MySQL传输表空间使用方法
    用MySQL的optimizer_trace进行sql调优
    MySQL主从复制读写分离如何提高从库性能-实战
    Mongo创建文档
    Mongo索引
    Mongo开启查询日志
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348447.html
Copyright © 2011-2022 走看看