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

协议模型

OSI七层协议模型

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

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

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

此处输入图片的描述

链路层

直接的0和1电信号是没有意义的,所以以字节为单位进行电信号分组,以太网规定一组电信号就是一个数据包,用表示,

数据包的结构

数据链路层的工作就是,对电信号进行分组传输,然后当数据到达子网后,以太网通过广播的形式,发送数据给所有主机,主机通过匹配数据首部的MAC地址,得到数据。以太网和WiFi是链路层的两种协议

网络层

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

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

子网掩码 IP地址和子网掩码通过按位与运算后就可以得到网络地址

ARP协议

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

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

IP数据包

网络层包装的数据包叫IP数据包 首部:首部包含目标IP地址源IP地址数据:数据包最大长度1500个字符,超过就要分包,数据过短,传输效率的降低.

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

传输层

作用

定义端口,标识应用程序,实现端到端的通信

UDP协议

群发数据到主机所有应用中,UDP协议是没有确认机制的

构成

TCP协议

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

sliding window

对于发送方来说,滑窗的左侧为已发送并已ACK过的片段序列,滑窗右侧是尚未发送的片段序列。滑窗中的片段(比如片段5,6,7)被发送出去,并等待相应的ACK。如果收到片段5的ACK,滑窗将向右移动。这样,新的片段从右侧进入滑窗内,被发送出去,并进入等待状态。在接收到片段5的ACK之前,滑窗不会移动,即使已经收到了片段6和7的ACK。这样,就保证了滑窗左侧的序列是已经发送的、接收到ACK的、符合顺序的片段序列

应用层

将字节流数据通过HTTP,FTP,SMTP等协议转换为能够识别的格式,json,xml等。

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

数据如何传输

当你输入一个网址并按下回车键的时候,首先,应用程序对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上双方IP地址,确认了双方的网络位置;最后链路层协议加上双方的MAC地址,确认了双方的物理位置,同时将数据进行分组,形成数据帧,采用广播形式,通过传输介质发送到对方主机