web及网络基础
关于本http系列博客
本系列博客内容全部来自或参考自《图解http》,不过博客中的图示基本上为博主自己手动绘制,部分图可能来自其它地方,但都有标注。
常见协议的分类
分层 | 常见协议 |
应用层 | http、ftp、snmp、dns |
传输层 | tcp、udp |
网络层 | ip、icmp |
链路层 | ieee802.3、pppoe |
传输示意图
以http举例来说,客户端发送的数据交给传输层tcp,这时数据会被分割成一个个小块,并且对每个小块数据加上对应的端口号进行封装,封装好后移交给网络层。网络层收到数据后会再次进行封装,将设备的网卡mac地址封装进去后传给下一层,数据经过客户端链路层通过一系列硬件处理后到达了服务器的链路层,数据开始向上传输进行解封装。具体流程如下。
数据封装与解封装
负责传输的IP(Internet Protocol)
IP 协议的作用是把各种数据包传送给对方。 而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是 IP 地址和 MAC 地址(Media Access Control Address)。
IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address Resolution Protocol)。 ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。
路由传输过程
传输层TCP的三次握手
DNS(支持域名查IP或IP反查域名)
下图来自百度图片搜索
如上图(左)所示,DNS的解析会先在本地的hosts文件(windows在c:\windows\system32\drivers\etc\hosts)中查看,之后才会本地的hosts缓存中进行查询,当这两步都没有查询到时才会向本地的DNS服务器发起查询请求,DNS服务器大概会做类似的操作后,将结果返回。
总结