计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。
应用层决定了向用户提供应用服务时通信的活动(FTP,DNS,HTTP)---发出想看某个web的http请求,发往下一层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输(TCP,UDP)---应用层数据分割并打上标记及端口号,传入下一层
网络层(又名网络互连层)网络层用来处理在网络上流动的数据包,相当于选择一条传输路线---增加目的地的MAC地址,传入下一层
链路层(又名数据链路层,网络接口)用来处理连接网络的硬件部分(操作系统,硬件的设备驱动,网卡等物理部分)---接受到数据,在接收端逐层处理
路由选择(IP)
IP协议在网络层,负责把各种数据包发给对方,需要节点分配的可变ip地址和网卡的固定MAC地址。利用ARP协议通过ip地址反查出MAC地址
路由选择路由选择(routing),有点像快递公司的送货过程。想要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明确下站该送往哪个区域的集散中心。接着,那个区域的集散中心自会判断是否能送到对方的家中。
三次握手(TCP)
TCP协议位于传输层,提供可靠的字节流服务(TCP 协议为了更容易传送大数据把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方)
三次握手如上图
解析域名(DNS)
DNS协议位于应用层。相比IP地址,www.xxx.com之类的更好记,但是计算机更认得数字,所以需要DNS来解析成数字
各层联系
URI和URL
URI(统一资源标识符)用字符串标识某一互联网资源
URL(统一资源定位符)表示资源的地点(互联网上所处的位置),是URI的子集