IPv4&IPv6雙重協議棧

IPV4 TCP客戶與IPV6服務器之間的通訊:
1 啓動IPV6服務器,建立套接監聽口,綁定通配地址
2 IPV4調用gethostbyname找到該服務器對應的A記錄
3 調用connect,向服務器發送一個IPV4的SYN
4 服務器設置標誌,代表是IPV4映射的IPV6地址,相應一個IPV4的SYN/ACK
5 全部通訊使用IPV4
 
IPV6 TCP客戶與IPV4服務器之間通訊:
1 建立IPV4監聽套接口
2 IPV6客戶啓動,調用gethostbyname詢問IPV6地址
3 調用connect,在相應IPV6套接口地址結構中存放所得的IPV4映射的IPV6。內核檢查到這個映射地址,自動向服務器發送IPV4的SYN
4 服務器用IPV4的SYN/ACK相應,鏈接經過IPV4數據報創建
 
IPV4客戶不能調用Connect或sendto指定IPV6的地址,由於在IPV4的sockaddr_in結構裏的4字節的in_addr結構中,放不下16字節的v6地址
相關文章
相關標籤/搜索