目录
一、TCP/IP协议
1、TCP/IP协议是一类协议的总称,包含很多协议。比如 tcp、udp、ip、arp、icmp等。每一种具体的协议在数据传输过程中,作用的地方(层↓)不一样,所起的作用不一样。
2、TCP/IP协议有4层,后来USA又发了一个OSI标准的协议层,是7层。对应图如下:
OSI对TCP/IP做了更细致的划分。目前实质上用的还是TCP/IP。
二、HTTP协议
1、http协议简单说明
HTTP协议是规定服务器端与客户端的说话方式的。服务器端和客户端都相互遵守这个规则,两端就能正常的发送数据、接收数据。
比如:
第一步:客户端(浏览器)请求 127.0.0.1:7890/login.html,即发送了一个请求头:
GET /login.html HTTP/1.1
第二步:127.0.0.1这台服务器看见了这个请求头,就通过GET的方式,HTTP/1.1这个版本,去拿到自己根目录下的login.html这个文件的内容,准备返回给客户端
第三步:准备好第二步的login.html数据后,服务器还需要按照格式组装一个符合规范的数据,简化为:
GET HTTP/1.1 200 OK
(空一行)
login.html......abcd.....efg.......
此时服务器把这整个数据包返回给客户端,客户端接收到就完成了本次数据请求和传输。
注意:上面发送数据时的请求头,为什么要写HTTP/1.1,服务器回的时候为什么要写200 ok,不能写200 right吗? 这就是所谓的协议规则。不这么写对方就不认识,就不能正常通信。
2、HTTP协议的3次握手,4次挥手
tcp是全双工的。即客户端有发口,有收口;服务器端也有发口,有收口。
3、长连接和短连接
HTTP1.0是短连接,HTTP1.1是长连接
短连接:三次握手成功,发一次数据,立马四次挥手断开。
长连接:三次握手成功,可以一直发数据或者等待,直到客户端长时间没有数据交互,或者客户端主动断开,才启动四次挥手断开连接。
三、TCP/UDP的对比
tcp:全双工,客户端和服务器端相互直到对方是否已收到消息。
udp: 数据发了就发了,丢了还是真的接收到了,udp就不管了。
四、线程、进程、协程
在python中对比
线程 | threading.Thread | 消耗中等 线程是属于进程的 |
进程 | multiprocessing.Process | 消耗最多 一个进程可以开多个线程,进程间相互独立 |
协程 | gevent | 消耗最低 |
五、IP、子网掩码、默认网关、mac地址、DNS服务器
IP: 最大 255.255.255.255 ,每一位上0,1和255不能用
子网掩码: 255.255.0,和IP配合来确定当前所处的网段
默认网关:能转发数据的设备,两个大网区之间的通讯
mac地址:网卡的物理地址,全世界唯一
DNS服务器:用来解析域名解析。相当于一个大电话簿的,里面记录了域名和对应的IP。当我们访问某一个网站输入它的域名比如www.baidu.com后,DNS服务器就找到这个域名对应的IP。
六、个人电脑、集线器、交换机、路由器
个人电脑:个人拥有,可上网
集线器:Hub,仅能用于广播,数据会发送给任何人,已淘汰
交换机:Switch,可广播,可单播,只能在同一个网段中传输数据
路由器:Router,把不同的网段连接为一个大的互联网