首页 > 代码库 > 通过UDP探测端到端MTU
通过UDP探测端到端MTU
P_MTU_D(Path MTU Discovery)
socket的UDP功能,去发现端到端MTU
#!/usr/bin/env python3 #-*- encoding:utf8 -*- #Used UDP to learn the MTU of the end_to_end PATH_MTU import IN,argparse,socket if not hasattr(IN,‘IP_MTU‘): raise RuntimeError(‘cannot perform MTU discovery on this combination‘) def send_big_datagram(host,port): sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.setsockopt(socket.IPPROTO_IP,IN.IP_MTU_DISCOVER,IN.IP_PMTUDISC_DO) sock.connect((host,port)) try: sock.send(b‘#‘*65535) except socket.error: print("also,the datagram did not make it") max_mtu = sock.getsockopt(socket.IPPROTO_IP,IN.IP_MTU) print(‘Actual MTU:{}‘.format(max_mtu)) if __name__ == ‘__main__‘: parser = argparse.ArgumentParser(description=‘Send UDP Packet to Get PATH_MTU‘) parser.add_argument(‘host‘,help=‘the target host‘) parser.add_argument(‘-p‘,metavar=‘port‘,type=int,default=1060,help=‘UDP port((default 1060)‘) args = parser.parse_args() send_big_datagram(args.host,args.p)
通过UDP探测端到端MTU
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。