nat協議中的hole punching技術

2021-10-10 18:26:08 字數 811 閱讀 7887

client,接收服務端**的位址,直接傳送即可,路由器上在連通的情況下會自動記錄內外埠號,並在短時間內關閉,所以需要迴圈傳送資料

def main(host='127.0.0.1', port=9999):

sock = socket.socket(socket.af_inet, # internet

socket.sock_dgram) # udp

a = 0

while true:

try:

print("------------send {}".format(a))

sock.sendto(b'0', (host, port))

a+=1

break

except exception as e:

time.sleep(3)

continue

while true:

data, addr = sock.recvfrom(1024)

print('client received: {} {}'.format(addr, data))

addr = msg_to_addr(data)

sock.sendto(b'0', addr)

data, addr = sock.recvfrom(1024)

print('client received: {} {}'.format(addr, data))

if __name__ == '__main__':

logging.basicconfig(level=logging.i

網路之NAT協議

2011年2月3日中國農曆新年,iana對外宣布 ipv4位址空間最後5個位址塊已經被分配給下屬的5個地區委員會。2011年4月15日,亞太區委員會apnic對外宣布,除了個別保留位址外,本區域所有的ipv4位址基本耗盡。一時之間,ipv4位址作為一種瀕危資源身價陡增,各大網路公司出巨資收購剩餘的空...

使用TCP協議的NAT穿透技術

要了解如何使用tcp穿透nat,就要首先看看如何使用udp穿透nat。假設,我們在兩個不同的區域網後面分別有2臺客戶機a和 b,ab所在的區域網都分別通過乙個路由器接入網際網路。網際網路上有一台伺服器s。現在a b是無法直接和對方傳送資訊的,a b都不知道對方在網際網路上真正的ip和埠,ab所在的區...

使用TCP協議的NAT穿透技術

其實很早我就已經實現了使用tcp協議穿透nat了,但是苦於一直沒有時間,所以沒有寫出來,現在終於放假有一點空閒,於是寫出來共享之。一直以來,說起nat穿透,很多人都會被告知使用udp打孔這個技術,基本上沒有人會告訴你如何使用tcp協議去穿透 甚至有的人會直接告訴你tcp協議是無法實現穿透的 但是,眾...