我想知道在从C#进行webRequest时将要执行的完整过程。我正在使用加密狗连接到互联网。实际上后端有什么东西为我准备标题?我的.net应用程序如何知道我的网络提供商提供的公共IP地址(将在whatismyip中显示)?我的公共IP存储在我的系统中的任何位置吗?我只是不知道像数据包传输或套接字相关的东西/ DNS这样的完整过程。它们是如何构建的以及它们如何通信?
我是网络编程新手。也欢迎良好的教程链接。请帮助我理解所有这些事情。
答案 0 :(得分:1)
" 只是一个教程"在这里不会帮到你。
您的问题的核心:网络和更具体的TCP / IP。
确实,您的IP地址存储在您的系统中,并且绑定到您的网络接口。但这只是故事的一部分。
如果您通过tcp网络发送数据,您的数据将打包在具有
的数据包中所以服务器确实知道你的IP地址。否则它无法向您发送回复。
如果您位于执行NAT(地址转换)的路由器后面,则您的本地IP(例如192.168.1.1)将被替换。将其分为5个步骤
在通用路由器上,转换是一个应该明确配置的选项。然而,在ISP提供的(消费者)路由器上,每个用户几乎总是只有1个公共地址,NAT是标准的,因为私有地址(192.168 / 16,10 / 8)是不允许的,因此不会通过互联网。
对于你的案子来说,简而言之。数据包如何通过网络从路由器流向服务器并返回其自身的故事; - )
您的电脑如何知道服务器的IP。这里有DNS发挥巨大的分布式查找系统,将主机名转换为IP地址。可与电话簿相媲美。 有关此DNS and BIND
的标准讲座制作网络请求会增加一层复杂性。涉及的协议是HTTP(S)。这涉及很多,但起点可以是A HTTP beginner's guide
HTTP与传输无关。您的计算机决定与服务器通信的传输。还有一些网络协议,但tcp-ip(几乎)是默认的。