从linux了解世界
分类: 网络与安全
2017-02-03 21:40:04
网络前身:美国为了防止苏联的核攻击,建立一个多中心多节点的分散式网络(和git的思路很像?)。
ietf:制定了http,smtp等协议,smtp是发信协议,pop3和imap是收信协议,sip/rtp是因特网电话/视频协议,ssh和Telnet是远程终端协议
所以按照上面的概念,交换机只要完成链路层的工作,路由器只要完成网络层的工作就可以,他们算是网络的基础设施,传输层和应用层都由网络边缘的端设备实现,也就是进程通信和信息格式
这种无数大牛最终确定的网络架构保证了现在社会网络的飞速发展,因为不论有什么协议都不需要更改网络基础设施,不需要更改路由器和交换机的程序,只要端设备实现就可以了,网络中的设备不用参与连接的建立,对应用层一无所知。数据包、分组交换也比固定线路更充分使用带宽。路由器的路由表是门大学问
dhcp:dynamic host
config protocol。如果没有这个协议,机器连上路由也上不了网。想获得ip地址的客户端发送一条广播,连接过程:
ipv4早就已经用光了,现在还能使用的就是因为nat(网络地址转换)。
路由器发送数据,修改数据包中源地址和源端口(根据nat转换表):
路由器接收数据,修改数据包中目的地址和目的端口(根据nat转换表):
不同网络间是按照ip的子网号确定的,有些老网络确实没用ip地址
发送数据时,最开始都不知道目的mac地址,所以通过arp(地址解析协议)获得目的地mac地址,每个电脑都有一个arp的缓存表,如果目的ip没有对应的目的地mac地址就会发送arp请求广播,只有对应的ip的机器会返回arp响应
当跨越子网传输时:
然后路由器需要arp获得黄色机器的mac地址,然后:
综合:
web socket解决http层客户端和服务器的双向交互问题,浏览器端通过某种策略看看服务器的某个资源ready了没有,效率很低,有了web socket就像在web层建立了和tcp层相似的一个全双工的方式,客户端可以向服务端发起请求,反过来也可以。Websocket在socket之上,socket实际上是对传输层的抽象接口