网络与常用IP
我们知道网络传输用的是http协议,但是事实上http只规定了你请求和响应的四个部分怎么写,并没有规定怎么传输。怎么传输建立在TCP/IP协议上。http控制如何书写内容,TCP控制如何传输,IP控制如何联网(没有IP无法联网)。
TCP
虽然我是一个软件工程专业的学生,但由于我是学前端的,所以对这个不打算太深入了解。据说知道下边这两个问题就足够了。
1. TCP和UDP的区别是什么?
TCP可靠,面向连接,相对UDP较慢。UDP不可靠,不面向连接,相对TCP较快。
可靠—-发送请求我能知道是否成功
面向连接—-TCP必须发起连接,就像是一根线,这一端是我另一端是服务器。
2. TCP的三次握手指的是什么?
每次建立连接之前都要进行三次握手。
- 客户端:我要连接你了,可以吗?
- 服务端:嗯,我准备好了,来连接我吧!
- 客户端:那我连接你咯。
- 开始后边步骤。
突然想到一个段子:我想要讲一个TCP笑话,你准备好要听了吗?是的我准备好要听这个TCP笑话了。那我要开始讲这个TCP笑话咯。
IP
只要你在互联网当中你就会有一个IP。IP分为内网IP和外网IP,路由器是一个出口,路由器之外是外网,里边是内网。我们平时连接WiFi,基本上用的都是路由器广播出来的信号。路由器给很多设备提供网络,分配IP地址,这就构成了一个内网。
路由器连接电信的服务器,电信给我们的路由器分配一个外网IP,这就是我们在互联网中的地址。但是这个地址并不是固定的,在我们重启路由器之后很有可能会被重新分配一个外网IP。当然你可以每年花几千块钱租用一个固定的外网IP,像百度阿里这些大公司就租用了很多固定的外网IP,不然没法给我们提供稳定的服务。
电信为我们提供DNS服务,比如告诉我们www.baidu.com的IP是什么。
路由器有两个IP,一个是电信给它提供的外网IP,一个是路由器为我们创建的内网中它为自己分配的内网IP,一般为192.168.1.1 。连接WiFi的手机和电脑用的都是路由器为我们分配的内网IP。
内网中的设备可以互相访问,比如你可以用手机或者电脑进入http://192.168.1.1来查看你的路由器。外网中的设备也可以互相访问。但是内网和外网不能直接访问,必须经过路由器中转。路由器为其接收到的信息指路,让它们能够到达该去的地方。
两个特殊的IP:
1. 127.0.0.1—-本地IP,表示设备自身。默认情况下,hosts 文件里会有一行127.0.0.1 localhost
,意思就是 localhost 指向 127.0.0.1,所以 localhost 也表示设备自己。
2. 0.0.0.0—-不表示任何设备。
端口
你需要访问一个设备的时候,仅仅指定IP是不够的,你还需要指定端口(Port)。这里我们指的端口,实际上是逻辑端口,只是一个编号而已。
一个服务器不一定只提供一种服务,所以我们需要快速区分你需要使用的是它的什么服务,这样才能减少服务等待时间,提高效率。因此我们提供了端口号,一个端口对应一种服务。比如你要使用http服务的话就使用服务器的80端口,与此同时该台服务器还可以为另一台设备提供https服务(443端口)。
每台机器有65535(2的16次方减1)个端口,其中0到1023号端口是留给系统使用的,要使用这些端口必须要有管理员权限,其它端口可以给普通用户使用。并且如果一个端口正在提供服务————即被占用,那就不能再使用这个端口,除非先停止正在运行的服务。
使用 HTTP 协议访问另一个 IP 时,比如同时提供 IP 和端口号,缺一不可。你输入网址的时候并没有输入端口号也可以访问是因为浏览器为你自动补全了。