Let us consider scenario where client A is behind NAT A and client B is behind NAT B. TCP hole punching happens which open a port on both the sides for communication. Can Client A host a http/https server on the open port?
Can a HTTP/HTTPS server be hosted on the port which was opened after TCP hole punching?
181 views Asked by Mukesh Kumar At
1
There are 1 answers
Related Questions in HTTP
- Handling both JSON and form values in POST request body with unknown values in Golang
- Why can't I use PUT requests?
- nginx set up reverse proxy from subfolder to a port
- Async Web Server RP2040 returning ERR_CONNECTION_REFUSED?
- Getting `FormatException: Missing extension byte (at offset 6)` exception for accessing `response.body` from a server deployed in Vercel
- Retrieving list of values from MYSQL data base based on input value(LARAVEL 10 )(GET HTTP METHOD)
- Unable to add request headers via CHttpFile - C++/MFC
- Why do we call all http services 'Web Api/Web Service'?
- How to correctly read POST REQUEST body on ESP32?
- on linux gitclone issue remote server error showing fatal error with proxy n port
- Elasticsearch - cascading http inputs from Airflow API
- How to clean the html pages opened in a session?
- UTF-8 is not a valid encoding name
- I dont get the Result i expected when i want to get my Telegram Chatbot id
- NextJS 14 SSE with TransformStream() sending messages in a single response
Related Questions in WEB
- Settlement Amount of Razorpay Dashboard is not correct
- How can I implement synchronous registration on a website and a forum by linking their databases?
- NextJS 13+ how to use parallel + intercepting routes to create a modal on a page which also stores/syncs state with search params?
- logo image error nextjs notion starter kit with teamspace
- how do i create slider on Wix website builder?
- Why do I get 500 error on Azure after using ViewBag?
- After pg-related pop-up calls and processing, the web application JSESSION is broken
- How can i upload image on Laravel React App
- React Routing in web development using an index template
- Why is my time filter not updating within my Quasar template?
- Why do I have a 403 error when trying to save a website
- Hadoop MiniCluster Web UI
- How to debug flutter web app to check maximum memory consumption issue?
- How to send a HTTP Cookie using the Set-Cookie header over a HTTP connection?
- Is it posible to modify packets that creats by request python module?
Related Questions in TCP
- Java SocketException: Connection reset,. What is the cause?
- How does a server handle multiple requests, and how does is know where to send which response?
- How does pre-allocating a pool of SocketAsyncEventArgs objects upfront improve the performance of a server application in c#
- How to peek or ready to check whether HTTP request or not in TCP proxy?
- How does bash > /dev/tcp/"ip"/"port 0<&1 keep its connection alive?
- Python TCP Server that both sends and or receives data (independently) using asyncio streams?
- Can't remotely connect to my postgresql database on digitalocean
- Why my message doesn't write into the socket when I try to read the response after sending it?
- What makes MQTT a raw tcp connection that we can't run it in the browser?
- ImGui rendering wrong characters (characters received from tcp sockets)
- TCP/IP Server Using sockets Java
- C# tcp socket keepalive I want to visit a website, but the specified time is very slow and I cannot access it
- Java TCP socket want to multiple times input with one connection
- How do I receive TCP messages on an android Emulator from a physcal device
- Getting error while using the MessagePattern to communicate between microservices
Related Questions in P2P
- Unable to Retrieve External Public Address in libp2p Swarm Events
- How to avoid duplicates with the pull-based subscribe model?
- Wifi direct (Wifi P2P) connection between raspberry pi 4b and android device only possible after reboot
- Using tokio::time::timeout does not trap delayed response from TCPReadStream
- 'connections' is deprecated. The declaration was marked as deprecated here
- Twitch but practically free with p2p webRTC?
- How Can I Connect Using A WebRTC-Offer With PeerJS
- Choose between polling, websocket or P2P
- does webrtc use turn server if established p2p connection is failed?
- A p2p secure chat application need more ressources to establish the work
- how to allow mobile apps to communicate without a separate server
- aiortc can't receive video from server example
- P2P connection does not work on Android 11 and above
- Android device cannot detect others by flutter_nearby_connections
- Why is WebRTC peer.ontrack not being called in 1-1 peer connection?
Related Questions in HOLE-PUNCHING
- Is it possible to bind client-side WebSockets to a specific local port?
- How to perform NAT hole punching on an additional client mid-session?
- NewStream error encountered when trying to use libp2p to implement hole punching
- UDP hole punching behind NAT using netcat
- Is there a way to use UDP Hole Punching with Gstreamer?
- Easy way to transfer data globally in a Peer-to-Peer network using C#
- How do I fix UDP hole punching not working in my program?
- UDP hole punching in python, works locally but not through AWS
- Effective relayed / hole-punching connection between NAT-ed hosts
- Holepunching failing with linux iptables
- TCP hole punching in Node without a server
- Is it possible to achieve a p2p connection without an external server if the public IP and listening port are known?
- How to establish TCP hole punching with node.js?
- UDP NAT hole punching using a free public server
- UDP Hole punching in python
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
TCP hole punching works only for the specific TCP connection which can be established because a) both sides somehow know the source port of the peer up-front and b) start a TCP handshake with the peer at the same time. Only then a NAT state is established which is also only valid for this specific connection (source IP,port and destination IP,port).
An external client will not match the existing NAT state because source IP,port do not match the existing state. A new state will also not be created from inside just because there is some web server listing. So while the web server could be hosted behind the NAT it will not be reachable from outside the NAT.