网络和IP
HTML & CSS & JS & JSON 四门语言的本质.
HTTP 协议的底层其实是由 TCP 协议和 IP 协议(简称 TCP/IP)构建的。
TCP 传输控制协议(Transmission Control Protocol)
TCP与UDP的区别是什么?
TCP协议 可靠(发一个请求,成功不成功我是知道的),面向连接(tcp必须发起个连接,这端是我那端是服务器),UDP 不可靠,不面向连接、相对 TCP 较快。搞定。
TCP的三次握手指的是:【每次】建立连接前,客户端和服务端之前都要先进行三次对话才开始正式传输内容.
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。(客户端:我要连接你了,可以不?)
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;(服务器:恩,你可以连接我了!)
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。(客户端:那我连接你了。)
完成三次握手,客户端与服务器开始传送数据.
IP 网络协议(英语:Internet Protocol)
只要你在互联网中,那么你就会有一个 IP。通俗上理解,IP 分为「内网 IP」 和「外网 IP」.
内网指的是家里路由器之内的网络,比如手机电脑电视等等,外网指的是电信DNS服务器还有电信其他用户(比如百度,腾讯等);
- 内网中的设备可以互相访问(比如你可以用电脑或手机进入 http://192.168.1.1 来查看你的路由器),但是不能直接访问外网,内网设备想要访问外网,就必须经过路由器中转。
- 外网中的设备可以互相访问(比如 qq.com 可以把首页发送给你的路由器,你的路由器有外网 IP),但是外网中的设备无法访问你的内网设备
路由器是分隔内网和外网的设备,路由器没有「固定的外网 IP」;
本地 IP(localhost):127.0.0.1。本地 IP 永远表示设备自己,还有一个特别特殊的 IP:0.0.0.0,它不表示任何设备。
端口
一个设备(前提是你使用的是 TCP 或 UDP 协议。还记得吗,HTTP 就使用了 TCP),只指定 IP 是不够的,还必须指定端口(Port)。
端口其实就是一个编号,并不是一种硬件,一个端口对应一个服务.
- TCP/UDP常见端口
- 每个机器一共有 65535(2的16次方减1)个端口(这是协议规定的)。不过这些端口的使用由一些规定
- 0 到 1023(2的10次方减1)号端口是留给系统使用的,你只有拥有了管理员权限后,才能使用这 1024 个端口。
- 其他端口可以给普通用户使用
- 如果一个端口正在提供服务,也就是被占用了,那么就不能再使用这个端口。除非你先停掉正在占用这个端口的服务。以后你们会经常遇到这个问题。
总结
- 使用 HTTP 协议访问另一个 IP 时,比如同时提供 IP 和端口号,缺一不可。
- 访问 http://qq.com 时并没有提供端口号,为什么我依然可以访问,因为浏览器帮你加了默认端口号 80.
Comments