网络 - 发送和接收数据

时间:2016-02-10 15:01:23

标签: networking encoding server ip

这可能不是正确的地方,因为它不是纯编程; 然而,作为一个简单的Web开发人员,我发现自己非常 对网络主题一无所知(维基百科通常混合 关于此事的不同主题),我觉得这是一个“必须”知道。 我有一个关于你写google.com时会发生什么的图像 在你的浏览器上,我不知道整个过程(我有一个调制解调器,  路由器和连接到它的几台计算机。让我用我的例子来说明一个例子):

You write characters into chrome -> 
there is some character encoding done to translate the address(ASCII or else) -> 
DNS does something, not sure -> 
your router receives a digital request from a computer's internet cable/WIFI, it saves the internal IPV4 address of     
the sender in order to know to which computer to respond back. it sends the digital data to the modem -> 
your modem receives digital data, and translates it from digital to analog ->
now your network provider does some work - > 
the google server receives a request from an IP address - > 
not sure how the google server handles the data, nevertheless it sends back data ->
service provider - > router gets translated digital data from the modem and remembers who sent the request, and sends it to the right person.

为了优化网络服务器或者编写一个更好的涉及网络的代码,也许每个初学者(比如我自己)都需要首先理解这个?感谢您的时间。 编辑:我确实读过维基百科的OSI模型,虽然它没有我想象的那么有用。

1 个答案:

答案 0 :(得分:0)

我会尝试解释这个想法,虽然它可能会更复杂,更复杂 - 这取决于你想要的深度......

  1. 你写的是“www.stackoverflow.com”
  2. 您的操作系统会尝试将www.stackoverflow.com解析为IP地址
  3. 由于您的操作系统可能无法访问,因此需要提出DNS服务器
  4. 假设您使用外部DNS(例如IP = 5.5.5.5且您的IP = 10.10.10.10,它位于不同的网络上),您的操作系统将检查它是否知道如何达到5.5.5.5
  5. 您的PC上存在默认路由0.0.0.0/0(这也称为'default-gw',包括所有互联网,它指向您的本地路由器
  6. 将使用目的地中的DNS IP地址将IP数据包发送到路由器MAC地址
  7. 您的路由器可能会将您的私有IP地址更改为自己的公共IP地址,并将其发送给ISP
  8. ISP会将其路由到互联网,直到达到5.5.5.5即DNS
  9. DNS将回复将stackoverflow.com解析为IP地址
  10. 您的PC现在知道如何将数据包发送到stackoverflow.com
  11. 数据包将被发送到stackoverflow ip地址(104.16.36.249)到端口80(http)
  12. stackoverflow Web服务器侦听端口80上的请求
  13. 一旦数据包到达,它将生成响应数据包
  14. 它会以同样的方式将它发回给你
  15. 使用网络捕获实用程序(如wireshark)可以看到所有流量,您可以使用这些命令(窗口)来验证...

      

    ping stackoverflow.com

         

    netstat -rn

         

    IPCONFIG

         

    NSLOOKUP

         

    tracert -d