后台网络请求中的常见协议以及分层模型
2019-07-18 本文已影响0人
卖毛玉的小贩
go的一些需要记住的语法说完了,就要说网络协议了。
毕竟go本身是一款后端语言,通过网络与客户端交互则是必然的
而本身,go对网络协议的请求封装的很是完善,所以这里就先说下常见的协议吧,算是做一个复习记录。
协议
- 是一组通信规则,要求数据通信双方,在通信过程中,严格遵守的存在。
典型协议有:
- 应用层:http,ftp
- 传输层:TCP,UDP
- 网络层:IP,ICMP,IGMP
- 链路层:ARP,RARP
除了上面协议有哪些要记住,面试时也会问网络分层模型
网络分层模型
- OSI七层模型:
- 物、数、网、传、会、表、应
- TCP/IP :
- 链、网、传、应
在网络数据通信过程,发生了:
- 数据封装:
- 数据>应用层>传输层>网络层>链路层>以太网
- 数据解封装:
- 以太网>链路层>网络层>传输层>应用层>数据
各层功能简介
- 链路层:
- 从 设备 到 设备
- 源mac ——目标mac (不需要用户指定)
- ARP协议,借助IP,获取mac地址 RARP 借助mac地址 找到IP地址
- 网络层:
- 从节点到节点(主机)
- 源IP——目标IP (需要用户指定)
- IP协议 借助IP地址,标识网络中的唯一主机
- 大小 4字节,每一个字节取值范围0-255
- 传输层:
- 从 进程 到 进程
- 源port——目标port
- TCP/UDP 通过端口号 port 在一台主机上 唯一标识一个进程
- IP + port 可以在网络环境中,定位为一个标识的一个应用(进程) ——socket
- 应用层:
- 从数据封装 到 数据解封
- 源应用协议 —— 目标应用协议
- 应用层协议 可选 非必须