web开发常见的计算机网络协议

协议模型

OSI七层协议模型

OSI七层协议模型分为应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

TCP/IP模型 TCP/IP模型分为应用层,传输层,网络层,数据链路层

TCP/IP模型和OSI七层协议模型对应关系

此处输入图片的描述

数据如何传输

根据TCP/IP协议栈的定义,数据产生后通过应用层,传输层,网络层,链路层依次对其做处理,封装数据,对其加对应的首部,最终转换为0和1的电信号,通过物理设备进行传输,接受端再进行一层一层的解包,最终拿到请求的数据。

链路层

直接的0和1电信号是没有意义的,所以要对电信号分组,以太网规定一组电信号就是一个数据包,用表示,一个数据包的结构主要分为首部,数据,尾部,首部包含目标MAC地址和类型,固定14字节,MAC地址是一台具有网卡的物理机唯一身份标识;数据最短46字节,最长1500字节,所以如果数据过长,则要进行分帧传输。当数据到达子网后,以太网通过广播的形式,发送数据给所有主机,主机通过匹配数据首部的MAC地址,得到数据。 数据链路层的工作就是,对电信号进行分组传输,然后以广播方式发送给目标主机

网络层

在网络层里,有三个很重要的协议,IP协议,ARP协议,路由协议

IP协议 网络层通过应用层传入的ip来进行主机的寻址,ip地址分为IPV4和IPV6,IPV4前面部分代表网络地址,后面部分代表主机在局域网中地址,如果两个IP地址在同一个子网内,网络地址一定相同。

ARP协议 地址解析协议,根据IP地址获取MAC地址。首先APR请求目标主机IP地址,到达数据链路层后,子网内主机通过链路层发送的数据包内的IP地址进行匹配,匹配到后就像ARP返回自己MAX地址,以此确定目标机MAC地址,并缓存IP和MAC的映射关系,下次请求节约寻址时间。arp -a查询本机缓存的映射

路由协议 由于ARP协议MAC寻址在同一个子网中,网络层首先通过IP协议判断两个主机是否同一个子网,如在同一个子网,则ARP寻址,广播数据包到子网主机;如不在同一个子网,以太网将数据包发送到网关进行路由,最终到达目标IP子网,再通过ARP寻址。路由器(router)实际上就是一台配备有多个网卡的专用电脑。每一台主机和路由都能了解局域网内的IP地址和MAC地址的对应关系,这是实现IP包封装(encapsulation)到帧的基本条件

IP数据包 网络层包装的数据包叫IP数据包,IPV4数据包协议包含首部,和数据,首部包含目标IP地址和源IP地址,数据包最大长度1500个字符,如果超过就要分包,而如果数据数据过短,又会造成传输效率的过低.

网络层主要工作定义网络地址,区分网段,子网内MAC寻址,对于不同子网数据进行路由

传输层

UDP协议 数据到达主机后,主机里面有那么多应用,那么多进程,那么应该把数据给谁呢?那么UDP协议就诞生了,UDP数据包由两部分构成,首部和数据,首部8个字节包括源端口和目标端口,但是UDP协议是没有确认机制的,发也就发了,不知道对方有没有收到信息;

TCP协议 是一种面向连接,可靠,基于字节流的通信协议。通过建立三次握手,四次挥手的确认机制来保证数据的安全,可靠性。TCP数据包是没有长度限制的,但是一般情况下是不会超过IP数据包的长度。

传输层主要是定义端口,标识应用程序,实现端到端的通信

应用层

好了,现在数据也被相应的应用程序接受了,是不是就这样完了呢?没有,这样传过来的数据是字节流,是无法识别的。通常需要HTTP,FTP,SMTP等协议转换为能够识别的格式,json,xml等。

应用层工作就是定义数据并按照对应格式进行解析